• BPnet
  • ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
6つのポイントを徹底図解「脆弱性 解体新書」

「ファジング」「報奨金」――、脆弱性を見つける方法はこんなにある

勝村 幸博=日経NETWORK 2016/12/02 日経NETWORK
出典:日経NETWORK 2015年7月号pp.36-37
(記事は執筆時の情報に基づいており、現在では異なる場合があります)
目次一覧

前回の記事

 ベンダー(開発者)や攻撃者はどうやって脆弱性を見つけているのか。代表的なのは、「ファジング(fuzzing)」と呼ばれる手法だ。調査対象のソフトウエアに、「ファザー」と呼ばれるツールを使って様々なデータを入力し、その応答から脆弱性を探し出す(図4-1)。

図4-1●想定外のデータを入力して脆弱性を探す「ファジング」
図4-1●想定外のデータを入力して脆弱性を探す「ファジング」
「ファザー(Fuzzer)」あるいは「ファイルファザー(File Fuzzer)」と呼ばれるツールを使い、調査対象のソフトウエアに、通常は入力されないようなデータを入力して出力結果を調べる。異常な結果が返された場合には、その処理をした箇所に脆弱性が存在する可能性があると判断する。
[画像のクリックで拡大表示]

 脆弱性の多くは、ソフトウエアに想定外のデータが入力された場合に露呈する。そこでファジングでは、開発者が想定していないような、非常に長い文字列や非常に大きい値/小さい値、負の値などを次々とソフトウエアに入力する。異常な結果を返したり、ソフトウエアが異常終了したりした場合には、その処理した箇所に、脆弱性が存在する可能性が高い。

 ベンダーなら、ソフトウエアのソースコードを検査して、脆弱性の有無を調べる場合も多い。ソースコードを持たない攻撃者は、ソフトウエアのプログラムをリバースエンジニアリングして、ソースコードを入手する(図4-2)。

図4-2●ソースコードに変換して脆弱性を探す
図4-2●ソースコードに変換して脆弱性を探す
調査したいソフトウエアのプログラム(バイナリーコード)を、変換ツールでソースコードに戻してから脆弱性を探す方法もある。パッチが公開されている場合には、パッチを適用する前と後のソースコードの差分を取ると、脆弱性のある箇所を特定しやすい。
[画像のクリックで拡大表示]

 未知の脆弱性を探すには、ソースコードを丹念に調べなければならないが、ベンダーからパッチや修正版が公開されている脆弱性については、修正前と修正後のソースコードの差分を取れば、修正箇所を特定しやすい。

あなたにお薦め

連載新着

連載目次を見る

ITpro SPECIALPR

What’s New!

アプリケーション/DB/ミドルウエア

クラウド

運用管理

設計/開発

サーバー/ストレージ

クライアント/OA機器

ネットワーク/通信サービス

セキュリティ

もっと見る