web-dev-qa-db-ja.com

ファジングは、あらゆる脆弱性タイプのソフトウェアテスト手法と見なすことができます

ファジングの研究をしています。タイトルの質問に対する答えを知りたいのですが。 cvedetailsは、脆弱性について次のカテゴリを使用します。

 Bypass a restriction or similar 
 Cross Site Scripting 
 Denial of service 
 Directory Traversal 
 Execute arbitrary code on vulnerable system 
 Gain Privileges
 Http Response Splitting 
 Memory Corruption 
 Obtain information 
 Overflow vulnerability (includes stack and heap based overflows and other overflows) 
 Cross site request forgery(CSRF) 
 File Inclusion 
 Sql Injection

私が知りたいのは次のことです:ソフトウェアのテストはファジングと見なすことができますかたとえば、sqlmap、havij、sqlninjaを使用するWebアプリケーション(CMSシステムなど)でSQLインジェクションを探している場合、ファジングとして分類できますか?反対に、すべての論文でファジングはバッファオーバーフローを探すときの参照にすぎないためです。

だから私は次のことを求めていると思います:自動化されたツールで脆弱性を発見すると、ファジングとして分類できますか?

前もって感謝します

3
eleanor

簡単に言えば、いいえ。

ここで長い答え: ファジングの起源 (またはファズテスト)は、ランダムデータまたはわずかにランダムなデータを送信しています(つまり、特定のフォーマットに固執するか、有効なものを変更しています)。

ファジングの目的は通常、アプリケーションのクラッシュを引き起こすことです。次に、このクラッシュをデバッガーまたはメモリ監視ツール(Valgrindなど)で分析して、メモリ破損の脆弱性がトリガーされたかどうかを確認し、修正(または悪用)します。

ファジングを使用すると、無効な入力のlotsでアプリケーションを起動し、既知のクラッシュが発生したときにアプリケーションの詳細な分析を延期できます。

ファズテストとWeb脆弱性スキャナーの使用はどちらも、フィールド自動化された脆弱性テストの手法であるという共通点があります。ただし、Webスキャナーは、非常に戦略的で高度な攻撃を使用して特定の脆弱性を検出します。さまざまな仮定、Webアプリの入出力処理の操作。 Fuzzersはそれほどスマートである必要はありません(もちろん可能ですが)。

ああ、これはそれほど重要ではないかもしれませんが、たとえば、sqlmapはSQLインジェクションの欠陥をスキャンするだけでなく、それらを悪用する際に非常にスマートな仕事をします。

5
freddyb