web-dev-qa-db-ja.com

あいまいさの有効な役割

あいまいさによるそのセキュリティは悪いことです情報セキュリティの知恵と教義を受けています。 なぜ何かを避ける必要があるのか​​を人々に伝える 明らかに効果的な戦略から禁止しようとしていることを示す線がない場合、かなり困難になる可能性があります。

たとえば、- デフォルト以外のポートでsshを実行ポートノッキング はどちらもsshのセキュリティを向上させる方法として提案されており、どちらもあいまいなためセキュリティが無効であると批判されています。

この特定のケースでは、両方のソリューションがシステムの可視性を自動化された試みに減らします。これは、ツールとしてのsshの有効性を改善したり、他のsshセキュリティ対策の必要性を減らしたりすることはありません。ただし、深刻な試みを自動化された通行人から分離する方法を提供するため、システムの管理性が向上します。

  • 管理性/有効性に加えて、どのような区別が、隠蔽の有効/無効使用の間の境界を説明しますか?
  • あいまいさの効果的な使用について説明しているのはどの類比ですか、またはこれと非効果的な使用の違いを描きますか?
  • あいまいさの有効性をサポートしていると思われる類比はどれほど長続きしませんか、そしてなぜですか?
  • あいまいさの有効な役割の例として、他にどのような具体的な実装がありますか?
43
Bell

興味深い質問です。これについての私の考えは、情報を不明瞭にすることは、攻撃者に検出可能なより多くの「ノイズ」を生成させる可能性があるため、多くの場合、セキュリティに役立つということです。

あいまいさが「悪いこと」である場合、防御者が重要なコントロールとしてそのあいまいさを利用している場合があり、そのあいまいさがなければコントロールは失敗します。

したがって、上記で示したものに加えて、不明瞭さの効果的な使用は、インターネットに面するサービスからソフトウェアの名前とバージョン情報を削除することです。これの利点は次のとおりです。

  • 攻撃者が脆弱なバージョンのサービスが使用されているかどうかを確認したい場合、複数のクエリを実行する必要があります(例:デフォルトファイルを探す、またはおそらくいくつかのクエリに対するタイミング応答をテストする)。このトラフィックは、バージョンを返す単一のリクエストよりもIDSログに表示される可能性が高くなります。さらに、フィンガープリンティングプロトコルはすべてのサービスに対して十分に開発されていないため、攻撃者の速度を大幅に低下させる可能性があります
  • 他の利点は、バージョン番号が Shodan のようなサービスによってインデックス化されないことです。これは、サービスの特定のバージョンのすべてのインスタンスに対して自動化された攻撃が実行される場合(たとえば、そのバージョンのゼロデイが発見された場合)に関連する可能性があります。これをバナーから隠すと、サービスの特定のインスタンスがその攻撃の餌食になることを実際に防ぐことができます。

とはいえ、これが唯一の防御線であってはなりません。上記の例では、セキュリティを維持するために、サービスを強化してパッチを適用する必要があります。

覆い隠しが失敗すると私が思うのは、それが頼りになるところです。変更されていないハードコードされたパスワード、「自作の暗号化」でシークレットを難読化すること、または誰もそれを攻撃しないという考えに基づいてサービスにパッチを適用するかどうかのリスク決定に基づくことなど。したがって、おそらくこれを見つけたり、認識したり、攻撃したりしないという種類のアイデアは、失敗します。おそらく、防御側が有効な攻撃者が誰であるかという概念を制限しているためです。動機付けのない外部の攻撃者が時間をかけて不明瞭なコントロールを解明することはできないかもしれませんが、攻撃者が不満を持った元従業員であることが判明した場合、そのハードコードされたパスワードはいくつかの深刻な問題を引き起こす可能性があります。

41
Rory McCune

あなたは常識を誤解しています。従来の知識では、あいまいさが悪いとは言われていません。これは、信頼性に依存している隠蔽によるセキュリティは悪いことを示しています。違いに注意してください。あいまいな場合、セキュリティが追加される可能性がありますが、それに頼ってはならず、それが主な防御策になるべきではありません。あいまいさが突き刺される可能性があることを覚悟し、その場合に対処するための十分な防御策があることを確信してください。

ここでの重要な概念はケルコフの原理です。 1800年代に戻って、ケルコフは、私たちが無名化によってセキュリティに懐疑的であるべき理由と、暗号の適切な使用と不適切な使用との間の線を引く方法をすでに明確に述べていました。 ウィリアムケルコフの原理に関する記事 は非常に優れており、優れた出発点です。

ここで熟考するいくつかのポイントがあります:

  • ウィキペディアの記事にあるように、「システムのセキュリティを確保するために守らなければならない秘密が少ないほど単純であるほど、システムのセキュリティを維持することは簡単です。」したがって、他のすべての条件が同じであれば、秘密にしておかなければならないことが少なくなればなるほど、システムのセキュリティ保護が容易になる可能性があります。

  • 一般的に言えば、システムで使用されている設計やアルゴリズムを専用の攻撃者に秘密にしておくことはほとんど望めません。したがって、セキュリティが設計の機密性に依存しているシステムは、長期的に見れば破滅的であり、短期的には不必要なリスクを負っています。

  • 最悪の種類のシークレットは、セキュリティが侵害されたり、権限のない者に漏洩した場合に変更できないものです。最良の種類の秘密は、漏洩が疑われる場合に簡単に変更できるものです。セキュリティがシステムの設計秘密を維持することに依存するシステムを構築することは、秘密が使用される最悪の使用法の1つです。なぜなら、システムがいったん配備されると、その秘密が漏洩した場合、変更するのが非常に難しいためです(配備されたすべてのコピーを置き換える必要があります)。まったく新しい実装のシステムで、通常は非常に高価です)。セキュリティが各ユーザーにランダムなパスフレーズの選択を任せるシステムを構築することは、パスワードが漏えいした場合(たとえば、ユーザーがフィッシングサイトにパスワードを入力してから「おっと!」と言う)、変更が比較的簡単であるため、より優れています。他人に迷惑をかけないユーザーのパスワード。

  • または、1800年代にケルクホフが書いたように、暗号システムの設計は秘密である必要はなく、不便なく敵の手に渡ることができなければなりません。これは基本的に、特定のドメインにおける私の以前のポイントの言い直しです。

これらの理由により、適切に設計されたシステムは一般に、秘密に依存する範囲を最小限に抑えようとします。また、シークレットが必要な場合は、通常、必要なすべてのシークレットを暗号鍵またはパスフレーズに集中するように設計して、侵害された場合に簡単に変更できるようにします。

15
D.W.

それはセキュリティですthroughあいまいさは悪い部分です。あいまいであることでセキュリティを強化できますが、セキュリティを提供するためにあいまいさだけに依存することはできません。

絶対的なマントラは常に有害です。 ;)マントラの背後にある理由とそれに伴うトレードオフを理解することが不可欠です。

たとえば、ランニングに出かけるときに家の外でキーを非表示にすることは、あいまいさによるセキュリティですが、30分以内に戻る場合は、許容できるリスクである可能性があります(高リスクのターゲットではありませんか?)。

「gotoを使用しない」についても同じことが言えます。 gotoは、特定の状況で明確なコードを書くための最良の方法です。経験豊富な専門家として、ガイドラインの理由を理解して、トレードオフを理解する必要があります。

5
Bradley Kreider