- 1. はじめに
- 2. 準備
- 3. nessus essentials に対する疑問点の解消
- 4. まとめ
1. はじめに
前の記事で仮想環境を構築した1。今回はこの仮想環境に対してNessusを適用するために、仮想環境上のUbuntu20.04に nessus essentials をインストールする。nessus essentials は、スキャンできるIPが16個までという制限があるが、基本的に商用版と同じ機能を使うことができるらしい。 使う前に、nessus essentials について生じた疑問点を挙げる。
- Nessusのインストール後、インストール前に作成したスナップショットに戻って再度 nessus をインストールするときに、最初のインストールで使用した activation code は2回目のインストールで使用できるのか?
- Nessus のスキャン後に同一のMACアドレスの機器にIPアドレスを振り直して再度スキャンすると、登録されたホスト (IPアドレス) の個数はどのように変化するのか?
- 同じメールアドレスでアクティベーションコードを取得し直すと、登録されたホスト (IPアドレス) の個数はどのように変化するのか?
- 登録されたIPアドレスの数を0に戻す方法はあるのか?
この記事では、以上4つの疑問点を解消するために色々試していく。
2. 準備
2.1 アクティベーションコードの入手方法
tenableのサイト で名前とメールアドレスを入力して送信すると、入力したメールアドレス宛にアクティベーションコードが送られてくる。
2.2 ダウンロード方法
ダウンロードサイト から、自分のOSに合うものをダウンロードする。今回 nessus essentials をインストールする仮想マシンの OS は Ubuntu 20.04 なので、Nessus-10.1.2-ubuntu1110_amd64.deb
をダウンロードする。
この時点のスナップショットを作成しておく。
3. nessus essentials に対する疑問点の解消
3.1 スナップショットを使用したときのアクティベーションコードの扱い
送られてくるアクティベーションコードの説明には、
This is a one-time code. If you uninstall and then reinstall you will need to register the scanner again and receive another activation code.
とあった。これは、スナップショットを使ったときも同様なのか、ということが気になったので、インストールしながら試したいと思う。
3.1.1 インストール
インストール方法について、日本語でまとめてくださっている記事があるので、この記事を参考にしながらインストールをする2。
apt
を使ってインストールする。
sudo apt install ./Nessus-10.1.2-ubuntu1110_amd64.deb
インストール後、以下のように出力される。
Created symlink /etc/systemd/system/nessusd.service → /lib/systemd/system/nessus d.service. Created symlink /etc/systemd/system/multi-user.target.wants/nessusd.service → /l ib/systemd/system/nessusd.service. - You can start Nessus Scanner by typing /bin/systemctl start nessusd.service - Then go to https://vm-ubuntu:8834/ to configure your scanner
次に、nessusd.service
を起動する。
sudo systemctl start nessusd
そして、ブラウザから https://localhost:8834/
にアクセスする。
このように警告が出されるが、Advanced をクリックし、Accept the Risk and Continue とすると、以下のようなセットアップ画面になる。
アクティベーションの登録をスキップすると、アクティベーションコードの登録画面が出てくる。そこに、先程入手したアクティベーションを入力する。
ユーザアカウントを作成するために、ユーザ名とパスワードを入力する。
プラグインの初期化画面に遷移する (仮想マシンの設定によってはかなり時間がかかる。私の環境では30分以上かかった)。
これでインストールが完了する。
この状態でスナップショットを作成する。
3.1.2 スナップショットを使う
スナップショットを使ってインストール前に戻った際に、同じアクティベーションコードを使ってインストールを進めることができるかどうかを実験する。インストール終了後にスナップショットを作成し、仮想マシンをシャットダウンする。そして、インストール前のスナップショットに戻り、同じアクティベーションコードを入力してインストールを進めてみる。
スナップショットを使ってみたところ、同じアクティベーションコードを使ってインストールを進めることができた。
結果: Nessusのインストール後、インストール前に作成したスナップショットに戻って再度 nessus をインストールするときに、最初のインストールで使用した activation code は2回目のインストールでも使用できる。
3.2 スキャン後に同一のMACアドレスの機器にIPアドレスを振り直す
実際にスキャンをしてみる。1台もスキャンしない状態では、nessus に登録されているホストの数は0である。
3.2.1 脆弱性スキャンの実施
ここでは、Basic Network Scan を metasploitable に対して実施する。
metasploitable2 の仮想マシンを起動し、ubuntu20 から metasploitable に対してスキャンを行う。
スキャン名と target の IPアドレスを以下のように設定する。
次に、Credentials でホストに対して ssh のログイン情報を追加する。今回は、IDおよびパスワードが公開されているので、それを用いる。
このように設定した上で、スキャンを実行する。
スキャンの実行後、レポートを出力し、スナップショットを取得する。
また、この時点でホスト数は1になっていることが分かる。
3.2.2 IPアドレスを変更して再度スキャンする
IPアドレスを 192.168.100.161
から 192.168.100.162
に変更してスキャンを行う。
IP アドレスの変更
(ここはもっと良い方法があるかもしれない)
virsh net-update [network name] delete ip-dhcp-host '<host mac=[mac address] ip=[ip address]/>' --live --config
を root 権限で実行し、一度固定した IPの設定を解除する。その上で、
virsh net-update [network name] add ip-dhcp-host '<host mac=[mac address] ip=[new ip address]/>' --live --config
として、新しく固定するIPを加える。そして、
virsh domif-setlink [guestname] [mac address] down sleep 10 virsh domif-setlink [guestname] [mac address] up
として、自分のマシンに反映させる。これでうまくいかなかった場合 (私はうまくいかなかった) は、ホストOS自体を再起動する3。
スキャン
IPアドレスを 192.168.100.162
にした上で再度スキャンを行う。
スキャン後にアカウントを見てみると、IPアドレスが追加されていることがわかる。
結果: Nessus のスキャン後に同一のMACアドレスの機器にIPアドレスを振り直して再度スキャンすると、登録されたホスト (IPアドレス) の個数は増加する。
3.3 同じメールアドレスでアクティベーションコードを取得し直す
nessus essentials にログインした際の画面を見ると、Activation code を編集できるようになっている。この activation code を変更すると、Licensed Hosts の数はどのように変化するのか確かめたい。
次の2つの場合を試してみる。
- nessus essentials をアンインストールせずに、activation code のみを変更する。
- nessus essentials をアンインストールし、再度
deb
からインストールした上で、activation code を変更する。
3.3.1 nessus essentials をアンインストールしない場合
nessus essentials をアンインストールせずに、Activation code のみを変更する。
Activation code の変更後、ログインすると、Licensed Hosts の数は変化していないことがわかる。
3.3.2 nessus essentials をアンインストールする場合
nessus essentials のアンインストールについては、tenable Documentation 参照4。
sudo systemctl stop nessusd
で nessusd.service
を停止し、
sudo apt remove nessus
でアンインストールする。アンインストール後は、https://localhost:8834/
でアクセスしても何も立ち上がらない。
アンインストール後にスナップショットを作成し、再度 deb
からインストールする。
sudo apt install ./Nessus-10.1.2-ubuntu1110_amd64.deb sudo systemctl start nessusd
再インストール後、セットアップ画面にはならず、Username と Password を入れる画面になった。ログインすると先程と同様、ホスト数は2だった。
この状態で、同じメールアドレスで新しく activation code を取得したものを入力してもホスト数は変わらなかった。
結果: Nessus をアンインストールしてもしなくても、同じメールアドレスで新しく activation code を取得した場合は登録されたホスト数は変わらない。
3.4 登録された IP アドレスを0に戻す方法
ここでは、思いつく限りの方法で登録された IP アドレスの個数を 0 にしようとする。
- メールアドレスを変えて activation code を取得する
- スナップショットの活用
- 新しい仮想マシンの作成
3.4.1 メールアドレスの変更
メールアドレスを変更して新しい activation code を取得し、入力するとどうなるかということを試す。
ここまでの展開で予想はできたが、メールアドレスを変更して新しい activation code を入手しても、ホスト数は変わらなかった。
3.4.2 スナップショットの活用
インストール直後に作成したスナップショットの時点まで戻れば、IPアドレスの個数は0であるだろう。
実際、この時点に戻ると、登録されているホスト数は0であった。
スナップショットを利用すると、面白いことができてしまう。
- インストール後にスナップショットを作成し、スキャンを行う。
- スキャン後に、結果 (nessus) を出力 (export) し、スナップショットを作成する。
- 仮想マシンにある結果をホストOSに送る。
- インストール直後のスナップショットに戻り、ホストOSから結果を仮想マシンに送る。
- 結果をインポートする。
インポートすると、Nessus 側では実施したスキャン結果を見ることができる。
このとき、ホスト数は0のままである。
つまり、スナップショットを使うことによって、ホスト数を気にせずにスキャンを行うことができる。
3.4.3 新しい仮想マシンの作成
スナップショットを活用しないまま進めてしまい、登録できるホスト数で詰まってしまうこともあるかもしれない。そんなときは、思い切って新しい仮想マシンを作成する、ということを考える。流石に新しい仮想マシンまでは IP アドレスの制限はなされないだろう。ここではメールアドレスは同じものを用いた場合で試してみる。
新しい仮想マシンで nessus をインストールし、https://localhost:8834/
にアクセスすると、(当然だが) 初めてインストールしたときのようにアクティベーションの入力、ユーザ名とパスワードの登録の画面が出てきて、初期化の画面に遷移した。
しばらく待ってから確認すると、ホスト数は0だった。
4. まとめ
今回の検証で分かったことを示す。
- Nessusのインストール後、インストール前に作成したスナップショットに戻って再度 nessus をインストールするときに、最初のインストールで使用した activation code は2回目のインストールでも使用できる。
- Nessus のスキャン後に同一のMACアドレスの機器にIPアドレスを振り直して再度スキャンすると、登録されたホスト (IPアドレス) の個数は増加する。
- Nessus をアンインストールしてもしなくても、同じメールアドレスで新しく activation code を取得した場合は登録されたホスト数は変わらない。
- メールアドレスを変更して新しい activation code を入手しても、ホスト数は変わらない。
- スナップショットの活用が有効。
- 新しい仮想マシンを作成し、登録済みのメールアドレスに activation code を送り、そのアクティベーションコードを利用してインストールすると、新しくインストールされた nessus のホスト数は0である。
ホスト数に関しては、以下の表のようにまとめられる。
行動 | ホスト数 |
---|---|
同一機器のIPアドレスの変更 | 増加 |
新規アクティベーションコード (essentials) への変更 | 変化なし |
新規仮想マシンへのインストール | 0になる |
そのため、nessus essentials を使用するときは、使用前のスナップショットを作成し、使用する度に使用前のスナップショットに戻って新しくスキャンするといった操作をすると良いだろう。
-
私の場合はこれでうまくいったが、うまくいかない場合もあるかもしれない。もっと良い方法を募集したい。↩