公開日: |最終更新日時:
ここでは、ファジングについての基礎知識やメリット、ペネトレーションテストとの違いなどをまとめています。
ファジングとは「ファズ・テスト」とも呼ばれており、ソフトウェアやシステムの脆弱性やバグを発見する手法のことです。潜在的な異常の有無を確認するため、ソフトウェアや開発段階やアップデート時にイレギュラーな動作を意図的に起こします。
なお、「ファズ」とはソフトウェアやシステムへ入力する異常データのことで、これを大量に送って挙動を監視します。ファズを大量に送る目的は、データの収集や先入観に囚われず検査するためです。ヒューマンエラーを防ぐために、専用ツールによるテストの自動化を採用しているのもポイントです。
ペネトレーションテストとファジングは混同されやすいですが、この2つは検査対象や内容、得られる結果などが異なります。具体的に、ペネトレーションテストは、すでにパッケージ化されているシステムやネットワーク、サーバーを検査対象としているのが特徴です。これらに対し、攻撃者の視点から擬似攻撃を実施し、ネットワークシステムへ侵入できないかをチェックするため、「侵入テスト」とも呼ばれています。
一方で、ファジングの検査対象はソフトウェアやシステムです。ペネトレーションテストがセキュリティ面や情報管理体制の脆弱性をチェックするのに対し、ファジングは予期せぬトラブルや脆弱な部分を確認するために存在しているでしょう。
ペネトレーションテストの
メリット・デメリット
について詳しく見る
ファジングを行えば、ソフトウェアにおける脆弱な部分を可視化できます。ここで言う脆弱性とは、予期せぬ挙動を招くソフトウェア設計上の欠陥のことです。ソフトウェア内部のデータに関係なく専用ツールによる入力データの自動生成をおこない、ありとあらゆる入力データを大量に送り込むため、不正アクセスやウイルス感染といった外部からの攻撃を予防できるでしょう。
ファジングでは、ソフトウェアの脆弱性とともにバグも発見可能です。もしもバグがあった場合、ソフトウェアプログラムが正常に動かなかったり、想定外の挙動を引き起こす可能性がります。
その点、ファジングツールは人の手では到底入力できない量のデータを送り込めるので、開発段階では気付けなかった不具合を見つけやすいです。バグが見つかればプログラムを直せるため、予期せぬトラブルの回避につながるでしょう。
ファジングでは専用のツールを使ってテストをするため、入力データの生成からソフトウェアへの送り込み、テスト結果の出力までを自動で行えます。人の手をほとんど介さないので、そのぶんテストを実施する労力やコストを削減できるでしょう。
また、ファジングやソフトウェアに関して専門的な知識を有していなくても、自動で検査可能な点も大きなメリットでしょう。
ファジングではツールを使用しますが、テストパターンはあらかじめ決められるため、パターンに該当しない不具合は検知できません。そのため、いくらファジングを行ったとしても、脆弱性やバグが完全になくなったとは言い切れないのです。もしも検出できなかった問題をそのままにしておくと、運用中のトラブルになりかねません。
ファジングツールにはさまざまな種類があるため、ソフトウェアごとに合ったものを使用すれば不具合検出の精度を上げられます。
ファジングによって脆弱性やバグが見つかったとしても、その後に対策を講じなければ意味がありません。そのため、原因分析や問題の修正には専門家のサポートが欠かせないでしょう。外部の専門家に作業を依頼する場合、そのぶんのコストがかかったり情報漏えいのリスクが高まることを念頭に置いておかなければなりません。
ファジングを行った後の原因分析や問題への対処をスムーズかつ安全に終えるためには、専門知識を有する人材を雇用するのがおすすめです。
ここではサイバー攻撃の標的として狙われやすい「製造業」「金融機関」「IoT」の3つの中から、それぞれのおすすめの理由とともにおすすめの企業を紹介します。