情報セキュリティ ブログ記事

OpenVASで簡易的な脆弱性スキャン

2020/07/27

 

 

OpenVASは、日々更新されているNVT(Network Vulnerability Tests)と呼ばれる脆弱性情報をもとにサーバなどのシステムにおける既知の脆弱性を発見するためのオープンソースの脆弱性スキャナーです。 今回はこのOpenVASのインストール、外部スキャン、ローカルスキャンのやり方を取り上げます。

1.Kali Linuxへインストール

apt-get update
apt-get dist-upgrade
apt-get install openvas

2.OpenVAS の初期セットアップ

openvas-setup’をroot権限で実行することでNVT、Scap Data、Cert Dataの更新とadminユーザの作成が行われます。パスワードを控えておいてください。
※ネットワーク環境によって変わりますが、非常に時間がかかります。

# openvas-setup
...snip...
[>] Checking for admin user
[*] Creating admin user
User created with password '4b22ded9-09ea-4cd0-913b-48f71d3c19d8'.
...snip...

・リモートからアクセスできるように"greenbone-security-assistant.service"を編集します。

OpenVASは停止しておきます。

# openvas-stop

修正:`--listen=127.0.0.1` -> `--listen=0.0.0.0`

[Unit]
Description=Greenbone Security Assistant
Documentation=man:gsad(8) http://www.openvas.org/
Wants=openvas-manager.service

[Service]
Type=simple
PIDFile=/var/run/gsad.pid
ExecStart=/usr/sbin/gsad --foreground --listen=0.0.0.0 --port=9392 --mlisten=127.0.0.1 --mport=9390 --allow-header-host (OpenVasのIP/Host)

[Install]
WantedBy=multi-user.target

編集したらOpenVASを起動します。

# systemctl daemon-reload
# openvas-start

https://(IPまたはHost):9392/login/login.htmlへアクセスしてログインできるか確認します。

・Web管理画面へのログイン時に下記の文言が出力された場合は"greenbone-security-assistant.service"ファイルのExecStartの末尾に`--allow-header-host`を追加してください

The request contained an unknown or invalid Host header. If you are trying to access GSA via its hostname or a proxy, make sure GSA is set up to allow it.

修正:`--allow-header-host (OpenVasのIPまたはHost)`を追加

...snip...
ExecStart=/usr/sbin/gsad --foreground --listen=0.0.0.0 --port=9392 --mlisten=127.0.0.1 --mport=9390 --allow-header-host (OpenVasのIP/Host)
...snip...

3.スキャンタスクの作成と実行

・管理画面にログインしたらまずはtarget(脆弱性スキャン対象サーバ)の設定をします。

画面左上の を押下します。
名前、IPアドレスを適当に設定して、Port listは「All TCP」、 Alive Testは「Consider Alive」を選択してCreate!

Tasksを開いて、、、

「New Task」でタスクを作成します。

タスクを設定していきます。
Nameは適当につけて、ScanTargetsは先ほど作成したTargetを指定します。
Scannerは「OpenVAS Default」でScan Configは「Full and fast」を選択します。

Note :

「Discovery」、「Host Discovery」、「System Discovery」は ターゲットシステムの発見やターゲットシステムで使用しているOSやミドルウェア、ハードウェアを検出するコンフィグでは脆弱性の検出はしません。

「Full and fast ultimate」、「Full and very deep」、「Full and very deep ultimate」は ターゲットのシステムを停止させる可能性のあるプラグインも使用されるので注意が必要です。

ボタンを押してタスクを実行します。

タスクが終了したらレポートで検出された脆弱性を確認しましょう。
デフォルトではQoD(検出結果の信頼度)が70%以上かつSeverityがLow以上の検出結果しか表示されませんので、QoDと0%、Logレベルの情報も確認してみましょう。
画面右上のを押下して、QoDを0%へSeverityがLogの検出結果を表示させます。

4.ローカルスキャンの実行

OpenVASに診断対象サーバのログイン情報(例えばSSHのログイン情報)を持たせ、内部から脆弱性スキャンをすることができます。
一般的な外部からの脆弱性スキャン(以降、外部スキャン)に比べて検知結果の信頼性が高くなることに加え、外部からは発見できない脆弱性を発見することができます。

まずはクレデンシャル情報をOpenVASへ登録します。

画面左上の を押して登録画面を開きクレデンシャル情報を登録します。

クレデンシャル情報を登録したら新しくターゲットを作成して 先に作成したクレデンシャル情報を選択するだけです。

スキャンタスクの作成は外部スキャンと同じです。

結果を見てみると外部スキャンでは発見できなかった脆弱性が検出されているのがわかるかと思います。

今回は、OpenVASを使った外部スキャンと、ローカルスキャンの方法を取り上げました。
検出結果は実際に脆弱性が存在することを示すものではなく、可能性を示すものであることに注意してください。

本記事内容に関する出典・参考:https://openvas.org/

このエントリーをはてなブックマークに追加