DevOpsとSecは同じ夢を見るか?:セキュリティ・アディッショナルタイム(5)(2/2 ページ)
米国で開催されたRSA Conference 2016では、開発・運用とセキュリティ担当者の距離を縮め、「セキュアでビジネスニーズに合ったサービスを素早く提供する」という共通の目的を達成するためのキーワード「DevSecOps」に関連するセッションが多数行われた。
「クロスサイトスクリプティングをほんの数分で修正」——PayPalの事例
そんなDevSecOpsに取り組んだ実例を、PayPalのSenior Security Strategist、ラクシ・ラガバン(Laksh Raghavan氏)は「Agile Security—Field of Dreams」と題するセッションの中で紹介し、「アジャイルとセキュリティは両立できる。そして、開発ライフサイクルの中でリスクを削減していくことができる」と述べた。
PayPalはそれまで、自社内で定めたセキュアプロダクトライフサイクル(SLPC)に基づいて、プロダクトのセキュリティ確保に取り組んでいた。だが、そのプロセスは50以上に分かれており、中には人が介在せざるを得ないステップもある。ドキュメント作成も人力に頼る部分があり、「非常に煩雑で非効率的だった」(ラガバン氏)という。
こうした状況でPayPal全体の方針として「アジャイル」を推進することになり、「Secure by Design」という原則を維持しつつ、開発スタイルへの転換を図ることになった。
異なる国や地域に存在する複数のチームが、複数の製品を、異なる開発言語やフレームワークを用いて開発している状況の中で、ウオーターフォール式からアジャイル式へ文化を変えるというチャレンジに取り組んだ同社だが、「すぐにそのメリットを実感した。例えば、クロスサイトスクリプティングが報告されれば、数日、数時間と待つことなく、ほんの数分で修正されるようになった」(ラガバン氏)
同社ではアジャイル開発とセキュリティを両立させるため、いくつかの工夫を凝らしたという。まず、アジャイル開発において描かれる「ユーザーストーリー」と同様に「セキュリティストーリー」を作成し、これら二つを対等に扱いながら機能に落とし込むことにした。
また、セキュアな開発フレームワークやツールを標準化し、極力属人性を排除して、ルーチンの中に自動的にセキュリティを組み入れるようにした。「セキュリティを自動化ルーチンに組み込むことによって、コードを書いてリリースするたびに、SQLインジェクションなどの脆弱性を含まない、セキュリティ面で正しいものが出力されるようにした。継続的インテグレーション/継続的デリバリやテスト自動化の中にセキュリティを組み込むというアプローチに取り組んだ」(ラガバン氏)。出力されたテスト結果やログは、アジャイル開発管理ツール側でトラッキングするとともに、セキュリティストーリーにも反映されるようにした。
加えて、「製品開発チームに対して透過的な仕組みを整えた」(同氏)ことも実現のポイントだ。ツールを活用し、自動かつデフォルトでセキュリティを実装することにより、開発者が新たにセキュリティに関して学習し直さなくてもよい仕組みを整えた。さらに、開発者に徐々に慣れてもらうため、最初はセキュリティ上の問題を「警告」するだけにとどめ、徐々に強制的にセキュリティコントロールを組み入れるようにしていったという。
また、各プロダクトチームに「セキュリティチャンピオン」と呼ばれる、セキュリティ上の問題をチェックし、レポートする役割を担う担当者を置いた。このセキュリティチャンピオンは、「文化を変えていく牽引役になってもらった」(同氏)という。
一連の取り組みを通じて、「セキュリティ要件をどの程度満たせているか、計測可能な形で示せるようになった。加えて、以前よりも安全なフレームワーク上で開発を進められるようになり、セキュリティバグの修正に関するSLAも向上した」とラガバン氏は振り返り、開発チーム側からも好意的なフィードバックを得られたと説明した。
「非難しない」文化もポイント
DevSecOpsのメリットの一つは、これまでなかなか数値化したり、具体的に示したりすることが難しかったセキュリティ品質の向上を「可視化」できることだ。先のPayPalの事例でも、テスト自動化プロセスの中にセキュリティを組み込み、その結果をメトリクス化してモニターすることによって、何がどの程度改善されたかを「可視化」できるとしていた。
「セキュリティ専門家と同じように、開発者から無視されがちなリリースエンジニア」の立場からプレゼンテーションを行ったJ・ポール・リード(J. Paul Reed)氏は、「一日に何度もコードをリリースしていく継続的デリバリは可視性を高めてくれる。リリースエンジニアだけでなく、セキュリティ専門家にとっても有用だろう」と述べている。
もう一つ印象的だったのは、リーツ氏のプレゼンテーションで触れられた「責めない文化」という言葉だ。開発者も運用者もセキュリティ担当者も、皆がチームの一員であり、責任を持つことは重要だ。だが一方で「ミスはどうしても起こるもの。その結果をフィードバックし、共有する『非難しない文化』を持つことによって、より高い改善効果が得られる」と同氏は述べ、ぜひDevとOps、セキュリティのプロフェッショナルが協力してほしいと呼び掛けた。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- RSA Conference 2016に見る「可視化」「検出」「対応」を支援する製品たち
RSA Conference 2016の会場では、侵害は起こり得るものだという前提に立ち、システム内部に入り込んだ脅威をいち早く見つけ出し、速やかに対処することで、被害を最小限に抑えることを目指した製品が多数紹介された。 - iPhone問題で再び繰り返される「自由」と「安全」の対立
キーエスクロー制度や暗号技術の輸出規制といった形で繰り返されてきた「自由」と「安全」をめぐる対立が、iPhoneを巡るアップルとFBIの対立によって再び浮上している。25周年を迎える「RSA Confrence 2016」の基調講演でもこの問題が言及された。 - なぜDevOpsは正しく理解されてこなかったのか?〜ベンダーキーパーソンが徹底討論〜(前編)
- なぜDevOpsは正しく理解されてこなかったのか?〜ベンダーキーパーソンが徹底討論〜(後編)