Dr.セキュリティ®

脆弱性診断のやり方①
ネットワーク機器

この記事を書いた人

Dr.セキュリティ®
代表技術者 冨田 圭介

DFプロ認定資格保有
① CDFP-B(基礎資格)
② CDFP-P(実務者資格)
脆弱性診断士資格保有
冨田 圭介

2種類の方法をご紹介

ネットワーク機器に対するスーパー簡易的な脆弱性診断のやり方として、当記事では下記の2つの方法をご紹介します。

  • ①【素人向け】表層解析(脆弱性情報の検索)
  • ②【エンジニア向け】ポートスキャン(不意のポート開放の確認)
上記①・②は確認できる内容がそれぞれ異なります。①表層解析では「製品自体の脆弱性」を確認でき、②ポートスキャンでは「設定ミス等による脆弱性」を確認できます。このようにそれぞれで確認できる脆弱性の性質が異なりますので、どちらか一方ではなく両方を実行すると良いです。

ただし②ポートスキャンにはある程度のネットワークに関する知識が必要ですし、ポートを管理したことが無い人がスキャン結果を見てもチンプンカンプンで混乱するだけだと思います。また、ファイアウォールのことをきちんと理解せず出鱈目にポートの設定してしまうと、高確率で障害・不具合が発生します。なので「私は素人だ」という自覚がある人は②ポートスキャンをおこなわず①表層解析だけに留めたほうが良いかと思います。素人ではなくエンジニアの方で、ポートやファイアウォールのことを理解している場合には、②ポートスキャンまでお試し頂くと良いです。
それでは以降で①②それぞれのやり方をご説明します。

①【素人向け】表層解析(脆弱性情報の検索)

概要

ルーターの製品自体に脆弱性があるか否かを確認するために、脆弱性情報のデータベースを製品型番で検索してみる、という脆弱性診断の方法を説明します。
大まかな流れは次の通りです。

  1. ルーターの製品型番をメモする
  2. 脆弱性情報のデータベースを検索する
  3. 検索結果を確認する
  4. 検出漏れを防ぐためにWeb検索も併用する

Step.1 機器情報の確認

  1. ルーターの型番(品番、モデル番号などと表記される場合もあります)
  2. ルーターのファームウェアのバージョン(OSバージョンと表示される場合もあります)
上記の2点を確認してメモに記して下さい。型番はルーターの側面や底面に貼られたラベルなどで確認できるかと思いますが、ファームウェアバージョンはそれらに記載されませんので、ルーターの管理画面(CLIの場合はコンソール画面)を確認する必要があります。管理画面の開き方や各情報の見方はルーター毎に異なりますので、ルーターの説明書をお読み下さい。

Step2. JVN iPediaで検索

「JVN iPedia」とは、平たく言うと脆弱性の情報を無料で閲覧・検索できるサービスです。
【URL】https://jvndb.jvn.jp/

「脆弱性対策情報データベース検索」という部分(下の画像の赤枠部分)に、Step1でメモした型番を入れて検索すると、当該製品の脆弱性がJVNに登録されているか否かを確認できます。

Step3. JVNの検索結果を確認


上の画像のように、検索結果に「該当するデータがありません。」と表示された場合は、JVNのデータベースには当該製品の脆弱性情報が登録されていないことを示しています。この場合は「製品自体の脆弱性」は問題無さそうだと判断できますが、しかしこの段階ではまだ断定しません。(後述のStep4でもう少し検索してみます)

続いて、製品自体に脆弱性がある場合の例をご紹介します。

上の画像のように、検索結果に当該製品が表示される場合は、製品自体に脆弱性があることを示しています。各行の先頭列の「JVNDB-」で始まるリンク部分をクリックすると、その脆弱性の情報を閲覧できます。


上の画像は脆弱性情報の中にある、「影響を受けるシステム」の項目の部分です。
1つ目の型番の行を見ますと、「ファームウェア 1.24およびそれ以前」と表示されています。これはその文言のとおり、ファームウェアバージョンが1.24よりも前のバージョン(古いバージョン)の場合は脆弱性があることを意味しています。

Step1でメモしたファームウェアバージョンが上記のバージョン以前のものである場合は「脆弱性がある」と判断し、それよりも新しい場合は「脆弱性は無い」と判断します。

【重要】けっこう間違えがちなこと

下記の2つのバージョンは、どちらが新しいバージョンですか?

  • 1.23.4
  • 1.5.67
