概要
IoT等の製品自体に脆弱性があるか否かを確認するために、脆弱性情報のデータベースを製品型番で検索してみる、という脆弱性診断の方法を説明します。
大まかな流れは次の通りです。
- IoT等の型番等の情報をメモする
- 脆弱性情報のデータベースを検索する
- 検索結果を確認する
- 検出漏れを防ぐためにWeb検索も併用する
Step.1 型番等の確認
- 型番(品番、モデル番号などと表示される場合もあります)
- ファームウェアの名前とバージョン
- アプリの名前とバージョン
型番は機器に刻印や印字されている、またはラベルが貼ってあることが多いかと思いますが、もしそのような物が見当たらない場合は製品パッケージや納品明細などでご確認ください。
次に、ファームウェアの名前とバージョンをご確認下さい。ただしそれらは確認できる製品とそうでないものがあります。製品の説明書の中で、製品の管理画面へのアクセス方法やアップデート方法が書かれてある場合にはファームウェア情報を確認できるはずですので、説明書を参考にしてファームウェア名とバージョンを探して下さい。もし説明書にそのような記載がなくファームウェア情報を見ることができない場合は、その情報の取得は保留して下さい。
最後にアプリに関して、IoT等をスマホアプリで設定・管理する形でご使用されていることも多いかと思います。その場合は、そのアプリ(以下では「管理アプリ」と言います)の名前とバージョンをご確認下さい。なお管理アプリを使用せずに運用している場合は、その名前とバージョンの確認は不要です。
Step2. JVN iPediaで検索
「JVN iPedia」とは、平たく言うと脆弱性の情報を無料で閲覧・検索できるサービスです。
【URL】https://jvndb.jvn.jp/
「脆弱性対策情報データベース検索」という部分(下の画像の赤枠部分)に、Step1でメモした型番やアプリ名で検索すると、当該製品の脆弱性がJVNに登録されているか否かを確認できます。
Step3. JVNの検索結果を確認
上の画像のように、検索結果に「該当するデータがありません。」と表示された場合は、JVNのデータベースには当該製品の脆弱性情報が登録されていないことを示しています。この場合は「製品自体の脆弱性」は問題無さそうだと判断できますが、しかしこの段階ではまだ断定しません。(後述のStep4でもう少し検索してみます)
続いて、製品自体に脆弱性がある場合の例をご紹介します。
上の画像のように、検索結果に当該製品が表示される場合は、製品自体に脆弱性があることを示しています。
先頭列の「JVNDB-」で始まるリンク部分をクリックすると、その脆弱性の情報を閲覧できます。
上の画像は脆弱性情報の中にある、「影響を受けるシステム」の項目の部分です。
ファームウェアのバージョンが「1.87.00」のものが該当すると書かれてあります。
この例ではバージョンの値が固定でしたが、次のように範囲が示されることも多くあります。
【例1】 1.23.40およびそれ以前(補足:1.23.40より古いものは全て該当)
【例2】 1.22.33 から 1.33.44
Step1でメモしたファームウェアバージョンが上記のバージョン以前のものである場合は「脆弱性がある」と判断し、それよりも新しい場合は「脆弱性は無い」と判断します。
もしStep1でファームウェアバージョンが確認できなかった場合には、ここでは判断しようがありませんので、メーカーのサポートにお問い合わせ下さい。
【重要】けっこう間違えがちなこと
下記の2つのバージョンは、どちらが新しいバージョンですか?
この問いに対して、「1.5.67」と答える人が結構います。
それは誤りです。
正解は、1.23.4の方が新しいバージョンです。
間違える理由は、ピリオドを無視して連続する数値だと解釈しているからです。算数のように「左側が大きい桁で、右に向かって10の位が下がっていく。」というように解釈すると誤った答えとなります。
こう見ると1567の方が数値が大きいから、1.5.67の方が新しいバージョンだ、というように間違えてしまうわけです。
バージョンの数値は連続する数値ではありません。ピリオドで区切って解釈して下さい。
「1 . 23 . 4」は、1、23、4に分けて読んでください。
左側の1は、「メジャーバージョン」というバージョンを表す値です。
真ん中の23は、「マイナーバージョン」というバージョンを表す値です。
右側の4は、「パッチバージョン」というバージョンを表す値です。
このようにして「1.23.4」と「1.5.67」を比べると、どちらも左のメジャーバージョンは1で同じです。
続いて真ん中のマイナーバージョンの値を比べると、前者は23で、後者は5です。23の方が5よりも大きい、つまり新しいマイナーバージョンということになります。
よって「1.23.4」と「1.5.67」を比べると、「1.23.4」の方が新しいです。
Step4. Web検索してみる
JVN iPediaで型番を検索しても該当する製品がなかった場合でも、Google等で以下のようなキーワードで検索されることをお勧めします。
型番 + 脆弱性
ファームウェア名 + 脆弱性
アプリ名 + 脆弱性
JVNでは正式名称で登録されているため一般呼称で検索してもヒットしない可能性があります。一方、Googleの検索結果は検索キーワードに完全一致するものだけでなく、似たようなキーワードのWebページも検索結果の一覧に表示されるので、JVNに登録は無いけれど、実は脆弱性があるかも? と気付けるかも知れません。
JVNのデータベースには、世の中のあらゆる製品の脆弱性が登録されているわけではありません。そしてIoT等は製品の種類が非常に多く、しかも情報が著しく乏しい海外製品も沢山あります。そのためIoTの脆弱性情報はJVNに登録がないことも多いです。ですのでJVNで検索した結果は何もないからといって、すなわち脆弱性が無いとは判断できないので、Google等で検索してみる方が良いのです。
また、IoT等は「色違い商品」や「限定商品」などの問題があることも多いです。
例えば、製品の筐体カラーが「白色」と「黒色」とで型番がちょっと違うようなケースをイメージして下さい。
- 製品の筐体カラーが「白色」で、型番は「SAMPLE-1000-WH」
- 「白色モデル」のほか、期間限定品として「黒色モデル」が存在し、その型番は「SAMPLE-1000-BlackEdition」
- お手元にあるのが期間限定品の「黒色モデル」だったとします。
- JVNに登録されているのは「白色モデル」の「SAMPLE-1000-WH」だったとします。
この状況で期間限定品の「黒色モデル」の型番「
SAMPLE-1000-BlackEdition」をJVNで検索しても、検索にヒットしない可能性があります。しかしGoogle検索ならば完全一致ではなく“あいまい”な一致結果も表示されます。
例えばGoogleで「
SAMPLE-1000-BlackEdition 脆弱性」をキーワードにして検索した結果、「
SAMPLE-1000-WH」の脆弱性に関するWebページがヒットする可能性があります。
そうすると、「あれ?ちょっと型番が違うけれど、もしかしたら手元の機器にも脆弱性があるかも?」というように気付くことができます。
ここでは色違いの例を紹介しましたが、他にも次のようなことがよくあります。
- 少しスペックを下げて価格を抑えた廉価版
- オプションや付属品を充実させた特別版
- 販売代理店などとのコラボ版
お手元の製品が通常版だとは限りませんので、JVN iPediaだけでなく念の為Google検索もおこなっておいた方が良いです。そして似たような型番のWebページがヒットした場合は、当該製品のメーカーサイトを確認し、お手元の製品と同種のようでしたら、その型番でJVN iPediaを検索してみると良いです。
脆弱性を検出した場合
ほとんどの場合は製品のメーカー(ベンダー)のWebサイトで対処方法がアナウンスされていますので、メーカーWebサイトのサポートページなどで製品型番を検索し、お知らせや更新情報などがないかご確認下さい。もし見つけられない場合はメーカーのサポートセンターにお問い合わせ下さい。
ただし海外メーカーの激安品の場合ですとサポートが実質的に皆無ということも多く、改善不可能というケースも多々あります。そうなるともう、買い替えをご検討頂く他にないです。安全面を考えますと、品質やサポートの面で安心感のある日本のメーカー/ベンダーの製品を選択されることをお勧めします。