製品紹介

脆弱性スキャナ「OpenVAS(オープンバス)(Open Vulnerability Assessment System )」をご紹介します。
OpenVASは、脆弱性スキャナ製品「Nessus(ネサス)」から派生した製品です。
OpenVASの脆弱性データベースは日々更新が続けられており、合計で47,000件以上の定義情報を保有しています(2016年6月現在)。
現在はドイツの企業、Greenbone Networks社により、開発支援されています。

 

公式ホームページ

http://www.openvas.org/

コミュニティページ

http://forums.atomicorp.com/viewtopic.php?f=31&t=8047

 

検証内容

OpenVASを使用してインストールします。
何のセキュリティ対策をしていないサーバに対し、OpenVASを使用してスキャンを実行し、動作検証します。
スキャン結果に対し、推奨される対策を実施して、再度スキャンを実行し、結果を確認します。
定期スケジュールを作成して、定期的に実行できる設定をします。
スキャン結果をメールでレポートできるようにします。

 

検証環境

VMWare Workstation 12 Plyaer
仮想サーバ2台
OpenVASサーバ:CentOS Linux release 7.2.1511 (Core) minimal install PKG
スキャン対象サーバ:CentOS release 6.7 (Final)

 

構成

OpenVAS構成

構成情報が公式ホームページ記載されています。
http://www.openvas.com/software.html

configuration_info

脆弱性定義ファイルのUpdateイメージも掲載されています。
openvas-nvt-syncコマンド(rsync, wget or curlコマンド要素を内包したコマンド)によって定義ファイルをオンラインでダウンロードしています。
http://www.openvas.com/openvas-nvt-feed.html

 

構成要素

構成要素 説明
Client OpenVAS CLI OpenVASをコマンドラインで操作するインターフェース
Greenbone Security Assistant OpenVASをWebコンソールで操作するインターフェース
使用するポート:443 or 9392
Service OpenVAS Scanner スキャンを行うモジュール
使用するポート:9391
OpenVAS Manager Clientからのデータ処理、スキャン結果やNVT’sのデータの管理、アクセス管理などを制御
使用するポート:9390
Data NVT’s Network Vulnerability Tests
脆弱性情報やそれをテストするための設定情報
Results, Config スキャン結果や設定情報が格納されるデータベース

 

関連用語集:
NVT
Network Vulnerability Tests
脆弱性情報やそれをテストするための設定情報

SCAP
Security Content Automation Protocol
脆弱性管理や評価、ポリシー評価を自動化するための標準化を行う技術仕様

CVE
Common Vulnerabilities and Exposures
様々なソフトウェアの保安上の脆弱性についての情報を収集・公開している、世界的に著名なデータベースの一つ

CPE
Common Platform Enumeration
製品を識別するための共通のプラットフォーム名の一覧

OVAL
Open Vulnerability and Assessment Language
コンピューターの脆弱性を確認するための言語を含む環境

 

事前作業

(事前作業を記載する)
SELinux一時無効化

# getenforce
Enforcing
# setenforce 0
# getenforce
Permissive

恒久的に無効化する場合は以下を修正して保存します。
vi /etc/selinux/config
~
SELINUX=disable

 

 

firewalldの停止

# systemctl stop firewalld
# systemctl status firewalld
● firewalld.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)

 

導入手順

(インストール日時記載)2016/11/25現在の最新バージョン
最新バージョンは8.0(2015/4/2リリース)です。

 

ソースからインストールする方法とyumでインストールする方法があります。
今回は簡単に導入できるyumでインストールを行います。
※CentOS の標準リポジトリに、OpenVASのパッケージは存在しませんので、Atomicorp Repositoryというリポジトリを経由して、インストールを行います。

公式ホームページに掲載されているインストール手順を参照して実施しました。
インストール完了までの所要時間は約90分です。

 

目次

脆弱性検査の必要性

1.インストール

2.初期設定

3.Webコンソール接続確認

 

はじめに 脆弱性検査の必要性

