
ElastAlert のルールとアラート 2
もう一人が言ったようにパーティーが始まる… ここでは、ログを活用してSIEMをSOCに進化させたいと思われる点をいくつかご紹介します, 非常に興味深いトピック. まず、ElastAlert2があります, これは、Elasticsearchに保存されているデータを使用してルールベースのアラートを生成できるようにするオープンソースのツールです.
貯金すると, 例:Elasticsearchのログ, Active Directoryからのログ, エントラから, ファイアウォールから, あなたのサーバーの, 屋台またはその他のガジェット… 一連のルールを通じて、自動化された方法でクエリを作成できるようになります, そして、何かの状況に興味がある場合はお知らせください (またはアクションを実行する). まぁ エラストアラート 2 彼はこのために来た, 私たちを助けるために, 私たちは創造することができます (またはインポート) 必要なクエリを作成するために必要な数のルール.
このドキュメントでは、具体的な例を見ていきます, 知りません, 可能性はたくさんあります… システムが侵害されたときに検出しようとします, 不審なアクティビティの検出 (または悪意のある), 結局のところ、それはより大きな悪を防ぐことの問題です, 当社に警告するか、シナリオを軽減するアクションを生成することによって. まあその, 私たちが持っている例では, 私たちは、誰かが (例えば) FortiGateファイアウォールに正常にログインしました. これは最初のドキュメントであるため、これを行います, 見付ける, Telegramでアラートを生成します. 他のドキュメントでは、実行できることがさらにたくさんあります.
サイドのチャパス, 開始! 何が必要ですか? まあ、いつもの! 忍耐とDocker!🤣 したがって、これらの目的のために使用しているLinuxを搭載したマシンでは, DockerとDocker Composeをインストールした後, さて、それを使用してコンテナをデプロイします, とても簡単です, このコンテナ, エラストアラート2, フォルダに残したルールファイルを読み取って作成する責任があります, あなたがしなければならない😅こと.
git clone https://github.com/jertel/elastalert2.git CD elastalert2 mkdir config mkdir ルール
そして、私たちはこのようなものでdocker-compose.ymlを作り上げます:
バージョン: '3.9' services: エラストアラート2: 画像: 'jertel/elastalert2:latest' volumes: - './rules:/opt/elastalert/rules' - './config/elastalert.yaml:/opt/elastalert/config.yaml' container_name: elastalert の再起動: ネットワークが停止しない限り: red_elastalert2: ネットワーク: red_elastalert2: 運転手: 橋
そしてまず第一に, また、ElastAlert2設定ファイル './config/elastalert.yaml'を編集する必要があります, ここでは、Elasticsearchサーバーを示します, あなたの港, アクセス資格情報… そして、私たちがそれを行っている間、, 電報のデータを入力しましょう, このタイプのアラートを受け取りたいと言ったので.
es_host: "SERVIDOR_ELASTICSEARCH" es_port: プエルトes_username: ユーザー es_password: パスワードrules_folder: ルールrun_every: 議事録: 1 buffer_time: 議事録: 1 writeback_index: elastalert_status alert_time_limit.days: 2 telegram_bot_token: "TOKEN_BOT_TELEGRAM" telegram_room_id: "ID_GRUPO_TELEGRAM" telegram_parse_mode: "HTMLの" alert_text_type: alert_text_only
私たちはそれを準備しました, あとは展開するだけです, そして、インシデントが発生した場合に備えてログを表示するために、コマンドの下に残します:
sudo docker compose up -d sudo Dockerログ elastalert -f
そして今、大変な🤠仕事、美しい😍部分がありますが、それは私たちが必要とするルールを作り出すことに他なりません, として多く, この場合、受信したいアラート, それまたは既存の😉ルールをインポートします. ルールの例を挙げておきましょう (./rules/OpenServicesIT-Fortinet-FortiGate-Login-Correct.yaml (英語)) どこで期待通りになるか, FortiGateでログインが成功したログを検索するルール, これは, FortiGateにログインするたびに, GUIまたはCLIによる, 満足のいく方法で. そのアラートは、私たちが受け取るものです, この場合、Telegramによって、他には何もしません (今のところ)….
名前: Fortinet-FortiGate-Login-正しいタイプ: 周波数num_events: 1 インデックス: filebeat-* しきい値: 10 use_count_query: false 時間枠: 議事録: 3 フィルター: - クエリ: query_string: クエリ: 'tags: fortigateとfortinet.firewall.action: ログインANDルール.説明: "ログインに成功しました"' alert: - テレグラムalert_subject: <b>FortiGate(フォーティゲート) - ログイン</b> alert_text: | 管理者がFortiGateに正常にログインしている, 詳細: 利用者: {0} 方式: {1} 送信元 IP アドレス: {2} FW名: {3} alert_text_args: ["source.user.name", "fortinet.firewall.method", "ソース.ip", "observer.name"]
ご覧の通り, これには、細心の注意を払って遵守しなければならないルール形式があります, 多くの可能性があります, この特定のケースでは、各 1 Elasticsearchクエリを作成し、すぐに 1 出来事, それはテレグラムでそのような美しいアラートを生成するからです. 「ばかげた」アラートでTelegramを狂わせないでください’ そのために、他のインシデント管理ツールを用意します, しかし、それは示すために非常に実用的な例です.
ルールが作成されたら, または、それらを変更する場合, ElastAlert2 は自動的にリロードします, 何もリセットする必要はありません. そして、それはとても簡単です, これは、Elasticsearchで必要なものを探し始めます! おそらく、ElastAlert2 で作成できる興味深いルールの他の例をいくつか挙げるでしょう, ブラックリストに対するチェックは何でも, あり得ない移動の検出またはタイムトラベラー (またはあなたが言うことは何でも), Crowdsec Decisions との統合… カットする生地があります…
あなたの成功を願っています, あなたは自分自身を大事にします, そしていつものように, 雨のための傘と太陽😅のための傘、何古いフレーズ… ハグ! 🫂