VulsでProxmoxのセキュリティ脆弱性を確認する(失敗?)

個人的に仮想基盤のソフトでDebianベースのProxmox VEと言うものを使っているのだが、Vulsでこれの脆弱性について検出できるかどうかやってみる事にする。
基本はDebianベースだからいけると思うのだけど…ちょっと微妙な結果になった。

1.ユーザ作成・鍵ファイルの設定

まず、Proxmox側にssh接続してvulsユーザの作成をする。

useradd vuls -b /opt -s /bin/bash
mkdir /opt/vuls
chown vuls. /opt/vuls
passwd vuls

次に、Vulsサーバからssh接続する際の鍵ファイルを登録、コンフィグへの追加をする。

ssh-copy-id vuls@Proxmox
cat <<EOF >> config.toml

[servers.Proxmox]
host = "IPアドレス"
port = "22"
user = "vuls"
keyPath = "/opt/vuls/.ssh/id_rsa"
EOF

ただ、この時点でコンフィグ確認を行っても、sudoとかのコマンドが入ってないのでエラーになる。

[vuls@BS-PUB-SEC ~]$ vuls configtest
[Oct  1 20:09:17]  INFO [localhost] Validating Config...
[Oct  1 20:09:17]  INFO [localhost] Detecting Server/Contianer OS...
[Oct  1 20:09:17]  INFO [localhost] Detecting OS of servers...
[Oct  1 20:09:17]  INFO [localhost] (1/2) Detected: Proxmox: debian 8.4
[Oct  1 20:09:17]  INFO [localhost] (2/2) Detected: BS-PUB-SEC: centos 7.2.1511
[Oct  1 20:09:17]  INFO [localhost] Detecting OS of containers...
[Oct  1 20:09:17]  INFO [localhost] Checking sudo configuration...
[Oct  1 20:09:17] ERROR [Proxmox] sudo error on SSHResult: servername: Proxmox, cmd: set -o pipefail; sudo -S apt-get -v, exitstatus: 127, stdout: bash: sudo: command not found
, stderr: , err: %!s()
[Oct  1 20:09:18]  INFO [BS-PUB-SEC] sudo ... OK
[Oct  1 20:09:18] ERROR [localhost] Failed to sudo with nopassword via SSH. Define NOPASSWD in /etc/sudoers on target servers. err: [vuls@172.28.0.30:22: Failed to sudo: SSHResult: servername: Proxmox, cmd: set -o pipefail; sudo -S apt-get -v, exitstatus: 127, stdout: bash: sudo: command not found
, stderr: , err: %!!(MISSING)s()]

2.Proxmox側でapt-get・sudoersの設定

次に、Proxmox側でapt-getが行えるようにし、sudoなどの必要パッケージのインストールを実行する。
まず、Proxmoxにrootユーザでログインして、以下のコマンドを実行しapt-getが利用できるようにする。

echo "# PVE pve-no-subscription repository provided by proxmox.com, NOT recommended for production use" >> /etc/apt/sources.list
echo "deb http://download.proxmox.com/debian jessie pve-no-subscription" >> /etc/apt/sources.list
sed -i '/^deb/s/^/# /' /etc/apt/sources.list.d/pve-enterprise.list

で、sudoなどの必要パッケージをインストールする。

apt-get install sudo

sudoのインストール後、以下のコマンドでsudoersにvulsユーザを追加する。

sed -i.bk '/^root/avuls ALL=(root) NOPASSWD: /usr/bin/apt-get, /usr/bin/apt-cache' /etc/sudoers

この状態でconfigtest、prepareをすれば通るはずだ。

[vuls@BS-PUB-SEC ~]$ vuls configtest
[Oct  1 20:16:10]  INFO [localhost] Validating Config...
[Oct  1 20:16:10]  INFO [localhost] Detecting Server/Contianer OS...
[Oct  1 20:16:10]  INFO [localhost] Detecting OS of servers...
[Oct  1 20:16:10]  INFO [localhost] (1/2) Detected: Proxmox: debian 8.4
[Oct  1 20:16:11]  INFO [localhost] (2/2) Detected: BS-PUB-SEC: centos 7.2.1511
[Oct  1 20:16:11]  INFO [localhost] Detecting OS of containers...
[Oct  1 20:16:11]  INFO [localhost] Checking sudo configuration...
[Oct  1 20:16:11]  INFO [Proxmox] sudo ... OK
[Oct  1 20:16:11]  INFO [BS-PUB-SEC] sudo ... OK
[Oct  1 20:16:11]  INFO [localhost] SSH-able servers are below...
Proxmox BS-PUB-SEC
[vuls@BS-PUB-SEC ~]$ vuls prepare
INFO[0000] Start Preparing (config: /opt/vuls/config.toml)
[Oct  1 20:16:57]  INFO [localhost] Detecting OS...
[Oct  1 20:16:57]  INFO [localhost] Detecting OS of servers...
[Oct  1 20:16:57]  INFO [localhost] (1/2) Detected: Proxmox: debian 8.4
[Oct  1 20:16:57]  INFO [localhost] (2/2) Detected: BS-PUB-SEC: centos 7.2.1511
[Oct  1 20:16:57]  INFO [localhost] Detecting OS of containers...
[Oct  1 20:16:57]  INFO [localhost] Checking sudo configuration...
[Oct  1 20:16:58]  INFO [Proxmox] sudo ... OK
[Oct  1 20:16:58]  INFO [BS-PUB-SEC] sudo ... OK
[Oct  1 20:16:58]  INFO [localhost] Installing...
[Oct  1 20:16:58]  INFO [Proxmox] apt-get update...
[Oct  1 20:16:58]  INFO [BS-PUB-SEC] Ignored: yum-plugin-changelog already installed
[Oct  1 20:17:07]  INFO [Proxmox] Installed: aptitude

3.スキャンを行う

さて、この状態になればあとはスキャンを行うだけだ。

vuls scan -debug -cve-dictionary-dbpath=/opt/vuls/cve.sqlite3 -results-dir=/opt/vuls/results/ -report-text -lang=ja -report-json

で、幾つか(結構多く)のパッケージについてはProxmox独自のものが使われているためエラーになってしまう。
どうやらchangelogからCVE番号が見れないようだ…

で、一応Debianのパッケージについては確認できる、ようなのだけど…

どうも通知系でうまく動かないっぽい。
一応、tuiでは見れるんだけど…