4.1

View in English

4.1 セキュリティの基礎と文化

概要と動機

セキュリティは、最後にボルトで留める機能ではなく、エンジニアリングから離れて座る一つの専門チームの仕事でもありません。大きな組織では、セキュリティはシステム全体がどう設計され、構築され、運用され、統治されるかという性質です。数千人のエンジニアが数百のサービスにわたってコードを出荷するとき、最も弱い環が、インシデントがどれだけの被害を出しうるかを決めます。誤設定された一つのストレージバケット、パッチの当たっていない依存関係、権限の過剰なサービスアカウントが、数百万件のレコードを露出させうるのです。それを大規模に防ぐのが、基礎と文化です。

企業にとって、賭け金は財務と評判です。侵害のコスト、規制上の罰金、失われる顧客、下がる企業価値。政府にとっては、国家安全保障、公共の信頼、重要なサービスの継続性にまで及びます。どちらの設定も、厳しい真実を共有します。セキュリティは、統制とゲートだけでは徹底できません。作業をする人々に内面化されなければなりません。エンジニアが脅威を理解し、当事者意識を持ち、懸念を挙げたことを報われる文化は、働きすぎのセキュリティチームにゴールキーパーを務めさせる文化より、はるかに良い成果を生みます。

本章は、本書の他のすべてのセキュリティの章を支える思考モデルと文化的な実践を示します。セキュリティを全員の仕事にすること、脅威モデリング、セキュアな開発ライフサイクル、多層防御やゼロトラストのような基礎的なアーキテクチャの原則、そして恐怖や流行ではなく本当のリスクによってセキュリティの仕事に優先順位をつける方法を扱います。

関連項目: 4.2章(アプリケーションセキュリティ)、4.3章(インフラストラクチャとクラウドのセキュリティ)、4.4章(セキュリティ運用)、4.6章(コンプライアンスとガバナンス)は、これらの基礎の上に築かれます。

主要原則

  • セキュリティは全員の仕事です。 すべてのエンジニア、プロダクトマネージャー、運用者が、自分が築くもののセキュリティを所有します。セキュリティチームは、可能にし、助言し、監査します。一人で仕事をすることはなく、できません。
  • 侵害を前提とします。 攻撃者がすでに内側にいるかのように設計します。侵害された構成要素が到達できるものを最小化します。
  • 多層防御。 単一の統制では十分ではありません。独立した統制を重ね、一つの失敗がすべての失敗を意味しないようにします。
  • 最小権限。 必要な最小限のアクセスを、最小限の時間だけ与え、不要になったら自動的に取り消します。
  • シフトレフト。 問題を、是正が最も安いときに、できるだけ早く見つけて直します。
  • リスクに基づく優先順位づけ。 今週ニュースになったものではなく、CIAトライアド(機密性、完全性、可用性)に導かれ、可能性と影響の組み合わせが最も高い所に労力を使います。
  • 非難しない学習。 セキュリティのインシデントとヒヤリハットを、罰する機会ではなく、学ぶ機会として扱います。

推奨事項

セキュリティチャンピオンのプログラムを確立する

各エンジニアリングチームに、指名されたセキュリティチャンピオンを置きます。チャンピオンは、常勤のセキュリティ専門家ではありません。追加の訓練と、中央のセキュリティチームへの直通の線を持つエンジニアです。設計をレビューし、発見事項をトリアージし、チームメイトの質問に答え、セキュリティの文脈を計画に持ち込みます。これは、すべてのチームに専門家を雇わずに組織全体にセキュリティの専門知識をスケールし、助言が実際にコードベースを知る同僚から来るので、信頼を築きます。

チャンピオンに本物の支援を与えてください。学んだことを共有する定期的な場、訓練とカンファレンスの予算、人事評価での承認、デリバリーの約束から確保された時間。紙の上にしか存在しないチャンピオンのプログラムは、何も生みません。

脅威モデリングを日常的に実践する

