Ubuntu にOpenVAS をインストールする

# はじめに

OpenVAS を本番環境でインストールする前に，どのような手順でインストールできるかを確かめるため，手元の環境で試してみた．
以下の環境で，OpenVAS をインストールしてみた．
参考文献では，Ubuntu 16.04 に対してインストールしていたが，18.04 でもインストールできるのかを含めて実施した．

- OS: Ubuntu 18.04.2 LTS
- 仮想化ソフト: VMware Workstation Pro 15.5.6 build-16341506
- CPU: 1 Processors
- メモリ: 2 GB
- ディスク: 50 GB
- Network Adapter: NAT (192.168.249.128/24)

以下の手順からは，OS インストール済みで実施することを前提としている．
約束事として，#はroot ユーザー，$ は一般ユーザーを表すプロンプトとする．

まず初めに，アップデートとアップグレードをしておく．

```terminal:アップデートとアップグレード
$ sudo apt update
$ sudo apt upgrade
```

最新の状態にしてからインストール開始．

# OpenVAS のインストール

```terminal:リポジトリの追加
$ yes | sudo add-apt-repository ppa:mrazavi/openvas
```

リポジトリが追加できたら，再度情報を更新して，OpenVAS をインストールする．

```terminal:OpenVASのインストール
$ sudo apt update
$ sudo apt -y install openvas9
```

インストール中に，Configuration openvas9-scanner という画面が出てきてyes/no を尋ねられた場合，yes と答える．

# OpenVAS の初期設定

次に，OpenVAS の情報を更新する．
時間をかなり要するので，実行したらしばらく放置でよいと思う．

```terminal:OpenVASの更新
$ sudo apt -y install sqlite3
$ sudo greenbone-nvt-sync
$ sudo greenbone-scapdata-sync
$ sudo greenbone-certdata-sync 
```

更新が完了したら，サービスを起動する．

```terminal:サービスの起動
$ sudo systemctl restart openvas-scanner
$ sudo systemctl restart openvas-manager
```

次に，OpenVAS デーモンの初期化を実施する．

```terminal:OpenVASの初期化
$ sudo openvasmd --rebuild --progress
```

利用できるよう，ファイアウォールを許可する．

```terminal:ファイアウォールの許可設定
$ sudo ufw allow 873/tcp
$ sudo ufw allow 4000/tcp
```

# OpenVAS のログイン

ここまでで，OpenVAS の起動とアクセス許可を含めて許可設定が完了したので，実際にWeb ブラウザにてログインして利用してみる．

ホストマシンのWeb ブラウザより https://192.168.249.128:4000 にアクセスする．

![openvas.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438083/b3faaba6-cda0-e7f9-66fd-925d82e50915.png)

無事にアクセスできたので，ログインしてみる．
ログインに必要な情報はデフォルトで以下の通り:
- ユーザー名: admin
- パスワード: admin

![openvas_loggedin.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438083/c24d0668-f262-6e87-e644-7b3f6757c8a5.png)

ログインできた．ログインしたら，admin ユーザーの初期パスワードを変更しておく．
パスワードの変更はユーザー名をクリックして，設定の編集 (スパナアイコン)を選択するとパスワードが変更できる．
ユーザー名もパスワードもデフォルトであるため，AWS 等のインターネット公開されているサーバー上で構築する際は，初期パスワードを変更するまではポートアクセスにIP アドレス制限を実施するのがベターであると考えられる．

![openvas_password.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438083/16de5def-c3b0-66ee-e754-25f3f733dc5c.png)

# OpenVAS の利用

脆弱性スキャンを実施していく．

「Scans」>「Tasks」を選択する．
以下の画面に移動する．

![openvas_tasks.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438083/0618da5e-26f0-b93e-76a4-aabefc0be329.png)

「Task Wizard」をクリックする．

![openvas_taskw.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438083/f2b51faa-738d-3fe0-1807-f789056724c6.png)

スキャンのターゲットを設定して，スキャンを開始する．
今回は，OpenVAS を実行しているゲストOS を対象としてスキャンを実施する．

![openvas_startscan.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438083/10dafadc-ad5f-7406-38e7-c56ad8bbd911.png)

以下のように，Status がDone になるまで待つ．

![openvas_scanresult.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438083/fe959f6c-ae2c-7905-cdb8-cdf5997a30cf.png)

結果が表示されている．なんか，High が出ている...
スキャン結果の詳細は，「Scans」>「Reports」を選択することで確認できる．
以下の画面に移動した後，実施したスキャンをクリックする．(赤枠で囲った部分)

![openvas_scanreports.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438083/76df3d95-8656-b77f-b0e7-e9d3f9f64b25.png)

スキャン結果の詳細が表示される．

![openvas_scandetails.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438083/8f872c8d-bb96-ce98-da14-5e7035301239.png)

また，Reports Results の横の ▼ をクリックすることで，分類されたスキャン結果の各項目が選択できる．
一番上の項目の「Report: Summary and Download」を選択することで，スキャン結果をエクスポートできる．
すべての結果が欲しいので，「Full report」の行のDownload のプルダウンから「PDF」を選択し，スキャン結果すべてをPDF 形式でダウンロードする．プルダウンのすぐ横の ⇓ ボタンをクリックすると，ダウンロードが開始される．

![openvas_export.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438083/667f7070-b967-29e2-d53a-59fe78064efb.png)

ダウンロードしたファイルはこんな感じ．

![openvas_pdf.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438083/bbcbd0b7-8d5d-28a0-08c6-667b89a9de0c.png)

#おわりに

結構前のVM であるからか，いくつか脆弱性が検出された．スキャンできたことで満足せずに，出てきた結果を読み解きどのようにして改修していくのか，ここで得られた結果を本番環境にどのようにして活用していくのかをこれから考える．
構築やスキャン自体はUI はわかりづらいが，簡単にできたのである程度満足した．

# 参考文献
- https://caya8.hatenablog.com/entry/2017/10/22/193140