HN 日本語サマリー

← 一覧へ戻る
セキュリティ

Soatok氏の非公式脅威モデリングガイド

Soatok's Informal Guide to Threat Models (soatok.blog)

108 pointsby zdw25 コメント

要約

この記事は、サイバーセキュリティの専門家でない人向けに、脅威モデリングの基本的な考え方と実践方法を解説しています。脅威モデリングとは、保護対象、攻撃者、攻撃シナリオ、対策、前提条件などを明確にし、システムのリスクを理解するためのプロセスです。著者は、具体的な質問に答える形で脅威モデリングを進める方法と、自身のプロジェクトでの実践例、そしてMatrixの脅威モデルを悪い例として紹介しています。

全文翻訳

長い一日が終わった後、ハイブリッド量子コンピュータ暗号化に関する疲弊するような会話、エンドツーエンド暗号化メッセージングアプリに対するエンドポイント攻撃で揚げ足を取ろうとする無責任な連中、そして愚かな政治家たちが私たち全員にさらに「年齢確認」というくだらないものを押し付けている状況を受けて、多くの人々にとって「脅威モデル」という言葉が外国の概念であることは明白になりました。まあ、バズワードとしては知っているかもしれませんが。アート:Embyr。 文脈として、これは反ワクチン論者が「自分で調べる」と主張し、一時的に「脅威モデル」という言葉をバズワードとして採用していた時代に依頼されたものです。 この文脈がなくても、私はまだ少し面白いと思います。 率直に言って、もしあなたが複数のブロックチェーンが関わる新しいスタートアップのために、100以上の引用があるフォーマルな脅威モデル文書の書き方に関する学術的なリソースを探しているなら、これはおそらくゲイのファーリーブログではありません。STRIDEとシステム理論から始めるのが良いかもしれません。しかし、良い脅威モデルが答えるべき質問についての直感を養いたいのであれば、そしてゼロから始めるのであれば、おそらく正しい場所にいるでしょう。では、脅威モデリングについて話しましょう。 脅威モデリング:初心者のために ジョークが分からなかった人のために、彼女の名前はNeophyteです。アート:Harubaki 高レベルで見れば、あまり考えすぎないでください。脅威モデリングは一部のインフォセキュリティ専門家が実際に専門としているフォーマルなサイバーセキュリティプロセスですが、新しい製品やサービスの設計・アーキテクチャ段階でインフォーマルな脅威モデリングを実行しても、誰もあなたを止めることはできません。結果はより良くなるかもしれません。 脅威モデルは、最低限、これらの基本的な質問に答えるべきです。 1.そもそも、私たちは何を保護しているのか? これに答えられないなら、多くの基礎作業が必要です。 2.誰/何が、私たちが保護しているものを害したいのか? ハッカー、活動家、サイバーストーカー、ソーシャルメディア嫌がらせネットワーク、自然災害/悪いカルマ、不満を抱いた低賃金で過労の従業員、すべての人々を傷つける愚かな法律を通すために大企業ロビイストに買収された愚かな立法者、国家元首の敵!!!!1oneon 3.(2)は(1)をどのように攻撃する可能性があるか? 攻撃シナリオはここに。マーフィーの法則もここに。 4.(3)が発生しないように、私たちは何をしますか? マーフィーの法則もここに!そして、まあ、OK。 これらの項目をチェックできれば、ある意味で文書を脅威モデルと呼ぶことができます。しかし、これはしばしば、いくつかの重要な詳細が省略されているため、実用的ではありません。 5.アセット(1)はどのように関連/接続されていますか? リストではなく、グラフで考えましょう。すべてのターゲットが同じ価値を持つわけではありません。 6.どのような仮定をしていますか、特に(4)と(5)について? これについては後で詳しく説明します。 7.どの脅威に意図的に対処していませんか? 将来予見できない、人が想像するあらゆる可能な攻撃にすべて対処することは文字通り不可能なので、そうしているふりをしないでください。 皮肉なことに、多くの人が仮定(6)を当然のことと考えていますが、自分の仮定をできるだけ明確にすることは信じられないほど重要です。もしあなたの仮定の1つが間違っていたら、あなたのモデルは(良くても)不完全であるか、あなたの受け入れられたリスク(7)のリストを再検討する必要があります。 例えば: 「見えないサンショウウオ」攻撃は、一部のエンドツーエンド暗号化メッセージング設計における虐待報告を悪用しますが、それはあなたが虐待報告を導入した場合に限ります。この攻撃は、そこで使用されているAEADスキーム(AES-GCM、ChaCha20-Poly1305)の仮定の1つが、特定のメッセージに対して有効なキーは1つしかない、というものであるため可能です。メッセージごとに複数の有効なキー(あるいは、混乱した代理人)を導入した瞬間に、あなたはアルゴリズムのセキュリティ保証の範囲外に出てしまいます。これは攻撃者にとっては楽しいトリックになります。 仮定を明確にすることで、自分自身の未知の未知数を特定できます。 完璧である必要はありません。実際、脅威モデルはポイントインタイムのスナップショットではなく、生きた文書であるべきです。適切だと判断したときにいつでも更新してください。アート:CMYKat 始め方 プロフェッショナルに脅威モデリングを行いたい場合は、おそらく「脅威モデリングマニフェスト」を読むべきでしょう。私がどのようにアプローチしているかを以下に示します。 まず、上記の7項目を、コピー&ペーストして素早く使えるような形式で書き留めます。それが必要になります。 次に、(できれば大きな方眼紙、またはデジタル版で)設計または分析しているシステムのコンポーネントをマッピングします。あるウィジェットが別のウィジェットと直接通信したり、依存したり、やり取りしたりする場合、その関係を最も役立つ任意の規約で描画する必要があります。 このセットアップができたら、グラフ全体を囲むボックスを描き、フォートナイトをプレイしていると仮定します。時々、ボックスは小さくなり、個々のコンポーネントに焦点を当てます。各イテレーションで、各コンポーネントへのすべての入力と出力を記録し、7項目のうちできるだけ多くに答えようとします。 抽象化が許す限り深く掘り下げ、掘り下げていないレイヤーについてどのような仮定をしているかをブレインストーミングするまで繰り返します。 CMYKat あなたがやっていることは、最も高いレベルから始めて、より具体的な部分へと掘り下げていくことです。あなたのデータベースは、X25519のセキュリティに、ロードバランサーほど依存していないでしょう。しかし、あなたのデータベースにRSSフィードが組み込まれているべきでもありません。不適切な関係に注意し、可能であればそれらを断ち切ることを目指してください。 例:私の自身の仕事 私がFediverseにキー透明性を提供するために取り組んでいることを、すでに知っている人もいるかもしれません。この作業はpublickey.directoryで追跡されており、このブログ記事が公開された後の状況に興味がある人は参照できます。 この作業は仕様から始まり、目立つように脅威モデルがフィーチャーされています。脅威モデルは以下のセクションに整理されています。 * 仮定(最初に明記) * アセット * アクター(攻撃者と保護したい人々両方)、役割名付き * リスク、4つのステータスのいずれかが付与されています。 * 設計により防止:攻撃は単純に機能しない lol 😀 * 緩和済み:仮定が間違っていない限り、攻撃は成功しないはずです。研究者にとって最も興味深い焦点です。 * 対処可能:リスクを緩和する方法はありますが、労力や注意が必要です。オペレーターはこれを認識しておくべきです。 * 未解決:これは、私たちが緩和できない、または緩和しないリスクです。これらは成功する攻撃です。 この脅威モデルも完璧ではありません。アセットとアクターを人間が読めるグラフで完璧に関連付けることはできませんでした。リスクセクションには、私が決して考慮しなかった盲点があるかもしれません。システムのセキュリティにとって重要な仮定を書き忘れたかもしれません。 私のプロジェクトの脅威モデルを見て、その欠点を見つけることができれば、おそらくあなたは自分自身の脅威モデルを書くのに十分な課題を理解しているでしょう。しかし、薄っぺらい自己宣伝はこれくらいにしておきましょう。 ゲーム内の私の例を見るだけではあまり学びません。悪い脅威モデル文書の例も必要です。そして、私はそれを準備しました。 CMYKat 悪い例:Matrixの脅威モデル 私は以前(2回)Matrixをからかっているので、それらのブログを読んだことがある人にはニュースではありません。これはMatrixの脅威モデル(最新版、v1.18)です。 9.セキュリティ脅威モデル 9.1サービス拒否 攻撃者は、以下のような目的で、被害者とのメッセージの配信を妨害しようとする可能性があります。 * 競合する企業のサービスまたはマーケティングキャンペーンを妨害する。 * 議論または議論の参加者を検閲する。 * 一般的な破壊行為を実行する。 9.1.1脅威:リソース枯渇 攻撃者は、被害者のサーバーに特定のリソース(例:開いているTCP接続、CPU、メモリ、ディスクストレージ)を枯渇させる可能性があります。 9.1.2脅威:回復不能な整合性違反 攻撃者は、被害者のサーバーがチャットルームの状態の一貫したビューを導き出せなくなるような、回復不能な「スプリットブレイン」状態を引き起こすメッセージを送信する可能性があります。 9.1.3脅威:悪い履歴 攻撃者は、被害者に無効なメッセージを受け入れさせ、被害者がそれをチャットルームの履歴ビューに含めるように仕向ける可能性があります。チャットルーム内の他のサーバーは