今回はオープンソースの脆弱性スキャナである 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
自己署名証明書の警告が出るけど、ひとまず無視して開くと次のようなログイン画面が現れる。
先ほどの admin
ユーザと設定したパスワードでログインすると、次のようなダッシュボードに遷移する。
脆弱性スキャンを実行するために Tasks の画面に移動する。
Task Wizard を開く。
ここにスキャンしたいホストを入力する。 今回は自分自身 (ローカルホスト) に対して実行してみよう。
あとは OpenVAS がポートスキャンやらペネトレーションテストを粛々と実行してくれるので気長に待つ。
しばらくすると、次のように Result の画面で実行結果が見られるようになる。
このホストの場合、弱いサイファースイートを受け付けるようになっているのが最も重要度の高い指摘事項だった。 Severity (重要度) は 10 段階中の 5 なので真ん中くらい。
こんな感じで OpenVAS はホストの設定にどんな問題があるかを自動で調べてくれる。
まとめ
今回はオープンソースの脆弱性スキャナである OpenVAS を使ってみた。 当たり前だけど、脆弱性スキャナはこれさえ使っていれば OK というような代物ではない。 あらかじめ決められたルールで調べているに過ぎないので見つけられないものは数多くある。 しかし、あきらかに問題のある設定を自動で見つけ出してくれるというのは心強いんじゃないだろうか。
- 作者: 八木毅,村山純一,秋山満昭
- 出版社/メーカー: コロナ社
- 発売日: 2015/03/17
- メディア: 単行本
- この商品を含むブログを見る
スマートPythonプログラミング: Pythonのより良い書き方を学ぶ
- 作者: もみじあめ
- 発売日: 2016/03/12
- メディア: Kindle版
- この商品を含むブログ (1件) を見る