OpenVAS-8


 OpenVAS-8  (http://www.openvas.org) を使用して、手持ちのサーバーの脆弱性検査を実施してみます。

 

§ 1. OpenVAS について

 OpenVAS (Open Vulnerability Assessment System )はオープンソースの脆弱性評価システムです。

 無償で(GNU GPL)で利用でき、 44,000 を超えるNVTs ( Network Vulnerability Tests = 脆弱性のテスト) で 観測対象に既知の脆弱性があるか、検査が行えます

 OpenVAS は 脆弱性スキャナとして著名だった Nessu から派生しました。 2005年に Nessus が tenable社 の商用製品(オープンソースからプロプライエタリ・ソフトウェア(クローズドソース))になった事をきっかけに、有志により Nessus としてフォークされ、現在(2015.11 時点)も活発に開発が続いています。

 

【OpenVAS-8 の構成要素】

 ユーザーに操作環境を提供するクライアント、スキャンやマネージメントを担当するサービス、検査結果やNVTsなどを格納するデータ、 などの複数のコンポーネントから構成されます。

 

 OpenVAS の操作はブラウザから行います。 GUI で直感的な操作が可能です。 (CLI での操作も可能。)  

 主要なコンポーネントは Linux 上で稼動します。(クライアントは Windows 上でも。)  各コンポーネントは 1台のマシン上で稼動させてもよいし、複数のマシンに分散することもできます。

 

 OpenVAS のインストール方法は主に 2つあり、

  • Source からインストール
  • Binaly Package (3rd Party による提供) をインストール

 

 今回は手軽に導入したかったので、Binaly Package  ~ OpenVAS-8 がプレインストールされた Kali Linux 2.0 ( on VMware Player ) ~ を使います。

 

§ 2. Kali Linux on VMware の導入

 VMWare 用の Kali Linux イメージを 入手 します。 (今回は Kali-Linux-2.0.0-vm-amd64.7z をダウンロード)

 

 7-Zip で圧縮されているので、対応したアーカイバが必要です。 展開が終わったら、仮想マシン構成ファイル( .vmx )を VMware Player にインポートします。 (VMware Player のインストールと 仮想マシンのインポートは割愛します。 Kali Linux に IPアドレスを設定するなどの初期設定は、以前の備忘録 を)。

 仮想マシンが起動しインターネットと疎通できる状態になったら、OSやアプリケーションの更新を実施しておきます。

kali:~# apt-get update
kali:~# apt-get upgrade
kali:~# apt-get dist-upgrade

 

§ 3. OpenVAS-8 のセットアップ

  Kali Linux の OpenVAS 設定方法ページ を参考に、セットアップを行っていきます。(コマンド 1つだけなので、特にむずかしくはありません)

 Kali には openvas がプレインストールされているはずですが、( 下記のように apt-chace で確認できます。 インストールされていない場合は、「 パッケージが見つかりません 」  とったメッセージが表示されます)

root@kali:~# apt-cache show openvas
Package: openvas
Version: 8.0+kali2
Architecture: all
Maintainer: Mati Aharoni <muts@kali.org>
Installed-Size: 52
Depends: greenbone-security-assistant (>= 6.0.1), openvas-cli (>= 1.4.0), openvas-manager (>= 6.0.1), openvas-scanner (>= 5.0.1), sqlite3, xsltproc, rsync
Conflicts: gsd
Homepage: http://www.kali.org
Priority: extra
Section: net
Filename: pool/main/o/openvas/openvas_8.0+kali2_all.deb
Size: 10722
SHA256: 7baa0b34769f0c6e6be6c54b44457f7da75f5cf260b4918627e552ed793ff5bc
SHA1: 04abe85edac2f18de7dd33b9854da0032d96c172
MD5sum: c2868397c273979a4489f672dcebede4
Description: dummy package for openvas
 Dummy package for the opvas vulnerability scanner.
Description-md5: 119ac92ce77042f9a2c3cd2868354d17

root@kali:~#

 

 入っていなかった場合は、下記コマンドでインストールします。

root@kali:~# apt-get install openvas

 

 セットアップです。 

 「 openvas-setup 」 コマンドを実行すると、初期設定と最新のルールセットなどのダウンロードが始まります。 完了まで時間がかかりますので、気長に待ちましょう。 (環境にもよりますが、終了するまで数十分程度。) 

 なお、rsync を使ってリモートサーバーからファイルを取得していますので、FIreWall などが通信系路上にいる場合は、tcp/873 を許可してあげてください。

root@kali:~# openvas-setup
/var/lib/openvas/private/CA created
/var/lib/openvas/CA created

[i] This script synchronizes an NVT collection with the 'OpenVAS NVT Feed'.
[i] The 'OpenVAS NVT Feed' is provided by 'The OpenVAS Project'.
[i] Online information about this feed: 'http://www.openvas.org/openvas-nvt-feed.html'.
[i] NVT dir: /var/lib/openvas/plugins
[w] Could not determine feed version.
[i] rsync is not recommended for the initial sync. Falling back on http.
[i] Will use wget

<・・・中略(かなり省いてます)・・・>

Certificate is to be certified until Nov  4 03:36:48 2016 GMT (365 days)

Write out database with 1 new entries
Data Base Updated
Rebuilding NVT cache... done.
User created with password '5cd4661c-e4fd-4531-845c-57cafb0bffc4'.
root@kali:~#

 ここで、コマンド実行ログの最後の行 「 User created with password 」( 上記例だと20 行目)に注目してください。

 シングルクォーテーション  ‘ ‘ で囲まれた部分にデフォルトユーザ の 初期パスワードが表示されます。 この後必要になりますので、忘れずに控えます。

 

 セットアップが完了すると、openvas のプロセスが 3つ起動し listen 状態になります。

  • OpenVAS Manager (openvasmd)      tcp/9390
  • OpenVAS Scanner (openvassd)          tcp/9391
  • GSAD (gsad)                                                   tcp/9392
root@kali:~# netstat -atnp
稼働中のインターネット接続 (サーバと確立)
Proto 受信-Q 送信-Q 内部アドレス            外部アドレス            状態        PID/Program name
tcp        0      0 127.0.0.1:9390          0.0.0.0:*               LISTEN      3042/openvasmd  
tcp        0      0 127.0.0.1:9391          0.0.0.0:*               LISTEN      3016/openvassd: Wai
tcp        0      0 127.0.0.1:9392          0.0.0.0:*               LISTEN      3047/gsad 

 

§ 4. OpenVAS にアクセス

 Web ブラウザから OpenVAS にアクセスします。

 Kali 2.0 上の OpenVAS-8 では、初期設定ではローカル( 127.0.0.1 )のブラウザからのみアクセスを許可しているため、外部のブラウザから接続する場合は、設定変更(許可)が必要です。

root@kali:~# vim /etc/default/greenbone-security-assistant
# The address the Greenbone Security Assistant will listen on.
#GSA_ADDRESS=127.0.0.1      ## この行をコメントアウト
GSA_ADDRESS=0.0.0.0         ## この行を追加

 GSA_ADDRESS= x.x.x.x が接続を許可する IPアドレスの指定になります。 初期設定では 127.0.0.1 が記載されていますので、コメントアウトするか削除します。 0.0.0.0 を指定すると、全ての IP からの接続が可能となります。 

 変更後、サービスを再起動します。

root@kali:~# systemctl restart greenbone-security-assistant
  これまではこの手順(gsad の再起動)で変更が反映されていたのですが、今回は何度やっても反映されず。。。

 

root@kali:~# systemctl status greenbone-security-assistant
 ↑ で確認すると、 /usr/sbin/gsad は –listen=127.0.0.1 のまま。。。
 しかたないので、gsad プロセスを kill -9 で一旦終了させて、下記のように手動で起動。。。

 

root@kali:~# /usr/sbin/gsad --foreground --listen=0.0.0.0 --port=9392 --mlisten=127.0.0.1 --mport=9390 &
  して、外部のブラウザから接続できるようにしてみました。。。 原因がよく分からないですが、とりいそぎ これで続けます。 理由がわかったらこの記事を更新しておきます。

 

 https で 9392 ポートにアクセスします。 

  • ローカルのブラウザから https://127.0.0.1:9392
  • 外部のブラウザから: https://OpenVASのアドレス(IP or 名前):9392

 

 アクセスするとログインページが表示されます。

  • Username : admin
  • Password : openvas-setup コマンド実行時に提示された文字列
 デフォルトのパスワードは長くて覚え切れないと思うので、パスワードを変更するか、admin ロールのユーザを追加してしまうのがいいかもしれません。(方法は割愛しますが、 Administration > Users 画面から追加可能です)

 

 ログインに成功すると、Task Wizard 画面が表示されます。 ( 検査対象が 3 台を超えた段階で この Wizard 画面は初期表示されなくなりますが、task 画面にある 紫色のアイコン(魔法の杖みたいな)をクリックすることで、このWizard がいつでも表示できます。)

 

 

§ 5. 脆弱性の検査

 Wizard 画面の Quick Start ボックスに 測定対象の IP アドレス or ホスト名を入力して、「Start Scan」 ボタンをクリックすると、スキャンが開始されます。

 脆弱性診断は 擬似攻撃 でもあります。 無断で第三者の管理する機器やサイトに診断を行った場合、不正アクセス禁止法に触れる場合もあります。 自分の所有物に対してのみ実施するよう、ご注意を。

 

 診断が終了すると、下記のように結果サマリが表示されます。 (診断が終了した対象は、Status が Done になります)

 

  ↑ 上記画面内の Status 「Done」  をクリックすると、その対象で検知された脆弱性の一覧ページが表示されます。

 このシステムの場合、58 件の脆弱性( 重大度:高 2件、中 4件、低 1件、 情報レベル 51件 )が検出されました。

 ↑ 上記画面内の 脆弱性 (Vlunerability)の名称をクリックすると、その脆弱性に関する詳細情報(概要、影響度/範囲、解決策、など)が表示されます。 (下記は、「Cacti Multiple Vulnerabilities-June15 (80/tcp) 」 をクリックしたところ)

 ↑ Cacti (様々なデータをグラフ化できる超便利ソフトです)のバージョンが 0.8.8a で SQL インジェクションの脆弱性があるため、0.8.8d 以上のバージョンにアップグレードしなさい、といった情報が記載されています。

 

【脆弱性の深刻度(Severity)について】
  検査結果に表示される「Severity(脆弱性の深刻度)」 は、CVSS (Common Vulnerability Scoring System / 共通脆弱性評価システム)のスコアリングです。
 0.0 ~ 10.0 の範囲で、値が高いほど深刻度が高い事を表します。
 CVSSは NIAC ( National Infrastracture Advisory Council / 米国家インフラストラクチャ諮問委員会)で2004年10月に原案が作成され、現在は FIRST (Forum of Incident Response and Security Teams)が 管理しています。

 

 

§ 6. よく使用する画面の解説

Scan Management > Task

 タスク(検査)の新規作成(星印の青アイコン)/ タスクウィザードの起動(杖印の紫アイコン)や、実施したタスクの結果サマリーが表示されます。

  • Name : タスク(検査)の名称一覧。
  • Status : タスクの状況です。 検査が進行中(緑のプログレスバー)、検査完了(Done)、などが表示されます。 Done のアイコンをクリックすると、診断結果の詳細(結果一覧)が表示されます。
  • Reports : 検査回数、最終検査日が表示されます。
  • Severity : 脅威度。 対象に内在している脅威の度合いが、赤(重大)、黄(中程度)、青(軽微)で表示されます。
  • Trend : 前回の検査から、脅威度が増えたか(上向き矢印)、減ったか(下向き矢印)、変化なし(右矢印)が表示されます。
  • Action : タスクの再開/停止、削除などが行えます。(アイコンにマウスオーバーすると説明が表示されます)

 

Scan Management > Reports

 診断結果の一覧(サマリ)が表示されます。

  • Date : 診断日時が表示されます。 クリックすると、診断結果の詳細(結果一覧)が表示されます。
  • Status : 診断の状況です。 検査が進行中(緑のプログレスバー)、検査完了(Done)、などが表示されます。
  • Task : タスクの名称。
  • Severity : 脅威度。 対象に内在している脅威の度合いが、赤(重大)、黄色(中程度)、青(軽微)で表示されます。
  • Scan Results : 脅威度(大)(中)(軽微)(情報)の数が表示されます。 (False Positive は、「完全には判断しきれないが、脆弱性の可能性があるもの」 といった意味になります。)

 

§ 7.OpenVAS の起動コマンド、アップデートなど

 1) アップデート

 NVTs などの各種データをアップデートするには、下記コマンドを実行します。

