目次
OpenVAS とは
OpenVAS(Open Vulnerability Assessment System )は、オープンソースで開発されている脆弱性スキャナです。OS やソフトウェアの脆弱性をスキャンして、レポートを作成してくれます。
OpenVAS は、元々はオープンソースで開発されていた Nessus という脆弱性スキャナから派生したものです。Nessus は商用ソフトウェアになってしまいましたが、オープンソースで公開されていたバージョンを元に開発されたのが OpenVAS です。
OpenVAS は Kali Linux には最初からインストールされているので、これを利用します。
Kali Linux は脆弱性診断を行うツールをまとめた Linux ディストリビューションです。Kali Linux のインストールについては、以下の記事を参考にしてください。
なお、今回は Kali Linux で OpenVAS を使用しますが、OpenVAS は、CentOS, Redhat, Debean, Fedora, OpenSUSE, Windows (一部のみ) でも使用することができます。
OpenVAS のコンポーネント
OpenVAS のコンポーネントには、以下のものがあります。今回は、GSD を使ってスキャンを行います。
コンポーネント名 | 内容 |
---|---|
OpenVAS CLI | コマンドラインインターフェースのクライアント |
Greenbone Security Desktop(GSD) | GUI インターフェースのクライアント |
Greebone Security Assistant(GSA) | Web インターフェースのクライアント |
OpenVAS Scanner | スキャン処理を行う |
OpenVAS Manager | 管理ツール |
OpenVAS Administrator | サービスの起動/停止やユーザの管理を行う |
OpenVAS のセットアップ
Kali Linux には OpenVAS が最初からインストールされてはいますが、セットアップを行わないと使用することができません。
セットアップは、メニューの、[アプリケーション] – [Kali Linux] – [Vulnerability Analysis] – [OpenVAS] – [openvas initial setup] から行います。
[openvas initial setup] を選択すると、自動的にセットアップが始まります。プラグインの読み込みなどで少々時間がかかります。一通りセットアップが済むと、パスワードの入力を要求されるので、パスワードを入力します。これが、admin ユーザーのパスワードになります。
セットアップの時点で、OpenVAS Scanner、OpenVAS Manager、OpenVAS Administrator は起動しているので、OpenVAS を使用することができます。
今後は、メニューの [openvas start]、[openvas stop] で OpenVAS のサービスを起動/停止します。
ここで、メニューの、[アプリケーション] – [Kali Linux] – [Vulnerability Analysis] – [OpenVAS] – [openvas check setup] を実行して、セットアップがうまくいっているか確認しましょう。
すると、以下のようにデータベースが作成されていないので、セットアップは完了していないというエラーメッセージが表示されてしまいます。
openvas-check-setup 2.2.3 Test completeness and readiness of OpenVAS-6 (add '--v4', '--v5' or '--v7' if you want to check for another OpenVAS version) Please report us any non-detected problems and help us to improve this check routine: http://lists.wald.intevation.org/mailman/listinfo/openvas-discuss Send us the log-file (/tmp/openvas-check-setup.log) to help analyze the problem. Use the parameter --server to skip checks for client tools like GSD and OpenVAS-CLI. Step 1: Checking OpenVAS Scanner ... OK: OpenVAS Scanner is present in version 3.4.0. OK: OpenVAS Scanner CA Certificate is present as /var/lib/openvas/CA/cacert.pem. OK: NVT collection in /var/lib/openvas/plugins contains 33836 NVTs. WARNING: Signature checking of NVTs is not enabled in OpenVAS Scanner. SUGGEST: Enable signature checking (see http://www.openvas.org/trusted-nvts.html). OK: The NVT cache in /var/cache/openvas contains 33836 files for 33836 NVTs. Step 2: Checking OpenVAS Manager ... OK: OpenVAS Manager is present in version 4.0.0. OK: OpenVAS Manager client certificate is present as /var/lib/openvas/CA/clientcert.pem. OK: OpenVAS Manager database found in /var/lib/openvas/mgr/tasks.db. OK: Access rights for the OpenVAS Manager database are correct. OK: sqlite3 found, extended checks of the OpenVAS Manager installation enabled. OK: OpenVAS Manager database is at revision 74. OK: OpenVAS Manager expects database at revision 74. OK: Database schema is up to date. OK: OpenVAS Manager database contains information about 33836 NVTs. ERROR: No OpenVAS SCAP database found. (Tried: /var/lib/openvas/scap-data/scap.db) FIX: Run a SCAP synchronization script like openvas-scapdata-sync or greenbone-scapdata-sync. ERROR: Your OpenVAS-6 installation is not yet complete!
ここで、エラーメッセージにあるスクリプトを実行してもうまくいかないようなので、メニューの、[アプリケーション] – [Kali Linux] – [Vulnerability Analysis] – [OpenVAS] – [openvas feed update] を実行します。
スクリプトの実行が済んだら、再度、[openvas check setup] を実行してみましょう。
以下のメッセージが表示されたので、セットアップは終了です。
It seems like your OpenVAS-6 installation is OK.
localhost のスキャン
メニューの、[アプリケーション] – [Kali Linux] – [Vulnerability Analysis] – [OpenVAS] – [openvas-gsd] から、OpenVAS GSD を起動します。
起動すると、以下のログイン画面が表示されるので、 Server Address に 「localhost」、User Name に「admin」、パスワードにセットアップ時に入力したパスワードを入力して、[Log in] をクリックします。
OpenVAS では、スキャンのことを Task と呼ぶので、スキャンする場合は Task を新規で作成する必要があります。
メニューの [Task] – [New] から Task の入力画面を表示し、Name に 「localhost」、Scan Config に「Full and fast」、Scan Target に「Localhost」を設定し、[Create] をクリックして Task を作成します。
スキャンを実行するには、Task を選択してスタートボタンをクリックします。
スキャン結果は、以下のようになりました。Medium が 2 件検出されていますね。詳細なレポートを参照するには、レポートをダブルクリックします。
以下が詳細な脆弱性レポートになります。英語表記のため分かりにくいですが、読めばなんとなく分かる程度です。セキュリティ関連なので、英語よりその内容の方が難しいかもしれませんね。
HTML の形式を選択して [Save] をクリックすると、レポートを HTML として保存することができます。
リモートサーバーをスキャン(CentOS)
今度は、リモートサーバーの CentOS に対しスキャンを行ってみましょう。
メニューの [Task] – [New] から、Task の画面を表示し、Name に「CentOS」、Scan Config に「Full and fast」を設定し、Scan Targets の右側のボタンをクリックします。
Target の Name に「CentOS」、Hosts に IP アドレス を設定し [Create] をクリックします。
ここで、SSH 認証を使えない不具合があるのが残念。環境依存なのかバージョンなのか。。。
Scan Targets を「CentOS」にして、[Create] をクリックします。
CentOS のタスクを選択し、スタートボタンをクリックします。
スキャン結果は、Medium が 3 件、Low が 3 件ですね。
レポート詳細は、以下のようになります。SSLv2 のサポートなどが脆弱性としてあがっています。
リモートサーバーをスキャン (Windows)
今度は、リモートサーバーとして、Windows Server 2012 R2 をスキャンしてみます。
手順は CentOS と同じなので、ここでは省略します。
スキャン結果は、High が 1 件、Medium が 1 件ですね。
レポートの詳細は、以下のようになります。WordPress のユーザー ID と名前が漏洩する脆弱性があるようですね。開発環境だからいいですが、本番環境でこれはかなり危険ですね。
まとめ
Kali Linux 上で、OpenVAS のセットアップから使用方法まで見てきました。
OpenVAS は Linux も Windows も関係なく診断でき、かなり詳細にスキャンしていることが分かりました。使用方法も簡単ですし、レポートも脆弱性から対策まで記載されているのがいいですね。
全て英語というのが難点ですが、無料でこれだけの性能の脆弱性診断ができるのなら、英語をちょっと頑張った方がよさそうです。
SSH 認証や Windows 認証が、OpenVAS GSD でうまく動作しなかったのはちょっと残念でした。
コメント