脅威モデリングは、築く前に「何が間違いうるか」を問う、規律ある習慣です。新しいサービス、大きな機能、信頼の境界へのあらゆる変更に対して行います。実際に頻繁に行われるよう、十分に軽く保ちます。

  • STRIDE は、セキュリティの性質に対応づけられた実用的なチェックリストです。なりすまし(認証)、改ざん(完全性)、否認(否認防止)、情報の開示(機密性)、サービス拒否(可用性)、権限の昇格(認可)。各データフローをたどり、各カテゴリがどう当てはまるかを問います。
  • PASTA(攻撃シミュレーションと脅威分析のプロセス)は、より重い、リスク中心の7段階の方法で、技術的な脅威をビジネスへの影響に結びつけます。価値の高いシステムに使います。
  • アタックツリー は、目標(「顧客データを盗む」)を、攻撃者がとる分岐する段階に分解し、経路を見つけて刈り込むのを助けます。

脅威モデルを、コードの隣の生きた文書として保ち、アーキテクチャが変わるたびに見直します。

セキュアなソフトウェア開発ライフサイクルを築く

最後のゲートとして扱うのではなく、セキュリティをあらゆるフェーズに織り込みます。

  • 要件: セキュリティとプライバシーの要件を、機能要件と並べて捉えます。
  • 設計: 脅威をモデル化し、信頼の境界をレビューします。
  • 実装: セキュアコーディングの標準、コードレビュー、コミット前のシークレットスキャンを徹底します。
  • テスト: パイプラインでSAST(静的アプリケーションセキュリティテスト)、DAST(動的アプリケーションセキュリティテスト)、依存関係のスキャンを実行します(4.4章を参照)。
  • リリース: 来歴を検証し、成果物に署名し、設定を確認します。
  • 運用: 監視し、パッチを当て、対応します。

シフトレフトの要点は、すべての仕事を早い時点に積み上げてエンジニアを圧倒することではありません。早く直すほうがはるかに安い種類の欠陥を捉えることです。

ゼロトラストアーキテクチャの原則を採用する

従来の境界型のセキュリティは、ネットワークの内側のすべてが信頼できると想定します。その想定は、攻撃者が足がかりを得た瞬間に崩れます。ゼロトラストは、暗黙のネットワーク上の信頼を、明示的で継続的な検証に置き換えます。リクエストがネットワークのどこから来ようと、アイデンティティ、デバイスの状態、文脈に基づいてすべてのリクエストを認証し、認可します。強いアイデンティティ、最小権限の認可、マイクロセグメンテーション、あらゆる所での暗号化を組み合わせます。ゼロトラストは製品ではなく旅なので、一歩ずつ進めてください。

CIAトライアドを使ってリスクで優先順位をつける

すべての資産と統制を、機密性、完全性、可用性を軸に枠づけます。すべてのデータが同じ保護を必要とするわけではありません。公開されたマーケティングのページと医療記録のデータベースは、機密性のニーズが大きく異なります。資産を分類し、侵害の可能性と影響を見積もり、乏しいセキュリティの労力を、最もリスクの高い組み合わせに向けます。リスクの決定を書き留め、他の人が後でレビューし、擁護できるようにします。

トレードオフ: 長所と短所

アプローチ長所短所
中央のセキュリティチームがすべてのセキュリティを所有する深い専門知識、一貫した標準ボトルネック。エンジニアが関与しなくなる。スケールしない
分散したセキュリティ(チャンピオン)スケールする。当事者意識を築く。フィードバックが速い投資が必要。スキルにばらつき。調整が必要
すべてに対する重い事前の脅威モデリング徹底的。設計の欠陥を捉えるデリバリーが遅くなる。形式的なチェックになりうる
軽量でリスクを狙った脅威モデリング速い。重要なものに集中する「低リスク」のシステムの脅威を見逃しうる
リリースを止める厳格なゲートコンプライアンスを徹底する摩擦。回避策を促す

中心的な緊張は、速度と保証の間にあります。ゲートと中央の統制に寄りすぎると、エンジニアが回避する摩擦を作り、シャドーITと憤りを生みます。支援なしの自律に寄りすぎると、一貫せず、監査されないセキュリティになります。持続可能な答えは、支えとなるガードレールを伴う強い文化です。できる所は自動化し、判断が必要な所は人が行い、単に課すのではなく常に説明します。

