Eビジネスを推進するORANGEシリーズ

EC-ORANGE
お役立ち資料ダウンロード ニュースレター登録

DevSecOpsは自動化進めたセキュアな開発サイクル

セキュリティという意識は、生活のあらゆるシーンで高まり続けています。
プライベートでも、SNSに投稿する情報に注意を払ったりあやしいサイトに個人情報を抜かれたりしないように気をつけている人は多いでしょう。
ビジネスにおいては、セキュリティ意識の甘さから情報漏洩や流出事件を起こす社員もおり、そうした報道がされるたびに企業の危機管理システムやセキュリティシステムの重要性について議論されます。
Webアプリケーションの開発においても、開発中からセキュリティ対策を取り入れ、安全でリスクの少ない開発環境にすることが奨励されるようになりました。

今回は、セキュリティを組み込んだ開発サイクル「DevSecOps」について、基本から、「DevSecOps」に関係するガートナーのセキュリティにおける重要アジェンダ、米国における事例まで広くご紹介します。
【目次】

DevSecOpsとは

DevSecOpsは、DevOpsにセキュリティ要素をプラスしようという考え方です。 DevOpsは開発(Development)と 運用(Operations)を合わせたワードで、読み方は「デブオプス」です。それに安全保障、つまりセキュリティ(Security)を取り入れようというのが、今回解説するDevSecOpsの概念になります。
開発チームと運用チームが分かれているとどうしても発生してしまうコミュニケーション不足や、情報共有のタイムラグ。解消するためにはビルドやテスト、リリースといった工程をなるべく自動化する、チーム同士がシームレスに連携をとれる環境を整えるといったことが必要になってきます。
開発チームと運用チームが一体となってアプリケーションのリリースをスピーディにおこなっていこうという考え方が、DevOpsです。そしてそこにセキュリティをプラスして、安全性を担保しつつスピーディにアプリケーションをリリースしていこうというのがDevSecOpsの考え方です。

DevSecOpsのポイント1. なるべく自動化

DevSecOpsは、セキュリティ対策に関連する部分をなるべく自動的な形で組み込むことが重要とされています。 開発に携わる人の負担にならないようにセキュリティ対策を組み込むことで、アプリケーション開発のスピードを落とすことなく進められるようになるでしょう。

DevSecOpsのポイント2. シフトレフト対応

DevSecOpsとともに聞かれるようになったキーワードが「シフトレフト」です。これは「前段階」という意味で、欠陥が見つかった場合に、欠陥のある工程の前段階に戻って対処するやり方をいいます。
ソフトウェアやアプリケーションを開発する時、しばしば初期段階において潜在的な欠陥が見つかることがあります。これを後の工程で修正しようとすると、後になればなるほどコストがふくらむことになり、最終的に数百倍もコストが跳ね上がっていくことが知られています。
後手だった欠陥修正をシフトレフト対応、つまり前の段階にさかのぼっておこなうことによって無駄なコストをおさえつつ、効率化をはかることが重要です。

DevSecOpsのポイント3. 追跡と共有

いうまでもなく、開発チームと運用チームがタイムラグなしに情報を共有することは重要です。さらにセキュリティインシデントが起こった時のための対策として、ログを残すなどして経緯を追跡できるようにしておくことが求められます。
これは、問題の解決の糸口として有効なだけでなく、監査が入った時にも対応のキーとなり得るものです。
ちなみに、セキュリティインシデントとは情報システム運用においてセキュリティ上の脅威となる事象のことですが、単にインシデントと略されることもあります。


DevSecOpsの背景:ガートナーの重要アジェンダ

