web-dev-qa-db-ja.com

最新のすべてのバッファオーバーフローを利用するには、エンドユーザーデバイスで複数のエクスプロイトが必要ですか?

Android電話、iPhone、PC(Windows、MacOS、Linux)などの最新のユーザー指向のデバイスで、リモートバッファーオーバーフローが0日ある場合、それらは複数の助けを借りてのみ悪用可能ですか?脆弱性?これの例は、ASLRまたはNXをバイパスする必要があることです。バッファオーバーフローを悪用する最近のデバイスでは、完全にパッチされたシステムを悪用するために複数の0日間をつなぐことは非常に複雑で費用がかかるようです。

1
john doe

それは、「エクスプロイト」の定義、対象とするソフトウェア、およびバグの場所によって異なります。

たとえば、Chromeのレンダラー(画面上にWebページを描画するもの)にコード実行のバグを見つけた場合、低整合性モードで実行されるレンダラープロセスのサンドボックスコンテキストでのみコードが実行されます。次に、サンドボックスエスケープを見つける必要があります(たとえば、特権のあるChrome IPCサービス)のバグを悪用して)より高い特権でコードを実行するChromeプロセス、APIの制限または他のサンドボックス保護を回避するための別のバグの可能性があります。ただし、特権のバグを見つけた場合Chrome JavaScriptから何らかの方法でトリガーすることが可能だったプロセス自体です。おそらく、そのバグだけが必要でしょう。

比較すると、Call of Duty 5で、破損したボイスチャットパケットからリモートコードの実行を可能にするバグを発見した場合(ボイスチャットは通常、直接のピアツーピアであるため、この例を使用します)、次のように即座にコードを実行できますユーザー。

緩和策を回避すること自体はエクスプロイトとは見なされません。通常、これをテクニックと呼びます。成功するエクスプロイトを構築するために複数の手法を活用する必要があり、それらの手法はコードまたはビルド構成の問題またはミスに依存する必要がある場合がありますが、これらの問題は一般に脆弱性とは見なされません。例として、プロセスにASLRがあるが、DLLはASLRを有効にして構成されていなかったため、攻撃者がそのモジュールの固定アドレス空間を利用して、 ROPチェーンを構築します。そのモジュールにASLRがないことは、実際の脆弱性と一緒に問題として発生する可能性がありますが、ほとんどがそれ自体の脆弱性とは見なしません。

最近のシステムでは、すべての緩和策をバイパスすることは一般的に難しいことは間違いありません。最近のオペレーティングシステムでのエクスプロイトの緩和策は、一般的にうまく機能しています。 CFG +(Hi)ASLR + DEP + ACG + EAF/IAFが有効になっているWindowsアプリケーションのヒープ使用後のバグで、見つかったバグとメモリレイアウトの純粋な運にかなり依存している再表示すると、実行可能なJOPチェーンを思い付くのに十分な制御が得られます。多くの場合、これには優れたスキルと数週間の作業が必要です。最終的に、エクスプロイトの緩和策は、脆弱性が見つかったときに有効なエクスプロイトを開発するコストを増やすように設計されており、適切に構成された最新のソフトウェアでエクスプロイトを構築する経済性は、攻撃者の好意から遠ざかっています。

2
Polynomial