OpenVas Cli で完全自動スキャンは可能なのか? 実際に動作検証してみた

初投稿になります。

 

目的

プラットフォームの脆弱性検査を行います。

検査ではOpenVasというスキャンツールを使うので、インストール〜動作検証する。

ローカルのMac端末上で実施します。

 

手順

OpenVasのインストール

以下のコマンドを実行します。

docker run -d -p 1234:443 --name openvas mikesplain/openvas

 

上記コマンドは、DockerHubで提供されているイメージをダウンロードして起動しています。

https://github.com/mikesplain/openvas-docker

 

次にOpenVasのWeb画面にアクセスします。

https://localhost:1234/

 

初期設定でアカウント、パスワードはともに「admin」に設定されていますので、入力するとログインできます。

 

Web画面の操作方法は以下の記事を参考にするとわかりやすいと思います。

脆弱性スキャナ「OpenVAS」でのセキュリティチェック | さくらのナレッジ

 

OpenVas Cliを利用する 

Web画面で操作する場合、検査対象が多い場合、設定項目が多い場合、などに大変な思いをするので、それらをコマンドラインから行えないか確認します。

 

先程のOpenVasイメージにコマンドラインツールが既にインストールされているので、

起動中のOpenVasのDockerコンテナの中へアクセスして使ってみます。

 

OpenVasのコンテナIDを確認します。

$ docker ps

CONTAINER ID        IMAGE                         COMMAND               CREATED             STATUS              PORTS                             NAMES

9558a88e4faf        mikesplain/openvas            "/bin/sh -c /start"   3 minutes ago       Up 3 minutes        9390/tcp, 0.0.0.0:1234->443/tcp   openvas

 

OpenVasのコンテナIDを指定してbashへアクセスします。

docker exec -it 9558a88e4faf bash

 

ompというコマンドがコマンドラインツールです。

以下を実行するとヘルプを表示してみます。

$ omp --help 

 

ヘルプの内容をみると、スキャンを実行するためには

-C, --create-task                Create a task.

-M, --modify-task                Modify a task.

を実行すれば良さそうだとわかります。

 

また、--create-task と一緒に以下のパラメータを指定すれば良さそうです。

  -n, --name=<name>                Name for create-task.

  -m, --comment=<name>             Comment for create-task.

  -c, --config=<config>            Config for create-task.

  -t, --target=<target>            Target for create-task.

 

ここで疑問に思いました。

config、targetを作成するオプションが用意されていません。

 

じつは、config、target、port-list、等を作成するには以下のようなコマンドを実行すればできました。

omp -u admin -w admin --config-file=.ompconfig --xml '<create_target><name>test</name><hosts>192.168.99.1,192.168.99.2</hosts></create_target>'

 

参考:OpenVAS command line target creation

 

上記コマンドは、targetをコマンドライン上から新規作成します。

 

xmlの記述方法はどうやって調べればいいかというと、

以下のページから「OpenVas Manager」のソースをダウンロードして解凍して、

OpenVAS - Install OpenVAS from Source Code

 

解凍したフォルダ → src → schema_formats → XML

とフォルダを辿ったあとに、「OMP.xml.in」というファイルを開くと書いてあります。

 

ぱっと見た感じだと、なが~い記述のためわかりにくいのですが、

「create_target」で検索すると、<command><name>create_target</name> ....みたいな文字列が見つかります。

そのcommandタグの中にある<ele>タグに先程のxml記述方法が書いてあるので、

参考にすれば他のコマンドも自由に発行できます。

 

結果としてOpenVasのWeb画面から設定する事はすべてCliからも実行できそうだとわかったので、Bashスクリプトでも用意すれば、Dockerコンテナの起動から検査まで、全て自動化できそうだと見通しがつきました。