そもそも、日本においてなぜDevSecOpsが求められるようになったのか、その答えはガートナー ジャパン株式会社が2018年7月に発表した「日本におけるセキュリティの重要アジェンダ」にあります。
IT分野を中心とした調査や助言をおこなうガートナーは、アメリカコネチカット州に本社をおく調査・アドバイザリ企業です。
ガートナーは、2017〜2018年に日本で起こったクラウドにおける情報漏洩や、仮想通貨の流出事件などを指摘し、日本が取り組むべきセキュリティの重要アジェンダを次のように挙げました。

  1. サプライチェーンのセキュリティ
  2. 脆弱性マネジメント
  3. デジタル・ワークプレイスのセキュリティ
  4. エンドポイントのセキュリティ
  5. クラウドのセキュリティ
  6. デジタルのセキュリティにおける先駆者の責任
項目ごとにみていきましょう。

1、サプライチェーンのセキュリティ

セキュリティを考える時、海外拠点およびサプライチェーンのどこまでを守るのかというのは悩ましい問題です。
理想はすべての拠点において完璧にセキュリティを担保すべきですが、現実的ではありません。
しかし、セキュリティインシデントが発生した際は本社に説明責任が発生するため、対処法やインシデント発生時のマニュアルは用意しておかなければならないでしょう。

2、脆弱性マネジメント

脆弱性に対する攻撃は、もっとも警戒しなければならない攻撃のひとつです。発生したそばからパッチを適用していくのが理想ですが、膨大な量の脆弱性情報を逐一チェックして手動で管理し続けることはできません。
現実問題として、脆弱性を攻撃されないようにするためには発生しうるリスクを可視化することと脆弱性の優先順位を判断できる自動化が必要になります。


3、デジタル・ワークプレイスのセキュリティ

デジタル・ワークプレイスは、企業文化とIT、オフィス空間などの物理的環境の3つの要素を組み合わせて従業員のEX(Emploee Experience 経験価値)向上を目指すものです。イニシャルをとって、DWPと略されることもあります。
働き方に対する価値観を変えることで、従業員の生産性や仕事のしやすさひいては企業の生産性を高めていこうというデジタル・ワークプレイス。このデジタルワークプレイスとセキュリティの関わりは、利便性とセキュリティの両立を目指すかたちが理想とされています。
しかし、実際にはセキュリティに万全を期すためには従業員に制限や禁止事項を課さなければならないケースが非常に多く、働く人の利便性と両立させるのはかんたんなことではありません。
ガートナーは、今後のセキュリティ対策は「人中心のセキュリティ」を構築する必要があると述べています。つまり、制限や禁止事項を課すのではなく、許可することをベースとしてセキュリティ構築をおこなうのが理想であり、今後求められるセキュリティ対策ということになります。

4、エンドポイントのセキュリティ

クライアント、パソコン、スマホといったエンドポイントのセキュリティは、デバイスの多様化や働き方の変革にともなってニーズが高まっています。 多様なエンドポイントをすべてカバーする万能薬としてのソリューションはありませんが、何らかの対策は講じなければなりません。
エンドポイント・セキュリティにおいては、その変化のスピードも加味する必要があり、安全を担保するためには戦略が必要になってきます。
価格や機能面だけに注目していては、デバイスが進化した時やクライアント企業の働き方が変革した時に対応しきれなくなるかもしれません。


5、クラウドのセキュリティ

クラウドにおいて、もっとも初歩的なセキュリティ・インシデントが発生しているのはサービスとしてIaaSを利用しているシーンです。設定時のケアレスミスによって引き起こされるものも多く、サービス提供元よりもユーザー側に原因があることの方が圧倒的に多い状況にあります。
クラウドサービスにはさまざまなものがあり、セキュリティレベルもそれぞれ違います。デジタル・ビジネスにおいてクラウドはもはやなくてはならない存在であり、今後はユーザーがセキュリティ意識をもち、セキュアを使いこなしていく必要があるでしょう。


6、デジタルのセキュリティにおける先駆者の責任

セキュリティの担保とビジネススピードを加速させることは、ともすると相反関係になってしまいます。
一般に、セキュリティを重視しすぎるとビジネススピードは停滞し、革新的な試みをくじいてしまう恐れがあります。

