WannaCryの騒動からも学んだように、IT機器のセキュリティを確保するには「脆弱性」をなくすことがとても重要だ。しかし、PCやゲーム機、レコーダー、家電、NASなど、自宅に何台もある機器に対して、それぞれどんな脆弱性があるかを1台ずつ調べることは非常に困難だ。そこで活用したいのが、個人向けに無料で提供されている「Nessus Home」という脆弱性スキャナーだ。ネットワーク内の機器を自動的に検索して、脆弱性の有無を表示することができる。

窓が開きっぱなしであることすら気付かない いつも生活している自宅なら、仮に窓が開きっぱなしになってたり、ドアが壊れていたとすれば、すぐに気付くし、閉めたり、修理したりすることだろう。 しかし、これがITの世界となると、なかなかそうはいかない。 パスワードがデフォルト設定のまま、あるいは単純なもので外部から容易にアクセスが可能な設定だったり、最近話題になった「WannaCry」のようにマルウェアに悪用されかねない脆弱性が残っていたりしても、ほとんどの場合、それらの設定や脆弱性は見逃されてしまう。 もちろん、「いや、PCではきちんとWindows Updateを実施している」という人も少なくないことだろう。 しかし、ゲーム機やレコーダー、NAS、ルーターなどの機器はどうだろうか？ 「そういえば、あの機器の最後にファームウェアアップデートしたのいつだっけ……」などと思った人は、ぜひ今回紹介するNessusを試してみることをお勧めする。 家庭内のネットワークにつながる機器に対して、リモートから脆弱性チェックを実行することで、マルウェアの侵入や不正アクセスなどにつながりかねない欠点を簡単にあぶり出すことができる。

16IPに対して無料で基本チェックを実行できる「Nessus Home」 Nessusは、Tenable Network Securityが販売している脆弱性スキャナーだ。ネットワーク内のPCや各種デバイスに対して、リモートからさまざまな調査を実施することで、OSやアプリケーションの脆弱性や設定の不備などを検出することが可能だ。 企業向けの製品として「Nessus Professional」や「Nessus Manager」が販売されいてるが、「Nessus Home」という一部の機能が限定された家庭向けのバージョンも提供されており、ウェブサイトでメールアドレスと氏名を登録するだけで、無料でインストーラーをダウンロードできる。 製品版との違いは、検査対象となるデバイスの数と利用できる検査の種類だ。Nessus Professionalでは検査対象のIPアドレスの数が無制限となるが（Nessus ManagerはIP数に応じてライセンス）、Nessus Homeでは最大で16個のIPアドレスに対してしか検査を実施できない。 また、実施できる検査にも違いがあり、以下のようにNessus Homeでは基本的な検査となる9つのテンプレートのみが使用可能で、ほかのテンプレートを利用した検査を実施するには、Professionalへのアップグレードが必要になる。 機能比較 Nessus Home Nessus Professional Advanced Scan 〇 〇 Audit Cloud Infrastructure 〇 Badlock Detection 〇 〇 Bash Shellshock Detection 〇 〇 Basic Network Scan 〇 〇 Credentialed Patch Audit 〇 〇 DROWN Detection 〇 〇 Host Discovery 〇 〇 Internal PCI Network Scan 〇 Malware Scan 〇 〇 MDM Config Audit 〇 Mobile Device Scan 〇 Offiline Config Audit 〇 PCI Quarterly External Scan 〇 Plicy Compliance Auditing 〇 SCAP and OVAL Auditing 〇 ウェブ Application Tests 〇 〇 家庭内に存在する機器の数によっては、16IPでは足りなくなる可能性もあるが、この数はあくまでも一度にスキャンを実施できる上限であるため、複数回に分けてスキャンするなど運用で回避することもできる。 また、機能的にもBasic Scanで大きな問題になりそうな脆弱性は発見できるため、家庭で利用するのであれば、Nessus Homeでも十分と言えるだろう。

IPアドレスでスキャン対象を指定 使い方は簡単だ。同社のウェブページからダウンロードしたインストーラーを実行すれば、サービスとしてNessusがインストールされ、ブラウザを経由したウェブ形式のGUIで操作が可能となる（メールで受け取ったキーによるアクティベーションが必要）。 UIは英語となるが、メニューは「Scans」と「Policies」のみとシンプルなので、特に操作に迷うことはないだろう。検査を実行するには、「Scans」メニューから「+New Scan」をクリックし、テンプレートから検査する項目を選択する。 前述したようにNessus Homeでは、以下の9つのテンプレートが利用可能となっているが、まずは「Basic Network Scan」を実行するのが手っ取り早い。ネットワーク内の複数の機器に対して、基本的なスキャンを実施することができる。 Advanced Scan スキャン項目を自分で選択することができるカスタマイズ用スキャン

Badlock Detection CVE-2016-2118/CVE-2016-0128として知られるSambaの重大な脆弱性に特化したスキャン

Bash Shellshock Detection CVE-2014-6271/CVE-2014-7169として知られるbashの脆弱性に特化したスキャン

Basic Network Scan ポートスキャンや一般的な脆弱性チェックなどを実行する汎用的なスキャン

Credentialed Patch Audit 認証や更新プログラムの適用有無をチェックするためのスキャン

DROWN Detection CVE-2016-0800、「DROWN」として知られるSSL v2の脆弱性に特化したスキャン

Host Discovery ネットワーク内のアクティブな端末を検出して開いているポートを調査するスキャン

Malware Scan マルウェアを検出（ファイルシステム検査も設定で可能）するためのスキャン