この問いに対して、「1.5.67」と答える人が結構います。
それは誤りです。
正解は、1.23.4の方が新しいバージョンです。

間違える理由は、ピリオドを無視して連続する数値だと解釈しているからです。算数のように「左側が大きい桁で、右に向かって10の位が下がっていく。」というように解釈すると誤った答えとなります。
  • 1234
  • 1567
こう見ると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等で「型番 + 脆弱性」をキーワードにして検索してみると良いです。
なぜそうするかと言うと、Googleの検索結果は検索キーワードに完全一致するものだけでなく、似たようなキーワードのWebページも検索結果の一覧に表示されるので、JVNに登録は無いけれど、実は脆弱性があるかも? と気付けるかも知れないからです。

例えば、製品の筐体カラーが「白色」と「黒色」とで型番がちょっと違うようなケースをイメージして下さい。

  • 製品の筐体カラーが「白色」で、型番は「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サイトのサポートページなどで製品型番を検索し、お知らせや更新情報などがないかご確認下さい。もし見つけられない場合はメーカーのサポートセンターにお問い合わせ下さい。

②【エンジニア向け】ポートスキャン(不意のポート開放の確認)

概要

私がこれまでに担当してきた事案において、ファイアウォールのポート開放の設定と、実際に開放されているポートの状態が異なっているというケースが時々ありました。なぜそのような現象が起こるか、その原理を説明すると冗長になるためここでは割愛しますが、大雑把に言いますとファイアウォールが起動した後に生じた誤操作、バッチ処理の不具合、マルウェア/サイバー攻撃などが原因で、ファイアウォールで閉じているはずのポートが実際には開いてしまっていることがあるのです。
肝心なことなので強調してもう一度書きます。

ファイアウォールの設定を確認すると、しっかり閉じている。
それなのになぜか、実際には開いている。

こうなると設定状況を確認するだけではポートの異常に気付けないので非常に厄介です。

この脆弱性を検出するためには、実際のポートの状態を検査する「ポートスキャン」をおこなうのが最も確実な確認方法となります。

Step1. ポートスキャンツール「Nmap」をインストール

ポートスキャンの定番のツールである「Nmap」という無料アプリを使用します。
Nmapのオフィシャルサイト:https://nmap.org/

Windows, Mac, Linux版がありますので、ご使用環境に合うファイルをダウンロードしインストールして下さい。

以降ではWindows PCを使用する場合の例をご紹介します。
Nmapを起動すると下の画面(GUIの「Zenmap」)が表示されます。

Step2. ルーターのIPアドレスを確認

  1. WAN側のIPアドレス(グローバルIPアドレス)
  2. LAN側のIPアドレス(プライベートIPアドレス)
上記の2つのIPアドレスを確認し、メモに記して下さい。
どちらか一方ではなく、必ず両方とも確認&メモして下さい。
これらのIPアドレスはルーターの管理画面で確認できます。管理画面の開き方や見方はルーター毎に異なりますので、ルーターの説明書をお読み下さい。

Step3. LAN側からのスキャン実行

Nmap(Zenmap)の画面にコマンドを入力してスキャンしてください。

  1. 「ターゲット」に、ルーターのプライベートIPアドレスを入力。
  2. 「コマンド」に、Nmap -sS -p 1-65535 -T4 -Pn **** を入力。
    (****の箇所にはローカルIPアドレスを入れます)
  3. 「スキャン」をクリック
  4. スキャンが完了するまで待ちます。

Step4. LAN側のスキャン結果を確認


スキャンが完了すると上の見本のようにスキャン結果が表示されます。
表示された一覧のなかに、不意に開放されてしまっているポートがないかご確認下さい。

Step5. WAN側のスキャン&確認

Step3・4ではLAN側(プライベートIPアドレス)に対してスキャン&確認しましたが、これと同様に今度はWAN側(グローバルIPアドレス)に対してスキャン&確認して下さい。

不意のポート開放を検出した場合

不意のポート開放は重大なインシデントに繋がりやすいので、なぜ開いてしまったのか原因を探るべきだと思いますが、まずは安全のために閉じるべきですので、ファイアウォールを再起動するなどして対処して下さい。

フォレンジック調査も視野に入れて下さい

マルウェア/サイバー攻撃によってポートを開放されてしまった場合ですと、ネットワーク内に侵入されているおそれが強く、LAN内の端末・サーバーが侵害されている可能性も大きいため、フォレンジック調査やスレットハンティングの実施をご検討頂いたほうが良いです。

関連ページ