はじめに
連載「業務を改善する情報共有の仕掛け 」の第11回 と第12回 では、Alfrescoによる「業務自動化プラットフォーム」についてお話をしました。Alfresco Content Service Version 6から、Docker、Kubernetesに対応することになり、コンテナ技術を使った自動デプロイは、すでに身近に感じています。
早期リリースが注目される中で、ソフトウェアの品質やセキュリティ面への対応も重要になってきたと感じます。海外ではDevOpsからDevSecOpsに移行しているチームが増加しており、日本においても注目が集まっています。DevOpsについては、「 業務を改善する情報共有の仕掛け」の第1回 でお話をしましたので、これまでの連載を受けつつ、新タイトルで気持ちも新たに安全性・安定性を加えた開発サイクルについて考えていきます。今回は「DevSecOps」を中心にお話をします。
DevSecOpsとは
DevSecOpsとは、その言葉どおり、ソフトウェアもしくはITサービスの開発から運用をするためのDevOpsプロセスにセキュリティ対策を組み込んだものです。ひと口にセキュリティ対策と言っても、図1 のように、その範囲は広範囲におよびます。
図1 DevSecOpsサイクルの概要
DevSecOps実現に必要な要件
DevSecOps実現に必要な要件は、いくつかありますが、ここでは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位の証
日本だけでなく、アジア圏でもアトラシアン製品販売のトップエキスパートであるリックソフトのWebサイトでは、各アトラシアン製品の体験版を提供しているほか、アトラシアン製品専用のコミュニティも運営しています。まずはアクセスしてみては!
第1特集
MySQL アプリ開発者の必修5科目
不意なトラブルに困らないためのRDB基礎知識
第2特集
「知りたい」「使いたい」「発信したい」をかなえる
OSSソースコードリーディングのススメ
特別企画
企業のシステムを支えるOSとエコシステムの全貌
[特別企画]Red Hat Enterprise Linux 9最新ガイド
短期連載
今さら聞けないSSH
[前編]リモートログインとコマンドの実行
短期連載
MySQLで学ぶ文字コード
[最終回]文字コードのハマりどころTips集
短期連載
新生「Ansible」徹底解説
[4]Playbookの実行環境(基礎編)