はじめに
この記事では、オープンソースの監視ツールである Grafana を使用して、異常を検知しアラートを送信する方法を紹介します。
特に、検知内容に応じて通知内容を動的に切り替える方法に焦点を当てます。
アラートの基本設定
Grafana ではアラートルールを設定して、特定の条件を満たしたときに通知を送ることができます。
ステップ 1: アラートルールの作成
- Grafana のダッシュボードを開き、アラートを設定したいパネルの編集画面を開きます。
- 「Alert」タブを選択し、「Create Alert」ボタンをクリックしてアラートを有効にします。
- 条件を設定し、「IS ABOVE」、「IS BELOW」、「IS OUTSIDE RANGE」などの条件を設定します。
- 設定した条件に応じてトリガーされるアラートの詳細を入力します。
ステップ 2: 通知チャネルの設定
アラートがトリガーされた際にどのように通知を送るかを設定します。
- 「Notification channels」メニューから新しい通知チャネルを追加します。
- 通知の種類(Email, Slack, Webhook など)を選び、必要な情報を設定します。
条件に応じた通知内容の切り替え
次に、検知した内容に応じて通知メッセージを動的に変更する方法を紹介します。
この機能は非常に役立ちます。特に異なる種類のアラートを区別しやすくする場合などに便利です。
ステップ 3: アラートメッセージのカスタマイズ
アラートルールのメッセージ設定で動的な内容を挿入する方法は、監視の効果を最大化します。
- アラートルールの設定画面にて、「Message」欄を見つけます。
- メッセージ欄で、テキストに加えて特定のプレースホルダーを使用して動的なデータを挿入します。
-
${__field.name}
: トリガーされたフィールド名 -
${__value}
: フィールドの値 -
${__alerting_condition}
: トリガーされたアラートの条件説明
-
実際のメッセージ設定例
ある温度センサーが設定値を超えた場合のアラートメッセージを設定する例を示します。
-
メッセージ設定:
警告: ${__field.name}が設定温度を超えました。現在の温度は${__value}度です。
アラート条件選定用の参考情報
アクセスログの監視で有効な対象を選定する際には、以下の条件が特に重要です。
- ログイン試行回数の異常: 異常に多いログイン試行は不正アクセスの兆候として重要です。
- ファイルアクセスの異常: 特定の機密情報や重要なファイルへのアクセス試行はセキュリティ上のリスクです。
- 不正な認証試行の検出: 不正な認証試行は、ブルートフォース攻撃などの不正アクセスを検知するために重要です。
- 異常なユーザー権限の変更: 異常な権限の変更は、権限の乱用や不正アクセスを検知するために重要です。
- 不正なファイルシステムアクセス: システムファイルや機密情報への不正なアクセスはセキュリティ上のリスクです。
- 不正な API アクセスの検知: API を介した不正なアクセス試行は、セキュリティ上のリスクとなる可能性があります。
アクティビティログの監視で有効な対象を選定する際には、以下の条件が重要です。
- 不正なアカウント活動の検知: アカウントの不正利用や乗っ取りを検知する。
- 不正なユーザー認証の試行: 不正なユーザーが認証を試みる試行を検知する。
- セキュリティポリシーの違反: 社内のセキュリティポリシーに違反する行動を検知する。
- 異常なセキュリティイベントの検知: システムに異常なセキュリティイベントが発生した場合に検知する。
- 不正な URL アクセスの検知: 不正な URL へのアクセスを試みる試行を検知する。
- ファイルの改ざんの検知: 重要なファイルの改ざんを検知する。
- 不正な SSL 証明書の使用: 信頼されていない SSL 証明書の使用を検知する。
- 不正なネットワークポートの利用: 不正なポートが利用された場合に検知する。
他にも下記の観点で当てはまるものの活用を検討します。
-
ログイン試行回数の異常
- 条件: 1 分間に 10 回以上のログイン試行があった場合
- 説明: 一定期間内に異常に多くのログイン試行がある場合、不正アクセスの可能性が高いためアラートを出す。
-
ファイルアクセスの異常
- 条件: 特定のファイルに異常なアクセス試行があった場合
- 説明: 機密情報や重要なファイルへの不正アクセスを検知するために、アクセスログを監視し異常を検知する。
-
IP アドレスの異常
- 条件: 特定の IP アドレスからのアクセスが急増した場合
- 説明: 不審な IP アドレスからのアクセスを検知し、不正アクセスを警告する。
-
特定ユーザーの操作異常
- 条件: 特定のユーザーが通常と異なる操作を行った場合
- 説明: 特権ユーザーや管理者アカウントなどの操作を監視し、不正アクセスを検知する。
-
異常な時間帯のアクセス
- 条件: 深夜や休日などに通常と異なるアクセスがあった場合
- 説明: 通常業務時間外のアクセスがあった場合に、不正アクセスを検知する。
-
異常なアクセス元の国・地域
- 条件: 特定の国・地域からのアクセスが急増した場合
- 説明: 特定の国・地域からのアクセスを監視し、海外からの不正アクセスを検知する。
-
異常な HTTP リクエスト
- 条件: 異常なヘッダーを持つ HTTP リクエストがあった場合
- 説明: SQL インジェクションやクロスサイトスクリプティングなどの攻撃を検知する。
-
異常なデータベース操作
- 条件: 特定のデータベース操作が異常に多い場合
- 説明: データベースへの不正なアクセスやデータ改ざんを検知する。
-
異常なファイルのアップロード
- 条件: 不正なファイル形式や大容量のファイルがアップロードされた場合
- 説明: ウイルス感染ファイルや機密情報の漏洩を検知する。
-
異常なユーザーエージェント
- 条件: 不正なユーザーエージェントを持つリクエストがあった場合
- 説明: ボットやスクレイパーからのアクセスを検知し、防御する。
-
異常なファイルのダウンロード
- 条件: 特定のファイルが異常に多くダウンロードされた場合
- 説明: 機密情報や重要なファイルの不正なダウンロードを検知する。
-
不正な認証試行の検出
- 条件: 一定期間内に不正な認証試行が複数回行われた場合
- 説明: 不正なアカウントアクセスやパスワード試行を検知し、ブルートフォース攻撃を防止する。
-
異常なユーザー権限の変更
- 条件: 特定のユーザーの権限が異常に変更された場合
- 説明: 不正な権限の変更や権限の乱用を検知する。
-
セキュリティ設定の変更
- 条件: セキュリティ設定が異常に変更された場合
- 説明: セキュリティポリシーやファイアウォールの変更を検知し、不正な変更を防止する。
-
不正なファイルシステムアクセス
- 条件: 特定のファイルやディレクトリへの不正なアクセスが試みられた場合
- 説明: システムファイルや機密情報への不正なアクセスを検知する。
-
異常なネットワークトラフィック
- 条件: 異常に多いまたは異常なパターンのネットワークトラフィックが検出された場合
- 説明: DDoS 攻撃やボットネットの活動を検知し、対処する。
-
不正なシステムコマンドの実行
- 条件: 特定のシステムコマンドが実行された場合
- 説明: シェルインジェクションやシステムへの不正なアクセスを検知する。
-
異常なプロセス実行
- 条件: 異常なプロセスが実行された場合
- 説明: 不正なマルウェアやトロイの木馬の実行を検知する。
-
セキュリティポリシーの違反
- 条件: セキュリティポリシーに違反するアクションが検出された場合
- 説明: 社内のセキュリティポリシーに違反する行動を検知し、適切な対応を行う。
-
不正な SSL 証明書の使用
- 条件: 信頼されていない SSL 証明書が使用された場合
- 説明: SSL 証明書の信頼性を確保し、中間者攻撃やフィッシング詐欺を防止する。
-
不正なネットワークポートの利用
- 条件: 不正なポートがアクセスされた場合
- 説明: 通常使用されないポートへのアクセスを検知し、不正な通信を防止する。
-
ファイルの改ざんの検知
- 条件: 特定のファイルが改ざんされた場合
- 説明: 重要なファイルの改ざんを検知し、データの完全性を保護する。
-
ブラウザのセキュリティ警告の検知
- 条件: ユーザーがブラウザのセキュリティ警告を無視した場合
- 説明: セキュリティ意識の低いユーザーの行動を検知し、教育や対策を行う。
-
不正な API アクセスの検知
- 条件: 不正な API リクエストが送信された場合
- 説明: 不正な API アクセスを検知し、API のセキュリティを確保する。
-
不正なアカウント活動の検知
- 条件: アカウントが不正な活動を行った場合
- 説明: アカウント乗っ取りや不正なアカウント活動を検知し、対策を行う。
-
異常なセキュリティイベントの検知
- 条件: セキュリティイベントログに異常なイベントが記録された場合
- 説明: 不審なアクティビティや攻撃を検知し、対応する。
-
不正な URL アクセスの検知
- 条件: 不正な URL にアクセスが試みられた場合
- 説明: フィッシング詐欺やマルウェア感染の試みを検知する。
-
不正なユーザー認証の試行
- 条件: 不正なユーザーが認証を試みた場合
- 説明: 不正なアカウントアクセスやセキュリティ違反の試みを検知する。
-
システムリソースの異常使用
- 条件: システムリソースが異常に使用された場合
- 説明: マルウェアや攻撃によるサーバー負荷の増加を検知する。
-
セキュリティパッチの未適用
- 条件: システムにセキュリティパッチが未適用の場合
- 説明: 未修正の脆弱性に対するリスクを検知し、対策を行う。