データベース監査ツール PISO の開発に携わっている、プロダクト開発本部所属の趙 ( チョウ ) です。
今回のトピックは、セキュリティインシデントの通知方法となります。
インシデントはいつ発生するか予測できず、セキュリティ担当の方は夜間や週末も気が抜けないですね。
夜間や週末は職場のメールチェックが難しいこともあり、インシデント通知はSMSやプッシュ通知が好まれるようです。
ここで、アプリケーション対アプリケーション間と、アプリケーション対個人間の両方の通信に使用できる、フルマネージド型メッセージングサービス、Amazon Simple Notification Service ( Amazon SNS ) の登場です。
PISOのカスタムコマンドによる通知機能を用いて、DB不正アクセスをAmazon SNS経由で通知する方法をご紹介します。
まずは、PISOとAmazon SNS連携の流れを見てみましょう。
- PISOでDB不正アクセスなどインシデントを検知したら、それをトリガーに、
- AWS CLIを使用したAmazon SNSへの連携コマンドが発動されます ( AWS CLI: AWSコマンドラインインターフェイス ) 。
- Amazon SNS経由でPISOインシデント警告が通知されます。
つぎに、PISOの設定手順をご紹介します。
- PISO ManagerのOverview画面で、[監視設定]-[データベース一覧]から監視対象のデータベース名を選択します。
- [通知先]の[現在適用されているタイムフレーム]をクリックすると、[通知先設定]画面が表示されます。
- [コマンド実行]の[PISO Manager:コマンドライン]に、カスタムコマンド ( シェルスクリプト ) を記載します。
/home/insight/sns.sh &D &H &S &U
ここで指定したsns.shは、予めPISO Managerに作成した下記内容のシェルスクリプトです。
aws sns publish --topic-arn arn:aws:sns:{region}:{account id}:piso-alert --message
"[$1 $2]: マシン[$3]からデータベース[$4]にDBユーザー[$5]による禁止時間帯不正アクセスがありました。"
ところで、sns.shに実行権限の付与をお忘れなく ( chmod +x sns.sh
) 。
PISO Managerでawsコマンドを実行するため、以下の事前準備が必要となります。
- AWS CLIのインストール: https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-linux.html#cliv2-linux-install
- AWS CLIの設定: https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config
コマンドの引数として、PISOで検知した不正アクセスの詳細情報を渡すことができます。
‘&’で始まるパターンは置き換え文字として扱われ、下記のとおり内容が置き換えられます。
置き換え文字 | 置き換えられる内容 |
&& | & |
&N | major name(カテゴリー) |
&M | minor name(サブカテゴリー) |
&D | 警告発生日時(yyyy/mm/dd hh24:mi:ss) |
&H | Host name(マシン名) |
&S | Sid(データベース名) |
&O | OSユーザー |
&U | DBユーザー |
&VS | セッションID(sid) |
&VN | serial# |
&VL | ログオン日時 |
&A | 深刻度 |
&P | ルール名称 |
&C | 警告メッセージ |
&L | 警告メッセージ(Long) syslog出力と同じフォーマット |
実際、PISO監視ポリシーに違反する不正アクセスが発生すると、Amazon SNS経由で以下の通知が届くようになります。
[2021/07/03 21:09:09]: マシン[会議室PC]からデータベース[基幹DB]に
DBユーザー[基幹システム管理者]による禁止時間帯不正アクセスがありました。
おわりに
いかがでしょうか、ちょっとの工夫で Amazon SNSのみならず、他のツールとも連携しインシデント通知できそうですね。
PISO Managerでは、カスタムコマンド以外もさまざまなインシデント通知手段をサポートします。
- メール:メール通知を行う場合に設定
- SNMP:SNMP通知を行う場合に設定
- syslog:syslogに出力を行う場合に設定
- ユーザーログ:PISO固有のログに出力を行う場合に設定
- パトランプ:パトランプ通知を行う場合に設定
今回取り上げたPISO製品についてご興味ある方は、弊社ホームページから詳細機能を参照いただけます。
https://www.insight-tec.com/products/piso/
今後もセキュリティ監視にまつわるちょっとしたトピックをご紹介しようと思います。お楽しみに。