Kali Linux で Vuls を使う方法 – スキャンの実施編 –


■Kali Linux で Vuls を使う方法 – スキャンの実施編 –

ここまで、

vuls をインストールするための準備、

周辺ソフトウェアを含めたインストール、

そして検査対象の準備

と進めてきたが、

今回、いよいよ実際の検査を

行っていくこととする。

また、あわせて、検査レポートを

見やすくする方法などについても

記載していこうと思う。

ということで、今回の記載内容は以下の通り。

  1. スキャン用設定ファイルの作成
  2. スキャンの実施と結果の確認
  3. スキャン結果の GUI 化
  4. まとめ


・スキャン用設定ファイルの作成

vuls では、

vuls をインストールしたマシン自身を検査すること

はもちろんのこと、

SSH でログインできるリモートサーバー

の検査もできる。というか、こちらが主目的。

ということで、実際にスキャンする際には、

・スキャン対象のサーバーはどれか(IP Address)
・(SSH の)ポート番号は何番か
・どのユーザーで SSH ログインするのか
・SSH ログインで利用するための秘密鍵はどれか

を指定してあげる必要がある。

これを記載しておくのが、

config.toml

というファイル。

vuls では、実際にスキャンする際、

このファイルに指定された内容に基づいて

スキャンを実施する。

よってまずはこれを作成する。

ただ、インストールしただけでは

このファイルは存在しないか、空なので、

まずは vi 等で以下の通り内容を記載する。

vuls@kali:~$ vi config.toml

config.toml に記載する内容は、以下の通り。

[servers] 

[servers.local]
host="localhost"
port="local"

[servers.scanuser] 
host="10.0.2.9"
port="22"
user="scanuser"
keypaty="/home/vuls/.ssh/id_ecdsa"

最初の [servers] はそのまま記載。

多分、

『これ以降は検査対象サーバーに関しての記述』

というパーティションの役割なんだと思う。

で、実際の検査対象に関する情報を、

[servers.xxx]

以降に書いていく。

xxx、の部分が、複数の検査対象を記載した際、

各々を識別するための識別名だと思われるので、

複数記載する場合は被らないものを記載しよう。
*xxx の部分には . などは使えない模様。

今回の例であれば、スキャン対象として、

localhost([servers.localhost] 部分)

scanuser([servers.scanuser] 部分)

というのを指定していることになる。

で、続いては host 名部分。

ここは、検査対象サーバーのホスト名を記載する。

例えば DNS 等でホスト名から IP address が

ひける場合には、ホスト名でよいのだと思う。

一方、そうでない場合には、IP address を

指定すればよい。

[servers.localhost]

の方は、vuls をインストールしたマシン自身への

検査に関する情報なので、

host=”localhost”

というのを指定。

一方、リモートの検査対象である Cent OS マシン側は、

[servers.scanuser]

の host 部分において、仮想マシンに振られた

IP address である、10.0.2.9 を指定している。

次は、port 部分。

SSH でログインするため、ここには通常

port=”22″

と指定すればよい。もし検査対象側のポート番号を

変更しているなら、その番号をここに指定する。

ちなみに local の場合はそのまま検査できるので、

port=”local”

でよい模様。

で、local はこれだけの情報があれば

そのまま検査できるため、ここで記載終了。

一方、リモートの方は SSH ログインが必要なため、

・どの user で SSH ログインするのか?
・その時使う秘密鍵はどこにあるのか?

を追加で指定する必要がある。

よって、今回の場合ならば、検査対象となる

Cent OS マシン側で、前回スキャン用ユーザーとして

scanuser

を作成しているため、以下のようにこれを指定する。

user=”scanuser”

続いて、scanuser として SSH ログインするために

用いる秘密鍵を、パスを含めて、

keypath=”/home/vuls/.ssh/id_ecdsa”

として指定する。

ここまで記載すれば、Esc -> :wq で上書き保存。

続いては、記載内容が正しいかどうか、

vuls の configtest というコマンドで

以下のように内容確認を行う。

vuls@kali:~$ vuls configtest scanuser

