2022 年 06 月 15 日
MIRACLE Vul Hammer を構築してみよう
MIRACLE Vul Hammer とは?
MIRACLE Vul Hammer は、サイバートラストが開発した Zabbix 連携の脆弱性管理ソリューションです。Linux ディストリビューションの知見を活かした OSS の高精度スキャン、最新の CVE データベースとの照合、システム監視ソフトの「Zabbix」や「MIRACLE ZBX」との連携によって、脆弱性情報の一元管理と脆弱なソフトウェアへのタイムリーな脆弱性対策を行うことが出来ます。また、米国標準技術研究所(NIST)のセキュリティガイドライン NIST SP800-53 / NIST SP800-171 への対応を支援します。
構成
今回は、一例として MIRACLE LINUX8.4 と WordPress でブログサーバを構築してみよう で構築したブログサーバを Vul Hammer のスキャン対象とします。構成は以下の通りです。
なお、MIRACLE ZBX Server および Zabbix は構築済みであることを前提に説明します。
vulhammer-server 側の設定
ここでは、vulhammer-server 側の設定について紹介します。
MIRACLE ZBX エージェントのインストール・設定
Vul Hammer を利用するためには ZBX エージェント(もしくは Zabbix エージェント)が必要です。
ZBX エージェントのインストールは、弊社サポートページの MIRACLE ZBX 5.0 インストールマニュアル をご参照ください。
Vul Hammer 公開サーバからパッケージをダウンロード
当社から提供した PKCS12 形式のクライアント証明書(拡張子が .p12 のファイル)を、お使いの Web ブラウザに取り込みます。
証明書を取り込んだ Web ブラウザから、Vul Hammer 公開サーバ(https://contents.vul-hammer.com/pkgs/ )へアクセスして、パッケージをダウンロードして下さい。
ライセンスファイルのインストール
Vul Hammer を利用するために、当社から提供した PKCS12 形式のクライアント証明書を PEM 形式の証明書と PEM 形式の鍵ファイルに変換し、配置します。
PKCS12 形式のクライアント証明書 client.p12 を、PEM 形式の証明書 contents_cert、PEM 形式の鍵ファイル contents_key に変換します。
[root@vulhammer-server ~]# openssl pkcs12 -in client.p12 -out contents_cert -clcerts -nokeys Enter Import Password: [root@vulhammer-server ~]# openssl pkcs12 -in client.p12 -out contents_key -nocerts -nodes Enter Import Password: [root@vulhammer-server ~]# ls -la contents_* -rw-------. 1 root root 2079 3 月 22 16:13 contents_cert -rw-------. 1 root root 1844 3 月 22 16:14 contents_key
作成した contents_cert、contents_key を任意のディレクトリに配置します。なお、contents_cert と contents_key の所有者は zabbix ユーザへ変更しましょう。
以下の例では、contents_cert と contents_key を /var/lib/zabbix 以下に配置しています。また、2 つのファイルの所有者、所有グループ、パーミッションの変更を行っています。
[root@vulhammer-server ~]# mv /root/contents_cert /root/contents_key /var/lib/zabbix [root@vulhammer-server ~]# chown zabbix.zabbix /var/lib/zabbix/contents_cert /var/lib/zabbix/contents_key [root@vulhammer-server ~]# chmod 644 /var/lib/zabbix/contents_cert /var/lib/zabbix/contents_key [root@vulhammer-server ~]# ls -la /var/lib/zabbix 合計 16 drwxr-xr-x. 2 zabbix zabbix 4096 3 月 22 16:18 . drwxr-xr-x. 64 root root 4096 2 月 28 12:27 .. -rw-------. 1 zabbix zabbix 2079 3 月 22 16:13 contents_cert -rw-------. 1 zabbix zabbix 1844 3 月 22 16:14 contents_key
Vul Hammer Manager のインストール・設定
Vul Hammer の関連パッケージとして、samba をインストールします。
[root@vulhammer-server ~]# yum install samba
Vul Hammer の関連パッケージとして、sshpass をインストールします。なお、OS 標準では提供されていないため、EPEL から提供されているパッケージをインストールします。
[root@vulhammer-server ~]# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm [root@vulhammer-server ~]# yum install sshpass
Vul Hammer Manager の依存パッケージにあたる mariadb-server、openscap-utils をインストールします。
[root@vulhammer-server ~]# yum install mariadb-server openscap-utils
Vul Hammer 公開サーバから取得したパッケージをインストールします。
[root@vulhammer-server ~]# rpm -ivh vulhammer-manager-3.1-4.ML8.x86_64.rpm vulhammer-pywinrm-0.2-3.ML8.x86_64.rpm vulhammer-scap-security-guide-20220113-2.ML8.noarch.rpm vulhammer-scripts-3.0-1.ML8.noarch.rpm Verifying... ################################# [100%] 準備しています ... ################################# [100%] 更新中 / インストール中 ... 1:vulhammer-scap-security-guide-202################################# [ 25%] 2:vulhammer-pywinrm-0.2-3.ML8 ################################# [ 50%] 3:vulhammer-scripts-3.0-1.ML8 ################################# [ 75%] 4:vulhammer-manager-3.1-4.ML8 ################################# [100%] アップデートインストール後は、/usr/share/doc/vulhammer-manager-3.1/ 以下にあるアップデートスクリプトを順次実行して、DB の修正を行ってください。 e.g. 2.0 から 2.2 へのアップデート後に、これまでのアップデートを適用。 $ mysql -u root oscap_scan < /usr/share/doc/vulhammer-manager-3.1/2_0_to_2_1.sql $ mysql -u root oscap_scan < /usr/share/doc/vulhammer-manager-3.1/2_1_to_2_2.sql また、同じディレクトリに含まれる Zabbix テンプレートを再度インポートしてください。
MariaDB 上へデータベース作成
Vul Hammer が利用するデータベースを作成します。
以下のパラメータを MariaDB の設定ファイルの [mysqld] セクションに設定してください。
環境によっては、innodb_file_format=Barracuda、innodb_file_format_max=Barracuda は不要になる場合もあります。
[root@vulhammer-server ~]# vim /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=utf8
22 collation-server=utf8_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 の起動、自動起動設定を有効にします。
[root@vulhammer-server ~]# systemctl start mariadb.service [root@vulhammer-server ~]# systemctl enable mariadb.service
データベースを作成します。ここでは、「oscap_scan」という名前のデータベースを作成します。
[root@vulhammer-server ~]# mysql -u root -e "create database oscap_scan"
作成したデータベースに、マネージャーパッケージが提供するデータベーススキーマと初期設定を導入します。
[root@vulhammer-server ~]# mysql -u root oscap_scan < /usr/share/doc/vulhammer-manager/schema.sql
続いて、Vul Hammer 用データベース接続ユーザを作成します。ここでは、例として「vulhammeruser」という名前で作成しています。
[root@vulhammer-server ~]# 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)
ZBX エージェントの設定
ZBX エージェントの設定ファイル(/etc/zabbix/zabbix_agentd.conf)を編集します。
設定項目は以下の通りです。
- Server:ZBX Server(もしくは Zabbix Server)の IP アドレス
- ServerActive:ZBX Server(もしくは Zabbix Server)の IP アドレス
- Hostname:Vul Hammer マネージャーの ZBX システム上でのホスト名
- LoadModule:/etc/zabbix/zabbix_agentd.d/modules/vulhammer-manager.so
[root@vulhammer-server ~]# vim /etc/zabbix/zabbix_agentd.conf 115 ### Option: Server ・・・ ( 省略 ) ・・・ 127 Server=[ZBX Server(もしくはZabbix Server)のIPアドレス] 156 ### Option: ServerActive ・・・ ( 省略 ) ・・・ 168 ServerActive=[ZBX Server(もしくはZabbix Server)のIPアドレス] 170 ### Option: Hostname ・・・ ( 省略 ) ・・・ 179 Hostname=VulHammer Manager 360 ### Option: LoadModule ・・・ ( 省略 ) ・・・ 373 LoadModule=/etc/zabbix/zabbix_agentd.d/modules/vulhammer-manager.so
Vul Hammer Manager の設定
Vul Hammer Manager の設定ファイル(/etc/zabbix/vulhammer-manager.conf)を編集します。
以下は主な設定項目です。
パラメータ | 説明 | 設定例 |
---|---|---|
OSDBServer | データベースが動作するホストの IP、ホスト名 | localhost |
OSDBUser | データベースユーザ名 | vulhammeruser |
OSDBPassword | データベースユーザのパスワード | [ 任意のパスワード文字列 ] |
OSDBName | データベース名 | oscap_scan |
OSDBPort | データベースへのアクセスポート | 3306 |
ContentsCertFile | クライアント証明書ファイルパス | /var/lib/zabbix/contents_cert |
ContentsCertKey | クライアント証明書キーファイルパス | /var/lib/zabbix/contents_key |
MasterKey | SSH パスフレーズを暗号化するためのパスワードが記述されたファイルのパス | /var/lib/zabbix/passfile |
Zabbix Server | Zabbix Server の IP アドレス | [ZBX Server(もしくはZabbix Server)のIPアドレス] |
Port | Zabbix Server の Trapper プロセスのポート | 10051 |
WebFrontendURL | Vul Hammer フロントエンドが動作する URL | http://127.0.0.1/results/ |
[root@vulhammer-server ~]# vim /etc/zabbix/vulhammer-manager.conf
1 # OSDBServer is mandatory.
2 OSDBServer=localhost
3
4 # OSDBUser is mandatory
5 OSDBUser=vulhammeruser
6
7 # OSDBPassword is mandatory
8 OSDBPassword=[ データベースユーザのパスワード ]
9
10 # OSDBName is mandatory
11 OSDBName=oscap_scan
12
13 # OSDBPort is optional
14 OSDBPort=3306
15
16 # ContentsCertFile is mandatory and is the full path of Cert File
17 # for downloading contents from Cybertrust site.
18 ContentsCertFile=/var/lib/zabbix/contents_cert
19
20 # ContentsCertKey is mandatory and is the full path of Cert Key
21 # for upper ContentsFile parameter.
22 ContentsCertKey=/var/lib/zabbix/contents_key
23
・・・
(省略)
・・・
28 # MasterKey is set to the file full path which includes password
29 # used at decrypting ssh key_file passphrase.
30 MasterKey=/var/lib/zabbix/passfile
31
32 # ZabbixServer is set to Zabbix Server's IP address.
33 ZabbixServer=[ZBX Server(もしくはZabbix Server)のIPアドレス]
34
35 # Port is optional. It is set to Zabbix Server Trapper port.
36 Port=10051
・・・
(省略)
・・・
42 # WebFrontendURL is set to Vul Hammer's system Web frontend URL
43 # to be terminated with '/'.
44 WebFrontendURL=http://127.0.0.1/results/
・・・
(省略)
・・・
外部サイトへアクセスする際にプロキシを経由する場合は、Proxy パラメータの設定も行ってください。設定されていない場合、Vul Hammer 公開サーバから脆弱性情報が取得できなくなります。
SSH パスフレーズ暗号化のためのマスターキー作成
Vul Hammer マネージャーはスキャン対象へのログインに、SSH パスフレーズを用います。この SSH パスフレーズを暗号化するためのマスターキーを作成します。
/etc/zabbix/vulhammer-manager.conf の MasterKey パラメータで指定されているファイルの 1 行目にマスターキーとする任意の文字列を記述します。ここでは、/var/lib/zabbix/passfile に任意の文字列を記述します。
このマスターキーはフロントエンド側でパスフレーズを暗号化する際にも使用されます。もし、共通のマスターキーファイルを利用する場合は、他のユーザが読めないようにするために、マネージャーの動作ユーザ(zabbix)とフロントエンドの動作ユーザ(apache)を同じグループに所属させる必要があります。
マスターキーの所有者と所有グループを zabbix にし、他グループに権限を与えないようにします。
[root@vulhammer-server ~]# chown zabbix.zabbix /var/lib/zabbix/passfile [root@vulhammer-server ~]# chmod 640 /var/lib/zabbix/passfile
そのうえで、apache ユーザを zabbix グループへ所属させるために、以下のコマンドを実行します。
[root@vulhammer-server ~]# usermod -a -G zabbix apache
ZBX システムでの VulHammer 用のテンプレートインポート
ZBX システムに VulHammer 用のテンプレートをインポートします。
vulhammer-manager パッケージをインストールしたホストには、以下のように vulhammer-manager_target.xml もインストールされています。
[root@vulhammer-server]# ls -la /usr/share/doc/vulhammer-manager/vulhammer-manager_target.xml -rw-r--r--. 1 root root 77873 12 月 22 13:34 /usr/share/doc/vulhammer-manager/vulhammer-manager_target.xml
あらかじめ、vulhammer-manager_target.xml を Web ブラウザを使用する PC にコピーしておきます。
Web ブラウザから ZBX フロントエンドにアクセスします。
左側のメニューから「設定」->「テンプレート」に移動し、右上の「インポート」をクリックします。
vulhammer_manager_target.xml をインポートします。
ZBX システムでのホストの作成、テンプレートの適用
ZBX 上に Vul Hammer Manager 用のホストを作成し、テンプレートを適用します。
ZBX フロントエンドの左側のメニューから「設定」->「ホスト」に移動し、右上の「ホストの作成」をクリックします。
ホストを作成します。
「テンプレート」タブをクリックし、新規テンプレートをリンクの「選択」をクリックします。
ホストグループ「Templates/Vul Hammer」->「Template Vul Hammer Manager」をクリックして選択します。
「追加」をクリックして、テンプレートを適用したホストを作成します。
ZBX エージェントサービスの起動
上記設定が終了した後に、ZBX エージェントサービスを再起動します。
[root@vulhammer-server ~]# systemctl restart zabbix-agent
Vul Hammer フロントエンドの関連パッケージのインストール
Vul Hammer フロントエンドのインストールに必要なパッケージをインストールします。
なお、ipa-pmincho-fonts は MIRACLE LINUX 8 のリポジトリで提供されていないため旧バージョン向けパッケージをダウンロードしてインストールします。
[root@vulhammer-server ~]# yum install python3 python3-libs httpd libffi libjpeg-turbo freetype [root@vulhammer-server ~]# wget http://ftp.riken.jp/Linux/centos/7/os/x86_64/Packages/ipa-pmincho-fonts-003.03-5.el7.noarch.rpm [root@vulhammer-server ~]# yum localinstall ipa-pmincho-fonts-003.03-5.el7.noarch.rpm
Vul Hammer フロントエンドのインストール・設定
Vul Hammer フロントエンド用パッケージをインストールします。
[root@vulhammer-server ~]# rpm -ivh vulhammer-frontend-3.1-1.ML8.x86_64.rpm
VulHammer フロントエンドの設定ファイル(/etc/vulhammer-frontend.json)を編集します。以下は設定例です。
[root@vulhammer-server ~]# vim /etc/vulhammer-frontend.json 1 { 2 "masterkey": "/var/lib/zabbix/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 }
ファイアウォールのポート開放
Vul Hammer の利用に必要なポートを開放します。
MariaDB 用の通信ポートとして 3306 番ポートを開放します。
[root@vulhammer-server ~]# firewall-cmd --permanent --add-port=3306/tcp
Vul Hammer フロントエンドに http でアクセスする場合は 80 番ポートを開放します。
[root@vulhammer-server ~]# firewall-cmd --permanent --add-port=80/tcp
Vul Hammer フロントエンドに https でアクセスする場合は 443 番ポートを開放します。
[root@vulhammer-server ~]# firewall-cmd --permanent --add-port=443/tcp
ファイアウォールの設定を反映します。
[root@vulhammer-server ~]# firewall-cmd --reload
Vul Hammer フロントエンドの起動
Vul Hammer フロントエンドを起動するために、httpd を起動します。
[root@vulhammer-server ~]# systemctl start httpd.service
Web ブラウザを利用して、<http/https>://<Vul Hammer フロントエンドが動作するサーバの IP アドレス >/results/ にアクセスすると、VulHammer フロントエンドの WebUI が表示されます。
スキャン対象へログインするための SSH 鍵の作成
Vul Hammer は脆弱性スキャンを実施する際に、SSH 鍵を用いてスキャン対象へログインします。
ログインに必要な SSH 鍵を作成します。ここでは、例として /home/zabbix/.ssh/ 以下に鍵を生成します。
[root@vulhammer-server]# mkdir -p /home/zabbix/.ssh [root@vulhammer-server]# ssh-keygen -t ed25519 Generating public/private ed25519 key pair. Enter file in which to save the key (/root/.ssh/id_ed25519): /home/zabbix/.ssh/id_ed25519 Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/zabbix/.ssh/id_ed25519. Your public key has been saved in /home/zabbix/.ssh/id_ed25519.pub.
/home/zabbix/ 以下のディレクトリ、ファイルの所有者と所有グループを zabbix にします。
[root@vulhammer-server ~]# chown -R zabbix.zabbix /home/zabbix/
スキャン対象側の設定
ここでは、スキャン対象側で行う設定について説明します。
openscap-scanner のインストール
脆弱性スキャンを実施する oscap コマンドを利用するために、openscap-scanner をインストールします。
[root@blog-server ~]# yum install openscap-scanner
Vul Hammer Update Agent のインストール
脆弱性スキャンによって検出された脆弱性には、影響を受けるパッケージが関連付けられることがあります。Vul Hammer Update Agent は脆弱性の影響を受けるパッケージを Vul Hammer を通してアップデートする際に必要となります。
以下のコマンドで Vul Hammer Update Agent をインストールします。
[root@blog-server ~]# rpm -ihv vulhammer-update-agent-1.0-1.ML8.noarch.rpm Verifying... ################################# [100%] 準備しています ... ################################# [100%] 更新中 / インストール中 ... 1:vulhammer-update-agent-1.0-1.ML8 ################################# [100%]
SSH 接続用のユーザ作成
Vul Hammer マネージャーから SSH 接続をする際の接続ユーザを作成します。ここでは、接続ユーザを vulhammeruser として作成します。合わせてパスワードの設定も行っています。
[root@blog-server ~]# useradd -m vulhammeruser [root@blog-server ~]# passwd vulhammeruser ユーザー vulhammeruser のパスワードを変更。 新しいパスワード : 新しいパスワードを再入力してください : passwd: すべての認証トークンが正しく更新できました。
公開鍵の登録
vulhammer-server 側で作成した公開鍵をスキャン対象に登録します。
先ほど作成した vulhammeruser ユーザのホームディレクトリ直下に .ssh ディレクトリを作成し、authorized_keys ファイルに公開鍵の情報を追加します。
[root@blog-server ~]# mkdir /home/vulhammeruser/.ssh [root@blog-server ~]# vim /home/vulhammeruser/.ssh/authorized_keys
.ssh ディレクトリ、authorized_keys ファイルの所有者と所有グループを vulhammeruser にします。
[root@blog-server ~]# chown vulhammeruser.vulhammeruser /home/vulhammeruser/.ssh [root@blog-server ~]# chown vulhammeruser.vulhammeruser /home/vulhammeruser/.ssh/authorized_keys
.ssh ディレクトリのパーミッションを 700、authorized_keys のパーミッションを 600 にします。
[root@blog-server ~]# chmod 700 /home/vulhammeruser/.ssh [root@blog-server ~]# chmod 600 /home/vulhammeruser/.ssh/authorized_keys
接続確認
最後に、vulhammer-server 側からスキャン対象へ SSH 接続出来るか確認すると良いでしょう。
[root@vulhammer-server ~]# ssh -i /home/zabbix/.ssh/id_ed25519 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.
Enter passphrase for key '/home/zabbix/.ssh/id_ed25519':
Activate the web console with: systemctl enable --now cockpit.socket
[vulhammeruser@blog-server ~]$
おわりに
いかがでしたでしょうか。以上で、MIRACLE Vul Hammer の構築作業は終了です。
評価版も構築手順は同じです。是非お試しください!
※評価版の場合、ライセンスファイルのインストールは不要です。読み飛ばしてください。
※評価版は、2022年1月時点の脆弱性情報を利用して脆弱性スキャンを実行します。脆弱性情報は最新のものに更新されません。
次回は、実際に MIRACLE Vul Hammer で脆弱性スキャン~脆弱性対策を行うまでの過程をご紹介します。お楽しみに!!
MIRACLE Vul Hammer 評価版
MIRACLE Vul Hammer の評価版をトライアルでご利用いただけます。導入検証や技術評価に是非ご活用ください。
本記事に関連するリンク
- MIRACLE Vul Hammer 製品紹介はこちら↓
Zabbix 連携の脆弱性管理ソリューション MIRACLE Vul Hammer