ソフトウェアには必ずバグや欠陥が存在し、日々脆弱性が発見されています。
さらに、新たなサイバー攻撃パターンが常に作り出されており、脆弱性を100%なくすことは不可能です。
ビジネスにおけて、インターネットの利用は必要不可欠なものとなっている中、サイバー攻撃は日常的に行われており、企業の機密情報を狙った標的型攻撃やWebサイトの改ざんなど、年々増加しています。
攻撃を成立させないためには、脆弱性を作りこまないこと、新たに発見される脆弱性に適切な対応をすることが重要です。
定期的な脆弱性診断を実施し、結果に基づいて適切に対処することで、セキュリティホールを塞ぐことにより、侵入、改ざん、情報漏えいなどのインシデントによる被害を未然に防ぐことができます。

 

1.インストール

下記コマンドを実行して、Atomicorpからリポジトリを設定します。
CentOS7のMinimam install PKGにはwgetコマンドがデフォルトで入っていないため、事前にインストールしておきます。
# yum install -y wget

# wget -q -O – http://www.atomicorp.com/installers/atomic |sh
Atomic Free Unsupported Archive installer, version 3.0.1

BY INSTALLING THIS SOFTWARE AND BY USING ANY AND ALL SOFTWARE
PROVIDED BY ATOMICORP LIMITED YOU ACKNOWLEDGE AND AGREE:

THIS SOFTWARE AND ALL SOFTWARE PROVIDED IN THIS REPOSITORY IS
PROVIDED BY ATOMICORP LIMITED AS IS, IS UNSUPPORTED AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ATOMICORP LIMITED, THE
COPYRIGHT OWNER OR ANY CONTRIBUTOR TO ANY AND ALL SOFTWARE PROVIDED
BY OR PUBLISHED IN THIS REPOSITORY BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.

For supported software packages please contact us at:

sales@atomicorp.com

