前回はファジングで効率良く脆弱性を検出するためのポイントは準備段階にあると説明した。今回は、ネットワークにつながる、他の機器と連携するといった多くの機能を搭載する「スマートテレビ」を例として挙げ、実際にファジングの準備をどのように進めていくかを、ポイントを踏まえつつ説明する。もし読者の方々が、同じような機能を持つ製品を扱っているならば、ぜひその製品にファジングが適用できるかどうかをイメージしながら読んでいただきたい。また、その機能がどのようなデータを扱うかイメージしやすいように、通信規格やプロトコルなどに関する用語を交えて説明したい。なお、これらの用語の詳しい説明については、それぞれ規格書などをご確認いただきたい。

ポイント1:機能の洗い出し

 ファジングを実施する前に、まずはスマートテレビがどの様な「入力値」を受け付ける機能を持ち、どのような「経路」で受け付けるかを調べる必要がある。簡単に言えばスマートテレビがどんな機器と「どんなデータ(入力値)」を「どのように(経路)」やり取りしているかを調べればよい。まずはスマートテレビがどの様な機能を備えているかをみていこう。

(1)スマートテレビの機能

  IPAではスマートテレビがどのような機能を備えているかを調査し、大きく六つの機能に分類した。(a)有線のLANに接続する「有線LAN機能」、(b)無線LANに接続する「無線LAN機能」、(c)Blu-ray/DVDレコーダーなどの他の機器と連携する「機器連携機能」、(d)Bluetooth通信を使って機器を制御する「Bluetooth機能」、(e)Webサイトを閲覧する「Webブラウザー機能」、(f)画像や動画を再生する「メディア再生機能」である(図4)。

図4 スマートテレビの機能
[画像のクリックで拡大表示]

 (c)機器連携機能とWebサイトを閲覧する(d)Webブラウザー機能の二つの機能は有線LANや無線LANといったネットワークを介して実現している。このように、スマートテレビは実に多くの機能を実装していることが分かった。

(2)入力値として扱うデータ

  次に、これらの機能がどのようなデータをやり取りしているかを調べる必要がある。たとえばマニュアルを精査したり、ネットワークに流れるデータを解析したりすることで、どのようなデータを扱っているかが分かる。調査の結果、スマートテレビの機能が入力値として扱うデータは表1のようなものであった。

表1 スマートテレビの各機能が入力値として扱うデータ
[画像のクリックで拡大表示]

 次はこれらの機能と「入力値」に合ったファジング・ツールの選定をみていこう。本連載では「(e) ウェブブラウザ機能」を例にして説明していく。