新機能:Windowsの脆弱性管理:SSHで脆弱性検知するリモートスキャン機能の利用方法

こんにちは。FutureVuls開発の和田です。

今回のアップデートでFutureVulsのスキャナがWindowsマシンへのリモートスキャンに対応しました。
スキャンの実行方法などについて解説していきます。
Windows用OpenSSHについての一次情報は、Microsoftが公開しているドキュメント
を参考にしてください。
remote scan

WindowsでのSSH Serverの有効化

スタートメニューの[アプリと機能]-[オプション機能の管理]-[機能の追加]でOpenSSHサーバーを洗濯して[インストール]をクリックします。

インストール後、管理者権限でpowershellを起動してコマンドからOpenSSHサーバーを起動します。

1
2
3
4
5
6
7
8
9
10
11
PS C:\WINDOWS\system32> New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Program Files\Git\bin\bash.exe" -PropertyType String -Force


DefaultShell : C:\Program Files\Git\bin\bash.exe
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE
PSChildName : OpenSSH
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry

PS C:\WINDOWS\system32> Start-Service sshd

次にOpenSSHサーバーを立ち上げた後の公開鍵認証の設定方法について解説します。

公開鍵認証の有効化

C:\Windows\System32\OpenSSHの中にsshd_configというファイルを作成してください。
ファイルの内容は同ディレクトリのsshd_config_defaultをコピーします。
ファイルの内容のうち、PubkeyAuthentication yesと書かれている行のコメントアウトを外します。
その後Restart-Service sshdを実行し、sshdを再起動します。

クライアントで認証キーを作成する

以下のコマンドを実行して公開鍵と秘密鍵を作成します。mykeyの部分は自身で管理しやすい名前をつけてください。
$ ssh-keygen -t rsa -f mykey

作成した公開鍵をサーバに配置するために以下のコマンドを実行します。
$ scp mykey.pub ユーザ名@ホスト名もしくはip:
これでSSHサーバに公開鍵が配置されます。

すでにSSHサーバに~/.ssh/authorized_keysがある場合、mykey.pubの内容を書き込みます。
$ cat mykey.pub >> ~/.ssh/authorized_keys

ない場合は以下のコマンドを実行します
$ mv mykey.pub ~/.ssh/authorized_keys

ここまでで公開鍵認証の設定は完了しました。ログインコマンドを実行してパスワードを聞かれずにログインが成功すればOKです。
$ ssh -i 秘密鍵のパス ユーザ名@ホスト名もしくはip

リモートスキャンを使ってみる

リモートスキャンを実行するために、C:\Program Files\vuls-saas\config.tomlに、設定情報を追加します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#リモートスキャンの設定情報

# See README for details: https://vuls.io/docs/en/usage-settings.html

version = "v2"

[saas]
GroupID = xxxx
Token = "xxxx"
URL = "https://auth.vuls.biz/one-time-auth"

[default]

[servers]

[servers.ec2]
user = "xxxx"
host = "xxxx"
port = "22"
keyPath = "xxxx"
[servers.ec2.uuids]
ec2 = "xxxx"
[servers.ec2.windows]
serverSelection = 2

設定情報を書き込んだ後、以下のコマンドを実行してリモートスキャンを行います。
C:\Program Files\vuls-saas\vuls-saas.bat

実行後、FutureVulsのコンソールにサーバが登録され、スキャン結果が登録されていればリモートスキャンが成功しています。

注意事項

現在Windowsマシンからのリモートスキャンは、スキャナインストール時に設定されるタスクスケジューラからの実行に対応しておりません。
よって、C:\Program Files\vuls-saas\config.tomlに設定情報を記述したままであると、タスクスケジューラの定期実行が失敗し、他のマシンのスキャン結果のアップロードも失敗することになります。
Windowsマシンからのリモートスキャンの手動実行後は、config.tomlから該当マシンの設定情報を削除していただきますようお願いします。