注
Windows 10 バージョン 1703 以降、WDK では IoAttack を使用できなくなりました。
このツールの代わりに、HLK で使用可能なファジー テストの使用を検討してください。 考慮すべき点をいくつか次に示します。
- DF - ランダム IOCTL のファジー テスト (信頼性)
- DF - サブオープンのファジー テスト (信頼性)
- DF - 0 長バッファー FSCTL のファジー テスト (信頼性)
- DF - ランダム FSCTL のファジー テスト (信頼性)
- DF - Misc API のファジー テスト (信頼性)
ドライバー検証ツールに含まれている カーネル同期遅延ファジング を使用することもできます。
IoSpy と IoAttack は、カーネル モード ドライバーで IOCTL および WMI ファジー テストを実行するツールです。 これらのツールを使用すると、ドライバーの IOCTL と WMI コードでデータ バッファーとバッファーの長さを正しく検証できます。 これにより、システムが不安定になる可能性があるバッファー オーバーランを回避できます。
ファジー テスト では、ドライバー内の欠陥を特定するために、 ファジーと呼ばれるランダム なデータをドライバーに提示します。 IOCTL または WMI インターフェイスでのファジー テストは新しいものではありません。 ただし、ほとんどのテスト スイートは、ドライバーの IOCTL または WMI インターフェイスへの外部アクセスのみを検証する汎用 ブラック ボックス ファジー テストか、ドライバー内の特定の IOCTL パスと WMI パスをテストするように記述されています。
IoSpy と IoAttack は、ファズテストにおいて、よりホワイトボックスアプローチを使用しています。 デバイスでファジー テストが有効になっている場合、IoSpy はデバイスのドライバーに送信された IOCTL 要求と WMI 要求をキャプチャし、これらの要求の属性をデータ ファイル内に記録します。 IoAttack は、このデータ ファイルから属性を読み取り、これらの属性を使用して IOCTL または WMI 要求をドライバーに送信する前に、さまざまな方法でランダムに変更するファジングを行います。 これにより、IOCTL または WMI 固有のテストを記述することなく、ドライバーのバッファー検証コードにさらに入力できます。
IoSpy と IoAttack は、Windows Vista 以降のバージョンの Windows オペレーティング システムを実行するシステムでサポートされています。 これらのツールは、 デバイスの基礎テストの一部として WDK に含まれています。 「侵入テスト (デバイスの基礎)」を参照してください。 これらのテストは、[ ドライバー テストの追加と削除 ] ダイアログ ボックスの [Basic\Device Fundamentals\Penetration\IoSpy & Attack] フォルダーから選択できます。
Important
IoSpy と IoAttack は、カーネル モード デバッグ用に以前に準備したテスト システムで実行する必要があります。 このセクションには、次のトピックが含まれています。