Do you agree to these terms? (yes/no) [Default: yes] yes(←yesと入力

Configuring the [atomic] repo archive for this system

Installing the Atomic GPG keys: OK

Downloading atomic-release-1.0-21.el7.art.noarch.rpm: Preparing…
~省略~
Enable repo by default? (yes/no) [Default: yes]: yes(←yesと入力

The Atomic repo 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

 

yum updateでシステムを最新化します。完了までに多少時間がかかります。
# yum -y upgrade
~省略~
トランザクションの要約
================================================================================
インストール 1 パッケージ
更新 83 パッケージ

総ダウンロード容量: 104 M
~省略~
完了しました!

 

openvasをインストールします。
インストール完了までに多少時間がかかります。
# yum -y install openvas
インストールされるパッケージは以下になります。

 

2.初期設定

OpenVAS のインストールが完了したら初期設定を行います。
設定にはbzip2が必要となりますので、下記コマンドで事前にインストールしておきます。
# yum install -y bzip2

以下コマンドを実行する事で、データベースの構築と定義ファイルのダウンロードが開始されます。
完了までに時間がかかります。
# openvas-setup

Openvas Setup, Version: 1.0

Step 1: Update NVT, CERT, and SCAP data
Please note this step could take some time.
Once completed, this will be updated automatically every 24 hours

Select download method
* wget (NVT download only)
* curl (NVT download only)
* rsync

Note: If rsync requires a proxy, you should define that before this step.
Downloader [Default: rsync]
Updating NVTs….
~省略~
Updating OpenVAS Manager database….
Pausing while openvas-scanner loads NVTs…Done

Step 2: Configure GSAD
The Greenbone Security Assistant is a Web Based front end
for managing scans. By default it is configured to only allow
connections from localhost.

Allow connections from any IP? [Default: yes]
Redirecting to /bin/systemctl restart gsad.service

Step 3: Choose the GSAD admin users password.
The admin user is used to configure accounts,
Update NVT’s manually, and manage roles.

Enter administrator username [Default: admin] :(←管理者アカウント名を設定します
Enter Administrator Password:(←管理者アカウントのパスワードを設定します
Verify Administrator Password:(←再度パスワードを入力します

Redirecting to /bin/systemctl start redis.service

Setup complete, you can now access GSAD at:
https://:9392

Created symlink from /etc/systemd/system/multi-user.target.wants/openvas-scanner.service to /usr/lib/systemd/system/openvas-scanner.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/openvas-manager.service to /usr/lib/systemd/system/openvas-manager.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/gsad.service to /usr/lib/systemd/system/gsad.service.

初期設定が完了しました。
Step1では、Update NVT, CERT, and SCAP dataが実行されます。

Step2では、Configure GSADとして、Webコンソールの設定が実行されます。

ここで、コマンドや設定ファイルを一通り確認しておきます。
systemctlに格納されているopenVAS関連のサービスを確認します。
/etc/systemd/system/multi-user.target.wants

gsad.service
openvas-manager.service
openvas-scanner.service

gsad.service GSA(Greebone Security Assistant)の設定変更と起動停止
openvas-manager.service OpenVAS Managerの起動停止
openvas-scanner.service スキャナの起動停止

 

コマンドは/usr/sbinに格納されています。
# ls -l /usr/sbin/ | grep openvas
-rwxr-xr-x. 1 root root 18066 8月 31 23:08 openvas-certdata-sync
-rwxr-xr-x. 1 root root 37993 8月 31 23:08 openvas-migrate-to-postgres
-rwxr-xr-x. 1 root root 11998 9月 13 23:10 openvas-mkcert
-rwxr-xr-x. 1 root root 10976 9月 13 23:10 openvas-nvt-sync
-rwxr-xr-x. 1 root root 973 1月 17 2013 openvas-nvt-sync-cron
-rwxr-xr-x. 1 root root 2555 8月 31 23:08 openvas-portnames-update
-rwxr-xr-x. 1 root root 38378 8月 31 23:08 openvas-scapdata-sync
-rwxr-xr-x. 1 root root 2182488 8月 31 23:08 openvasmd
-rwxr-xr-x. 1 root root 86648 9月 13 23:10 openvassd

openvas-certdata-sync CERTデーターベース取得
openvas-migrate-to-postgres OpenVASのデータベースをPostgreSQLへ移行
openvas-mkcert scanner certificate作成
openvas-nvt-sync NVTの取得
openvas-nvt-sync-cron NVTの取得をcrontabへ登録
openvas-portnames-update IANA(Internet Assigned Numbers Authority)が提供しているサービスネームをImport/Update
openvas-scapdata-sync SCAPデーターベース取得
openvasmd OpenVASマネージャーデーモン
–helpでコマンドの詳細が確認可能
(主な使用例)
バージョン表示
# openvasmd –version
Rebuild the NVT cache
# openvasmd –rebuild
OpenVAS Managerにユーザーとパスワード追加
openvasmd –create-user=<username>
/usr/sbin/openvasmd –user=<username>
openvassd スキャンの実行
–helpでコマンドの詳細が確認可能
(主な使用例)
バージョン表示
# openvassd –version
スキャン対象サーバに対してスキャン実行
# openvassd -a <スキャン対象address>

 

OpenVAS関連ディレクトリを確認します。

# find / -name openvas
/etc/openvas
/var/lib/openvas
/var/log/openvas
/var/cache/openvas
/usr/share/openvas
/usr/include/openvas

 

ログファイルはこちらに格納されています。
/var/log/openvas/
# ls -l /var/log/openvas
合計 2188
-rw-r–r– 1 root root 0 12月 2 12:31 gsad.log(←Webコンソールログ)
-rw-r–r– 1 root root 7919 11月 30 12:07 gsad.log-20161130.gz
-rw-r–r– 1 root root 450 12月 1 11:01 gsad.log-20161201.gz
-rw-r–r– 1 root root 375 12月 2 11:22 gsad.log-20161202.gz
-rw——- 1 root root 6288 12月 2 11:17 openvasmd.log(←OpenVASマネージャーログ)
-rw——-. 1 root root 2171931 11月 30 15:58 openvasmd.log-20161130
-rw——-. 1 root root 306 12月 1 10:39 openvassd.dump
-rw-r–r– 1 root root 340 12月 2 11:18 openvassd.log(←スキャンログ)
-rw-r–r–. 1 root root 26932 11月 30 15:58 openvassd.log-20161130

スキャンのログ出力例:
# tail -f /var/log/openvas/openvassd.log
[Sat Dec 3 10:20:11 2016][3241] Testing localhost (127.0.0.1) [3263]
[Sat Dec 3 10:28:09 2016][3263] Finished testing 127.0.0.1. Time : 477.90 secs
[Sat Dec 3 10:28:09 2016][3241] Test complete
[Sat Dec 3 10:28:09 2016][3241] Total time to scan all hosts : 495 seconds
[Sat Dec 3 10:50:37 2016][12410] Starts a new scan. Target(s) : 192.168.136.132, with max_hosts = 30 and max_checks = 10
[Sat Dec 3 10:50:37 2016][12410] exclude_hosts: Skipped 0 host(s).
[Sat Dec 3 10:50:39 2016][12410] Testing 192.168.136.132 (192.168.136.132) [12416]
[Sat Dec 3 11:07:06 2016][12416] Finished testing 192.168.136.132. Time : 986.54 secs
[Sat Dec 3 11:07:06 2016][12410] Test complete
[Sat Dec 3 11:07:06 2016][12410] Total time to scan all hosts : 1010 seconds

設定ファイルはこちらに格納されています。
/etc/openvas/
# ls -l /etc/openvas
合計 16
drwxr-xr-x. 2 root root 6 9月 13 23:10 gnupg
-rw-r–r–. 1 root root 593 8月 31 23:20 gsad_log.conf(←Webコンソールログの設定ファイル
-rw-r–r–. 1 root root 1183 8月 31 23:08 openvasmd_log.conf(←OpenVASマネージャーログの設定ファイル)
-rw-r–r–. 1 root root 3315 9月 13 23:10 openvassd.conf(←スキャナの設定ファイル
-rw-r–r–. 1 root root 3230 8月 3 2015 pwpolicy.conf(←パスワードポリシーの設定ファイル

cronに登録された定期実行されるタスク
# ls -l /etc/cron.d
合計 16
-rw-r–r–. 1 root root 128 4月 1 2016 0hourly
-rw-r–r–. 1 root root 84 9月 17 2013 openvas-sync-cert
-rw-r–r–. 1 root root 85 6月 28 2010 openvas-sync-plugins
-rw-r–r–. 1 root root 81 11月 23 2012 openvas-sync-scap
# cat ./*
# Run the hourly jobs
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
01 * * * * root run-parts /etc/cron.hourly
# start plugin sync daily at 130am
30 1 * * * root /usr/sbin/openvas-certdata-sync(←毎日13:30にcertdataが更新されます
# start plugin sync daily at midnight
0 0 * * * root /usr/sbin/openvas-nvt-sync-cron(←毎日24:00にnvtが更新されます
# start plugin sync daily at 1am
0 1 * * * root /usr/sbin/openvas-scapdata-sync(←毎日13:00にscapdataが更新されます

https://インストールサーバIP or Hostname:9392にアクセスして、Webコンソール画面にログインします。

 

3.Webコンソール接続確認

Webコンソール画面にログインします。
URLには、以下を入力します。

https://インストールサーバIP or Hostname:9392

login-SS

Username: openvas-setup時に設定した管理者アカウント(デフォルトではadmin)

Password: openvas-setup時に設定したパスワード

※Microsoft edgeでブラウズする場合、表示できない場合があります。
Internet Explorer、Google Chromeでは正常動作確認済みです。

 

まず、時刻設定をUTCからAsia/Tokyoへ変更します。
Extra >> My Settings >> Edit My Settingsをクリックし、Timezoneを変更してください。
画面右上に時刻が表示されていますので、変更されていることを確認できます。

timezone

timezone3

tomezone

それでは、対象サーバにスキャンを実行していきます。
OpenVAS検証ページへ