scanuser の部分は、config.toml の

[servers.xxx]

で指定した xxx 部分を記載する。

なので、local の方もテストしたければ、

vuls@kali:~$ vuls configtest local

とすればよい。

これで特にエラーがでなければ、

いよいよスキャンを実行できる状態となった。



・スキャンの実施と結果の確認

ここまで、ながーいながーい準備をしてきたが、

いよいよスキャンを実行する。

まずは、localhost から。

vuls@kali:~$ vuls scan localhost

以上。

一瞬で終了。

今までの苦労は何だったんだ…。

ということで結果はこちら。

図赤枠のうち、上の方が結果。

左から、

localhost : config.toml に記載したスキャン対象名
kali 2019.1 : スキャン対象の OS とバージョン
2944 installed : インストールされているソフトウェア数
0 updatable : アップデート可能なソフトウェア数

となっている。

ということは、アップデート不要ということだ。

ほんと?と思ったので、画面をよくよく見てみると、

下の赤枠部分に、

「詳細を見るなら vuls tui が有益だよ」

と書いてあるので、使ってみる。

vuls@kali:~$ vuls tui

そうすると以下のような画面が表示された。

エラー出てるじゃん!!!

え?うまくいかなかったってこと!?

と焦ったが、エラーをよくよく見てみると、

「kali linux に対する OVAL 情報は未実装」

と書いている。

なるほど、対象じゃないのね。

ということでちょっと安心して、

いよいよ本来の目的である、リモートサーバーに対して

スキャンを実行してみる。

vuls@kali:~$ vuls scan scanuser

結果はこちら。

SSH でタイムアウトだと!?

SSH のポートが開いてないのか?

それとも SSH の設定を何か間違えたか!?

とまたへこみかけたが、

とりあえずもう一度実行してみる。

そしたら、何もいじってないのに、

今度はこんな感じでうまくいった。

152 の update がある、ということで、

具体的な内容を vuls tui で見てみる。

vuls@kali:~$ vuls tui

結果はこんな感じ。

画面左上が、検査対象サーバーの名前と OS、

およびバージョン情報の表示となっている。

その隣には、検出された脆弱性(CVE)が出ている。

左下は、右上で検出された脆弱性のうち、

現在選択されている脆弱性に関する詳細情報だ。

そして画面右下には、選択された脆弱性に関して

アップデートがあるかどうか、が示されている。

この画面の例では、修正がまだないことを示している。

なお、各分割された領域は tab キーを押すことで

カーソルを遷移できる。

また、終了は Ctrl-C で可能。

しかし、せっかく exploit 情報を取得しているのに、

これでは exploit code があるのかどうか、が

わからない。

ということで、report の方を見てみることにする。

vuls@kali:~$ vuls report

結果、結構な情報量が表示された。

まず先頭はこんな感じ。

図の赤枠部分を見ればよくわかる。

さっきまではアップデートがあるかどうかだったが、

今回は脆弱性情報がまとまった形で出ている。

左から、

・Total で 872 件の脆弱性が検出された

・内訳は High 151 件、Middium 635 件、Low 86 件

・872 件中 96 件が修正されている(少なっ!)

・1322 件のソフトウェアがインストールされている

・152 件でアップデートあり

・exploit が 6 件存在

というような情報が記載されている。

脆弱性の有無や割合をみるなら、

こっちのほうがよさそうだ。

そしてその後にも、下図のような情報が続く。

こちらには、検出された脆弱性の情報が

一覧で並んでいる。

ちなみに POC 列が Y となっていれば、

それに対応する exploit がある、ということだ。

ただ、毎回この情報を確認するのは大変。

その場合には、

vuls@kali:~$ vuls report -format-one-line-text

とすれば、vuls report とした場合の

前半部分だけが見れるので、

適宜使い分けるとよいだろう。

ということで、スキャンと結果の見方は以上。



・スキャン結果の GUI 化

既にスキャン結果は見れるようになったが、

場合によっては、グラフィカルに見たいこともある。

そういう場合には、

