Syhunt
  1. HOME
  2. -BLOG
  3. -Syhunt Hybridのハントメソッド(診断手法)を比較!目的別の使い分けを解説

Syhunt Hybridのハントメソッド(診断手法)を比較!目的別の使い分けを解説

公開日:技術ドキュメント

はじめに


Syhunt Hybridでは、WebアプリケーションやWebサイトの脆弱性診断を行う際に、目的に応じたさまざまな「ハントメソッド(診断手法※)」を選択できます。

例えば、

  • SQLインジェクションだけを重点的に調査したい
  • OWASP Top 10に含まれる脆弱性を確認したい
  • サイト全体を網羅的に診断したい

といった要件に応じて、最適なハントメソッドを選択することで、必要な診断を効率よく実施できます。

また、目的に適したハントメソッドを利用することで、不要な診断を省き、診断時間の短縮や調査効率の向上にもつながります。そのため、ハントメソッドの特徴を理解し、適切に使い分けることは、Syhuntを活用するうえで重要なポイントの一つです。

本記事では、Syhuntで利用できる主なハントメソッドの特徴や違いを比較しながら、それぞれの用途について解説します。あわせて、CLIやLua APIから利用する際のコマンド名や指定方法についても紹介 します。

注記

Syhuntでは、診断手法を「ハントメソッド(huntmethod)」と呼びます。本記事では「ハントメソッド」と「スキャンパターン」は同じ意味として扱います。




1. ハントメソッド(診断手法)一覧


Syhuntでは、目的に応じてさまざまなハントメソッドが用意されています。

診断手法コマンド名総当たり
(Brute Force)
脆弱性インジェクション負荷テスト
(DoS)
所要時間
標準アプリ診断
(デフォルト)
appscan通常
サーバー側集中アプリ診断appscanss通常
ディレクトリ・構成総当たりstructbf〇 (入念)長い
古いファイル&バックアップ検出fileold通常
不正入力テスト
(Fault Injection)
faultinj通常
OWASP Top 10 診断top10〇 (Top10限定)通常
OWASP Mobile Top 10 診断top10mob〇 (モバイル限定)通常
CWE Top 25 診断top25cwe〇 (Top25限定)通常
OWASP PHP Top 5 診断top5php〇 (PHP限定)通常
XSS
(クロスサイトスクリプティング)
xss〇 (XSS限定)通常
SQLインジェクションsqlinj〇 (SQLi限定)通常
ファイルインクルージョンfileinc〇 (FI限定)通常
不正なリダイレクトunvredir〇 (リダイレクト限定)通常
マルウェア・不適切コンテンツmalscan〇 (一部)〇 (一部)通常
受動的診断
(パッシブスキャン)
passive通常
クローリングのみspider通常
完全診断
(全項目で網羅する)
completeかなり長い
完全診断
(DoS攻撃テストなし)
compnodosかなり長い
完全診断
(徹底調査モード)
comppnoid〇 (入念)かなり長い



2. ハントメソッド(スキャンパターン)について


Syhuntには、標準的なWebアプリケーション診断を行うためのハントメソッドから、特定の脆弱性や診断目的に特化したハントメソッドまで、さまざまな種類が用意されています。一般的には、まずspiderでサイト構造を確認し、その後、診断目的に応じてappscanやcompleteなどのハントメソッドを選択して診断を実施します。なお、標準のappscan でも攻撃的なテストを実施するため、可能であれば本番環境ではなく、検証環境や複製した環境で実施することを推奨します。

また、通常のハントメソッドでは、ログインパスワードの変更やデータベースへのデータ追加など、アプリケーションの状態を意図的に変更する処理は行いません。



2-1. 標準的なハントメソッド


ここで紹介するハントメソッドは、一般的なWebアプリケーション診断で利用する代表的な診断方法です。 通常はこれらの中から診断範囲や目的に応じて選択します。

① spider
Webサイトのクロールのみを実行し、サイト構造をマッピングします。 攻撃的なテストは一切実施しません。

② appscan
サイト構造を取得したうえで、XSSやSQLインジェクション、ファイルインクルードなど、標準的な各種脆弱性診断を実施します。(指定しない場合は、appscanがデフォルトスキャンになります)

