セキュリティTweetDevSecOpsは自動化進めたセキュアな開発サイクルセキュリティという意識は、生活のあらゆるシーンで高まり続けています。プライベートでも、SNSに投稿する情報に注意を払ったりあやしいサイトに個人情報を抜かれたりしないように気をつけている人は多いでしょう。ビジネスにおいては、セキュリティ意識の甘さから情報漏洩や流出事件を起こす社員もおり、そうした報道がされるたびに企業の危機管理システムやセキュリティシステムの重要性について議論されます。Webアプリケーションの開発においても、開発中からセキュリティ対策を取り入れ、安全でリスクの少ない開発環境にすることが奨励されるようになりました。今回は、セキュリティを組み込んだ開発サイクル「DevSecOps」について、基本から、「DevSecOps」に関係するガートナーのセキュリティにおける重要アジェンダ、米国における事例まで広くご紹介します。続きを読む【目次】DevSecOpsとはDevSecOpsの背景:ガートナーの重要アジェンダDevSecOps事例:米国公的機関のDevSecOps活用DevSecOpsのために導入したいツールとはDevSecOpsとはDevSecOpsは、DevOpsにセキュリティ要素をプラスしようという考え方です。運用(Operations)を合わせたワードで、読み方は「デブオプス」です。それに安全保障、つまりセキュリティ(Security)を取り入れようというのが、今回解説するDevSecOpsの概念になります。開発チームと運用チームが分かれているとどうしても発生してしまうコミュニケーション不足や、情報共有のタイムラグ。解消するためにはビルドやテスト、リリースといった工程をなるべく自動化する、チーム同士がシームレスに連携をとれる環境を整えるといったことが必要になってきます。開発チームと運用チームが一体となってアプリケーションのリリースをスピーディにおこなっていこうという考え方が、DevOpsです。そこにセキュリティをプラスして、安全性を担保しつつスピーディにアプリケーションをリリースしていこうというのがDevSecOpsの考え方です。2018.03.08DevOpsとは?効果的に実践するために必要な知識とツール(※2019年1月追記)システム開発の現場には大きく分けて開発者と運用者がいます。ソースコードを書くなどする開発者とそのソースコードを本番環境に適用する運用者はチームは同じものの、行う業務は異なります。自動化DevSecOpsは、セキュリティ対策に関連する部分をなるべく自動的な形で組み込むことが重要とされています。開発に携わる人の負担にならないようにセキュリティ対策を組み込むことで、アプリケーション開発のスピードを落とすことなく進められるようになるでしょう。シフトレフト対応DevSecOpsとともに聞かれるようになったキーワードが「シフトレフト」です。これは「前段階」という意味で、欠陥が見つかった場合に、欠陥のある工程の前段階に戻って対処するやり方をいいます。ソフトウェアやアプリケーションを開発する時、しばしば初期段階において潜在的な欠陥が見つかることがあります。これを後の工程で修正しようとすると、後になればなるほどコストがふくらむことになり、最終的に数百倍もコストが跳ね上がっていくことが知られています。後手だった欠陥修正をシフトレフト対応、つまり前の段階にさかのぼっておこなうことによって無駄なコストをおさえつつ、効率化をはかることが重要です。追跡と共有いうまでもなく、開発チームと運用チームがタイムラグなしに情報を共有することは重要です。セキュリティインシデントが起こった時のための対策として、ログを残すなどして経緯を追跡できるようにしておくことが求められます。これは、問題の解決の糸口として有効なだけでなく、監査が入った時にも対応のキーとなり得るものです。ちなみに、セキュリティインシデントとは情報システム運用においてセキュリティ上の脅威となる事象のことですが、単にインシデントと略されることもあります。ジャパン株式会社が2018年7月に発表した「日本におけるセキュリティの重要アジェンダ」にあります。IT分野を中心とした調査や助言をおこなうガートナーは、アメリカコネチカット州に本社をおく調査・アドバイザリ企業です。ガートナーは、2017〜2018年に日本で起こったクラウドにおける情報漏洩や、仮想通貨の流出事件などを指摘し、日本が取り組むべきセキュリティの重要アジェンダを次のように挙げました。項目ごとにみていきましょう。1、サプライチェーンのセキュリティセキュリティを考える時、海外拠点およびサプライチェーンのどこまでを守るのかというのは悩ましい問題です。理想はすべての拠点において完璧にセキュリティを担保すべきですが、現実的ではありません。セキュリティインシデントが発生した際は本社に説明責任が発生するため、対処法やインシデント発生時のマニュアルは用意しておかなければならないでしょう。2、脆弱性マネジメント脆弱性に対する攻撃は、もっとも警戒しなければならない攻撃のひとつです。発生したそばからパッチを適用していくのが理想ですが、膨大な量の脆弱性情報を逐一チェックして手動で管理し続けることはできません。現実問題として、脆弱性を攻撃されないようにするためには発生しうるリスクを可視化することと脆弱性の優先順位を判断できる自動化が必要になります。経験価値)向上を目指すものです。イニシャルをとって、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の脆弱性によって重大なインシデントが発生するケースも珍しくないからです。Softwareは、2017年6月、1つのアプリケーションの67%にOSS由来の脆弱性が存在するというデータを公表しました。OSSはその性質上、誰もが脆弱性を把握し悪意をもって攻撃することができてしまいます。DevSecOpsの普及促進がなされれば、今まで不透明だったOSSの使用状況を明らかにし、開発の早い段階から脆弱性に対してアプローチができるようになるでしょう。まとめDevSecOpsは、セキュリティを担保しつつも、技術革新のスピードに遅れることなくアプリケーションを開発、リリースするための開発サイクルです。開発のスピードを落とさずにセキュリティ対策をおこなうことによって、加速し続けるデジタル時代にも高品質のアプリケーションを効率よくリリースしていくことができます。