チームで議論すべき問い

  1. どのシステムが重い脅威モデリングに値し、誰がその階層を決めますか。 大きな資産群では、すべてのサービスに7段階のPASTA分析を実行することはできないので、30分のSTRIDEの確認で十分なときと、価値の高いシステムが深い、ビジネスへの影響に駆動されたモデリングに値するときの明示的なルールが必要です。決定をCIAの分類に固定します。規制対象のレコード、決済フロー、認証のロジックを持つシステムは頂点にあり、公開のマーケティングのページはそうではありません。企業と政府の仕事では、監査人は、あるシステムがなぜそのようにモデル化されたかを擁護するよう求めるので、階層の基準を書き留め、それを適用する所有者を名指ししてください。現在の資産の分類と、脅威モデルのないサービスの一覧を会議に持ち込んでください。その間のギャップが本当のリスクだからです。基準に合意できないと、すべてを軽くモデル化するか、何も深くモデル化しないかが既定になり、どちらもあなたを失敗させます。

  2. セキュリティチャンピオンとデリバリーの期限が衝突したとき、実際にリリースを止められるのは誰ですか。 チャンピオンのプログラムは、チャンピオンが追加の訓練と良い意図だけでなく、本物の権限を持つときにだけ成果を変えます。チャンピオンが出荷をブロックできるか、中央のAppSecチームにエスカレートするか、どの重大度の発見がデリバリーの停止を正当化し、どれが追跡するだけかを、事前に決めてください。これは圧力のもと、プロダクトマネージャーがローンチの一週間前に設計上の欠陥を免除したがるときに最も重要で、それはまさに、対処されない欠陥の是正が最も高くつくときです。セキュリティの懸念が期限と出会った最近の例を持ち込み、誰がどう決めたかをたどってください。その話が本当のエスカレーションの経路を明らかにするからです。誠実な答えが、常にデリバリーが勝つなら、チャンピオンは飾りで、さらに増やす前にインセンティブを直すべきです。

  3. 「侵害を前提とする」は、次の設計レビューで具体的に何を変えますか。 この原則は、うなずくのは易しく、運用に落とすのは難しいので、具体的な約束に結びつけます。どの信頼の境界を締めるか、どこにマイクロセグメンテーションを加えるか、侵害された単一のサービスアカウントが到達できるものをどう縮めるか。大きなチームにとって、見返りは影響範囲の縮小で、一つのサービスに着地した攻撃者が、その背後のデータストアに移れないようにします。企業と政府の設定では、これは最小権限と短命の資格情報の決定も形づくり、それらは設計に組み込むのは安く、後付けするのは苦痛です。本物のサービスの図を一枚持ち込み、攻撃者がウェブ層を所有した後に何をするかを問い、それから今四半期に二つの封じ込めの変更を約束してください。侵害は起こるという漠然とした合意は、権限、ネットワークのルール、資格情報の寿命のいずれかを動かさない限り、価値がありません。

  4. セキュリティ文化が実際に改善していることをどう知り、取締役会に擁護する指標はどれですか。 研修の修了率やチケットの件数は、集めるのが易しく、ほとんど役に立ちません。リスクの低減ではなく活動を測るので、大きな組織はそれに溺れます。実際に予算を賭ける成果の指標を選んでください。高重大度の発見を是正する時間の中央値、現在の脅威モデルを持つサービスの割合、本番の前に捉えられたインシデントの割合、自己申告のヒヤリハットの率(信頼が育つにつれて下がるのではなく上がるはず)。相反する考慮は、あらゆる良い指標は操作されうるので、それぞれを対抗する指標と組にし、スナップショットではなく傾向をレビューすることです。現在のダッシュボードを持ち込み、セキュリティが本当に悪化したらどの数字が変わるかを問ってください。変わらないものは飾りです。企業と政府の設定では、規制当局や監査委員会が統制が機能している証拠を求めるので、単に緑に見えるものではなく、精査のもとで擁護できる指標を選んでください。

  5. 次にエンジニアがミスを報告したとき、実際に何が起こり、あなたのプロセスは実践で非難しないものですか。それともスライドの上だけですか。 非難しない学習は、最も頻繁に唱えられ、最も実践されない原則です。最初の深刻なインシデントが、リーダーシップが本気かを試すからです。問題を直す説明責任を、それを引き起こしたことへの罰から、どう切り離すか、そして事後レビューを誰が運営して、名指しされた個人ではなく壊れたシステムについてのものに保つかを、事前に決めてください。緊張は本物です。利害関係者は誰かに責任を負わせたがりますが、報告者を罰することは、次のミスが侵害になるまで隠れたままになることを保証します。直近の二つのインシデントレビューを持ち込み、人を責めたのか統制を責めたのか、警報を上げたエンジニアが感謝されたのか静かに脇に追いやられたのかを確認してください。政府や規制対象の企業では、義務的な侵害の開示ルールが賭け金をさらに上げます。ミスを隠す文化は、法的な罰則を伴う報告の期限も逃すからです。

  6. シフトレフトのツールの摩擦を所有するのは誰で、それを買っているのか、作っているのか、溺れているのか。 自動化された静的と動的の解析、依存関係のスキャン、シークレットのスキャンは、セキュアな開発ライフサイクルの背骨ですが、誤検知でエンジニアを溢れさせるパイプラインは、彼らにセキュリティの出力を無視するよう教え、それはスキャンがないよりも悪い。誰がツールを調整し、誰が発見をトリアージし、統合されたプラットフォームを買うのか、自分たちで保守しなければならないオープンソースのスキャナーを組み立てるのかを決めてください。相反する考慮は、カバレッジ対ノイズと、制御対コストです。狼少年のように叫ぶ安いスキャナーは、チャンピオンのプログラムが何年もかけて築いた信頼を燃やします。現在の誤検知率、エンジニアがブロックするチェックを待つ平均時間、静かにゲートを無効にしたチームの一覧を持ち込んでください。大きな企業と政府では、調達とツールの乱立の角度を加えてください。十のチームがそれぞれ自分のスキャナーを買うと、どの監査人も突き合わせられない、一貫しないカバレッジを生むからです。

