【セキュリティ】脆弱性診断ツール「Nessus」使ってみた

この記事は GMOアドマーケティング Advent Calendar 2023 9日目の記事です。


こんにちは、GMOアドマーケティングのryoutakoです。普段はRuby on Railsを使った開発やプロダクトの脆弱性診断などセキュリティ関連の業務をしています。

今回はNessusという脆弱性診断ツールについて書いていこうと思います。初めて使うので初期設定や診断までの流れ、結果の見方や使ってみての感想などを書いていければと思います。経緯としては、最近あった社内のセキュリティ勉強会の一環としてNessusに触れる機会があり、その時学んだことの復習も兼ねていければと思います。

Nessusとは

NessusはTenable Network Security社が開発した包括的な脆弱性検知スキャナです。スキャナの中では最多の80,000 CVEの検出が可能で、数万の組織で利用され、世界で最も使われている脆弱性検知スキャナとされています。

今回は無料版の「Nessus Essentials」を使っていきたいと思います。ただし、無料版には診断可能なIPアドレスの数や検出できるCVEに制限があるので、より精密な診断が必要な場合は、有料版の「Nessus Professional」または「Nessus Expert」のいずれかを選択することもできます。

参考:tenable社ホームページ Nessusと他の脆弱性評価ソリューションの比較

 

初期設定から脆弱性診断の準備まで

環境は以下になります。
・macOS Ventura 13.6.1
・Nessus-10.6.3

アクティベーションコードの取得

Nessusを使用するにあたってアクティベーションコードが必要になるため先に取得します。
Nessusのアクティベーションコード取得
今回は無料版を使用するので「Nessus Essentials」の「Register Now」をクリック。

※以降の画像は全てtenable社ホームページ、もしくはNessusの画面をキャプチャしたものです

ユーザー情報を入力して「Get Started」を押すことで、アクティベーションコードがメールに送信されます。

Nessusの初期設定

初めにNessusのダウンロードを行います。

Nessusのダウンロードページの「Tenable Nessus」列の「View Downnlodas」をクリック。
お好みのバージョンでダウンロードしましょう!





ダウンロードできたらパッケージファイルを開いてインストールを行います。
インストールが正常に完了するとNessusの初期設定画面が開きます。localhostで開かれるため証明書関連のアラートが出ますが、「Connect via SSL」をクリックします。





次の画面では「Settings」をクリック。





「Set up purchased instance of Nessus」をチェックして「Continue」をクリックします。





その後の画面でアクティベーションコードの入力、IDとパスワードの設定を行います!(スクショし忘れ)
全てがうまくいくとプラグインなどの診断に必要なデータのダウンロードが始まります。





少し待つと初期設定が終わりNessusの管理画面が開きます🎊

ここまで来れば準備完了!!

脆弱性診断の実行

左のメニューから「My Scans」をクリックし、その後右上の「New Scan」をクリックします。

この画面ではスキャナーという診断に使用するツールを選ぶことができます。デフォルトでいくつかのスキャナーが用意されていますが、今回は「Basic Network Scan」を選択します。





スキャンの設定では「Name」と「Targets」を入力して「Save」します。Targetsには診断を行いたいIPアドレスを入力してください!(無料版では16個まで指定可能です)

他にも診断の強度やポートスキャンの方法を選択することもできますが、今回はデフォルトのままにします。





スキャンの設定が完了すると、「My Scans」に表示されます。
設定を保存しただけではまだ開始されていません。赤枠の「▶︎」をクリックすることで診断が開始されます。



今回は自分が公開しているサイトに対して脆弱性診断を実行しました。
個人で試す場合は必ず自身が管理しているサービスに対して行いましょう!!(無許可で外部のサービスに対して診断を行うと最悪の場合法に触れる可能性があります。)

サイトの規模や設定にもよりますが、今回の診断は30分ほどで完了しました。
詳細画面を開くと診断結果を確認できます。

リスクレベル中として「HSTSヘッダーの未定義」が挙げられていました。(詳細は省きます)

また、全体の脆弱性の割合も確認することができます。今回はかなり規模の小さいサイトを診断したため、そこまで脅威になる脆弱性は検出されませんでした。

以上がNessusによる自動診断の手順となります!

感想

今回は脆弱性診断ツールのNessusについて書いてみましたがいかがだったでしょうか。

Nessusを試してみた感想として、UIがシンプルで標準的な診断に関しては特に難しい設定が不要なため、脆弱性診断ツールをあまり使ったことがない人でも比較的使いやすそうだなと感じました。

一方で、ネガティブな点としては、ドキュメントが全て英語で提供されているため、必要な情報を探す際にやりづらさを感じました。例えば、診断の設定やスキャナーのカスタマイズが必要な場合に手間が増える可能性があるなと感じました。

OWASP ZAPとの比較
過去に記事を書いたことのあるOWASP ZAPという自動診断ツールと比較すると、OWASP ZAPがWebアプリケーションのセキュリティに焦点を当てているのに対し、Nessusはネットワーク全体のセキュリティに焦点を当てているという違いがあります。(NessusでもWebアプリケーションの脆弱性診断を行うことは可能ですが、個人的にその領域はOWASP ZAPの方が優れているというように感じました。)

そのため要件や状況に合わせて最適な方を選択、もしくは組み合わせることが必要だと感じました!
過去記事↓↓↓

この記事は GMOアドマーケティング Advent Calendar 2020 14日目の記事です。はじめにこんにちは、GMOアドマーケティングのR.Yです。今回はタイトルの通り、Railsで作った脆弱性をOWASP ZAPで診断してみたいと思います。自分は主にRailsを使ったWebアプリの開発やWebアプリの脆弱性診断を行うことが多いので、この記事を書くことによってRailsのセキュリティ周りや脆弱性診断を行うツールについての理解をより深められたら良いなと思います。1.用意するものRuby On Rails 5.2.3OWASP ZAP 2.9.02.調べる脆弱性SQLインジェクション2-1.SQ...


告知

明日はY-Kさんによる「GoogleのVertex AI PaLM Embedding APIを使って類似記事タイトルをレコメンドする」です。

引き続き、GMOアドマーケティング Advent Calendar 2023 をお楽しみください!

 

■採用ページはこちら!

https://recruit.gmo-ap.jp/

 

■GMOアドパートナーズ 公式noteはこちら!

https://note.gmo-ap.jp/