③ complete
HTTPヘッダーを対象とした診断を含め、利用可能な各種診断を実施する完全診断です。

④ compnodos
DoSテストを除いた完全診断を実施します。

⑤ comppnoid
サイト構造をより深く探索するブルートフォースを含む完全診断です。




2-2. 用途別ハントメソッド


こちらは、特定の脆弱性や診断目的に特化したハントメソッドです。 「SQLインジェクションだけを確認したい」「OWASP Top 10への対応状況を確認したい」といった用途に適しています。


① structbf
ブルートフォースは以下をチェックします。

  • 一般的な脆弱なスクリプト
  • 一般的なファイルチェック
  • カスタムファイルチェック(ユーザーファイルチェック)
  • データベースの開示
  • Webベースのバックドア

② fileold
マップされたWebサイト構造の周りで拡張機能チェックを実行します。


③ faultinj
主にフォールトインジェクションの脆弱性をスキャンします。 このスキャン方法を選択すると、インジェクション系以外の診断項目を無効化し、SQLインジェクションやXSS、ファイルインクルードなどのインジェクション系脆弱性に集中して診断します。


④ top10
主にOWASP Top10 の脆弱性をスキャンします。


⑤ top25cwe
主にCWE Top25 Most DangerousSoftwareErrorsをスキャンします。


⑥ top5php
主にPHPの脆弱性 OWASP Top5をスキャンします。

  • リモートコマンド実行
  • DOM XSSを含むクロスサイトスクリプティング(XSS)
  • SQLインジェクション
  • PHPの設定ミス
  • ファイルインクルードを含むファイルシステム攻撃

⑦ xss
主にDOMXSSを含むXSSの脆弱性をスキャンします。


⑧ sqlinj
主にSQLおよびNoSQLインジェクションの脆弱性をスキャンします。


⑨ fileinc
主にファイルインクルードとディレクトリトラバーサルの脆弱性をスキャンします。


⑩ unvredir
主に未検証のリダイレクトの脆弱性をスキャンします。


⑪ malscan
主にマルウェアコンテンツをスキャンします。

  • Webバックドア
  • 悪意のあるコンテンツ
  • 隠しデバッグパラメータ


⑫ passive
Webサイトの構造をマッピングし、次のような攻撃を実行せずにスキャンし、検知された脆弱性を報告します。

  • クライアントサイドJavaScriptの脆弱性
  • さまざまな型式の脆弱性
  • Webテクノロジーの開示
  • 安全でないHTTPヘッダー
  • 時代遅れの脆弱なサーバーソフトウェア
  • 古くて脆弱な参照スクリプト
  • 疑わしいHTMLコメント
  • ソースコードの開示
  • 提供されている悪意のあるコンテンツ



3.ハントメソッドの指定方法


CLIやLua APIでは、-hmオプションを指定することで、利用するハントメソッドを切り替えることができます。 例えば、標準的なWebアプリケーション診断を実施する場合は、次のようにappscanを指定します。

scancore -scanurl:https://example.com -hm:appscan

また、OWASP Top 10に含まれる脆弱性のみを診断する場合は、top10を指定します。

scancore -scanurl:https://example.com -hm:top10

同様に、SQLインジェクションのみを診断したい場合はsqlinj、XSSのみを診断したい場合はxssのように、目的に応じてハントメソッドを指定することで、必要な診断だけを効率よく実施できます。

なお、-hmオプションを省略した場合は、デフォルトのハントメソッド(appscan)が使用されます。




まとめ

Syhuntでは、標準的なアプリケーション診断から特定の脆弱性に特化した診断、さらにはサイト全体を網羅的に調査する完全診断まで、多様なハントメソッドが用意されています。

診断対象や目的によって最適なハントメソッドは異なります。例えば、特定の脆弱性のみを素早く確認したい場合は 「sqlinj」や「xss」、OWASP Top 10への対応状況を確認したい場合は「top10」、包括的な診断を実施したい場合は「complete」や「compnodos」 が適しています。

CLIやLua APIからハントメソッドを指定することで、診断内容を柔軟に切り替えることもできます。それぞれの特徴を理解し、診断目的に応じて適切なハントメソッドを選択することで、より効率的かつ効果的な脆弱性診断を実施いただけます。