近年、アジャイル開発手法の採用が急速に増加しています。その背景には、エンドユーザの要求が不確実で多様化していること、そしてその変化に迅速に対応する必要性が高まっていることが挙げられます。このような状況下で、開発スピードを維持しつつもセキュリティを確保するための手法として、DevSecOpsが注目されています。
DevSecOpsは、開発(Development)、運用(Operations)、そしてセキュリティ(Security)を統合したアプローチであり、セキュリティをソフトウェア開発ライフサイクルの全体にわたって組み込むことを目指しています。これを実現するためには、開発の各フェーズでセキュリティ対策を講じるだけでなく、全体を見渡し、統合的にセキュリティを管理することが不可欠です。
本ブログでは、DevSecOpsのサイクルにおいて抑えるべきポイントについて解説し、同時に、”Sec”をリードする人材である「セキュリティチャンピオン」の重要性を紹介します。セキュリティチャンピオンは重要な人材である一方で、求められる活動内容は多岐にわたり、難易度も高いことから、適切な人材の創出は一朝一夕では難しいという特徴もあります。
この課題への向き合い方も紹介しながら、開発運用チームの実情に寄り添うためにNRIセキュアで継続的な開発をしている、セキュアな開発運用を一貫して支援するサービスについても最後に紹介します。
DevOpsのアジリティを損なわないセキュリティの導入
これまでのソフトウェア開発では、V字モデルが一般的に採用されてきました。V字モデルは、要件定義から設計、実装、テスト、リリースまでの各フェーズが順次進行する手法です。しかし、近年ではエンドユーザの要求が多様化し、変化のスピードも速いため、より柔軟で迅速な対応が求められるようになりました。そこで登場したのがDevOpsです。
DevOpsとは、開発(Development)と運用(Operations)が一つのチームとして協力し、継続的に開発と運用を行うための手法です。DevOpsの成熟度は各サービスやプロダクトの特性に合わせて検討され、一概に「これができたらDevOpsが実践できている」という明確な要件は存在しません。しかし、抽象化するとDevOpsをDevOpsたらしめる要素が見えてきます。
この要素は、技術、プロセス、文化の3つに分類されます。
技術面では、例えば、自動化ツールや構成管理ツール、モニタリングツール、コミュニケーションツールの導入などを行い要求の変化に柔軟に対応できる開発の実現が挙げられます。
プロセス面では、例えばアジャイル、カンバン、リーン、CI/CD、フィードバックループなどを整え、各プロセスが迅速に滞りなく進む状況の整備が挙げられます。
文化面では、例えばアジャイルソフトウェア開発宣言やDevOpsの原則(尊重、信頼、失敗に前向きな姿勢、非難をしない)などの考えの元で、開発と運用とでチームに隔たりのない体制の構築が考えられます。
このDevOpsにセキュリティの技術、プロセス、文化を取り込んだアプローチがDevSecOpsです。
DevSecOpsではセキュリティを開発プロセスの初期段階から組み込むことで、セキュリティに関する活動によりDevOpsのプロセスが妨害されることを避け、アジリティの高い状態を維持しながらセキュリティ施策を浸透させることが可能になります。
関連ブログはこちらです。
日本でDevSecOpsが進まない理由|必要なのは「失敗を許容する文化」
DevSecOpsにおけるセキュリティ要素
DevSecOpsの”Sec”を形作る要素は、主に「ShiftLeft」「SecOps Integration」「開発基盤のセキュリティ」「セキュリティチャンピオン」の4つが挙げられます(「セキュリティチャンピオン」はセキュリティリーダとも呼ばれますが、今回は後ほど紹介するOWASPでの呼称に合わせます)。
ShiftLeft
1つ目の「ShiftLeft」は、システム開発ライフサイクルにおいて、早い段階で頻繁に評価やテストを行い望ましいセキュリティ対策の考慮や脆弱性の発見を行うことで、コストやスケジュールへの影響を最小限にする取り組みです。
従来のセキュリティ対策のアプローチでは、テストフェーズの段階で脆弱性診断を行い、発見された脆弱性に対応することが多いですが、診断結果によっては多大な手戻りコストの可能性や、リリーススケジュールへの致命的な影響の可能性があります。
「ShiftLeft」では、対応するコストやスケジュールへの影響のより小さい設計フェーズから脅威モデリングやセキュリティ設計評価などを行い、実装時もツールによるテストを組み込むことでプロジェクトへの影響を抑えます。
手戻りによる開発遅延を回避し開発スピードを維持するためにも、「ShiftLeft」での早期のセキュリティ対策はDevSecOpsにおいて重要です。
早期にセキュリティ施策を実施していくShiftLeft
SecOps Integration
2つ目の「SecOps Integration」は、セキュリティに関する監視も運用に組み込む取り組みです。
従来では、サービス運用とセキュリティ運用はその専門性から別々の枠組みで運用されてくるケースが多かったものを、監視・運用の仕組みの中にセキュリティ観点として取り込むことで、シームレスなエスカレーションパスの構築などを行います。
「SecOps Integration」によるサイクル内でのセキュリティ対策を実現することは、1チームでDevSecOpsのサイクルを回すうえで重要な要素となります。
運用にセキュリティ施策も入れ込むSecOps Integration
開発基盤のセキュリティ
3つ目の「開発基盤のセキュリティ」は、DevSecOpsにおける開発プロセス上で、システムに対して開発基盤から不正や攻撃が達成されないよう、情報保護やアクセス管理をはじめとするセキュリティ対策を行い、開発プロセスを保護する取り組みです。
開発で必要となるCI/CDパイプラインやコミュニケーションツール、開発や検証で使用される環境など、開発プロセスの構成要素を適切な保護を行います。
DevSecOpsはDEVとOPSのサイクルを継続的に回していく性質上、開発基盤への依存度も高く、攻撃者が本番環境の侵害を狙い開発基盤を攻撃することも考えられます。
「開発基盤のセキュリティ」は、DevSecOpsとそこで運用されているシステムをセキュアにするうえで必要不可欠な要素となります。
セキュアな開発運用に考慮が必要となる開発基盤のセキュリティ
セキュリティチャンピオン
4つ目の「セキュリティチャンピオン」は、DevSecOpsのセキュリティを牽引する人材をチーム内に配置する取り組みです。
DevSecOpsでは、フェーズ毎に実施するセキュリティ施策がありますが、セキュリティチャンピオンはそれらのリードを行うことで、従来のセキュリティ管理部門によるセキュリティ対応ではなく、DevSecOpsのチーム内でのセキュリティ対応の推進を実現します。
このチームの中でセキュリティに関する活動を進め、同時にチーム外のキーパーソンともセキュリティ面で協調する性質から、「セキュリティチャンピオン」はDevSecOpsに必要な人材となります。
チーム全体のセキュリティ牽引役としてのセキュリティチャンピオン
この、4つの要素の中の「セキュリティチャンピオン」は、DevSecOpsのチームの中におけるセキュリティの専門家であり、”Sec”を牽引する上で欠かせない人材ですが、その存在意義は理解しているものの現実的にはそのような人材をアサインできないという状況もよく見られます。
以下のブログもご参照ください。
デジタル時代の開発サイクル「DevSecOps」|迅速な開発とセキュリティの融合
セキュリティチャンピオンの創出に関する課題と戦略
DevSecOpsを牽引するセキュリティチャンピオンの創出は、DevSecOpsにとどまらず、組織のセキュリティ文化を強化するためでも重要なポイントです。しかし、その実現にはセキュリティ独特の課題が伴います。
まず、セキュリティの優先度が低く設定されやすいという点が挙げられます。多くのケースで、サービスの価値提供に直結する要素が優先され、サービス価値に直接的には寄与しないセキュリティ対策や戦略は後回しにされがちです。よく言えば臨機応変に、悪く言えば場当たり的に“有識者”が対応するという状況は往々にしてあります。
また、組織にセキュリティチャンピオンの役割の定義がなく、ポジションの存在がない、人材としてどのような者がその役割につくべきか判断することが難しいという状況も見受けられます。
これらの課題の解決策として人材育成が挙がりますが、セキュリティチャンピオンの育成には多くの時間とリソースが必要となります。
役割を定義し、適切な候補者を見つけられ、DevSecOpsの活動をスタートできたとしても、セキュリティチャンピオンに必要なスキルと知識を、開発・運用しているサービスの発展や脅威の動向、DevSecOpsの成熟にあわせて拡張し持続的な活動に落とし込むためには、継続的なトレーニングやサポートが不可欠となります。
いざセキュリティチャンピオンを設置しようとし課題に対峙した時、何にどこから手を付け、どのような方向性で推進し、どのように継続的に活動するか、指針がないと道に迷ってしまいます。その道標が、ソフトウェア開発のセキュリティに関するコミュニティのOWASP(Open Web Application Security Project)によりまとめられています。
OWASPではセキュリティチャンピオンの創出について、OWASP Security Champions Playbookという形で実践ステップを示し、OWASP Security Champions Guideという形でその活動を成功させるための原則をまとめています。[i]
この中で、セキュリティチャンピオンの創出の流れは「①チームの識別」「②ロールの定義」「③セキュリティチャンピオンの選出」「④コミュニケーションチャネルの構築」「⑤ナレッジベースの構築」「⑥興味の維持」の6つのステップでまとめられています。
Security Champion創出の6つのステップ
①チームの識別
まず初めの「①チームの識別」では、チームの現状把握からスタートします。現在位置を知ることで進む方向を定めることができます。この活動で、関係するチームや関係者であるメンバー、使用している技術や開発運用で使用しているツールやサービス、リリースの状況など、チームの状況を明らかにします。
②ロールの定義
続く「②ロールの定義」では、把握した現状を分析し、具体的なセキュリティ目標を設定し、これから任命するセキュリティチャンピオンの役割を決定します。
この活動で、チーム内のセキュリティレビューや脅威モデリングの実施、その結果の検証、プロダクトのコードに存在するリスクの発見や提起の実施、脆弱性情報の収集とプロダクトへの反映など、セキュリティチャンピオンがリードするセキュリティ活動における役割を定義します。
③セキュリティチャンピオンの選出
そして、「③セキュリティチャンピオンの選出」のステップで、決めた役割にあわせてセキュリティチャンピオンを選定します。セキュリティチャンピオンは推薦する形で候補者を見つけ、選定の際は候補者と面接を行います。
その際に、セキュリティチャンピオンのメリットなどを伝え、本人の意思も尊重することが大切です。セキュリティチャンピオンに選ばれた担当者は、業務割合を20%程度からスタートし徐々に拡大させていくと良いです。
④コミュニケーションチャネルの構築
「④コミュニケーションチャネルの構築」は、セキュリティチャンピオンがチーム内でのコミュニケーションのほか、社内の関係者との協調や外部のセキュリティ専門家との協力のための情報共有チャネルを用意するステップです。
この中で連絡手段の他に、1on1などセキュリティチャンピオンが自身の課題や情報共有のしやすいコミュニケーション手法も考えます。
⑤ナレッジベースの構築
「⑤ナレッジベースの構築」では、ノウハウや標準的なルールの共有を行うためのナレッジベースを作成します。全社的に整備されている仕組みがあれば、それを利用すると良いでしょう。
この中で、暗号化に関するルールやWebアプリケーションのセキュリティ標準、採用するフレームワークのセキュリティの取り決めなど、共通して利用されそうなものも議論し作成してきます。また、トレーニングプログラムの計画も有益で、基礎レベルでは広範なトピックを網羅し、発展的なレベルにいくにつれ個別のトピックを深堀するような構成にすると効果的です。
⑥興味の維持
最後の「⑥興味の維持」では、セキュリティチャンピオン自身やチームの内外での活動でセキュリティのスキルアップやセキュリティ風土の醸成を行います。
組織はセキュリティチャンピオンがカンファレンスや研修などに出席することを後押しするなどキャリアの持続的な発展を促し、セキュリティチャンピオンはチーム内外でのワークショップの開催やセキュリティニュースの共有など、セキュリティの意識向上を行い、組織全体のセキュリティに対するモチベーションを高めます。
また、セキュリティ目標の設定を行い、セキュリティチャンピオンによって達成された目標を明確化や成熟度の測定も効果的です。
これら6つのステップを通して、セキュリティチャンピオンがチームや組織のセキュリティの向上に寄与しリードする環境が生まれ、組織全体でセキュリティ文化が根付いていきます。
SEC Team Servicesのご紹介
このように、セキュリティチャンピオンはセキュアな開発運用におけるキーパーソンである一方、求められる知識やスキルから一朝一夕で創出することが難しい人材でもあります。
この状況に対して、これまでNRIセキュアでは、お客様内でのセキュリティチャンピオン相当の役割を担うご支援も行ってきたことから、開発運用全体のセキュリティの専門家として伴走が求められているご要望に対してワンストップでご支援させて頂けるよう、SEC Team Servicesというサービスを開発しました。
SEC Team ServicesではDevSecOpsのプロセス全体(開発工程・運用工程・全般)に対してよろず相談や評価・診断、脆弱性運用支援、プロセス策定、開発基盤構築、ガイドライン作成などのメニューを内包し、お客様のDevSecOpsの一通りを支援できる体制を敷き、オンライン常駐形式で伴走するサービスとなっています。
お客様の開発運用の現場に内部から継続的にご支援させていただくことで、セキュリティチャンピオン相当の役割も担えるような作りになっています。
この伴走型のSEC Team Servicesの他にも、NRIセキュアでは、セキュリティを意識した組織体制や開発プロセスの設計、開発基盤の構築を個別にご支援させて頂くDevSecOps実行支援サービスも提供しており、お客様のニーズにあわせたご支援が可能です。
詳細は以下のサービスページをご参照ください。
SEC Team ServicesDevSecOps実行支援サービス
基礎的な内容を網羅した研修プログラム セキュアEggs 応用編 (DevSecOpsコース)
[i] https://owasp.org/www-project-security-culture/stable/4-Security_Champions/