root@kali:~# openvas-nvt-sync
root@kali:~# openvas-scapdata-sync
root@kali:~# openvas-certdata-sync
  • NVT = Network Vulnerability Tests
  • SCAP = Security Content Automation Protocol
  • CERT = Computer Emergency Respone Team

 

 2) OpenVAS の起動

 OpenVAS が起動していない場合は、下記コマンドで起動します。

root@kali:~# openvas-start

 もしくは、

root@kali:~# service openvas-scanner start
root@kali:~# service openvas-manager start
root@kali:~# service greenbone-security-assistant start

 

 openvas-start 実行時にエラーなどが出る場合は、openvas-chechk-setup コマンドで問題を確認、FIXします。

root@kali:~# openvas-check-setup
 <ここに長々と診断結果が出力されるので、
error になっている箇所を探し、
提示されている FIX 案を試してみます。>

 うまく行かない場合は 「openvas-setup 」コマンドの再実行で回復する場合があります。

 

 3) OpenVAS の停止

 OpenVAS を停止する場合は、下記コマンドを実行します。

root@kali:~# openvas-stop

 もしくは

root@kali:~# service openvas-scanner stop
root@kali:~# service openvas-manager stop
root@kali:~# service greenbone-security-assistant stop

 

 今回の備忘録は以上となります。

 ユーザーインターフェースがすべて英語なのでとっつきにくいかもしれませんが、サーバー公開前の最終チェックや、日々の運用のお供にと、なにかと役に立つツールですので、是非お試しください。

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です