セクター別の視点

スタートアップ。 セキュリティチームも猶予もないので、文化が唯一手の届く統制です。認証や決済に触れるどんな機能の前にも、30分の脅威モデリングのホワイトボードを習慣にし、費用のかからない最小権限とMFAをあらゆる所でオンにし、誰もが懸念を挙げられる非難しないチャンネルを保ってください。重い手続きとツールは省きます。創業期のエンジニアには保守できず、今築く規律が、後に企業の買い手があなたを信頼できるようにするものだからです。

小規模事業者。 専任のセキュリティ専門家はおらず予算も厳しいので、自前のパイプラインを立ち上げるのではなく、すでに買っているツールのセキュアな既定に頼ってください。MFA、パッチ適用、最小権限を代わりに徹底してくれるマネージドなプラットフォームを好み、セキュリティをデータの衛生の問題として扱います。どんな機微なデータを持ち、誰がそれに届くかを知る。作るか買うかを選ぶときは、買ってください。最新に保つマネージドな統制は、腐らせるに任せるオーダーメイドのものに勝るからです。

大企業。 数百のサービスと数千のエンジニアの規模では、課題は多くのチームにわたる一貫性とガバナンスです。セキュリティチャンピオンのプログラムを運営し、CIAの分類に結びついた脅威モデリングの階層を標準化し、すべてのチームが良い既定を引き継げるよう、舗装された道のテンプレートと自動化されたパイプラインのチェックを提供してください。是正とカバレッジの指標をベースラインに対して追跡し、各システムがなぜそのようにモデル化され統制されたかを示す監査証跡を保ちます。

政府。 調達規則、透明性の義務、公的な説明責任があらゆる選択を形づくります。ゼロトラストの原則と短命の資格情報は、しばしば行政の方針で義務づけられ、強化の予算がどこへ行ったかについて、文書化されたリスクに基づく根拠を監査人に示せなければなりません。最も機微な市民の記録を持つシステムを最初に優先し、公衆が知る権利のある所では安全策を公開し、ベンダーに、不透明なブラックボックスを受け入れるのではなく、制約を開示するよう求めてください。

事例

