脆弱性スキャナー OpenVAS

# OpenVAS
http://www.openvas.org/
Nessus 2 からフォークされたオープンソースの脆弱性スキャナー。

# パッケージ
英語圏の情報を含めほぼ Atomic リポジトリをベースに説明されているが、 EPEL リポジトリで最新版が公開されている。以下は EPEL でのパッケージ一覧。

| パッケージ名              | 説明 |
|-------------------------|------|
| openvas-cli             | Command-line tool to drive OpenVAS Manager |
| openvas-gsa             | Greenbone Security Assistant (GSA) is GUI to the OpenVAS |
| openvas-libraries       | Support libraries for Open Vulnerability Assessment (OpenVAS) Scanner |
| openvas-libraries-devel | Development files for openvas-libraries |
| openvas-libraries-doc   | Documentation for openvas-libraries |
| openvas-manager         | Manager Module for the Open Vulnerability Assessment System (OpenVAS) |
| openvas-scanner         | Open Vulnerability Assessment (OpenVAS) Scanner |

# インストール
## EPEL リポジトリの追加
```bash
yum -y install epel-release && yum -y update epel-release
```
Redis および OpenVAS で EPEL リポジトリを利用する。
extras リポジトリからインストールすると 7-6 がインストールされるが、epel リポジトリでは 7-8 が最新なのでアップデートしておく。

## Redis のセットアップ
```bash
yum install redis
cp -a /etc/redis.conf{,.org}
sed -i '/unixsocket/s/^# //' /etc/redis.conf
systemctl start redis && systemctl enable $_
```
## SELinux の無効化
```bash
sed -i '/SELINUX=/s/enforcing/disabled/' /etc/selinux/config
reboot
```
最後に実行する `openvas-check-setup` コマンドで `For a working OpenVAS installation you need to disable it.` と怒られるので、やむを得ず無効化する。

## netstat のインストール
```bash
yum install net-tools
```
CentOS 7 では netstat がインストールされておらず、チェックスクリプトに `Could not find netstat binary, checks of the OpenVAS services are disabled.` と怒られるので事前にインストールしておく。

## nmap 5.51 のインストール
```bash
yum install https://nmap.org/dist/nmap-5.51.6-1.x86_64.rpm
echo "exclude=nmap*" >> /etc/yum.conf
```
標準リポジトリからインストールした nmap 6.40 だとチェックスクリプトに `Your version of nmap is not fully supported: 6.40` と怒られるので、古いパッケージをインストールする。
また `yum update` でアップデートされないように `exclude` で除外しておく。

## pdflatex のインストール
```bash
yum install texlive-latex-bin-bin
```
CentOS 7 では pdflatex は texlive-latex-bin-bin パッケージに含まれている。

```bash
yum install texlive-titlesec texlive-collection-latexrecommended
mkdir -p /usr/share/texlive/texmf-local/tex/latex/comment
curl -L http://mirrors.ctan.org/macros/latex/contrib/comment/{comment.sty} -o /usr/share/texlive/texmf-local/tex/latex/comment/#1
texhash
```
http://miotramemoria.blogspot.jp/2014/08/centos-7-openvas-pdf-reports.html

## nsis のインストール
```bash
yum install http://www.atomicorp.com/channels/atomic/centos/7/x86_64/RPMS/mingw32-nsis-2.46-12.el7.art.x86_64.rpm
```

## OpenVAS
### インストールと自動起動設定
```bash
yum install openvas-{cli,gsa,scanner,manager}
systemctl enable openvas-{scanner,manager,gsa}
```

### 各種設定
Atomic リポジトリからのインストールの場合は `openavs-setup` コマンドで一発でいけるようだが、 EPEL リポジトリでは見当たらない。

#### Creates a scanner certificate
```bash
sed -i '/default_days/s/365/3650/' /usr/sbin/openvas-mkcert
openvas-mkcert -q
```
`-q` オプションは対話をスキップして新しい証明書を生成する。
`-f` オプションを付けると既存の証明書を上書きして生成する。
デフォルトでは `/etc/pki/openvas/CA/` に `cacert.pem` と `servercert.pem` が作成され、 `/etc/pki/openvas/private/CA/` に `cakey.pem` と `serverkey.pem` が作成される。

