LinuxでNessus脆弱性スキャナーを使う方法|インストールからスキャン結果の分析まで徹底解説

ペネトレーションテストの担当者の方や、ネットワークのセキュリティレベルを可能な限り高く保ちたいと考えている方にとって、Nessusは強力な味方となるツールです。Nessusは世界中で広く利用されている脆弱性スキャナーで、WebベースのGUIを使ってさまざまなネットワーク脆弱性スキャンを実行できます。本記事では、業界をリードするこの脆弱性スキャナーが持つ優れた機能を最大限に活用する方法を、インストールからスキャン結果の分析まで段階的に解説します。
Nessusとは?
Nessusは、サイバーセキュリティ企業であるTenable社が開発した脆弱性スキャナーで、ネットワークに対して詳細な脆弱性スキャンを実行できます。OSやWebサーバーなど、幅広い技術をカバーするように設計されており、それぞれの技術に影響を及ぼす可能性のある脆弱性を自動的に検出します。公式サイトによると、このスキャナーは68,000種類以上のCVE(Common Vulnerabilities and Exposures:共通脆弱性識別子)をチェックできるとのことです。
ライセンスの種類
Tenable社は、脆弱性スキャンのニーズに応じて、Nessusユーザーに3種類のライセンスを提供しています。
Nessus Essentials
無料で利用できるこのプランは、主にサイバーセキュリティを学ぶ学生や教育者、キャリアを始めたばかりの方を対象としています。最大16個のIPアドレスをスキャンでき、無料のコミュニティサポートが利用可能です。
Nessus Professional
コンサルタント、プロのペネトレーションテスター、セキュリティアナリストに最適なプランです。年間2,000ドル以上の価格設定ですが、評価回数無制限、リアルタイムの結果表示、24時間365日の高度なサポート、オンデマンド研修などの特典が含まれています。
Tenable.io
Tenable.ioは、大量の資産をスキャン・分析する必要がある大規模企業向けのエンタープライズレベルの脆弱性管理システムです。クラウド上で管理され、高度なダッシュボードとレポート機能を備えています。
インストール方法
Nessusのインストールは比較的シンプルで、短時間で完了します。Tenable社の公式サイトから、主要なLinuxディストリビューション向けのパッケージをダウンロードできます。
ここでは、Kali LinuxシステムにNessusをインストールする例を紹介します。まず、「Nessus-10.1.1-debian6_amd64.deb」というファイルをダウンロードします。
次に、dpkgコマンドを使ってパッケージをインストールします。
sudo dpkg -i Nessus-10.1.1-debian6_amd64.deb

インストールが完了したら、systemctlコマンドでNessusサービスを起動します。
sudo systemctl start nessusd.service
これにより、ポート8834でローカルWebサーバーが起動し、スキャナーのGUIインターフェースにアクセスできるようになります。お好みのWebブラウザで「https://127.0.0.1:8834/」にアクセスしてください。
初期セットアップの手順
初回起動時のセットアップは、以下の手順で進めます。
- システムに導入するNessusのバージョンを選択します。ここでは無料版を使用するため、「Nessus Essentials」を選択しました。
- 氏名やメールアドレスなどの情報を入力します。フォームを送信すると、Nessusライセンスのアクティベーションコードがメールで届きます。
- ユーザー名とパスワードを設定して、管理者アカウントを作成します。
- 必要なプラグインのダウンロードとインストールが完了するまで待ちます。環境によっては数分程度かかる場合があります。


すべての手順が完了すると、Nessusのデフォルトページが表示され、すぐにスキャンを始められる状態になります。

インターフェースの確認
Nessusをインストールしたら、Web GUIの各ページとその機能を把握しておきましょう。
Scans(スキャン)ページ
「Scans」ページはNessus Web GUIのメインページです。過去のスキャン履歴の閲覧、以前のスキャン結果のインポート、スキャンの検索などがここから行えます。

Settings(設定)ページ
ここではNessusのインストール環境を管理でき、アカウント管理やスキャナーの動作設定など、各種管理タスクを実行できます。

Policies(ポリシー)ページ
独自のポリシーを実装したい場合は、このページで設定します。Nessusのポリシー機能を使うと、スキャン中に実行されるアクションを定義してテンプレートとして保存できます。テンプレートを活用すれば、作業時間の短縮とスキャン業務の効率化が実現できます。

Plugin Rules(プラグインルール)ページ
このページでは、Nessusが使用する各プラグインに対して、特定のプラグインを非表示にしたり、重要度(深刻度)を変更したりするルールを指定できます。