スタートアップ。 10人のスタートアップには、セキュリティチームも、それを置く予算もないので、二人の創業エンジニアは、認証や決済に触れるどんな機能の前にも、何が間違いうるか、誰がそれを望むかを問う、30分のホワイトボードの習慣として脅威モデリングを行います。費用のかからないいくつかの基礎的な習慣を採用します。あらゆるクラウドのロールでの最小権限、あらゆるアカウントでのMFA、誰もが非難を恐れずに懸念を挙げられる非難しないチャンネル。後に資金調達をして企業の買い手がセキュリティをどう扱うか尋ねるとき、その早期の文化により、慌てて文化をでっち上げる代わりに、誠実に答えられます。

大企業。 6,000人のエンジニアを持つ世界的な銀行は、スクワッドごとに一人の訓練を受けたチャンピオンを置く、セキュリティチャンピオンのプログラムを運営しています。チャンピオンは月例のギルドに参加し、四半期ごとの訓練を修了し、STRIDEを使ってすべての新しいサービスの脅威モデリングを主導します。中央のAppSecチームは、舗装された道のテンプレートと自動化されたパイプラインのチェックを保守します。2年にわたり、高重大度の発見を是正する時間の中央値は45日から9日に下がり、設計段階の脅威モデリングが、決済APIの認可の欠陥を本番に届く前に捉え、報告義務のあるインシデントになりそうなものを避けました。

政府。 レガシーのシステムをモダナイズする国の税務当局は、行政の方針で義務づけられたゼロトラストの原則を採用します。すべての内部サービスの呼び出しが短命の資格情報で認証され、リクエストごとに認可されます。ネットワークのセグメントはもはや信頼を与えません。当局は、「納税者の記録を持ち出す」と「申告を改ざんする」を根とするアタックツリーに対して、市民向けの各サービスの脅威をモデル化します。CIAの影響レベルに合わせたリスクに基づく優先順位づけが、最も機微な記録を持つシステムを最初に、強化の予算を集中させます。

ビジネスケース: 動機、ROI、TCO

セキュリティ文化を築くコストは本物です。チャンピオンの時間、訓練、ツール、脅威モデリングとレビューを行うわずかな抵抗。しかしそのコストは、それをしないことのコストに比べれば小さい。平均的な大きなデータ侵害は、調査、通知、是正、規制上の罰金、法的な露出、失われた事業を数えると、数百万に達します。政府の侵害は、どんな請求書も完全には捉えられない、任務の中断と公共の信頼の侵食を加えます。

セキュリティ投資の見返りは、三つの所から来ます。避けられたインシデント(決して起こらない侵害)、減った是正コスト(設計時に直された欠陥は、本番で直されたもののごく一部のコスト)、より速いデリバリー(舗装された道と自動化されたチェックにより、チームは手作業のレビューを待たず、自信をもって出荷できます)。リーダーシップに論拠を示すときは、セキュリティを抽象的な善としてではなく、値札のあるリスク管理として枠づけてください。上位のリスクの期待損失(可能性掛ける影響)、それを減らすコスト、そして残るリスクを示します。経営陣は、測定できるリスクの低減に資金を出します。

アンチパターンと落とし穴

  • セキュリティ劇場。 印象的に見えるが実際のリスクを減らさない統制で、何かを守るためではなく監査を満たすために採用されること。
  • 最後のゲートとしてのセキュリティチーム。 ローンチの一週間前に設計上の欠陥を発見し、それが最も是正に高くつき、免除されやすいこと。
  • 非難の文化。 ミスを報告したエンジニアを罰することは、次のミスが隠れたままになることを保証します。
  • 形式的な脅威モデリング。 誰も読まないテンプレートを埋め、実際のアーキテクチャから切り離された文書を作ること。
  • 画一的な統制。 公開のウェブサイトと決済システムに同じ重い手続きを適用し、労力を無駄にして憤りを生むこと。
  • 恐怖に駆動された優先順位づけ。 資産を実際に脅かすものではなく、ニュースで流行している脆弱性を追いかけること。
  • 名ばかりのチャンピオン。 時間も訓練も権限も与えずに、チャンピオンを任命すること。

