ソフトウェア開発の観点からゼロデイ脅威/攻撃を軽減するためのベストプラクティス/推奨事項/戦略は何ですか?
ホリスティックSDL。
定義上、事前に知らない特定の攻撃を防御することはできません。
ただし、適切な脅威モデリングを含むすべてのフェーズを通じて完全で安全な開発ライフサイクルを実装し、脅威(攻撃ではない)を軽減した場合- 比較的大丈夫。
ゼロデイエクスプロイトを軽減する最善の方法は、ゼロデイエクスプロイトの作成者がゼロデイエクスプロイトを作成しないようにすることです。
ゼロデイエクスプロイトの作成者がゼロデイエクスプロイトを作成するのを防ぐ最善の方法は、お金を稼いだり、名声を得たりする他の方法を見つけるように奨励することです。 「ハッキング」の面白さは減ります。
データの漏洩を防ぎ、盗難をより簡単/収益性の低いものにするには、ゲームを何らかの方法で変更する必要があります。つまり、支払いカードのデータや、政府発行のID(社会保障番号など)を取り除く必要があります。特に名前と番号の使い方を変える必要があるかもしれません。
ハッキングをあまり面白くしないために、おそらくハッキングよりも新しいアクティビティをエキサイティングにすることによって、それを退屈で役に立たないものにする必要があります。
上記の方法が失敗した場合は、刑事更生、投獄、罰金、およびその他の形態の刑罰によるゼロデイエクスプロイトの犯罪的使用を阻止するのが最善でしょう。ただし、正確な処罰を行うには、まずゼロデイエクスプロイトを使用して犯罪者を捕まえる必要があります。ゼロデイエクスプロイトのいくつかの疑似犯罪的使用は、スパイ行為が国レベルで行われているのと同じように「法より上」です(たとえば、架空の人物、ジェームズボンドには「殺害のライセンス」があり、おそらく「ゼロデイエクスプロイトを使用してください」)。
それも失敗すると仮定すると、ゼロデイライターがゼロデイエクスプロイトを作成するのに費用がかかりすぎます。これは、Microsoftが自社の一部の製品に関して取った戦略だと思います。これはSDLの外部に存在し、通常、DEP、ASLRなどの悪用対策と [〜#〜] emet [〜#〜] などのツールで見られる手法の使用が含まれます。
一部のLinux貢献者は、ASLRを発明し、他の概念を grsecurity カーネルパッチに実装することで、この方法を採用しています。ただし、Microsoftもgrsecurityの開発者も、Webアプリケーションベースのエクスプロイト、カーネルエクスプロイト、競合状態、その他の難解なまたはデザインベースの欠陥など、従来とは異なるエクスプロイトを予測することはできません。
技術的には、ゼロデイエクスプロイトの問題を解決することははるかに困難です。これが、ゼロデイのエクスプロイト問題に対する人間による解決策のランドリーリストをほとんど提供してきた理由です。私はこれらの人間の社会問題を解決することの専門家ではありません-もしそうなら、私はこれらの魔法の力を使って空腹、病気、またはゼロデイの悪用よりもはるかに深刻な他の問題と戦っています。
たぶん、ゼロデイエクスプロイトを発生させるだけの方がいいでしょう。それらが解放されるのを止めることはできません。組織がゼロデイエクスプロイトのターゲットから外れるのを確実にするためにできることの1つは、ゼロデイエクスプロイトの対象になっていない(またはほとんどない)インフラストラクチャで実行することですが、これにより、セキュリティが不明瞭になる可能性があります。この失敗した戦略の例として、AOLはStratusのフォールトトレラント機器を使用しましたが、ハッキングを防ぐことはできませんでした。
これまでで最もよく知られている方法の1つは、ハニーポット、ファイル/カーネル/メモリ/プロセスの整合性監視(TPMを備えたBitLocker、Tripwireなど)、および防御レベルを提供してSwiftと容赦のない攻撃。現代の戦争とよく似ています。繰り返しますが、これには主にヒューマンレイヤーでの作業が含まれます。これらの方法のいくつかは、ビジネスインテリジェンステクニックを使用して組み合わせることができます。これは、一部のSIEM製品(およびOSSIMオープンソースSIEMツール)が試みていることですが、これらはまだ成熟と進歩の初期段階にあるため、単独で頼りになりましたが、より大きな方法論の一部であり、ゼロデイエクスプロイト管理プログラムに対抗しています。
ネットワーク内の任意のアプリケーションに対するゼロデイ攻撃について話している場合。私はお勧めします:
ネットワークファイアウォールでIngressフィルタリングを使用し、さらに Egress Filtering を使用して、システムから送信されるトラフィックを制限します。つまり、マシンがゼロデイエクスプロイトの影響を受ける場合、うまく行かない可能性があります。アウトバウンドを通信します。
IDS/IPS=を使用して異常なトラフィックパターンを検出することも効果的であることが判明する場合があります。
AviやMarkがまったく言及していない点の1つは、「徹底的な防御」という古いマントラです。これは非常にハッキングされたフレーズかもしれませんが、セキュリティの複数のレイヤーがあると、攻撃者はアクセスを得るために複数のゼロデイを使用する必要があり、すべてのレイヤーは(IDSなどを介して)攻撃を特定したり応答したりする機会を増やすことができます。
SDLを確実に開発し、IDS、IPSおよびその他のツールを使用しますが、安全なアーキテクチャを構築すると、セキュリティがある程度向上します。
公式のパッチがまだ適用されていないアプリケーションの既知の脆弱性から身を守ることを意図している場合、いくつかの方法があります:
それがオープンソースソフトウェアである場合、通常は非公式パッチがすぐに入手できます。それ以外の場合は、リソースがあれば自分でパッチを適用することもできます。
多くの場合、脆弱性は特定の構成/設定に依存します。脆弱ではない構成(つまり、拡張機能を無効にする)をセットアップできるかどうか試してみてください。
質問に固有ではない通常のセキュリティ方法を除けば、他に何も考えられません。