コードの安全性・安定性を高める開発サイクル ~テスト管理の効率を上げ,脆弱性診断を自動で行う~

第1回 DevOpsからDevSecOpsへの近道(前編)

この記事を読むのに必要な時間:およそ 2 分

はじめに

連載業務を改善する情報共有の仕掛け第11回第12回では,Alfrescoによる「業務自動化プラットフォーム」についてお話をしました。Alfresco Content Service Version 6から,Docker,Kubernetesに対応することになり,コンテナ技術を使った自動デプロイは,すでに身近に感じています。

早期リリースが注目される中で,ソフトウェアの品質やセキュリティ面への対応も重要になってきたと感じます。海外ではDevOpsからDevSecOpsに移行しているチームが増加しており,日本においても注目が集まっています。DevOpsについては,⁠業務を改善する情報共有の仕掛け」第1回でお話をしましたので,これまでの連載を受けつつ,新タイトルで気持ちも新たに安全性・安定性を加えた開発サイクルについて考えていきます。今回は「DevSecOps」を中心にお話をします。

DevSecOpsとは

DevSecOpsとは,その言葉どおり,ソフトウェアもしくはITサービスの開発から運用をするためのDevOpsプロセスにセキュリティ対策を組み込んだものです。ひと口にセキュリティ対策と言っても,図1のように,その範囲は広範囲におよびます。

図1 DevSecOpsサイクルの概要

図1 DevSecOpsサイクルの概要

DevSecOps実現に必要な要件

DevSecOps実現に必要な要件は,いくつかありますが,ここでは5つに絞って紹介します。

  1. ソースコードのセキュリティの確保ができること
  2. アプリケーションのセキュリティの確保ができること
  3. 脆弱性検知の精度が高いこと
  4. オーバーヘッドによる生産性低下を回避すること
  5. 継続的な対応ができること

1.ソースコードのセキュリティの確保ができること

いわゆるソースコード診断と呼ばれる静的コード解析(SAST)に該当する部分です。ソフトウェア開発では,チームが作成したカスタムコードのほかにオープンソースのコンポーネントを組み合わせてソフトウェアを完成させることが一般的になっているため,その両方に対応しなければなりません。

完成されたソフトウェアコードの約80%がオープンソースのコンポーネントを使っているという報告もされているため,少なくともオープンソースコンポーネントの脆弱性,オープンソースライセンスの法的チェックを行うソフトウェアコンポジション解析(SCA)も併せてDevSecOps達成には必要であると言えます。

2.アプリケーションのセキュリティの確保ができること

こちらはアプリケーション診断と呼ばれる動的コード解析(DAST)に該当する部分です。実行しているソフトウェアに対して,SQLインジェクション,クロスサイトスクリプティング(XSS⁠⁠,コマンドインジェクションなど,あらゆる手法を使って実際に攻撃を行い,セキュリティの確保を確認します。

3. 脆弱性の検出精度が高いこと

多くの時間をかけても脆弱性が完全になくなることは困難です。重要なのは脅威の発見から対処までのスピードと誤検知の回避です。脆弱性の検出(脅威の発見)から対処については,DevOpsのリリースサイクルによって対処したソフトウェアを早期にリリースできますが,誤検知については,誤検知であることの証明をしなければなりません。この証明のための作業は,エンジニアの工数を浪費するだけでなく,精神的な疲弊にもつながる可能性が高いです。DevSecOpsにおける検出精度は,リリースサイクルが劇的に短縮されるというDevOpsの利点を損なわずに脆弱性を検知させるという点が重要だと考えています。

4.オーバーヘッドによる生産低下を回避すること

前に述べた内容と同じになってしまうかもしれませんが,DevOpsはソフトウェアライフサイクルを効率化し,ビジネス価値を迅速に提供するものです。したがって,セキュリティを意識するあまり,これを損なうことは適切ではありません。多大なオーバーヘッドが発生するプロセスがあれば,ツールによる連携,ルール・ポリシーの標準化,テストの自動化によってオーバーヘッドを排除し,生産性の低下を回避することが大切です。

5. 継続的な対応ができること

例として,開発チームと品質保証チーム,もしくはセキュリティチームとのフィードバックループを円滑に進めることが大切です。そのため,継続的インテグレーション(CI⁠⁠/継続的デリバリ(CD)は,DevOpsならびにDevSecOpsには必須となりますし,各チームの役割を明確にするしくみ作りも大切な要素となります。


この5つの要件をすべて満たすには時間とコスト,そして労力が必要になりますし,すでに利用しているツールも含めて,さまざまなツールと統合する必要もあります。チーム間の調整もたいへんですので開発チーム側で対処できるソースコード診断から進めていくのがよいでしょう。後編では,このソースコード診断に役立つツールを紹介します。

米国Atlassianから,2年連続で
「Top new business APAC」を受賞。
Atlassianセールスパートナーとして
アジアパシフィックで1位の証

米国Atlassianから,2年連続で「Top new business APAC」を受賞。Atlassianセールスパートナーとしてアジアパシフィックで1位の証

日本だけでなく,アジア圏でもアトラシアン製品販売のトップエキスパートであるリックソフトのWebサイトでは,各アトラシアン製品の体験版を提供しているほか,アトラシアン製品専用のコミュニティも運営しています。まずはアクセスしてみては!

Software Design

本誌最新号をチェック!
Software Design 2019年11月号

2019年10月18日発売
B5判/184ページ
定価(本体1,220円+税)

  • 第1特集
    ターミナルからクラウド管理自由自在
    Microsoft Azureで最新Webアプリ開発
    [Mac x bash][Windows x WSL 2][Visual Studio Code][Windows Terminal]
  • 第2特集
    環境構築から使い方まで実践指導!
    脆弱性スキャナVuls/Trivy/Dockle
    OSSを公開したら人生が変わった3人の開発者
  • 短期集中連載
    Webエンジニアのための時短スマホアプリ開発
    【1】アプリ開発を継続するためにReact Native+Expoをお勧めするわけ

著者プロフィール

大塚和彦(おおつかかずひこ)

リックソフト株式会社

マーケティング/ソリューション営業を担当。

システム構築,プロジェクト管理が好きな営業!? 新しい技術・知識に出会い・習得するのが何より楽しい!

好きなモノは「注文書」。