IR 情報

お問い合わせ

BLOG

統合システム監視

2021 年 08 月 18 日

セキュリティ強化版 MIRACLE ZBX の新機能を使ってみた

はじめに

日本では現在 ISMS が会社レベルのセキュリティ基準となっていますが、米国を中心に新たに NIST SP800-171 というセキュリティ基準への切り替わりの動きがあります。この NIST SP800-171 は、CUI(Controlled Unclassified Information = 機密指定されてはいないが管理対象となる情報)の管理方法の基準を示したものとなっており、実際に防衛省調達では企業に対して NIST SP800-171 と同程度の要件の導入を予定しています。

このような背景から、MIRACLE ZBX では運用管理・監視ツールとして NIST SP800-171 に準拠し、セキュリティ強化の機能を新規追加しました。今回はそれらの新機能を使用例とともに紹介していきます。

新たなセキュリティ強化機能について

MIRACLE ZBX に追加された新たなセキュリティ強化機能について紹介します。追加された機能は主に以下の 4 つとなっています。

  • 監査ログを syslog に出力
  • パスワードポリシー設定
  • bcrypt の cost パラメーター設定
  • 設定ファイル中の DB パスワード暗号化

直接準拠に関わらない機能もありますがいずれもセキュリティ強化に役立つ機能でありますので、それぞれの新機能と設定例を確認していきましょう!

監査ログを syslog に出力

MIRACLE ZBX Web フロントエンドには「監査ログ」という機能があります。この機能は、ユーザーのログイン / ログアウトやログインの失敗、各種設定の変更などの履歴をログとして確認できるものとなっています。
監査ログは Web フロントエンド上の「レポート」→「監査」から確認することができます。内容はアクションやその詳細、アクションを行ったユーザー名などとなっています。

この機能は、今まで Web UI からのみ確認可能でしたが、今回の新機能により syslog への出力が可能となりました。この syslog への出力を使うには、Zabbix Server と Web フロントエンドの双方に設定を行います。

設定方法は省略しますが、設定後に発生した監査ログは同時に syslog へ同時に出力されます。実際に journalctl コマンドで確認すると、Web フロントエンドで確認できるものと同様の内容の監査ログが出力されています。

パスワードポリシー設定

MIRACLE ZBX Web フロントエンドでは、ユーザーによるアクセス権の管理機能があります。もちろんユーザーのログイン時のパスワードを設定することが可能となっています。
ユーザーは、Web フロントエンド上の「管理」→「ユーザー」から確認することができます。

今回の新機能では、このパスワードに対してのポリシー設定が可能となります。実際に設定のできるポリシーの内容は以下のようになっています。

  • パスワードの最低文字数
  • パスワードに含まれるアルファベット小文字の最低文字数
  • パスワードに含まれるアルファベット大文字の最低文字数
  • パスワードに含まれる数字の最低文字数
  • パスワードに含まれるアルファベット、数字以外の文字の最低文字数
  • 同じパスワードを再利用不可とする際の過去パスワードの参照回数
  • パスワードの有効期限

 設定例は以下のようになります。

/etc/zabbix/web/zabbix.conf.php

設定例の内容では、以下のようなポリシーとなります。

  • パスワードの長さは 8 文字以上
  • 大文字 , 小文字 , 数字 , その他文字をそれぞれ 1 文字以上
  • 直近 4 回で使用したパスワードの再利用を禁止
  • パスワードの有効期限は 90 日

実際にポリシーを設定後に、ポリシーに沿わないパスワードを設定した場合は以下のようにエラーが表示されます。なお、ポリシーの適用は反映後にパスワードを更新する場合からとなるため、既存の設定済みパスワードには適用されません。

bcrypt の cost パラメーター設定

MIRACLE ZBX Web フロントエンドのユーザーのパスワードは、ハッシュ化されデータベースへと保存されています。ハッシュ化には bcrypt というハッシュ化関数が使用されています。この bcrypt には、コストパラメータという値でハッシュ時の反復回数を変更することができます。

bcrypt によってハッシュ化された後の文字列は以下のような接頭辞となり、赤の部分がコストパラメータを示します。以下の例でコストパラメータは 10 となります。

$2y$10$< ソルト >< ハッシュ >

今までコストパラメータの値はデフォルトで 10 でしたが、今回の新機能でコストパラメータの値を任意に変更することが可能となりました。以下の例ではコストパラメータの値を 14 に変更しています。

/etc/zabbix/web/zabbix.conf.php

値の変更後にパスワードの更新を行うと、データベース保存されているパスワードのハッシュ化後の文字列のコストパラメータが実際に変化していることを確認できます。
(ハッシュ化後の文字列の接頭辞が $2y$10$ から $2y$14$ に変化しています)

設定ファイル中の DB パスワード暗号化

ZBX ではデータなどの保存に DB を使用していますが、DB へのアクセスに必用なパスワードは設定ファイルに平文(暗号化 , ハッシュ化されていない文)で記述されています。
以下の例では、DB のパスワードである「password」がそのまま記述されています。

/etc/zabbix/web/zabbix.conf.php

今回の新機能では、このような設定ファイル中の DB のパスワードの暗号化が可能となりました。詳しい設定方法は省略しますが、openssl コマンドで文字列の暗号化を行い復号に必用な情報を別のファイルに記載することで設定ファイル上のパスワードを暗号化することが可能となります。

 実際の設定例は以下のようになります。パスワードの項目が暗号化された文字列となっており、復号に必要なファイル(/etc/zabbix/.db_password.key)の情報が追加されています。

/etc/zabbix/web/zabbix.conf.php

/etc/zabbix/zabbix_server.conf


おわりに

今回は主にセキュリティ強化版 MIRACLE ZBX の新機能について紹介しました。どの機能も簡単な設定で使用することができますので、ぜひ試してみてください。また、NIST SP800-171 の詳細につきましては、「NIST SP800-171 とシステム運用 」も参考にしてください!


この記事の関連製品はこちら
Zabbix ベースの統合システム監視 MIRACLE ZBX

Zabbix 5.0 新機能調査報告書 無料ダウンロード
Web アプリケーション診断 早得キャンペーン
採用情報ページ リニューアル
組込み Linux にプラスして 長期間の製品ライフサイクルをサポート EM+PLS