CUBE SUGAR CONTAINER

技術系のこと書きます。

オープンソースの脆弱性スキャナ OpenVAS を使ってみる

今回はオープンソースの脆弱性スキャナである OpenVAS を使ってみることにする。 脆弱性スキャナというのは、ホストに既知の脆弱性が含まれないかどうかを自動でスキャンしてくれるツール。

注意: 脆弱性スキャンはポートスキャンやペネトレーションを含むため外部のサーバには実行しないこと

使った環境は次の通り。OS は Ubuntu 16.04 LTS にした。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:    16.04
Codename:   xenial
$ uname -r
4.4.0-89-generic

セキュリティ用途だと Kali Linux を使うことも多いみたい。

インストール

Ubuntu で OpenVAS を使うには以下の PPA を追加する。 追加したらリポジトリの状態を更新しておく。

$ sudo add-apt-repository ppa:mrazavi/openvas
$ sudo apt-get update

現行の OpenVAS バージョン 9 をインストールするときはパッケージ名として openvas9 を指定する。

$ sudo apt-get -y install openvas9

ちなみにインストールの過程で脆弱性をテストするための情報を更新するために rsync プロトコルを使う。 ファイアウォールで阻まれる恐れもあるので TCP の 873 ポートで通信できるか、あらかじめ確認しておこう。

インストールできたら脆弱性のテストに使うデータを更新していく。 過去に見つかった脆弱性とテスト方法の情報をダウンロードしてくるので、これには結構長い時間がかかる。

$ sudo apt-get -y install sqlite3
$ sudo greenbone-nvt-sync
$ sudo greenbone-scapdata-sync
$ sudo greenbone-certdata-sync

更新が終わったら OpenVAS のサービスを起動する。

$ sudo systemctl start openvas-scanner
$ sudo systemctl enable openvas-scanner
$ sudo systemctl start openvas-manager
$ sudo systemctl enable openvas-manager

次に OpenVAS のデーモンの設定を初期化しておく。

$ sudo openvasmd --rebuild --progress

最後に、脆弱性のテストに使う admin ユーザのパスワードを更新しておこう。

$ sudo openvasmd --user=admin --new-password=admin_new_password

これは後述する WebUI などを操作するときに用いる。

脆弱性をスキャンする

以上で OpenVAS を使う準備が整った。

TCP の 4000 番ポートで GSA (Greebone Security Assistant) という WebUI が使えるようになっている。

$ ss -tl | grep 4000
LISTEN     0      32        :::4000                    :::*                    

適当なブラウザで GSA を開こう。

$ sudo apt-get -y install firefox
$ firefox https://localhost:4000

自己署名証明書の警告が出るけど、ひとまず無視して開くと次のようなログイン画面が現れる。

f:id:momijiame:20170809002938p:plain

先ほどの admin ユーザと設定したパスワードでログインすると、次のようなダッシュボードに遷移する。

f:id:momijiame:20170809003038p:plain

脆弱性スキャンを実行するために Tasks の画面に移動する。

f:id:momijiame:20170809003055p:plain

Task Wizard を開く。

f:id:momijiame:20170809003233p:plain

ここにスキャンしたいホストを入力する。 今回は自分自身 (ローカルホスト) に対して実行してみよう。

f:id:momijiame:20170809003300p:plain

あとは OpenVAS がポートスキャンやらペネトレーションテストを粛々と実行してくれるので気長に待つ。

しばらくすると、次のように Result の画面で実行結果が見られるようになる。

f:id:momijiame:20170809003342p:plain

このホストの場合、弱いサイファースイートを受け付けるようになっているのが最も重要度の高い指摘事項だった。 Severity (重要度) は 10 段階中の 5 なので真ん中くらい。

f:id:momijiame:20170809003450p:plain

こんな感じで OpenVAS はホストの設定にどんな問題があるかを自動で調べてくれる。

まとめ

今回はオープンソースの脆弱性スキャナである OpenVAS を使ってみた。 当たり前だけど、脆弱性スキャナはこれさえ使っていれば OK というような代物ではない。 あらかじめ決められたルールで調べているに過ぎないので見つけられないものは数多くある。 しかし、あきらかに問題のある設定を自動で見つけ出してくれるというのは心強いんじゃないだろうか。

コンピュータネットワークセキュリティ

コンピュータネットワークセキュリティ