VulsRepo

というアプリを別途インストールする。

これもまずは git でとってくる。

vuls@kali:~$ git clone https://github.com/usiusi360/vulsrepo.git

続いてはディレクトリ移動。

vuls@kali:~$ cd vulsrepo/server

そして、設定ファイルを作成するのだが、

まずはサンプルをそのままコピー。

vuls@kali:~/vulsrepo/server$ cp vulsrepo-config.toml.sample vulsrepo-config.toml

で、サンプルをコピーした設定ファイルを

vi で編集する。

vuls@kali:~/vulsrepo/server$ vi vulsrepo-config.toml

既に記載済みの部分のうち、

rootPath

resultsPath

部分を、vuls の検査用ユーザー(今回なら vuls)に

併せて修正する。

今回の場合は以下のとおりとする。

[Server]
rootPath = "/home/vuls/vulsrepo"
resultsPath = "/home/vuls/results"

なお、この下にポート番号として

5111

が設定されている。

これは VulsRepo のサーバーが

使うポート番号なので、

firewall などを設定している場合には、

これが通るような設定に変えておこう。

で、この設定が終われば、

次はスキャン実行結果を VulsRepo で

見れる形にする。

具体的には、ホームディレクトリに戻ったうえで、

vuls reslt のオプションを変更して実行する。

vuls@kali:~/vulsrepo/server$ cd
vuls@kali:~$ vuls result -format-json

続いて、先ほど作った ./vulsrepo/server に移動し、

VulsRepo サーバーを起動する。

vuls@kali:~$ cd ./vulsrepo/server/
vuls@kali:~/vulsrepo/server$ ./vulsrepo-server

これでサーバーが立ち上がったはずなので、

ブラウザの URL 欄に

http://localhost:5111

を入力して、レポートを確認する。

なお、localhost:5111 だけを入力すると、

最近のブラウザは

https://

を自動補完する場合が多いため、

404 Not Found

となる。

よって、明示的に http:// を指定しておこう。
*今時 http でいいのか、とは思うが…。

無事アクセスできれば、

以下のような画面が出るので、

図赤枠をクリックする。

で、この後の正しい挙動がよくわからないのだが、

しばらく待っておけば、

今までスキャンした結果が

以下のように出てくるので、

赤枠に示したように、

みたいレポートをチェックして、

submit ボタンを押す。
*私の場合、なにもでなかったので
*いきなり submit ボタンを押すと、
*しばらく待たされて動かなくなった。
*なのでいったんブラウザのバックで戻り、
*再度アクセスすると、普通にこの画面がでた。

そうすると、以下のような画面がでてくる。

この図でメインに表示されているのは、

ヒートマップ。

検出された脆弱性の深刻度事に

表で表示されている。

この画面はいろいろいじればいろいろな

データの見方ができるのだが、

全部解説はしきれないので、

興味があれば自分でいろいろ

試してみていただきたい。



・まとめ

まさかこんなにかかるとは思わなかったが、

今回をもってようやく vuls のインストールと

実行を終えることができた。

実際に使ってみた結果、

脆弱性の有無をチェックするという観点では、

非常に有益そうに思えている。

また、exploit があるのかどうか、が

わかるというのも非常によいと思う。

これほどのものがフリーで使えるというのは

大変ありがたい。

今後、ぜひ使っていきたいと思う。

ただ、脆弱性情報は毎回更新したうえで、

定期的にスキャンしていかなければならない。

よって次回は、

脆弱性情報の更新とスキャンの自動化

に取り組んでいきたいと思う。

今回の Point!・vuls scan [scan 対象]でスキャン実行!
・レポートは vuls report で見ることが可能。
・GUI としてみたい場合は VulsRepo をインストールして実行!
Kali Linux で Vuls を使う方法 – 検査対象の準備編 – Page Top Kali Linux で Vuls を使う方法 – 定期実行とレポートの自動通知編編 –

/div>




Copyright (c) 2017 Webmaster of this site All Rights Reserved.
カテゴリー: Windows でセキュリティ パーマリンク