一方、ビジネススピードを優先するとセキュリティ面は軽視されがちです。セキュリティを軽視すれば脆弱性を突かれるなどの攻撃によってビジネスそのものがダメージを受け、ビジネスそのものが大打撃を受けるでしょう。

この両者のバランスにおける最適解は、企業やケースによってそれぞれ異なります。どの企業にも共通しているのは、行き当たりばったりでバランスをとるのではなく、開発と運用が現場レベルでの方針を共有して仕事に取り組む必要があるということです。
その場限りの決定や、短期的目標の積み重ねにとどまらず、時代に合わせたスピードとセキュリティの両立について方向性をしっかりもつことが重要になってくるでしょう。

DevSecOps事例:米国公的機関のDevSecOps活用

Webサービスやスタートアップ企業の専売特許としてみられがちなDevOps、DevSecOpsですが、米国では公的機関が取り組むという事例がみられています。
例えばVA(米退役軍人省)は、退役軍人向けのサービスをスピーディにアップデートするためにフィードバックグループを迅速に回したいと考え、結果としてDevSecOpsに取り組むことになりました。
DevSecOpsに取り組むことで、1日数回のデプロイやOSのアップデートが日常的という環境においても脆弱性に対して迅速な対応ができるようになったと発表されています。
移行が難しいアプリケーションについても、プロキシでの保護しながら数年単位で環境を移すことで、最低限のリスクで環境移行を成し遂げたそうです。

また、米移民局では、セキュリティを担保したままの組織改革という意味合いでDevSecOpsに取り組んだとされています。
自動化が進み、スピーディなアプリケーション開発が可能になっても、それにまつわる環境や手法が古いままではリリースする段階でかなりの遅れをとってしまいます。
それを解消する手段がDevSecOpsという考え方であり、スタートアップ企業のみならず、世界が注目している考え方です。

DevSecOpsのために導入したいツールとは

DevSecOpsにおいては、開発の各フェーズにおいてその時々に有効なツールを活用していくことが重要とされています。
はじめはSAST(静的解析ツール)、アプリケーションの稼働中にはDAST(動的解析ツール)、そして問題や脆弱性を見つけ出すためのインタラクティブ解析ツールの3つを開発サイクルの初期段階で投入していくのが有効です。
DevSecOpsはとにかく可能な限り自動化して自由度とスピードを保つことが重要であり、ツールやAIの活用によってそれは達成できるでしょう。

DevSecOpsとOSSの関係におけるリスクマネジメント

一方で、あらゆるツールやソフトウェアを使ってやみくもに自動化に突き進むのは危険だと警鐘を鳴らす声もあります。
それは、アプリケーション開発においてOSS(オープンソースソフトウェア)を多用するとライセンス違反をおかしてしまったり、脆弱性が増えてしまったりする可能性があるというもの。

OSSは、スピーディにアプリケションを開発したり新機能を実装したりするのに有効で、開発サイクルを短くするためによく使われています。
しかし、セキュリティの観点からみれば、OSSの使用状況を把握していない、あるいは充分な検討をせずにOSSを使ってしまっているのは好ましいとはいえません。開発アプリケーションそのものより、OSSの脆弱性によって重大なインシデントが発生するケースも珍しくないからです。

OSS管理ソリューションを提供している企業Black Duck Softwareは、2017年6月、1つのアプリケーションの67%にOSS由来の脆弱性が存在するというデータを公表しました。
OSSはその性質上、誰もが脆弱性を把握し悪意をもって攻撃することができてしまいます。 しかしDevSecOpsの普及促進がなされれば、今まで不透明だったOSSの使用状況を明らかにし、開発の早い段階から脆弱性に対してアプローチができるようになるでしょう。

まとめ

DevSecOpsは、セキュリティを担保しつつも、技術革新のスピードに遅れることなくアプリケーションを開発、リリースするための開発サイクルです。
開発のスピードを落とさずにセキュリティ対策をおこなうことによって、加速し続けるデジタル時代にも高品質のアプリケーションを効率よくリリースしていくことができます。

PR:ECサイト構築パッケージ「EC-ORANGE」