#### Creates a client certificate
```bash
sed -i '/default_days/s/365/3650/' /usr/bin/openvas-mkcert-client
openvas-mkcert-client -n -i
```
`-n` オプションは対話なしで証明書を生成し、 OpenVAS スキャナーに登録する。
`-i` オプションは OpenVAS マネージャで使用するためのクライアント証明書をインストールする。
デフォルトでは `/etc/pki/openvas/CA/` に `clientcert.pem` が作成され、 `/etc/pki/openvas/private/CA/` に `clientkey.pem` が作成される。

#### synchronizes an NVT collection with the 'OpenVAS NVT Feed'
```bash
yum install bzip2
openvas-nvt-sync
```
bzip2 がないと `tar (child): bzip2: exec 不能: そのようなファイルやディレクトリはありません` とエラーが出る。

#### synchronizes a SCAP data directory
```bash
sed -i '/SPLIT_PART_SIZE=/s/0/1024/' /usr/sbin/openvas-scapdata-sync
openvas-scapdata-sync
```
`SPLIT_PART_SIZE` を変更しないとエラーが発生する。
ダウンロードと処理に時間がかかる。

#### synchronizes a CERT advisory directory
```bash
openvas-certdata-sync
```
ダウンロードと処理に時間がかかる。

#### 各サービスの起動
```bash
systemctl start openvas-{scanner,manager,gsa}
```

#### Rebuild the database with information from a running scanner
```bash
openvasmd --rebuild --progress
```
処理に時間がかかる。

### ユーザーの作成
```bash
openvasmd --create-user=<username> --role=Admin
openvasmd --user=<username> --new-password=<password>
```
管理画面にログインする際のアカウントを作成する。

### パスワードポリシー
```bash
vi /etc/openvas/pwpolicy.conf
```

### チェックプログラムの実行
```bash
openvas-check-setup
```

## スキャン
### Target の一覧を取得
```bash
omp -u <username> -T
```
### Scan Config の一覧を取得
```bash
omp -u <username> -g
```
### Task を登録
```bash
omp -u <username> -C -n <Task Name> -c <Scan Config> --target=<Target>
```
### Task を実行
```bash
omp -u <username> -S <Task>
```
### Task の一覧を取得
```bash
omp -u <username> -G
```
### Report の一覧を取得
```bash
omp -u <username> -G <Task>
```
### Report を取得
```bash
omp -u <username> -R <Report>
```

## 管理画面
https://192.168.56.101:9443/
前述の「ユーザーの作成」で作成したユーザー名でログインする。

Atomic リポジトリからインストールした場合は 9392 ポートからアクセスするようだが、 EPEL リポジトリからインストールした場合は 9443 ポートからアクセスすることになるようだ。

# セキュリティ関連記事
* [PHPセキュリティ強化モジュール Suhosin](http://qiita.com/bezeklik/items/5e8b1f76465e39dc6cd0)
* [DoS攻撃/ブルートフォース攻撃対策アプリの近況](http://qiita.com/bezeklik/items/6d86a162e278f576e4ca)
* [Linuxアンチウイルスソフト ClamAV](http://qiita.com/bezeklik/items/4696e15c889ffff6bc41)
* [Linux Malware Detect](http://qiita.com/bezeklik/items/43a7d4fce6bc23fe84d3)
* [ルートキット検出ツール Rootkit Hunter (rkhunter)](http://qiita.com/bezeklik/items/bc7affef8afe7c63f2ce)
* [ルートキット検出ツール chkrootkit](http://qiita.com/bezeklik/items/7964ce67f1a1363b694e)
* [ファイル改ざん検知ツール AFICK](http://qiita.com/bezeklik/items/298dafd2aeb053b4ca88)
* [ファイル改ざん検知ツール AIDE](http://qiita.com/bezeklik/items/d144d77a3e54cd35c06b)
* [ファイル改ざん検知ツール OSSEC](http://qiita.com/bezeklik/items/2143c02f1432d90f5c38)
* [ファイル改ざん検知ツール Samhain](http://qiita.com/bezeklik/items/6b7fb75f1a37b0fc41a2)
* [ファイル改ざん検知ツール Tripwire](http://qiita.com/bezeklik/items/2dfb871b9397211c735b)
* [脆弱性スキャナー OpenVAS](http://qiita.com/bezeklik/items/a64cad37eb03a1db2de4)
* [脆弱性スキャナー Nessus](http://qiita.com/bezeklik/items/d6feb569fb5e4d639332)
* [脆弱性スキャナー Nikto](http://qiita.com/bezeklik/items/12643654dc0c45f4eb29)
* [Linuxセキュリティ監査ツール Lynis](http://qiita.com/bezeklik/items/cf9be2deb546c69123e7)