トレーニング

ソフトウェア開発者やアーキテクトは、元々はセキュリティに関する知識を持っていないことが多いため、ソフトウェア・セキュリティにおいて、トレーニングが重要な役割を果たします。

トレーニング・レベル1

[T1.1: 77] 意識向上トレーニングを実施している。

SSGは、組織全体にわたってソフトウェア・セキュリティの文化を促進するため、意識向上のためのトレーニングを実施します。トレーニングは、SSGメンバー、外部の業者、社内のトレーニング部門、eラーニングなどが提供します。コースの内容は、特定の受講者のためにカスタマイズされている必要はありません。たとえば、開発者、品質保証エンジニア、プロジェクト・マネージャー全員が、同じ「ソフトウェア・セキュリティ導入」コースを受講してもかまいません。このアクティビティは、企業文化に意識的に対応したコースにカスタマイズすることでさらに強化できます。基本的なITセキュリティを説明する汎用初心者用コースや、高度のソフトウェア・セキュリティの概念を説明するコースでは、十分な結果は望めません。同様に、開発者のみに意識向上トレーニングを提供し、組織内の他の役割に提供しないと、十分な結果は得られません。

[T1.5: 37] 役割に固有の上級者向けカリキュラムを提供している。

ソフトウェア・セキュリティ・トレーニングは、受講者の意識を向上させるだけでなく、受講者がセキュリティ・プラクティスを各業務に統合できるようになるという効果があります。トレーニングは、ツール、テクノロジー・スタック、開発メソドロジー、および受講者の職務に最も関係のある種類のバグを対象とし、受講者に合わせてカスタマイズします。たとえば、ある組織では、アーキテクト、Java開発者、モバイル開発者、テスター用の4つのコースを提供することが考えられます。多くの場合、特定のツールのためのトレーニングも、カリキュラムに組み込まれます。トレーニングは、QA、製品管理、上級幹部など、組織のさまざまな役割において重要です。

[T1.7: 46] 個人用のオンデマンド・トレーニングを提供する。

組織は、複数の役割にわたる個人向けのオンデマンド・トレーニングを提供することによって、トレーニングを提供するコストを削減し、受講者の負担を軽減できます。代表的な選択肢であるeラーニングは、登録制のプログラムを利用することにより情報を最新に維持できますが、オンライン・カリキュラムは、意図した目的を達成できるよう、興味深く、さまざまな役割の受講者に合った内容であることが必要です。利用されないまま放置されるようなトレーニングでは変化は生まれません。ポリシーに関する退屈な講義よりも、新しいIoTやクラウド・アーキテクチャ、あるいはゲーミフィケーションなどの新しいデリバリースタイルといった最新の話題の方が興味をひきます。開発者の場合は、必要なときにIDEを通して直接トレーニングを提供することも可能です。新しいスキル(コード・レビューや脅威モデリングなど)の学習には、講師による対面講義の方が適している場合もあり、講義をオンデマンドで提供することもできます。

トレーニング・レベル2

[T2.5: 27] トレーニングとイベントを使ってサテライトメンバーの能力を強化している。

SSGは、上級者向けトピック(DevOpsまたはAWSクラウド開発のための最新のソフトウェア・セキュリティ技法など)についてゲスト・スピーカーの講演を依頼したり、特別イベントを催したりすることにより、サテライト・ネットワークを強化できます。コーヒーや軽食を提供するのも一案です。この取り組みでは、サテライトメンバーをランチに招待したり、標準的なコンピュータベースのトレーニングに申し込ませるのではなく、特定の責任を果たすことができるようにするためにサテライト向けにカスタマイズされたトレーニングを実施します。この場合、自由参加の常設のカンファレンスコールでは望ましい結果は得らません。同僚意識の向上、知識の共有、または組織の効率性の向上を目的としているからです。年に1、2回しか開催されなくても、また、一部の参加者がテレビ会議で出席する必要があるとしても、実際に面談できる対面会議が現状では最も効果的な方法です。

[T2.6: 28] 新人研修にセキュリティに関するトレーニングが含まれている。

技術部門への新人研修プロセスで、ソフトウェア・セキュリティに関するトレーニング・モジュールを修了することが要求されます。一般的な新人研修では、通常、強力なパスワードの選択方法や、会社の建物に入る前に尾行されていないか確認する方法などが説明されますが、このオリエンテーション期間中にセキュリティ上安全なコーディングやSSDL、社内のセキュリティ・リソースなどについての説明を加えることでさらに強化できます。目的は、新人をセキュリティ文化に参加させることです。技術部門での離職率は一般的に低くありません。一般的な新人研修モジュールは有効ですが、適切なタイミングで行われる包括的な初心者向けソフトウェア・セキュリティ・コースを代替できるものではありません。

[T2.8: 28] 会社の過去の事例に合わせた教材を作成し、使用する。

