web-dev-qa-db-ja.com

ファジングテスト用にOSをどのように構成する必要がありますか?

ファズテストを行う場合、OSを特定の方法で構成する必要がありますか? ASLR(アドレス空間配置のランダム化)をオフにする必要がありますか?それは重要ですか?

4
D.W.

Peach Fuzz のfoudnのようなテストハーネスを備えたファジングフレームワークを使用することをお勧めします。テストハーネスは、デバッガーをターゲットアプリケーションに接続し、クラッシュレポートとその原因となったファズテストケースを追跡します。ターゲットアプリケーションがクラッシュすると、ハーネスはアプリケーションを再起動してテストを続行します。

ASLR、NXゾーン、カナリア、ヒープCookie、電気ショック療法、電気ショック療法、電気ショック療法は、ファジングプロセスで問題を引き起こしません。ただし、これらを見つけると、メモリ破損の脆弱性を悪用することが非常に困難になります。

1
rook

ASLRは、さまざまな保護と手法を含む広義の用語です。一般に、ASLRの基本的な形式(スタックのランダム化など)は、エクスプロイトの開発を困難または不可能にするために使用されますが、バグのトリガーやアプリケーションのクラッシュを防ぐことはできません。ファジングは、aslrが有効かどうかに関係なく同じように機能するはずです。

6
john

頭から離れると、aslrはどちらの方法でもそれほど重要ではないと思います。バグが脆弱化するのを防ぐのにより効果的であるように思われます。あなたのファザーが範囲外の結果を得るときはいつでも、あなたはそれがあなたに対して使用されることができると仮定するのが最も安全です。それを回避する方法はたくさんあるので、aslrがそれを変更するかどうかはわかりません(設定、プラットフォーム、やだやだによって異なります)。

とにかく、ファザーに穴を見つけるのに成功する最大のチャンスを与えるために、システムをできるだけ緩くする必要があると思います-ファイアウォールがなく、上限が高く、帯域幅が十分で、最大化するマルチスレッドアプリを使用している場合はプロセッサがたくさんあります競合状態などの可能性。

また、ライブラリの動作が異なる可能性があるため、複数のOSで実行しているときにファジングすることをお勧めします。これは特にWindowsに当てはまります。Windowsには優れたデバッグ機能がたくさんあります。 osxについてはよくわかりませんが、そこで自分のものを実行できれば、大幅に異なる環境を見つける可能性があります。

結果を投稿してください-これがどのように機能するのか知りたいです。

3
Steve Dispensa