scan
scan
コマンドについて、以下に記します。
概要
scan
コマンドは SSH 接続 による Linux リモートホストのスキャン、WinRM 接続 による Windows リモートホストのスキャン、および yamory-cli をインストールしたローカルホストのスキャンを行います。
scan
コマンドでスキャンを行う際に、コマンドフラグ及び設定ファイルの内容で動作を決定します。
設定ファイルはコマンドフラグ --config
より指定できますが、指定がない場合、自動的にカレントディレクトリ直下の config.yaml
を読み込みます。
また、スキャンにはアクセストークンが必要です。
アクセストークンは、チーム設定画面より発行できます。
発行手順などはこちらを参照してください。
アクセストークンは、コマンドフラグ、または設定ファイルで指定できます。
両方指定された場合の優先順位は以下の通りとなり、設定ファイルの設定が無視されます。
- コマンドフラグ(
--token
) > 設定ファイル(token
項目)
コマンドフラグ
フラグ | 説明 |
---|---|
--config |
設定ファイルの場所 (省略時は./config.yaml ) |
--token /-T |
ホストスキャンのアクセストークン |
--output |
ソフトウェア資産情報をローカルファイルに保存する場合に指定。ソフトウェア資産情報は yamory へ送信されません。 |
--output
フラグについて
インターネットに接続できない環境で、ソフトウェア資産情報をローカルファイルに保存する場合に指定します。
出力されるファイル名は yamory_result_<yyyyMMddHHmm>_<hostname>.json
です。
また、--output
フラグを指定する場合 token
は省略可能です。
設定ファイル
設定ファイルは yaml 形式で記述します。直下に token
と hosts
キーを記述できます。
キー | 型 | 必須 | 説明 |
---|---|---|---|
token | 文字列 | ホストスキャンのアクセストークン | |
hosts | 配列 | ✔ | スキャン対象の情報 |
hosts
スキャン対象のホストの情報が記述されているリストです。それぞれのリスト項目に下記のキーを記述できます。
SSH 接続で Linux ホストをスキャンする場合
キー | 型 | 必須 | 説明 |
---|---|---|---|
title | 文字列 | yamory サービス上表示されるスキャン対象の名前 (省略時は hostname コマンドの実行結果) |
|
hostname | 文字列 | ✔ | SSH 接続する際に使われるホスト名(ドメイン名もしくは IP アドレス) |
identifier | 文字列 | ホスト識別子。ホスト識別子には 半角英数字 , - , _ のみ使用できます。 |
|
scanMode | 文字列 | スキャンモードの指定 (省略時は ssh ) |
|
port | 数字 | SSH 接続する際に使われるポート番号 (省略時は 22 ) |
|
distribution | 文字列 | ホストの OS | |
version | 文字列 | ホストのバージョン | |
sshAgent | マップ | ssh-agent の設定 | |
credentials | マップ | ✔ | SSH 接続する際に使われる認証情報 |
openSystem | 文字列 | 公開ホストの設定を true または false で指定 |
|
tags | 文字列 | ホストタグ名をカンマ区切りで指定 | |
useSudo | 文字列 | スキャン時に sudo を使用するか否かを指定。デフォルト true |
WinRM 接続で Windows ホストをスキャンする場合
キー | 型 | 必須 | 説明 |
---|---|---|---|
title | 文字列 | yamory サービス上表示されるスキャン対象の名前 (省略時は hostname または $Env:Computername コマンドの実行結果) |
|
hostname | 文字列 | ✔ | WinRM 接続する際に使われるホスト名(ドメイン名もしくは IP アドレス) |
identifier | 文字列 | ホスト識別子。ホスト識別子には 半角英数字 , - , _ のみ使用できます。 |
|
scanMode | 文字列 | スキャンモードの指定。winrm を指定します。 |
|
port | 数字 | WinRM 接続する際に使われるポート番号。 (省略時は 5985 ) |
|
credentials | マップ | ✔ | WinRM 接続する際に使われる認証情報 |
openSystem | 文字列 | 公開ホストの設定を true または false で指定 |
|
tags | 文字列 | ホストタグ名をカンマ区切りで指定 | |
winUpdateType | 文字列 | 更新プログラムの取得先を指定します。Windows Update を使用する場合は WU 、WSUS を使用する場合は WSUS 、cab ファイルを使用する場合は CAB を指定します (省略時は WU ) |
|
wsusScanFilePath | 文字列 | cab ファイルのフルパスを指定します |
yamory-cli をインストールしたローカルホストをスキャンする場合
キー | 型 | 必須 | 説明 |
---|---|---|---|
title | 文字列 | yamory サービス上表示されるスキャン対象の名前 (省略時は hostname または $Env:Computername コマンドの実行結果) |
|
identifier | 文字列 | ホスト識別子。ホスト識別子には 半角英数字 , - , _ のみ使用できます |
|
scanMode | 文字列 | ✔ | スキャンモードの指定。local を指定します。 |
distribution | 文字列 | ホストの OS | |
version | 文字列 | ホストのバージョン | |
openSystem | 文字列 | 公開ホストの設定を true または false で指定 |
|
tags | 文字列 | ホストタグ名をカンマ区切りで指定 | |
useSudo | 文字列 | スキャン時に sudo を使用するか否かを指定。デフォルト true |
|
winUpdateType | 文字列 | 更新プログラムの取得先を指定します。Windows Update を使用する場合は WU 、WSUS を使用する場合は WSUS 、cab ファイルを使用する場合は CAB を指定します (省略時は WU ) |
|
wsusScanFilePath | 文字列 | cab ファイルのフルパスを指定します |
identifier パラメーターについて
yamory のホストスキャン機能では、ホストの一意性を特定するためにマシン ID(/etc/machine-id
の値。Windows の場合はシリアルナンバー)を使用していますが、クラウド環境などでコピーしたイメージを利用する際にマシン ID が同値となり、意図せずスキャン結果を上書きしてしまうことがあります。
そのような場合に identifier
パラメーターを設定することでスキャン情報の上書きを回避できます。
identifier
パラメーターには、チーム内でホストごとに一意の値になるように設定してください。
distribution、および version パラメーターについて
ホストの OS(distribution
)、およびバージョン(version
)が指定されている場合、 OS の自動判別が無効になります。
なお、現在指定できるdistribution
は以下の通りです。
- Amazon Linux:
amazon-linux
- CentOS:
centos
- Debian:
debian
- Oracle Linux:
oracle-linux
- Red Hat Enterprise Linux:
redhat
- Ubuntu:
ubuntu
openSystem パラメーターについて
公開ホスト(外部ネットワークからパブリックアクセスが可能なホスト)として使用するかを指定できます。
公開ホストの場合は true
、非公開ホストの場合は false
を指定します。
openSystem
が未指定の場合、前回スキャン情報があればその状態を引き継ぎ、初回スキャン時は公開ホストとして登録されます。
本パラメータはトリアージレベルの計算に使用されます。
useSudo パラメーターについて
yamory のホストスキャンでは、一部のディストリビューションにおいてホスト情報を取得するコマンドを実行する際に
no password で sudo
コマンドを実行できるか確認し、実行できる場合、sudo
コマンドを使用してホスト情報を取得しています。
スキャンを実行するユーザーにコマンドの実行制限がない場合、 useSudo
パラメーターに false
を指定すると sudo
を使用せずにスキャンすることができます。
useSudo
パラメーター は以下のディストリビューションでのみ有効です。
- Amazon Linux
- CentOS
- Oracle Linux
- Red Hat Enterprise Linux
wsusScanFilePath パラメーターについて
インターネット、または WSUS などの Windows Update サービスに接続できない環境で Windows のホストスキャンを実施する場合に
Windows Update から提供されている cab ファイルを用いて未適用な更新プログラムを検出し脆弱性を検知できます。
wsusscn2.cab
をスキャン対象の Windows ホスト上に配置し wsusScanFilePath
パラメーターにスキャン対象の Windows ホスト上の wsusscn2.cab
のフルパスを指定します。
wsusscn2.cab
は Microsoft社が運営する windowsupdate.com から入手します。
Windows で wsusscn2.cab
をダウンロードする場合以下を実行します。
curl.exe -sS -o C:\wsusscn2.cab http://download.windowsupdate.com/microsoftupdate/v6/wsusscan/wsusscn2.cab
また、cab ファイルを使用する場合、winUpdateType
パラメーターには CAB
を指定する必要があります。
cab ファイルを使用したスキャンについては、よくある質問「 インターネットに繋がらない環境のWindowsホストをリモートスキャンできますか?」も参照ください。
sshAgent
キー | 型 | 必須 | 説明 |
---|---|---|---|
useAgent | 文字列 | ssh-agent を使用するか否かを true または false で指定する。デフォルト false |
credentials
SSH 接続
現在パスワード認証、公開鍵認証、ssh-agent の使用の 3 つのパターンをサポートしています。
パスワード認証の場合
キー | 型 | 必須 | 説明 |
---|---|---|---|
user | 文字列 | ✔ | SSH 接続する際に使われるユーザ名 |
password | 文字列 | ✔ | SSH 接続する際に使われるパスワード |
公開鍵認証の場合
キー | 型 | 必須 | 説明 |
---|---|---|---|
user | 文字列 | ✔ | SSH 接続する際に使われるユーザ名 |
key | 文字列 | ✔ | SSH 接続する際に使われる秘密鍵のパス |
keyPassphrase | 文字列 | SSH 接続する際に使われる秘密鍵のパスフレーズ |
ssh-agent の使用の場合
キー | 型 | 必須 | 説明 |
---|---|---|---|
user | 文字列 | ✔ | SSH 接続する際に使われるユーザ名 |
※ ssh-agent を利用する場合は、scan
コマンドの実行前に、対応する秘密鍵を ssh-agent にあらかじめ登録しておく必要があります。
WinRM 接続
キー | 型 | 必須 | 説明 |
---|---|---|---|
user | 文字列 | ✔ | WinRM 接続する際に使われるユーザ名 (省略時は Administrator ) |
password | 文字列 | ✔ | WinRM 接続する際に使われるパスワード |
設定ファイル例
token: "xxxxx"
hosts:
- title: "my-server"
hostname: "192.168.0.111"
identifier: "Change-to-unique-identifier-for-your-team!"
port: 22
credentials:
user: "ubuntu"
key: "path/to/ssh-key.pem"
keyPassphrase: "ubuntupass1234"
openSystem: true
tags: "tag1"
- title: "my-redhat-server"
hostname: "192.168.0.222"
identifier: "Change-to-unique-identifier-for-your-team!"
port: 22
credentials:
user: "admin"
password: "123456"
openSystem: false
tags: "tag1,tag2"
useSudo: false
- title: "my-new-server-via-ssh-agent"
hostname: "192.168.0.233"
identifier: "Change-to-unique-identifier-for-your-team!"
port: 22
distribution: "ubuntu"
version: "20.04"
sshAgent:
useAgent: true
credentials:
user: "admin"
openSystem: false
- title: "windows-001"
identifier: "Change-to-unique-identifier-for-your-team!"
scanMode: "winrm"
hostname: "192.168.0.244"
port: 5985
credentials:
user: "Administrator"
password: "xxxxx"
winUpdateType: "WU"
- title: "local-server"
identifier: "Change-to-unique-identifier-for-your-team!"
scanMode: "local"