In this article
セキュリティチャンピオンの概要
組織に合ったセキュリティチャンピオンプログラムの構築
セキュリティチャンピオンとは?
セキュリティチャンピオンとは、エンジニアリングチームを正式に代表する開発者です。セキュリティチームと直接連携し、開発とセキュリティの隔たりを埋める責任を担います。具体的な役割として、セキュアな開発についてエンジニアリングチームを教育すること、開発者のワークフローにセキュリティチェックを追加・改善すること、チームの意思決定にセキュリティが考慮されていない場合に問題提起すること、自身が所属する開発チームの取り組みや状況をセキュリティチームに共有することなどが挙げられます。これらに限らず、さまざまな役割を果たします。
セキュリティチャンピオンプログラムとは?
セキュリティチャンピオンプログラムは、セキュリティチームと開発チームの隔たりを埋めます。どちらのチームも、ビジネスが求めるスピードで安全なアプリケーションを提供したいと考えています。しかし従来は、開発チーム全体に知識や実践方法を広げることなく、SDLCにセキュリティ対策を組み込んでいました。その結果、自動または手動のセキュリティゲートが生まれ、開発者の手戻りや不満を招き、製品提供全体の遅れにつながっていました。
実際には、ソフトウェアを迅速かつ安全に提供し続けるために、セキュリティチームの深い専門知識と、開発組織の幅広い知見や実践方法を組み合わせる必要があります。セキュリティチャンピオンは、このニーズを満たす理想的な存在です。2つのチーム間のコミュニケーション、知識共有、連携を促す効果的な仕組みとして機能します。
セキュリティチャンピオンとは、セキュリティに関心を持つ開発者であり、開発チームに所属する人材です。従来はサイロ化されていた開発チームとセキュリティチームをつなぐ役割を担います。こうしたプログラムによって、あらゆる組織が得られるメリットをいくつか見ていきましょう。
セキュリティチャンピオンプログラムを始める主なメリット
チームによって、セキュリティチャンピオンプログラムに期待する動機やメリットは異なります。前述のとおり、開発チームとセキュリティチームには、担当するアプリケーションの問題や全体的なリスクを低減するという共通の目標があります。開発チームはこのプログラムを教育や助言の場として活用でき、セキュリティチームは可視性の向上、働きかけの強化、取り組みの拡大というメリットを得られます。
セキュリティチャンピオンプログラムを導入したいと考える理由として、チームからよく挙げられる上位4つをご紹介します。
開発チーム内に、チーム全体のトレーニングや教育を担う中心的な人材を置く。開発チームの自立性と主体性を高めるには、知識と理解が欠かせません。セキュリティに関しては、セキュアな開発手法が開発チーム全体に認識され、理解されていることが重要です。エンジニアがほかのエンジニアに教える方法は、知識や理解を広げるうえで非常に効果的です。
組織内でセキュリティチームを非線形に拡大する。エンジニアが100人いる組織に、運用系の役割を担う人が10人、全員を支援するセキュリティ担当者が1人というのはよくあることです。セキュアな開発を拡大するには、セキュリティチームが開発者を支援し、力を引き出すことで、エンジニアリング組織全体に広げていくしかありません。
より優れた、幅広いスキルを持つ開発者になる(キャリアアップにつながる可能性も)。もともとセキュリティに関心がある開発者の多くは、セキュリティに関する知識や実践方法をさらに学び、スキルを高めたいと考えています。セキュリティ分野でのキャリアにつながる人もいます。
開発サイクルの早い段階からセキュリティの影響力を高め、後付けではなく最初から組み込む。開発者が苦労する原因としてよくあるのが、機能のリリース直前や開発サイクルの終盤までセキュリティ対策が後回しにされることです。開発サイクルの最後にセキュリティ対策を追加すると、十分に検討して進める場合に比べ、負担が大きく時間もかかります。設計を含む各フェーズで、セキュリティを考慮する必要があります。
独自のアプリケーションセキュリティチャンピオンプログラムの構築を支援するため、規模、成熟度、業種がさまざまな組織の実例をもとに、参考にできるベストプラクティスや、設計・構築・運営時に避けたい落とし穴をご紹介します。
セキュリティチャンピオンプログラムは開発者を中心に設計する
チームのニーズを考える際には、こうしたプログラムは通常セキュリティチームが運営・支援するものですが、開発者の目標、課題、ニーズを最優先することを忘れないでください。開発チームのニーズを優先しなければ、開発者の自発的な導入や参加は進まず、プログラムの効果は大きく損なわれます。
プログラムに何を期待するか、日々の業務で何に苦労しているか、役割にどのような価値を加えれば仕事をしやすくし、目標達成を支援できるかを、開発者に尋ねましょう。プログラムを通じて開発者やチームをどのように支援し、力を引き出せるかを考えることで、プログラムの運営者や管理者としてだけでなく、参加者の視点からも価値を捉えられます。
セキュリティチャンピオンプログラムとセキュリティコミュニティは、区別することが重要です。セキュリティコミュニティは、セキュリティに関心のある人が知識を共有し、学び、深める場です。一方、セキュリティチャンピオンプログラムは、組織の承認のもとでセキュリティの実践を広げ、開発組織に組み込むための仕組みです。
セキュリティチャンピオンプログラムには経営層の支援が必要
プログラムを始める際に避けたい落とし穴の一つは、セキュリティ部門とエンジニアリング部門の両方から経営層の支援を得ずに、セキュリティチャンピオンプログラムを展開・運営することです。経営層の支援があれば、担当者はプログラムやその活動が重要視され、管理職にも認められていると理解したうえで、時間を充てることができます。
セキュリティ部門側の経営層のスポンサーは、通常CISO、セキュリティ担当VP、またはプロダクトセキュリティ担当ディレクターです。エンジニアリング部門側では、CTOやエンジニアリング担当SVPが一般的です。これは企業の組織構造によって異なります。重要なのは、両部門がプログラムに合意し、その方針をチーム、スクラムマスター、管理職などに伝えることです。
話し合いによると、このスポンサーシップに合意するタイミングはさまざまでしたが、最も効果的なのは、開始時、または少数のチームで小規模なパイロットを実施した後でした。プログラムが解決しようとしている課題に加え、必要となる活動や責任を明確に伝えることが重要です。チャンピオンに求めるセキュリティ活動の時間を明示する場合は、必要な時間も含めて伝えましょう。
経営層の支援に加えて現場の管理職の理解があれば、チャンピオンは安心してほかの業務の一部を減らし、セキュリティ業務に取り組めます。たとえば、職務評価で責任範囲を変更したことを理由に不利益を受けることはないとわかっているからです。