情報セキュリティ

ファジング:FAQ

最終更新日:2018年7月17日

ファジングとは

  1. Q1ファジングとは何ですか。

    A1

    ファジングとは、組込み機器やソフトウェア製品のバグや未知の脆弱性を検出する、セキュリティテストです。

  2. Q2ファジングはどのようなテストですか。

    A2

    検査対象に問題が起きそうな様々な細工をしたデータを送り、検査対象に異常な動作が起きないかどうかを検査します。

  3. Q3ファジングで扱う問題が起きそうなデータにはどんなものがありますか。また、どのように作れば良いですか。

    A3

    問題が起きそうなデータの一例として、極端に長い文字列や記号の組み合わせなどがあります。このような問題を起こしそうなデータは、ファジングツール(以降、ツールと表記)を使うと自動的に作成することができます。

ファジングツールについて

  1. Q4ファジングツールでは、どんなことができますか。

    A4

    ツールは、問題が起きそうなデータを大量に自動で作成できます。また、作成データの検査対象への自動送信や、検査対象の状態監視もできます。

  2. Q5ファジングを実施するにあたり、どのようなファジングツールを使えば良いですか。

    A5

    ツールは、検査対象に見合った物を選択しましょう。検査対象がどのような製品であるか、またどのような機能であるか、どのような入力データを受け付けるかが選定のポイントになります。

    検査対象と選択するツールの例
    (検査対象)–(ツール)

    • 画像を表示する製品 – 細工した画像データを生成するツール
    • ウェブサーバ -細工したHTTPリクエストを生成するツール
    • 通信機能 -細工した通信プロトコルを生成するツール(ARP,ICMP,TCPなど)

    IPAで"利用実績のある"ツールに関しては、「ファジング活用の手引き」に記載しておりますので下記の URL をご参照ください。

  3. Q6ファジングツールを選ぶ際は、どのような点に注意すればよいですか。

    A6

    まず、ファジングを実施したい検査対象の機能にツールが対応しているかどうかを確認する必要があります。
    ファジングを実施する際に使用するPCで動作するOS(Operating System)上でツールが動作するか確認することも必要です。また、煩雑な設定をせずに実行できるかどうかを判断することも工数を抑える事に繋がります。
    ファジングツールの選択では、以下の点に注意しましょう。

    1. 検査対象にどのような機能があるか調査し、ファジングを実施したい機能を決定する
    2. ファジング対象とした機能に、どのようなテストデータが入力できるか調査する
    3. 細工したテストデータを作成できるツールの調査をする
  4. Q7ファジングツールには商用のツールやフリーウェアのツールがありますが、どのような基準で活用すれば良いですか

    A7

    商用のツールとフリーウェアのツールの違いについてご説明いたします。基準については、皆様の環境に応じて異なります。
    商用のツールの特徴として、「検査な可能な対象が多い」、「ツールのオプション機能が多い」、「設定項目が多い」、「テストデータ数が多い」などがあります。商用のツールには、レポートの自動作成する機能を持つ物もあります。
    フリーウェアのツールの特徴として、「検査可能な対象が少ない」、「オプション機能が少ない」、「設定項目が少ない」などがあります。ファジングを初めて実施する場合には、フリーウェアを試して効果を実感してみる事をお勧めいたします。
    費用に関する事項は「製品の品質を確保する「セキュリティテスト」に関するレポート」をご参照下さい。

  5. Q8ファジングツールが複数あった場合、更新された日付が最新のツールだけ使えば良いですか。

    A8

    ファジングツールは最新の物だけ使えばいいとは言えません。
    最新のツールであれば、テストが効率化されて、短時間でより高い効果が得られる可能性があります。 しかし、最新のツール以外でも異常動作を検出できる可能性があります。最新のツールで生成しなかったテストデータを更新日時が古いツールが生成し、そこに問題があった場合、古いツールでしか検出できない異常動作もあります。

  6. Q9ファジングツールのテストデータは、どのように作られますか。

    A9

    正常なデータの一部を細工して作られます。

    • FAQ図1
      図1:HTTPプロトコルに対する細工の例

    この図はHTTPプロトコルのGETリクエストの例ですが、正常なデータの一部を細工しています。
    この図の様に、正常な入力データを元に、テストデータが作られます。テストデータはツールによって生成されます。テストデータは、ファジングツールに依存しており、ツールによってテストデータの細工箇所が異なる場合があります。

  7. Q10ファジングツールのテストデータは、どこが細工されますか。

    A10

    正常なデータの内、機器が認識出来るデータの定義に基づいて細工されます。

    • FAQ図2
      図2:TCPプロトコルに細工をする箇所の例

    この図はTCPプロトコルの例ですが、色を付けた箇所が細工されます。ファジングツールによって、細工の箇所は異なります。正常なデータを元に、利用者が指定した箇所を自由に細工できるツールも存在し、一部分だけを固定で細工するツールも存在します。

    詳細はファジング実践資料「テストデータ編」をご参照下さい。

    • ファジング実践資料(テストデータ編)

