多くのビルトイン (ユーザーによる追加ではない) セキュリティ対策により、バッファ オーバーフロー エクスプロイトは依然として実用的な侵入方法ですか?
バッファ オーバーフローを無効にする主なセキュリティ対策は何ですか?
バッファ オーバーフローは依然としてネイティブ アプリケーションに侵入する一般的な方法ですが、ASLR や DEP などの OS 保護メカニズムや GS などのコンパイラ保護メカニズムにより、実際にバッファ オーバーフローを攻撃的に悪用して現実世界に侵入する人はまだかなり少ないと思います。クッキー (スタック カナリア)。
最近のコンパイラの進歩により、関数の実行中にほとんどの (すべてではない) スタック オーバーフローが検出され、攻撃者に実行を明け渡すのではなく、プロセスがクラッシュするため、スタック オーバーフローは現在悪用できないことがよくあります。
ヒープ オーバーフローは、最新の OS でも非常に悪用可能であり、常に重大なものとして扱う必要があります。
残念ながら、特定の特定のスタックまたはヒープ オーバーフローが実際に悪用可能かどうかについて、厳格なルールはありませんが、防御的な観点からは、すべてのコンパイラと OS の緩和策はまさに緩和策です。セキュリティ研究者であれば、スタック オーバーフローとヒープ オーバーフローの両方を重大な問題として報告し、開発者として直ちに修正する必要があります。
絶対。OS で修正されたバグを確認すると、バッファ オーバーフローにパッチが適用されていることがわかります。例については、 http://support.apple.com/kb/HT5130を参照してください。
オペレーティング システムとコンパイラは、バッファ オーバーフローを防止するために多くのことを行っていますが、依然として問題が残っていることは確かです。
バッファー オーバーフローを回避する最も簡単な方法は、最初からバッファー (およびそのサイズ) の管理を強制する C などの言語を避けることです。C に似た言語の使用を避けられない可能性が非常に高い場合は、潜在的な問題を軽減する方法がいくつかあります。
ここから始めましょう: http://en.wikipedia.org/wiki/Buffer_overflow_protection