成熟度モデル

レベル1: 開始。 セキュリティは反応的で中央集権的です。レビューは、あるとしても遅く、脅威モデリングはありません。インシデントがその場しのぎの修正を駆動します。エンジニアはセキュリティを誰か他の人の問題と見なし、共有の標準は存在しません。

レベル2: 発展。 セキュリティチームが存在して標準を定義しますが、実践はチーム間で一貫しません。大きなプロジェクトでは一部の脅威モデリングが行われ、他では行われません。基本的な訓練は利用できます。セキュリティはまだゲートと認識され、シフトレフトは本物ではなく願望です。

レベル3: 標準化。 セキュリティチャンピオンがすべてのチームに埋め込まれています。脅威モデリングは新しいサービスで日常的で、CIAの分類に対して階層化され、セキュアな開発ライフサイクルは文書化されて組織全体で徹底されています。リスクに基づく優先順位づけが仕事を導き、セキュアコーディングの標準とパイプラインのチェックが既定の舗装された道で、非難しない事後レビューが標準です。

レベル4: 管理。 セキュリティの成果が、ベースラインに対して測定され、制御されています。組織は、高重大度の発見を是正する時間の中央値、脅威モデルのカバレッジ、本番の前に捉えられたインシデントの割合、ヒヤリハットの報告率を、チームごとに分けて追跡します。チャンピオンがリリースを止める権限は、定義され、実際に行使されています。リスクの決定は、可能性掛ける影響として定量化され、記録され、決まった周期でレビューされるので、統制のギャップは、驚きではなくデータとして表面化します。

レベル5: オーケストレーション。 セキュリティは本当に全員の仕事で、デリバリー、リスク、ビジネスの計画と統合されています。脅威モデリングとセキュアな設計は習慣的で軽く、ゼロトラストの原則はほぼ実現されています。指標が継続的な改善を駆動し、組織はチームをまたいでヒヤリハットから学び、統制は、脅威の状況とアーキテクチャが変わるにつれて自動的に適応します。

議論のためのアイデア

  1. 研修の修了を数える以上に、セキュリティ文化が実際に改善しているかをどう測りますか。
  2. セキュリティチャンピオンが扱うものと中央のチームが所有するものの、正しい境界はどこですか。
  3. 脅威モデリングが官僚的なチェックボックスになるのを許さずに、その価値をどう保ちますか。
  4. 完全なゼロトラストアーキテクチャは、あなたのレガシーの資産群にとって現実的ですか。そうでないなら、実用的な部分集合は何ですか。
  5. 同じエンジニアを奪い合うとき、セキュリティの仕事をフィーチャーのデリバリーに対してどう優先順位づけすべきですか。
  6. どんなインセンティブが、セキュリティの当事者意識に向けたエンジニアの行動を実際に変えますか。

要点

  • セキュリティは大きな組織の文化的な性質で、一つのチームに委ねられた作業ではありません。
  • セキュリティチャンピオンは、エンジニアリング全体に専門知識と当事者意識をスケールします。
  • 脅威モデリング(STRIDE、PASTA、アタックツリー)は、設計の欠陥を早く安く表面化させます。
  • セキュアなSDLCとシフトレフトの考え方は、欠陥を最もコストが小さいときに捉えます。
  • 多層防御、最小権限、ゼロトラストが、基礎的なアーキテクチャの原則です。
  • CIAトライアドとリスクに基づく優先順位づけは、乏しい労力を最も重要な所に向けます。
  • セキュリティ文化を築くコストは、それが防ぐ侵害のコストよりはるかに小さい。

参考文献とさらなる読み物

  • Adam Shostack, Threat Modelling: Designing for Security
  • Ross Anderson, Security Engineering: A Guide to Building Dependable Distributed Systems
  • Michael Howard and Steve Lipner, The Security Development Lifecycle
  • Betsy Beyer et al. (Google), Building Secure and Reliable Systems
  • National Institute of Standards and Technology, SP 800-207: Zero Trust Architecture
  • National Institute of Standards and Technology, Secure Software Development Framework (SSDF), SP 800-218
  • OWASP, Threat Modelling and Security Champions guidance