0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Elastic Stack (Elasticsearch)Advent Calendar 2024

Day 7

ElasticのアラートのレスポンスをSlackとTinesで自動化する方法(1)

Last updated at Posted at 2024-12-08

このブログの内容

本ブログではElasticのアラートをTinesのワークフローに連携し、ユーザーにSlackで通知、さらにはSlackからのユーザーレスポンスを受け取ってその後の処理も自動化する方法を紹介します。

この使い方はElastic社の社内セキュリティチームで実践していて、こちらのDistributed alerting with the Elastic Stackのブログに詳しく紹介されています。
従業員に関連したセキュリティイベントが検知されたら、Elastic -> Tines -> Slackというフローでその従業員に以下のような通知が届きます。

image.png
引用:Elasticのブログより

このSlack通知にYes, Noのボタンがついており、従業員のレスポンスをまたTinesで受け取り、 Yes(問題なし)であれば自動でElasticのアラートをクローズし、No(問題あり)であればSOCチームにSlack通知する、といった自動化がされています。

本ブログではこの仕組みの簡単なサンプルを作る方法を紹介します。

利用するもの

今回の手順は全て無料で実施することができます。3つのツールを使います。

1. Elastic Security Serverless(14日間のフリートリアルなら無料)

image.png

2. Tinesの無料版 (Community Edition)

https://www.tines.com/ の右上のSign Upより無料アカウントを作成します。
image.png

3. Slackのフリープラン版

image.png

手順概要

Tines->Slackに関する部分のサンプルは、以下のTines社のブログの内容で大体カバーされているので、この手順も使っていきます。
https://www.tines.com/blog/chatbots-for-security-and-it-teams-part-3-creating-a-slack-chatbot

これに、Elastic -> Tinesと、Tines -> Elasticの連携を追加すれば今回の簡単なサンプルのフローが完成します。

実施手順

Tinesストーリーのインポート

ブログに紹介されている以下のTinesストーリーのExportをダウンロードし、自分のTinesアカウントにインポートします。
https://github.com/tines/stories/blob/main/blog/slack-chatbot.json
image.png

インポート後、手でアクションのボックスを綺麗に並べると下のようになります。ここはTines -> Slackのフローの部分です。
image.png

ElasticとTinesのコネクターの設定

Elasticからのリクエストを受け取るTinesのWebhookアクションの作成

Tinesストーリーに新しいWebhookアクションをドロップし、名前を「Alerts from Elastic」などとします。
image.png

Tines側のAPIキーの作成

TinesのSettings > API Keysに行きます。
image.png

API Key typeはどれでもいいですが、今回はPersonalにします。
image.png

New token secretのキーをコピーします。
image.png

ElasticでのTinesコネクターの作成

Stack Management > ConnectorsでTinesコネクターを作成します。
image.png

以下のように自分のTinsのドメインのURLと、自分のEメールアドレス、さきほど作成したAPI token secretを入力します。
image.png

正しく認証情報を入力できていれば、次の画面でTines StoryとWebhook actionを選択できるようになります。このような感じでテストしてみましょう。
image.png

Tinesで1つのEventが表示されるので、クリックし、Elasticからのイベントを受け取っていることを確認できます。
image.png

TinesからElasticのSecurity AlertエンドポイントへアクセスするHTTPリクエストアクションの作成

Elasticで、Stack Management > API KeysよりAPIキーを作成します。
image.png
表示されるAPIキーをコピーしてください。

Tinesに行き、新しいHTTP Requestアクションをドロップし、Elasticに対するリクエストの設定を行います。
image.png

URL欄には以下のElastic Security Alertエンドポイントのステータス変更のURLを設定します。
<自分のkibana endpoint>/api/detection_engine/signals/status

リクエストボディのPlain codeには、以下を入力します。いまはダミーのアラートIDでテストします。

{
  "signal_ids": [
    "dummy-id"
  ],
  "status": "acknowledged"
}

さらに、以下の2つのHeadersを追加します。

  • kbn-xsrf: true
  • Authorization: (ApiKeyの後に空白入れて、その後ろにさきほどElastic側で作成したAPIキーの値をセット)

image.png

TinesアクションのRunでテストし、以下のようにレスポンス200となっていればOKです。
image.png

おわり

1回目の記事では、Elastic -> Tines, Tines -> Elasticの連携部分をセットアップしました。2回目では、これらをTines->Slackのフローに接続して、Elasticチケットの自動クローズ処理を完成させます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?