テストの違いについて

  1. Q11「ファジング」と「既知の脆弱性検査(スキャナー)ツール」はどのような違いがありますか。

    A11

    ファジングと既知の脆弱性検査(スキャナー)ツールは検査する内容に違いが有ります。
    ファジングは未知の脆弱性を発見するために、問題が起きそうなデータを数万から数十万という大量のデータを送ります。
    既知の脆弱性検査(スキャナー)ツールは、既に問題が見つかっているデータに絞って検査しますので、検査数は数百~数千のデータに限られます。

  2. Q12「ファジング」と「ペネトレーションテスト」の違いは何ですか。

    A12

    検査を実施する手法と、実施したことで得られる結果が異なります。
    ペネトレーションテストは組織のサーバやネットワークシステムに対して攻撃者が実際に侵入できるかどうかという点に着目して検査を行います。そのため、運用上のシステムに残存している既知の脆弱性を狙ったり、設計段階での不備を突いたりして実施します。
    ファジングによる検査は、PC向けソフトウェア、組み込みソフトウェア等に対して脆弱性を発現させやすいデータやファイルを送り込み、脆弱性の有無を検査する方法です。他の検査では見つけづらい脆弱性も見つけられます。バイナリ形式のソフトウェアの検査ができることが特徴です。

テストを実施するにあたって

  1. Q13どのような機器に対して、ファジングができますか。

    A13

    データの入力を受け付ける機器であればファジングを実施できます。
    ネットワーク(有線LAN、無線LAN等)の入力をはじめ、画像や音声ファイルというようなファイルを読み込む機器についてもファジングを実施できます。

  2. Q14有線 LAN 以外の入力による通信に対して、ファジングはできますか。

    A14

    有線LAN以外の通信に対してもファジングを実施できます。正常なデータを用意し、一部を細工すればファジングを実施できます。実際に公開されているツールにEDID (Enhanced Display Identification Data) 規格のファジングが出来るものがあります。

  3. Q15ファジングで「バッファオーバーフロー」「OSコマンドインジェクション」等の脆弱性を見つけることはできますか。

    A15

    ファジングで「バッファオーバーフロー」や「OSコマンドインジェクション」等の脆弱性を見つけることは理論上可能です。
    問題が起きそうなデータを送り、異常がおきたデータを分析することで見つけることが出来ます。ただし、任意のコード実行等による具体的な攻撃方法が可能かどうかの分析は技術者がより詳細に解析する必要があります。

  4. Q16ファジングで検査対象に異常が起きた場合、どの様にして原因となったデータを特定すれば良いですか。

    A16

    大量に送り込んだテストデータの中から、テストデータを絞り込んで、異常が起きるデータを特定します。異常が起きた時点の送信データ番号を再送信して、異常が再現することもあります。異常が再現しなかった場合は、機器に異常が起きた時点のテストデータを元に、周辺のテストデータ範囲を決めて再送信します。徐々にテストデータの範囲を絞り込んで最終的に原因となったテストデータを特定します。

    詳細はファジング活用の手引きに記載しておりますのでそちらをご参照ください。

  5. Q17ファジングでどのくらいの数の脆弱性を見つけることができますか。

    A17

    具体的にどの程度の脆弱性が見つかるかについては機器によって異なりますし、「テストデータ数」、「検査時間」、「複数のファジングツールの併用」によって、検出できる数は異なってきます。

    (参考) IPAの実証結果では、情報家電などの通信機能を持った製品(約20製品)から22件の脆弱性を検出しました。脆弱性の検出数については、検査の対象や使用したツールによって異なった結果となりました。

  6. Q18ファジングには、どのくらいの日数をかければ良いですか。

    A18

    具体的な日数は、ファジングを実施する内容やファジングに掛けられる工数等によって変動するので、一概に回答することは出来ません。テストにかけられる工数と使用するツールによって異なります。
    また、検査対象の機器の応答時間や検査する機能によって時間が大きく異なります。
    例えば、TCPとIPで考えた場合、TCPは応答を待つ必要がある事に比べ、IPパケットは応答を待たないため時間が短く済みます。

お問い合わせ先

問い合わせ受付窓口

  • E-mail

    isec-fuzz-inqアットマークipa.go.jp

ご意見をお待ちしております
ファジングに関してのご意見・ご質問等をぜひお寄せください。

更新履歴

  • 2018年7月17日

    リンク情報を修正

  • 2017年6月29日

    リンク情報を修正

  • 2014年6月16日

    本ページを公開