2023 年 03 月 29 日
MIRACLE Vul Hammer V4 を構築してみよう ~手順を詳しく解説!
本ブログでは、MIRACLE Vul Hammer V4 の構築手順について記載します。
MIRACLE Vul Hammer とは?
MIRACLE Vul Hammer は、サイバートラストが開発した 脆弱性管理ソリューションです。Linux ディストリビューションの知見を活かした OSS の高精度スキャン、最新の CVE データベースとの照合、脆弱性情報の一元管理と脆弱なソフトウェアへのタイムリーな脆弱性対策を行うことが出来ます。また、米国標準技術研究所(NIST)のセキュリティガイドライン NIST SP800-53 / NIST SP800-171 への対応を支援します。
今までの MIRACLE Vul Hammer との違いは?
V3 との違いは MIRACLE Vul Hammer バージョン 4 リリースに記載のとおりとなります。
また、V3 では MIRACLE ZBX が別途必要でしたが、V4 では MIRACLE ZBX と分離されたことで、ZBX を導入する必要がなくなりました。
MIRACLE Vul Hammer V4 の新機能についてはこちらのブログをご覧ください。
システム構成イメージ
MIRACLE Vul Hammer のシステム構成は以下の通りです ( 図 1)
<図 1. MIRACLE Vul Hammer のシステム構成イメージ>
インフラ構成
今回は AWS を使用して環境を構築しました。インフラ構成は以下の通りです ( 図 2)
また、今回は脆弱性管理対象ホストは事前に構築している前提となります。
プラットフォーム: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=80/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-4.4-5.ML8.x86_64.rpm \ vulhammer-pywinrm-0.4-1.ML8.x86_64.rpm \ vulhammer-scap-security-guide-20221118-1.ML8.noarch.rpm \ vulhammer-scripts-4.1-1.ML8.noarch.rpm
MariaDB 上へデータベース作成
Vul Hammer Manager が利用するデータベースを作成します。
以下のパラメータを MariaDB の設定ファイルの [mysqld] セクションに設定してください。
環境によっては、innodb_large_prefix=1、innodb_file_format=Barracuda、innodb_file_format_max=Barracuda は不要になる場合もあります。
今回の環境では不要だったため、コメントアウトしています。
# 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 #innodb_file_format=Barracuda 26 #innodb_file_format_max=Barracuda 27 event_scheduler=ON
MariaDB の起動および自動起動設定を有効にします。
# systemctl start mariadb.service # systemctl enable mariadb.service
データベースを作成します。
ここでは、「oscap_scan」という名前のデータベースを作成します。
# mysql -u root -e "create database oscap_scan"
作成したデータベースに、Vul Hammer Manager パッケージが提供するデータベーススキーマと初期設定を導入します。
# mysql -u root oscap_scan < /usr/share/doc/vulhammer-manager/schema.sql
続いて、Vul Hammer 用データベース接続ユーザを作成します。ここでは、例として「vulhammeruser」という名前で作成しています。
# mysql -u root MariaDB [(none)]> create user vulhammeruser@localhost identified by '[ 任意のパスワード ]'; Query OK, 0 rows affected (0.002 sec)
ユーザ vulhammeruser に、データベース oscap_scan にまつわる全ての権限を付与します。
MariaDB [(none)]> grant all privileges on oscap_scan.* to vulhammeruser@localhost;
Query OK, 0 rows affected (0.000 sec)
ライセンスファイルのインストール
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 | データベースユーザ名 | vulhammeruser |
OSDBPassword | データベースユーザのパスワード | [ 任意のパスワード文字列 ] |
OSDBName | データベース名 | oscap_scan |
ContentsCertFile | クライアント証明書ファイルパス | /var/lib/vulhammer/contents_cert |
ContentsCertKey | クライアント証明書キーファイルパス | /var/lib/vulhammer/contents_key |
MasterKey | SSH パスフレーズを暗号化するためのパスワードが記述されたファイルのパス | /var/lib/vulhammer/passfile |
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=vulhammeruser 90 91 ### OSDBPassword 92 # Database user password. (省略・・・) 97 OSDBPassword=[ 任意のパスワード文字列 ] 98 99 ### OSDBName 100 # Database name. (省略・・・) 105 OSDBName=oscap_scan 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/passfile
外部サイトへアクセスする際にプロキシを経由する場合は、Proxy パラメータの設定も行ってください。設定されていない場合、弊社の Vul Hammer 公開サーバから脆弱性情報が取得できなくなります。
Apache のインストール
後述の作業を実施するために、Vul Hammer Frontend の依存パッケージである Apache をここで事前にインストールします。
# dnf install httpd
SSH パスフレーズ暗号化のためのマスターキー作成
Vul Hammer Manager は脆弱性管理対象ホストへのログインに、SSH パスフレーズを用います。この SSH パスフレーズを暗号化するためのマスターキーを作成します。
/etc/vulhammer/vulhammer-manager.conf の MasterKey パラメータで指定されているファイルの 1 行目にマスターキーとする任意の文字列を記述します。ここでは、/var/lib/vulhammer/passfile に任意の文字列を記述します。
このマスターキーは Vul Hammer Frontend 側でパスフレーズを暗号化する際にも使用されます。もし、共通のマスターキーファイルを利用する場合は、他のユーザが読めないようにするために、Vul Hammer Manager の動作ユーザ(vulhammer)と Vul Hammer Frontend の動作ユーザ(apache)を同じグループに所属させる必要があります。
マスターキーの所有者と所有グループを vulhammer にし、他グループに権限を与えないようにします。
# vi /var/lib/vulhammer/passfile # chown vulhammer.vulhammer /var/lib/vulhammer/passfile # chmod 640 /var/lib/vulhammer/passfile # usermod -a -G vulhammer apache
Vul Hammer Manager を起動します。
# systemctl start vulhammer-manager
Vul Hammer Frontend のインストール・設定
Vul Hammer Frontend のインストール
Vul Hammer Frontend の依存パッケージにあたる python3、libjpeg-turbo、python3-libs、libffi 、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 公開サーバから取得した、Vul Hammer Frontend 用パッケージをインストールします。
# rpm -ivh vulhammer-frontend-4.1-1.ML8.x86_64.rpm
Vul Hammer Frontend の設定
VulHammer Frontend の設定ファイル(/etc/vulhammer-frontend.json)を編集します。以下は設定例です。
# vi /etc/vulhammer-frontend.json 1 { 2 "masterkey": "/var/lib/vulhammer/passfile", 3 "secretkey": "1i)=um37@_$w*x16h8m*)sw!*w1zka9e9(f+gp7mx0ky##SECRETKEY#u6qm", 4 "database": { 5 "name": "oscap_scan", 6 "user": "vulhammeruser", 7 "password": "[ 任意のパスワード ]", 8 "host": "localhost", 9 "port": "3306" 10 } 11 }
Apache を起動します。
# systemctl start httpd.service
Web ブラウザを利用して、<http/https>://<Vul Hammer Frontend が動作するサーバの IP アドレス >/results/ にアクセスすると、VulHammer Frontend の WebUI が表示されます。
Vul Hammer Proxy のインストール・設定
Vul Hammer Proxy のインストール
Vul Hammer Proxy の依存パッケージにあたる samba、krb5-workstation、sshpass をインストールします。
# dnf install samba krb5-workstation sshpass
Vul Hammer 公開サーバから取得した、Vul Hammer Proxy 用パッケージをインストールします。
# rpm -ivh vulhammer-proxy-4.4-5.ML8.x86_64.rpm
MariaDB 上へデータベース作成
Vul Hammer Proxy が利用するデータベースを作成します。
ここでは、「oscap_scan_proxy」という名前のデータベースを作成します。
# mysql -u root -e "create database oscap_scan_proxy"
作成したデータベースに、Vul Hammer Proxy パッケージが提供するデータベーススキーマと初期設定を導入します。
# mysql -u root oscap_scan_proxy < /usr/share/doc/vulhammer-proxy/schema.sql
ユーザ vulhammeruser に、データベース oscap_scan_proxy にまつわる全ての権限を付与します。
# mysql -u root
MariaDB [(none)]> grant all privileges on oscap_scan_proxy.* to vulhammeruser@localhost;
Query OK, 0 rows affected (0.000 sec)
Vul Hammer Proxy の設定
Vul Hammer Proxy の設定ファイル(/etc/vulhammer-frontend.json)を編集します。以下は主な設定項目です。
パラメータ | 説明 | 設定例 |
---|---|---|
ProxyUUID | Vul Hammer プロキシの一意性を保証するための UUID。 | フロントエンドでプロキシを作成時に自動生成され、この値を確認し入力する。 |
OSDBServer | データベースが動作するホストの IP、ホスト名 | localhost |
OSDBUser | データベースユーザ名 | vulhammeruser |
OSDBPassword | データベースユーザのパスワード | [ 任意のパスワード文字列 ] |
OSDBName | データベース名 | oscap_scan_proxy |
VulHammerManager | Vul Hammer マネージャがデータを受信可能な IP ア ドレス | 127.0.0.1 |
# vi /etc/vulhammer/vulhammer-proxy.conf 1 ### ProxyUUID 2 # Proxy UUID value (省略・・・) 7 ProxyUUID=[ フロントエンドでプロキシを作成時に自動生成された値 ] (省略・・・) 81 ### OSDBServer 82 # Database server IP address. (省略・・・) 87 OSDBServer=localhost 88 89 ### OSDBUser 90 # Database user name. (省略・・・) 95 OSDBUser=vulhammeruser 96 97 ### OSDBPassword 98 # Database user password. (省略・・・) 105 ### OSDBName 106 # Database name. (省略・・・) 111 OSDBName=oscap_scan_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 鍵を作成します。ここでは、例として /etc/vulhammer/keys/ 配下に鍵を生成します。
# mkdir /var/lib/vulhammer/keys # cd /var/lib/vulhammer/keys # 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/keys/vulhammeruser Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /var/lib/vulhammer/keys/vulhammeruser. Your public key has been saved in /var/lib/vulhammer/keys/vulhammeruser.pub.
/etc/vulhammer/keys/ 以下のディレクトリ、ファイルの所有者と所有グループを vulhammer にします。
# chown -R vulhammer.vulhammer /var/lib/vulhammer/keys
脆弱性管理対象サーバを追加
作業対象のサーバが変わります
ここまでは Vul Hammer サーバ側での作業でしたが、ここからは脆弱性の管理対象サーバ側での作業となります。
openscap-scanner のインストール
脆弱性スキャンを実施する oscap コマンドを利用するために、openscap-scanner をインストールします。
# dnf install openscap-scanner
Vul Hammer Update Agent のインストール
脆弱性スキャンによって検出された脆弱性には、影響を受けるパッケージが関連付けられることがあります。Vul Hammer Update Agent は脆弱性の影響を受けるパッケージを Vul Hammer を通してアップデートする際に必要となります。
以下のコマンドで、Vul Hammer 公開サーバから取得した、Vul Hammer Update Agent をインストールします。
# rpm -ihv vulhammer-update-agent-1.0-1.ML8.noarch.rpm Verifying... ################################# [100%] Preparing... ################################# [100%] Updating / installing... 1:vulhammer-update-agent-1.0-1.ML8 ################################# [100%]
SSH 接続用のユーザ作成
Vul Hammer Manager から SSH 接続をする際の接続ユーザを作成します。ここでは、接続ユーザを vulhammeruser として作成します。合わせてパスワードの設定も行っています。
# useradd -m vulhammeruser # passwd vulhammeruser Changing password for user vulhammeruser. New password: Retype new password: passwd: all authentication tokens updated successfully.
公開鍵の登録
Vul Hammer サーバ側で作成した公開鍵を脆弱性管理対象ホストに登録します。
先ほど作成した vulhammeruser ユーザのホームディレクトリ直下に .ssh ディレクトリを作成します。
authorized_keys ファイルを作成し、SSH 鍵作成時に生成された公開鍵(vulhammeruser.pub)の内容をコピー&ペーストします。
# mkdir /home/vulhammeruser/.ssh
# vi /home/vulhammeruser/.ssh/authorized_keys
.ssh ディレクトリ、authorized_keys ファイルの所有者と所有グループを vulhammeruser にします。
# chown -R vulhammeruser.vulhammeruser /home/vulhammeruser/.ssh
.ssh ディレクトリのパーミッションを 700、authorized_keys のパーミッションを 600 にします。
# chmod 700 /home/vulhammeruser/.ssh
# chmod 600 /home/vulhammeruser/.ssh/authorized_keys
接続確認
最後に、Vul Hammer サーバ側から脆弱性管理対象ホストへ SSH 接続出来るか確認しましょう。
# sudo -u vulhammer ssh -i /var/lib/vulhammer/keys/vulhammeruser vulhammeruser@[ 脆弱性管理対象ホストの 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 Warning: Permanently added 'xx.xx.xx.xx' (ECDSA) to the list of known hosts. Activate the web console with: systemctl enable --now cockpit.socket [vulhammeruser@[ 脆弱性管理対象ホスト名 ] ~ ]$
おわりに
いかがでしたでしょうか。以上で、MIRACLE Vul Hammer の構築作業は終了です。
評価版は複数のパターンで提供しており、rpm パッケージ版は構築手順もおおむね同じです。是非お試しください!
※評価版は、2022 年 1 月時点の脆弱性情報を利用して脆弱性スキャンを実行します。脆弱性情報は最新のものに更新されません。
MIRACLE Vul Hammer 評価版
実際の導入の前に、脆弱性管理ツール「MIRACLE Vul Hammer」をトライアルでご利用いただけます。導入検証や技術評価に是非ご活用ください。
本記事に関連するリンク
- MIRACLE Vul Hammer 製品紹介はこちら
脆弱性管理ツール MIRACLE Vul Hammer - MIRACLE Vul Hammer リリースノートはこちら
MIRACLE Vul Hammer サポート関連情報