2023 年 10 月 19 日
MIRACLE Vul Hammer V5 を構築してみよう ~手順を詳しく解説!
本ブログでは、MIRACLE Vul Hammer V5 の構築手順について記載します。
MIRACLE Vul Hammer とは?
MIRACLE Vul Hammer は、サイバートラストが開発した脆弱性管理ソリューションです。Linux ディストリビューションの知見を活かした OSS の高精度スキャン、最新の CVE データベースとの照合、脆弱性情報の一元管理と脆弱なソフトウェアへのタイムリーな脆弱性対策を行うことが出来ます。また、米国標準技術研究所(NIST)のセキュリティガイドライン NIST SP800-53 / NIST SP800-171 への対応を支援します。
今までの MIRACLE Vul Hammer との違いは?
MIRACLE Vul Hammer V4 との違いは Vul Hammer の管理画面の UI が変更になりました。
また、フロントエンドに API を実装し、パフォーマンスの向上も実現しています。
システム構成イメージ
MIRACLE Vul Hammer のシステム構成は以下の通りです。( 図 1)
MIRACLE Vul Hammer はマネージャ、フロントエンド、プロキシから構成されています。
<図 1. MIRACLE Vul Hammer のシステム構成イメージ>
インフラ構成
今回は AWS を使用して環境を構築しました。インフラ構成は以下の通りです。( 図 2)
Vul Hammer のサーバに Manager、Frontend、Proxy を全てインストールします。
また、今回脆弱性管理対象ホストは事前に構築している前提となります。
プラットフォーム:Amazon Web Service
OS:MIRACLE LINUX 8(MIRACLE LINUX 8 は AWS マーケットプレイスのものを使用)
<図 2. インフラ構成>
構築手順
それでは実際に構築していきましょう。本手順は大きく以下の流れで進めます。
- Vul Hammer Manager のインストールと設定
- Vul Hammer Frontend のインストールと設定
- Vul Hammer Proxy のインストールと設定
- 脆弱性管理対象サーバを追加
Vul Hammer Manager のインストールと設定
Vul Hammer 公開サーバからパッケージをダウンロード
当社から提供した PKCS12 形式のクライアント証明書(拡張子が .p12 のファイル)を、お使いの Web ブラウザに取り込みます。
証明書を取り込んだ Web ブラウザから、Vul Hammer 公開サーバ(https://contents.vul-hammer.com/pkgs/ )へアクセスして、各種パッケージをダウンロードして下さい。
ファイアーウォールを設定する
ファイアウォールの設定を変更します。
今回は AWS EC2 を使用しているため本手順はスキップし、同様の設定を Security Group にて行っています。
# firewall-cmd --permanent --add-port=8888/tcp # firewall-cmd --reload
Vul Hammer Manager のインストール
Vul Hammer Manager の依存パッケージにあたる openscap-utils、python36、mariadb、mariadb-server をインストールします。
# dnf install openscap-utils python36 mariadb mariadb-server
Vul Hammer 公開サーバから取得したパッケージをインストールします。
# rpm -ivh vulhammer-manager-5.2-1.ML8.x86_64.rpm \ vulhammer-pywinrm-0.7-1.ML8.x86_64.rpm \ vulhammer-scap-security-guide-20230523-1.ML8.noarch.rpm \ vulhammer-scripts-4.3-1.ML8.noarch.rpm
MariaDB 上へデータベース作成
Vul Hammer Manager が利用するデータベースを作成します。
以下のパラメータを MariaDB の設定ファイルの [mysqld] セクションに設定してください。
環境によっては、innodb_large_prefix=1 は不要になる場合もあります。
今回の環境では不要だったため、コメントアウトしています。
# vi /etc/my.cnf.d/mariadb-server.cnf 16 [mysqld] 17 datadir=/var/lib/mysql 18 socket=/var/lib/mysql/mysql.sock 19 log-error=/var/log/mariadb/mariadb.log 20 pid-file=/run/mariadb/mariadb.pid 21 character-set-server=utf8mb4 22 collation-server=utf8mb4_bin 23 #innodb_large_prefix=1 24 innodb_file_per_table=1 25 event_scheduler=ON
MariaDB の起動および自動起動設定を有効にします。
# systemctl start mariadb.service
# systemctl enable mariadb.service
データベースを作成します。
ここでは、「vh_manager」という名前のデータベースを作成します。
# mysql -u root -e "create database vh_manager"
作成したデータベースに、Vul Hammer Manager パッケージが提供するデータベーススキーマと初期設定を導入します。
# mysql -u root vh_manager < /usr/share/doc/vulhammer-manager/schema.sql
続いて、Vul Hammer 用データベース接続ユーザを作成します。ここでは、例として「vuluser」という名前で作成しています。
# mysql -u root
MariaDB [(none)]> create user vuluser@localhost identified by '[ 任意のパスワード ]';
ユーザ vuluser に、データベース vh_manager にまつわる全ての権限を付与します。
MariaDB [(none)]> grant all privileges on vh_manager.* to vuluser@localhost;
ライセンスファイルのインストール
Vul Hammer を利用するために、当社から提供した PKCS12 形式のクライアント証明書を PEM 形式の証明書と PEM 形式の鍵ファイルに変換し、配置します。
PKCS12 形式のクライアント証明書 client.p12 を、PEM 形式の証明書 contents_cert、PEM 形式の鍵ファイル contents_key に変換します。
# openssl pkcs12 -in client.p12 -out contents_cert -clcerts -nokeys Enter Import Password: # openssl pkcs12 -in client.p12 -out contents_key -nocerts -nodes Enter Import Password: # ls -la contents_* -rw------- 1 root root 2079 Feb 7 16:23 contents_cert -rw------- 1 root root 1844 Feb 7 16:23 contents_key
作成した contents_cert、contents_key を /var/lib/vulhammer/ のディレクトリに配置します。なお、contents_cert と contents_key の所有者は vulhammer ユーザへ変更しましょう。また、2 つのパーミッションの変更もあわせて行います。
# mv contents_cert contents_key /var/lib/vulhammer/ # chown vulhammer.vulhammer /var/lib/vulhammer/contents_cert /var/lib/vulhammer/contents_key # chmod 644 /var/lib/vulhammer/contents_cert /var/lib/vulhammer/contents_key # ls -la /var/lib/vulhammer/ drwxr-xr-x 4 root root 4096 Feb 7 16:27 . drwxr-xr-x. 31 root root 4096 Feb 7 15:03 .. -rw-r--r-- 1 vulhammer vulhammer 2079 Feb 7 16:23 contents_cert -rw-r--r-- 1 vulhammer vulhammer 1844 Feb 7 16:23 contents_key
Vul Hammer Manager の設定
Vul Hammer Manager の設定ファイル(/etc/vulhammer/vulhammer-manager.conf)を編集します。
以下は主な設定項目です。
パラメータ | 説明 | 設定例 |
---|---|---|
OSDBServer | データベースが動作するホストの IP、ホスト名 | localhost |
OSDBUser | データベースユーザ名 | vuluser |
OSDBPassword | データベースユーザのパスワード | [ 任意のパスワード文字列 ] |
OSDBName | データベース名 | vh_manager |
ContentsCertFile | クライアント証明書ファイルパス | /var/lib/vulhammer/contents_cert |
ContentsCertKey | クライアント証明書キーファイルパス | /var/lib/vulhammer/contents_key |
MasterKey | SSH パスフレーズを暗号化するためのパスワードが記述されたファイルのパス | /var/lib/vulhammer/masterkey |
WebFrontendURL | Vul Hammer Frontend が動作する URL | http://[ EC2 の グローバル IP アドレス ]/results/ |
# vi /etc/vulhammer/vulhammer-manager.conf (省略・・・) 75 ### OSDBServer 76 # Database server IP address. (省略・・・) 81 OSDBServer=localhost 82 83 ### OSDBUser 84 # Database user name. (省略・・・) 89 OSDBUser=vuluser 90 91 ### OSDBPassword 92 # Database user password. (省略・・・) 97 OSDBPassword=[ 任意のパスワード文字列 ] 98 99 ### OSDBName 100 # Database name. (省略・・・) 105 OSDBName=vh_manager 106 107 ### ContentsCertFile 108 # Full path of Cert File for downloading contents from Cybertrust site. (省略・・・) 113 ContentsCertFile=/var/lib/vulhammer/contents_cert 114 115 ### ContentsCertKey 116 # Full path of Cert Key for upper ContentsFile parameter. (省略・・・) 121 ContentsCertKey=/var/lib/vulhammer/contents_key (省略・・・) 130 ### MasterKey 131 # Full path which includes password used at decrypting ssh key file passphrase. (省略・・・) 136 MasterKey=/var/lib/vulhammer/masterkey (省略・・・) 145 ### WebFrontendURL 146 # Vul Hammer's system Web frontend URL to be terminated with '/'. (省略・・・) 151 WebFrontendURL=http://[ EC2 の グローバル IP アドレス ]/results/
外部サイトへアクセスする際にプロキシを経由する場合は、Proxy パラメータの設定も行ってください。設定されていない場合、弊社の Vul Hammer 公開サーバから脆弱性情報が取得できなくなります。
SSH パスフレーズ暗号化のためのマスターキー作成
Vul Hammer Manager は脆弱性管理対象ホストへのログインに、SSH パスフレーズを用います。この SSH パスフレーズを暗号化するためのマスターキーを作成します。
/etc/vulhammer/vulhammer-manager.conf の MasterKey パラメータで指定されているファイルの 1 行目にマスターキーとする任意の文字列を記述します。
# vi /var/lib/vulhammer/masterkey
vulhammermasterkey##@@!!
上記では、"vulhammermasterkey##@@!!" がマスターキーとなります。
このマスターキーは Vul Hammer Frontend 側でパスフレーズを暗号化する際にも使用されます。共通ファイルを用いる場合、他のユーザーから読めないようにするためには、Vul Hammer のサービスを動作させるユーザ (vulhammer) からファイルを読み込み可能にさせる必要があります。
マスターキーの所有者と所有グループを vulhammer にし、他グループに権限を与えないようにします。
# chown vulhammer.vulhammer /var/lib/vulhammer/masterkey
# chmod 640 /var/lib/vulhammer/masterkey
Windows の OVAL を配置
以前は Windows 用 OVAL ファイルを提供しているサイトが存在しましたが、現在は停止しています。詳細は以下のサポートページをご参照ください。
これを回避するためには、下記レポジトリより最新リリースの 5.10.zip ファイルをダウンロードし、所定の場所へ配置してください。5.10.zip 以外のものも存在しますが、Vul Hammer で使用するのは 5.10.zip である事にご注意ください。
# unzip 5.10.zip # mkdir /var/lib/vulhammer/win_ovals # chown vulhammer.vulhammer /var/lib/vulhammer/win_ovals # mv output-files/5.10/vulnerability/microsoft_windows_*.xml /var/lib/vulhammer/win_ovals/ # chown -R vulhammer.vulhammer /var/lib/vulhammer/win_ovals/*
Vul Hammer Manager を起動します。
# systemctl start vulhammer-manager
Vul Hammer Frontend のインストールと設定
Vul Hammer Frontend のインストール
Vul Hammer Frontend の依存パッケージにあたる python3、python3-libs、libffi 、libjpeg-turbo、libjpeg-turbo、freetype、fontpackages-filesystem をインストールします。
# dnf install python3 python3-libs libffi libjpeg-turbo freetype fontpackages-filesystem
Vul Hammer Frontend の依存パッケージにあたる ipa-pmincho-fonts をインストールします。なお、MIRACLE LINUX 8 標準では提供されていないため、CentOS 7 のミラーサイトから提供されているパッケージをインストールします。
# curl -O http://mirror.centos.org/centos/7/os/x86_64/Packages/ipa-pmincho-fonts-003.03-5.el7.noarch.rpm # rpm -ivh ipa-pmincho-fonts-003.03-5.el7.noarch.rpm
Vul Hammer Frontend 用パッケージをインストールします。
# rpm -ivh vulhammer-frontend-5.0-4.el8.x86_64.rpm
Vul Hammer Frontend の設定
VulHammer Frontend の設定ファイル(/etc/vulhammer/vulhammer-frontend.yml)を編集します。
以下は主な設定項目です。
パラメータ | 説明 | 設定例 |
---|---|---|
http/address | サービスがリッスンするアドレス | 0.0.0.0 |
http/port | サービスがリッスンするポート | 8888 |
http/path | サービスを公開する URL パス | / |
database/user | データベースユーザ名 | vuluser |
database/password | データベースユーザのパスワード | [ 任意のパスワード文字列 ] |
database/host | データベースが動作するホストの IP、ホスト名 | 127.0.0.1 |
database/database | データベース名 | vh_manager |
masterKey | SSH パスフレーズを暗号化するためのパスワードが記述されたファイルのパス | /var/lib/vulhammer/masterkey |
# vi /etc/vulhammer/vulhammer-frontend.yml 1 --- 2 http: 3 address: 0.0.0.0 ※←変更 4 port: 8888 5 path: / 6 htdocsDirectoryPath: /usr/share/vulhammer/web 7 reporting: 8 outputDirectoryPath: /var/lib/vulhammer/report 9 reporterDirectory: /usr/share/vulhammer/reporter 10 python: python3 11 font: /usr/share/fonts/ipa-pmincho/ipamp.ttf 12 logging: 13 level: info 14 console: 15 enable: false 16 file: 17 enable: true 18 path: /var/log/vulhammer/vulhammer-frontend.log 19 database: 20 user: vuluser ※←変更 21 password: [ 任意のパスワード文字列 ] ※←変更 22 host: 127.0.0.1 23 port: 3306 24 database: vh_manager ※←変更 25 hitachiSearchEngineAPI: 26 url: http://localhost:8081/ 27 masterKey: /var/lib/vulhammer/masterkey ※←変更
Vul Hammer Frontend を起動します。
# systemctl start vulhammer-frontend
Web ブラウザを利用して、
http://<Vul Hammer Frontend が動作するサーバの IP アドレス >:8888/
にアクセスすると、VulHammer Frontend の WebUI が表示されます。
Vul Hammer Proxy の UUID を取得
後の手順で必要となる、ProxyUUID を取得します。
WebFrontendURL に Web ブラウザからアクセスします。
以下のようなログイン画面が表示されます。
<図 3. MIRACLE Vul Hammer のログイン画面>
メールアドレスとパスワードを入力してログインしてください。
構築直後の初期設定の場合、メールアドレスとパスワードは以下になります。
メールアドレス | admin@example.com |
---|---|
password | password |
Vul Hammer の Web 画面左側にあるサイドバーから「プロキシ」を選択します。
プロキシ画面では、Vul Hammer がスキャン対象へ接続する際の Vul Hammer Proxy の一覧が表示されます。
<図 4. MIRACLE Vul Hammer のプロキシ画面>
プロキシ画面右上にある「操作」メニューから「作成」をクリックします。
<図 5. MIRACLE Vul Hammer の操作メニュー>
フォームにプロキシ名を入力します。以下は、「proxy01」という名前で登録する例です。
入力が完了したら「送信」をクリックします。
<図 6. MIRACLE Vul Hammer のプロキシ作成画面>
正しく追加された場合は、プロキシの一覧に「proxy01」が追加されます。
作成したプロキシで自動生成された UUID はこの後の 「Vul Hammer Proxy の設定」の手順で使用します。
<図 7. MIRACLE Vul Hammer のプロキシ画面>
Vul Hammer Proxy のインストールと設定
Vul Hammer Proxy のインストール
Vul Hammer Proxy の依存パッケージにあたる samba、krb5-workstation、sshpass をインストールします。
# dnf install samba krb5-workstation sshpass
Vul Hammer Proxy 用パッケージをインストールします。
# rpm -ivh vulhammer-proxy-5.2-1.ML8.x86_64.rpm \
vulhammer-proxy-tools-0.1-1.ML8.noarch.rpm
MariaDB 上へデータベース作成
Vul Hammer Proxy が利用するデータベースを作成します。
ここでは、「vh_proxy」という名前のデータベースを作成します。
# mysql -u root -e "create database vh_proxy"
作成したデータベースに、Vul Hammer Proxy パッケージが提供するデータベーススキーマと初期設定を導入します。
# mysql -u root vh_proxy < /usr/share/doc/vulhammer-proxy/schema.sql
ユーザ vuluser に、データベース vh_proxy にまつわる全ての権限を付与します。
# mysql -u root
MariaDB [(none)]> grant all privileges on vh_proxy.* to vuluser@localhost;
Vul Hammer Proxy の設定
Vul Hammer Proxy の設定ファイル(/etc/vulhammer/vulhammer-proxy.conf)を編集します。以下は主な設定項目です。
パラメータ | 説明 | 設定例 |
---|---|---|
ProxyUUID | Vul Hammer Proxy の一意性を保証するための UUID | 前の手順の Frontend でプロキシを作成時に自動生成された UUID 値を入力 |
OSDBServer | データベースが動作するホストの IP、ホスト名 | localhost |
OSDBUser | データベースユーザ名 | vuluser |
OSDBPassword | データベースユーザのパスワード | [ 任意のパスワード文字列 ] |
OSDBName | データベース名 | vh_proxy |
VulHammerManager | Vul Hammer Manager がデータを受信可能な IP アドレス | 127.0.0.1 |
# vi /etc/vulhammer/vulhammer-proxy.conf 1 ### ProxyUUID 2 # Proxy UUID value (省略・・・) 7 ProxyUUID=[ フロントエンドでプロキシを作成時に自動生成された UUID 値 ] (省略・・・) 81 ### OSDBServer 82 # Database server IP address. (省略・・・) 87 OSDBServer=localhost 88 89 ### OSDBUser 90 # Database user name. (省略・・・) 95 OSDBUser=vuluser 96 97 ### OSDBPassword 98 # Database user password. (省略・・・) 104 OSDBPassword=[ 任意のパスワード文字列 ] 105 ### OSDBName 106 # Database name. (省略・・・) 111 OSDBName=vh_proxy 112 113 ### VulHammerManager 114 # Vul Hammer Manager's IP address. (省略・・・) 119 VulHammerManager=127.0.0.1
Vul Hammer Proxy を起動します。
# chown vulhammer.vulhammer /etc/vulhammer/vulhammer-proxy.conf
# systemctl start vulhammer-proxy
脆弱性管理対象ホストへログインするための SSH 鍵の作成
Vul Hammer は脆弱性スキャンを実施する際に、SSH 鍵を用いて脆弱性管理対象ホストへログインします。
ログインに必要な SSH 鍵を作成します。ここでは、例として /var/lib/vulhammer/.ssh/ 以下に鍵を生成します。
# ssh-keygen -t ed25519 Generating public/private ed25519 key pair. Enter file in which to save the key (/root/.ssh/id_ed25519): /var/lib/vulhammer/.ssh/vh_scanuser Enter passphrase (empty for no passphrase): Enter same passphrase again:
作成した SSH 鍵の所有者と所有グループを vulhammer にします。
# chown vulhammer.vulhammer /var/lib/vulhammer/.ssh/vh_scanuser
脆弱性管理対象サーバを追加
作業対象のサーバが変わります
ここまでは Vul Hammer サーバ側での作業でしたが、ここからは脆弱性の管理対象サーバ側での作業となります。
openscap-scanner のインストール
脆弱性スキャンを実施する oscap コマンドを利用するために、openscap-scanner をインストールします。
# dnf install openscap-scanner
Vul Hammer Update Agent のインストール
脆弱性スキャンによって検出された脆弱性には、影響を受けるパッケージが関連付けられることがあります。Vul Hammer Update Agent は脆弱性の影響を受けるパッケージを Vul Hammer を通してアップデートする際に必要となります。
本機能は Linux 系 OS 限定となっており、Vul Hammer 管理画面からパッケージのアップデートを行わない場合は Vul Hammer Update Agent をインストールする必要はありません。
以下のコマンドで Vul Hammer Update Agent をインストールします。
# rpm -ihv vulhammer-update-agent-1.0-1.ML8.noarch.rpm
SSH 接続用のユーザ作成
Vul Hammer Manager から SSH 接続をする際の接続ユーザを作成します。ここでは、接続ユーザを vh_scanuser として作成します。ここでは合わせてパスワードの設定も行っています。
# useradd -m vh_scanuser # passwd vh_scanuser Changing password for user vh_scanuser. New password: Retype new password: passwd: all authentication tokens updated successfully.
また、前手順でインストールした Vul Hammer Update Agent 機能を利用するためには、スキャンのための SSH 接続ユーザを vulhammer-update-agent グループ(このグループはパッケージインストール時に作成されます)に所属させる必要があります。 Vul Hammer Update Agent をインストールしていない場合はこの手順を実行する必要はありません。
# usermod -a -G vulhammer-update-agent vh_scanuser
公開鍵の登録
Vul Hammer サーバ側で作成した公開鍵を脆弱性管理対象ホストに登録します。
先ほど作成した vh_scanuser ユーザのホームディレクトリ直下に .ssh ディレクトリを作成します。
authorized_keys ファイルを作成し、SSH 鍵作成時に生成された公開鍵(vh_scanuser.pub)の内容をコピー&ペーストします。
ここでは公開鍵をコピー&ペーストで作成していますが、SSH 鍵作成時に生成された公開鍵(vh_scanuser.pub)を脆弱性管理対象ホストに転送し、リネームと権限変更でも問題ありません。
# mkdir /home/vh_scanuser/.ssh
# vi /home/vh_scanuser/.ssh/authorized_keys
.ssh ディレクトリ、authorized_keys ファイルの所有者と所有グループを vh_scanuser にします。
# chown -R vh_scanuser.vh_scanuser /home/vh_scanuser/.ssh
.ssh ディレクトリのパーミッションを 700、authorized_keys のパーミッションを 600 にします。
# chmod 700 /home/vh_scanuser/.ssh
# chmod 600 /home/vh_scanuser/.ssh/authorized_keys
接続確認
最後に、Vul Hammer サーバ側から脆弱性管理対象ホストへ SSH 接続出来るか確認しましょう。
# sudo -u vulhammer ssh -i /var/lib/vulhammer/.ssh/vh_scanuser vh_scanuser@[ 脆弱性管理対象ホストの IP アドレス ] The authenticity of host 'xx.xx.xx.xx (xx.xx.xx.xx)' can't be established. ECDSA key fingerprint is SHA256:0C/DDvBFJJgFl5HSJHYpkPf6Qh5Blhu0poQhT0pXT+M. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes [vh_scanuser@[ 脆弱性管理対象ホスト名 ] ~ ]$
おわりに
いかがでしたでしょうか。以上で、MIRACLE Vul Hammer V5 の構築作業は終了です。
評価版は複数のパターンで提供しており、rpm パッケージ版は構築手順もおおむね同じです。是非お試しください!
※評価版は、2022 年 1 月時点の脆弱性情報を利用して脆弱性スキャンを実行します。脆弱性情報は最新のものに更新されません。
MIRACLE Vul Hammer 評価版
実際の導入の前に、脆弱性管理ツール「MIRACLE Vul Hammer」をトライアルでご利用いただけます。導入検証や技術評価に是非ご活用ください。
本記事に関連するリンク
- MIRACLE Vul Hammer 製品紹介はこちら
脆弱性管理ツール MIRACLE Vul Hammer - MIRACLE Vul Hammer リリースノートはこちら
MIRACLE Vul Hammer サポート関連情報