行動の変化を効果的に促し、持続させるためには、会社の過去の事例に合わせた教材をトレーニングで使用する必要があります。現状に問題があることを受講者が自覚すれば、自分の職務に教材がどのように関連があるかを理解し、学習したことをいつ、どのように適用すればいいかが理解できます。これを達成できる方法としては、トレーニングのカリキュラムに、過去に発生した会社のソフトウェアに対する主な攻撃を例として使用することが挙げられます。開発者が使用していないプラットフォーム (Windows開発者は過去に起こったUnixの問題には興味を示しません)や、あまり一般的に使用されなくなった言語にのみ関連がある問題の例(Java開発者は、C言語のバッファー・オーバーフローについて理解する必要はありません)をトレーニングの対象にする必要はありません。会社の過去の事例は、現在でも業務に関連があり、情報が十分に公開されている場合でないとあまり効果がありません。攻撃の成功事例と失敗事例の両方が貴重な教材になります。

トレーニング・レベル3

[T3.1: 3] カリキュラムを通して、知識の向上を表彰する。

知識を得ること自体が報酬ですが、セキュリティ・カリキュラムを通して知識を深めることには、キャリアにとって有利になるなど、他のメリットもあります。表彰制度には、認定証や人事制度での業績評価などの公式のものと、年次査定時の表彰状などの、非公式の奨励制度があります。企業の教育部門や人事チームがかかわると、セキュリティがキャリア・アップに与える影響がより明確になりますが、SSGは、企業内のセキュリティ知識を監視し続け、完全な管理および監督権を維持する必要があります。コーヒーマグカップやTシャツで士気が高まる可能性もありますが、行動を変えることによって真のキャリアアップの可能性が開かれます。

[T3.2: 16] ベンダーや協力会社の従業員にトレーニングを提供している。

社員に提供されているものと同レベルのソフトウェア・セキュリティ・トレーニングをベンダーや協力会社の従業員に提供します。サプライヤーに対してセキュリティ教育を事前に行っておくほうが、後になって間違いの原因を追究するよりも、時間と工数がずっと少なくてすみます。これは、開発チームが別のプロジェクトに移ってしまった場合に特に当てはまります。協力会社全体にトレーニングを提供するより、協力会社の従業員に個別にトレーニングを提供する方が、無理がなく、導入しやすくなります。雇用形態に関係なく、企業のソフトウェアにかかわるすべての従業員に適切なレベルのトレーニングを提供することは重要です。

[T3.3: 15] ソフトウェア・セキュリティ・イベントを開催する。

外部のゲストやコンテンツを招待するセキュリティ・イベントを開催することにより、組織のセキュリティ文化を差別化要素として印象付けます。外部プレゼンターをフィーチャーし、開発チームのコード作成能力の向上を支援することに重点を置いているという点で、マイクロソフトのBlueHatやQUALCOMMのMobile Security Summitはこの良い例です。従業員には、特に急激に変化するテクノロジー分野に関する外部の視点を知るというメリットがあり、セキュリティ上の信用性を示すことで、組織全体にも利益があります([SM3.2 外部マーケティング・プログラムを実行している]を参照)。小規模な一部のグループのみに向けたイベントを開催しても、目的とする組織全体の文化の変化は得られません。

[T3.4: 14] 再教育コースを年1回受講することを従業員に求めている。

SSDLにかかわるすべての従業員には、ソフトウェア・セキュリティ再教育コースを年1回受講することが求められます。このコースを提供することにより、従業員にセキュリティに関する最新情報を提供することができ、配置転換、メソドロジーの進化、デプロイメント・モデルの変更により組織の収拾がつかなくなる事態を防ぐことができます。SSGは、半日ほどのコースで、セキュリティ環境に関する最新情報や、ポリシーや標準の変更事項に関して説明できます。再教育コースは、会社ぐるみの「セキュリティの日」に組み込んだり、社内セキュリティ・カンファレンスと同時に開催することも可能ですが、一度トレーニングを受けた受講者のみに対し有効です。

[T3.5: 5] SSGの運営時間が規定されている。

SSGは公表されている研究所の運営期間や、規定の運営時間中、すべての従業員にあらゆる支援を提供します。セキュリティ問題を解決する意欲のある非公式グループとして行動することで、SSGはアドバイスを与えられる機会を最大限活用し、報酬を強調してセキュリティのベストプラクティスを支援します。運営時間の例は、上級SSGメンバーのオフィスで週1午後などです。要望に応じて行う特定の製品およびアプリケーション・グループへの視察などの移動事務局による運営も可能です。その際、開発する主な機能とその機能がセキュリティに与える影響ごとに視察の優先順位を付けることが考えられます。

[T3.6: 1] トレーニングを通した新しいサテライトメンバーの特定。

トレーニング・コース、業務中、フラグ取得演習、ハッカソンなど、スキルと情熱を示す機会にセキュリティに強い関心を示した人に目星を付け、サテライトへの参加を勧誘して、将来のサテライトメンバー(推進リーダー)をリクルートします。サテライトは、多くの場合、平均以上のレベルのセキュリティに関する関心または技能、あるいは新しいテクノロジー・スタックおよび開発メソドロジーの高度な知識を持つ、組織全体に分散した選ばれた従業員の集まりから形成されます([SM2.3 サテライトの作成または拡大]を参照)。将来のメンバーを積極的に特定することが、ソフトウェア開発へのセキュリティの導入と運用を高速化するソーシャル・ネットワークの構築につながります。一般的に、強制的に参加させたグループよりも、情熱とスキルを持って自発的に参加したグループの方が有力なメンバーになります。