スキャンの実行方法
ホストディスカバリースキャンは、Nessusで実行できる最も基本的なスキャンの一つであり、最初に試すのに適したスキャンでもあります。ネットワーク上に存在するホストと、それらに関する情報を検出します。
まず、Scansページで「New Scan」をクリックすると、さまざまなスキャンテンプレートが並ぶメニューが表示されます。ここから「Host Discovery」テンプレートを選択しましょう。

テンプレートを選択したら、ホストスキャンの詳細設定を行います。スキャン名の入力とターゲットの指定は必須項目です。任意で説明文の追加や保存先フォルダーの選択も可能です。

「Discovery」設定では、実行するスキャンの種類を指定できます。デフォルトのホスト列挙のほか、OS識別、ポートスキャンといったオプションが用意されています。

スキャンのスケジュール設定も可能です。スキャンの開始日時や実行頻度を指定すれば、定期的な診断を自動化できます。

さらに、スキャン結果の通知を受け取るメールアドレスを指定することもできます。ただしこの機能を利用するには、事前に設定画面でSMTPサーバーの構成が必要です。

このほか、レポート設定や高度な設定項目もあり、スキャンをさらに細かくカスタマイズできます。

要件に合わせてスキャンをカスタマイズしたら、「Launch」ボタンを押してすぐにスキャンを実行しましょう。

スキャン結果の分析方法
スキャンが完了したら、Scansページに戻り、該当するスキャン名をクリックしてレポートを開きます。
スキャンレポートページでは、以下のような情報を確認できます。
- Hosts(ホスト):スキャン中に検出されたすべてのホストが一覧表示されます。個々のホストをクリックすると、より詳細な情報を確認できます。
- Vulnerabilities(脆弱性):スキャナーが検出したすべての脆弱性が、デフォルトではCVSSスコア順にランク付けされて表示されます。
- VPR Top Threats:Tenable社のVPR(Vulnerability Priority Rating)システムによって優先順位付けされた、特に注意すべき脅威となる脆弱性を確認できます。



レポートをエクスポートしてさらに詳しく分析したい場合は、「Export」をクリックして「.nessus」形式のファイルをダウンロードします。

よくある質問
1. 「Essentials」版は無期限に使い続けられますか?
はい、無料の「Essentials」版は無期限で利用できます。ただし、有料ライセンスのトライアル版を使用している場合は有効期限があるため、注意が必要です。
2. ダウンロードページにUbuntu 21.10用のパッケージが見つかりません。20.04用のパッケージを代わりにインストールしても問題ありませんか?
はい、問題ありません。Ubuntu 20.04用のパッケージでも21.10上で正常に動作します。
3. このスキャナーでLog4shell(Log4j)の脆弱性を検出できますか?
はい、検出できます。Nessusは、ネットワークやシステム内のLog4shell脆弱性をスキャンするのに最適なツールです。この目的のために、シンプルかつ効果的な専用テンプレートが用意されています。
-
Linuxのssコマンドでネットワーク接続を監視する方法【基本から実践テクニックまで】
Linuxを使っていると、ネットワークの状態をもっと詳しく知りたい場面に必ず出会います。そうしたニーズに応えられるツールは数多く存在しますが、中には扱いが複雑なものもあります。ssコマンドは多くのLinuxマシンに標準でインストールされているため、その使い方を知っておくと非常に便利です。ssコマンドとは?2文字だけのコマンド名は一見謎めいて見えますが、実際はとてもシンプルです。多くのLinux/Unixコマンドと同じように、コマンド名はその機能を表す略語になっています。「ss」は「Socket Statistics(ソケット統計)」の略です。Socket Statisticsは、従来のnets
-
Linuxのwatchコマンドの使い方と実用例をわかりやすく解説
Linuxのwatchコマンドは、指定したコマンドを一定間隔で繰り返し実行し、その結果を画面に表示し続けるためのツールです。コマンドの出力が時間とともにどう変化するかをリアルタイムで監視したい場合に非常に便利です。この記事では、watchコマンドの基本的な使い方と、覚えておくと役立つ実用的な例を紹介します。 watchコマンドの基本構文 watchコマンドの構文は以下のとおりです。 watch オプション コマンド 各要素の意味は次のとおりです。 オプション: 後述の表から選択したオプションを指定します。watchコマンドのデフォルト動作を変更できます。 コマンド: watchが繰り返し実行