Web Application Tests ウェブアプリケーションの脆弱性を検出するためのスキャン スキャンの設定は簡単で、テンプレートの設定画面で2つの必須項目を入力するだけでいい。具体的には、「Name」にスキャンを識別するための名前を付け、「Targets」に検査したい機器のIPアドレスを指定すればいい。 IPアドレスは、「192.168.1.10」のように単体で指定することも可能な上、「,」で区切って複数指定したり、「192.168.1.1-192.168.1.99」のように範囲指定したり、「192.168.1.0/24」のようにセグメントで指定することもできる。 前述したようにNessus Homeでは、検査対象のIPアドレスが最大16に制限されているため、特定の端末に絞り込んで検査したい場合は個別に記述することをお勧めしたいが、そもそもネットワーク内の機器にどのIPアドレスが割り当てられているか分からないケースがほとんどだろう。 このため、一般的には「192.168.1.1-192.168.1.99」のように指定して、特定の範囲を総スキャンする設定にしておけばいい。これで、指定した範囲の中から16台の機器に対して検査が実行される。さらに多くの機器を検索したければ、「192.168.1.100-192.168.1.150」などと、別の範囲を指定したスキャンを別途作成すれば、初回の範囲に漏れた機器も検査できる。 IPアドレスを入力後、設定を保存し、一覧から実行ボタンをクリックすれば、作成したスキャンをすぐに実行できる。スケジュールも設定可能なので、定期的に検査するという使い方も可能だ。

「Critical」な脆弱性を発見！ スキャンを実行後、「Hosts」画面を表示していると、ネットワーク内の機器が一つずつ追加され、IPアドレスの横に表示されるバーでその進捗を確認できる。 検査に関する一般的な情報は青い「Info」として表示されるが、注意が必要な項目については緑（Low）や黄（Medium）、橙（High）、赤（Critical）で表示される。 筆者宅で実際にテストを実行してみたところ、まさかの「赤（Critical）」の項目が表示されてしまった。 対象となるIPアドレスをクリックして、「DNS」の項目を確認してみると「HVL-AVRBC5245.example.com」と、リビングへテレビ録画用に設置しているアイ・オー・データ機器製のネットワークHDDであることが分かった。 検出された脆弱性は「Samba 'AndX' Request Heap-Based Buffer Overflow（Critical）」「Samba Badlock Vulnerability（Medium）」「SMB Signing Disables（Medium）」の3種類。 AndXはバッファーオーバーフローアタックでサービスが停止するというものだが、Nessusの詳細情報画面によると、このエクスプロイト（脆弱性を悪用したコード）は存在しないようだ。対処方法としては、パッチの適用が推奨されている。 BadlockもSambaのバージョンが古いことが原因による脆弱性で、こちらはMediumとなっているが、認証されたユーザーになりすましたり、SAMデータベースへのアクセスが可能になるなど、より深刻な脆弱性と言える。 対処方法としては、Sambaを4.2.11/4.3.8/4.4.2以降に更新することが推奨されているが、困ったことに本製品はすでに製造中止となっており、ファームウェアも2011年5月公開のバージョン「1.49」を最後に、更新がストップしている（筆者宅の機器も1.49）。 よって、対処方法としては、ネットワークから切り離してテレビに直結しておくか、思い切って利用を止めて処分するかの2択となりそうだ。 工場やキオスク端末などの組み込み機器としてWindows XPなどの古いOSが残っているという話はよく聞くが、実際に調べてみると、家庭向け機器でも販売が停止され、サポートも中止で、脆弱性が残ったままになった古い機器が意外に残っているいい例と言えるだろう。

ターゲットを絞ってさらに詳しくスキャンする このように、手軽にネットワーク内の機器の脆弱性を発見できるNessusだが、実は上記の方法は簡易的なものとなるため、まだ見逃されている脆弱性が潜んでいる可能性がある。 Nessusでは、リモートスキャン（非認証スキャン）とローカルスキャン（認証スキャン）という2種類のスキャンが用意されており、先のテストはリモートスキャンに相当する。このリモートスキャンは、外部からのポートスキャンや簡単なバージョンチェックなどが中心となるため、より詳細な調査を実施するにはローカルスキャンを実行する必要があるわけだ。 ローカルスキャンは、Nessusにターゲットとなる機器の管理者権限を与えることで、機器側でさらに詳細なコマンドを実行し、脆弱性をチェックする方式となる。スキャンの設定画面で「Credentials」タブに、WindowsもしくはSSHのアカウントを登録することで実行可能となっている。 試しに、筆者宅で無線LANルーターのスループットを測定するiPerf専用として利用しているWindows Server 2012 R2搭載PCをターゲットに、Basic Scanテンプレートでローカルスキャンを実行してみたところ、リモートスキャンでは発見できなかった脆弱性を発見することができた。 「MS15-124」として公開されているInternet Explorerの脆弱性で、リモートコードを実行される可能性があるという深刻なものだ。ベンチマーク用のマシンであり、必要なタイミングでしか起動しないため、アップデートが漏れていた可能性がある。 このほか、同PCでは、SSL 3.0のいわゆるPOODLEの脆弱性も発見された。使用頻度が低いPCのWindows Updateが、いかに忘れられがちかということも実感させられた。 同様に、NASなどの場合も、SSHを有効化した後、管理者アカウントを設定することでNessusによるローカルスキャンを実行することが可能だ。筆者宅のNASは、特に大きな脆弱性は発見されなかったが、ファームのアップデートを忘れているようなケースでは脆弱性が発見される可能性があるので、一度、チェックしてみることをお勧めする。