OSSでセキュリティー診断ができるソフトウェアである「OpenVAS」を使ってみました。

OpenVAS公式
http://www.openvas.org/

「OpenVAS」は、セキュリティスキャナーでネットワークから診断でき、また診断対象サーバのローカル内からスキャンして診断できます。

このご時世ですから、セキュリティーホールについてはしっかりと把握しておいた方がいいと思い試してみる事にしました。

簡単な「OpenVAS」のインストール方法と使い方についてのメモです。

使用OS
CentOS 5.5 32bit

テスト環境


ホスト名「openvas.local」に「openvas-server」と「openvas-client」をインストールし、ホスト名「testmachine.local」をスキャンします。

「testmachine.local」には、Apacheがインストールされており、デフォルトで起動させます。また、iptablesをオフにしています。


OpenVASインストール方法
①「atomicリポジトリ」を登録する。

[root@openvas ~]# wget -q -O - http://www.atomicorp.com/installers/atomic.sh | sh

Atomic Archive installer, version 1.2
Configuring the [atomic] yum archive for this system

Installing the Atomic GPG key: OK
Downloading atomic-release-1.0-12.el5.art.noarch.rpm: OK



The Atomic Rocket Turtle archive has now been installed and configured for your system
The following channels are available:
  atomic          - [ACTIVATED] - contains the stable tree of ART packages
  atomic-testing  - [DISABLED]  - contains the testing tree of ART packages
  atomic-bleeding - [DISABLED]  - contains the development tree of ART packages

②「atomicリポジトリ」の設定ファイルを編集する。(任意)
[root@openvas ~]# vi /etc/yum.repos.d/atomic.repo
# Name: Atomic Rocket Turtle RPM Repository for CentOS / Red Hat Enterprise Linux 5 -
# URL: http://www.atomicrocketturtle.com/
# Note: This isn't covered by ASL support. -Scott
[atomic]
name = CentOS / Red Hat Enterprise Linux $releasever - atomicrocketturtle.com
mirrorlist = http://www.atomicorp.com/mirrorlist/atomic/centos-5-$basearch
#mirrorlist = http://www.atomicorp.com/channels/atomic/centos/5/mirrors-atomic
enabled = 0 ← 0に変更
priority = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY.art.txt
gpgcheck = 1

③「OpenVAS」のインストールをする。
[root@openvas ~]# yum -y install --enablerepo=atomic openvas-server openvas-plugins openvas-libraries openvas-client

④「OpenVAS」はサーバとクライアントとは、sshで通信するので、それ用の証明書を作成する。
[root@openvas ~]# openvas-mkcert
CA certificate life time in days [1460]:CA有効期限(デフォルト1460)
Server certificate life time in days [365]:証明書有効期限(デフォルト365)
Your country (two letter code) [DE]: JP 国
Your state or province name [none]:デフォルトエンター
Your location (e.g. town) [Berlin]:デフォルトエンター
Your organization [OpenVAS Users United]:デフォルトエンター

-----------------------------------------------------------------------
                   Creation of the OpenVAS SSL Certificate
-----------------------------------------------------------------------

Congratulations. Your server certificate was properly created.

/etc/openvas/openvassd.conf updated
The following files were created:

. Certification authority:
   Certificate = /var/lib/openvas/CA/cacert.pem
   Private key = /var/lib/openvas/private/CA/cakey.pem

. OpenVAS Server :
    Certificate = /var/lib/openvas/CA/servercert.pem
    Private key = /var/lib/openvas/private/CA/serverkey.pem

Press [ENTER] to exit

⑤「OpenVAS」で使用するユーザを作成します。
[root@openvas ~]# openvas-adduser
Using /var/tmp as a temporary file holder.

Add a new openvassd user
---------------------------------


Login : testuser
Authentication (pass/cert) [pass] :
Login password :
Login password (again) :

User rules
---------------
openvassd has a rules system which allows you to restrict the hosts that testuser has the right to test.
For instance, you may want him to be able to scan his own host only.

Please see the openvas-adduser(8) man page for the rules syntax.

Enter the rules for this user, and hit ctrl-D once you are done:
(the user can have an empty rules set)


Login             : testuser
Password          : ***********

Rules             :


Is that ok? (y/n) [y]
user added.

作成された「OpenVASユーザ」の情報は「/var/lib/openvas/users/」直下にあります。

⑥ 「OpenVAS」が使用する「NVT」のアップデートを行う。
[root@openvas ~]# openvas-nvt-sync
・
・
sent 592693 bytes  received 80492311 bytes  300872.00 bytes/sec
total size is 78376644  speedup is 0.97
[i] Checking dir: ok
[i] Checking MD5 checksum: ok

⑦「Openvas」の起動を行う。(プラグインを読み込むのでそれなりに時間がかかる)
[root@openvas ~]# /etc/rc.d/init.d/openvas-scanner start
・
・
All plugins loaded
                                                           [  OK  ]

「OpenVAS」で脆弱性テストをする方法
①「アプリケーション」 ⇒ 「OpenVAS-Client」をクリックする。


②「OpenVAS-Client」が立ち上がったら、「Task」 ⇒ 「New」をクリックして新規タスクを作成する。


③新規で作成したタスクをクリックした後に、「Scope」 ⇒ 「New」をクリックする。


④赤枠で囲んだ所(接続)をクリックする。


⑤「Connect to OpenVAS  Server」が表示されるので、「Hostname」「Login(OpenVASで作成したユーザ名)」「Password」を入力して「OK」をクリックする。


⑥「Connecting…」が開始される。


⑦接続後、「Option」 ⇒ 「General」の部分で、赤く囲まれている部分で実行するスキャンにチェックを入れる。(ここでは、OpenVAS TCP scannerのみ


⑧「Options」 ⇒ 「Target selection」の「Target(s)」にスキャン対象サーバのIPアドレス又はホスト名を入力する。


⑨「Scope」 ⇒ 「実行(E)」をクリックする。


⑩スキャンが始まる。


結果
以下がホスト名「testmachine.local」をスキャンした結果です。



これを見ると、「ssh」と「http(Apache)」にセキュリティーホールがある事がわかりました。

「Security Hole」をクリックすると、セキュリティホールの内容と対処方法が書いてあります。(この結果ではアップデートしろと言われました)

また、開いてるポートも分かります。

「OpenVAS」のテストは自動化が可能なので、一々手動のでのスキャンを行うという作業は省く事ができます。

これは、かなり便利ですね。

一度、自宅サーバの診断をしてみてはいかがでしょうか?

今回は、「OpenVASサーバ」と「OpenVASクライント」を同じマシンにインストールしましたが、サーバとクライアントを分ける事も可能です。

その時は、サーバ側の「tcp/9390」ポートを開けておいてください。

「9390」ポートを開ける方法(iptables例)
[root@openvas ~]# iptables -I RH-Firewall-1-INPUT -p tcp --dport 9390 -s 192.168.0.0/24 -j ACCEPT


参考文献
http://sourceforge.jp/magazine/08/10/22/0022237
http://collab.mynu.jp/wiki/pages/viewpage.action?pageId=7277293
http://soycream.blog121.fc2.com/blog-entry-1.html


8月 22, 2010 at 6:35 pm by 黒ぶちメガネ
Category: Linux