検知ルールと相関分析の作成
Splunk SPLまたはKibana KQLクエリを作成し、ブルートフォース、横方向の移動、データ流出を検知します。
「検知ルールと相関分析の作成」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
検知エンジニアリングの基礎
検知ルールは攻撃者の行動をクエリロジックに変換し、ログにパターンが現れたときに発火します。優れた検知エンジニアリングでは、誤検知を避けるのに十分な具体性と、攻撃のバリエーションを捉えるのに十分な広さを両立させます。
Splunk SPL:Search Processing Language
SPLクエリはパイプ構文を使用します。検索 → 変換 → 表示という流れです。まずインデックスとsourcetypeを指定し、関連するイベントを絞り込んでから、結果を集計するかアラートを生成します。
# Basic SPL structure
index=security sourcetype=WinEventLog EventCode=4625
| stats count by src_ip, user
| where count > 10
| sort -count
# Explanation:
# Search Security index for logon failures
# Count failures per source IP + user
# Alert if more than 10 failures
# Sort descending by countSplunkでのブルートフォース検知
ブルートフォースを検知するには、送信元ごとにログイン失敗回数を数え、一定時間内にしきい値を超えたときにアラートを生成します。失敗の後に成功したログインがあるかどうかを相関分析すると、クレデンシャルスタッフィングを検知できます。
# Failed logins by source IP
index=security EventCode=4625
| bucket _time span=5m
| stats count as failures by _time, src_ip
| where failures > 20
| table _time, src_ip, failures
# Success after failures (account takeover)
index=security EventCode=4625 OR EventCode=4624
| stats values(EventCode) as events by src_ip
| where mvfind(events,"4625") >= 0 AND mvfind(events,"4624") >= 0検知のためのKibana KQL
Kibana Query Language(KQL)は、調査対象のイベントをフィルタリングします。アナリストにとってはLuceneより読みやすく、Kibana内の保存済み検索やアラートルールで使用します。
# KQL examples:
# Failed SSH logins
event.action: "ssh_login_failed" and source.ip: *
# Nmap scan detection
not destination.port: (80 or 443 or 22) and event.type: "connection"
# Privilege escalation
process.name: "sudo" and process.args: "-s"Elasticsearchの検知ルール
KibanaのSecurityアプリには検知ルールエンジンが含まれています。ルールには、しきい値ベース(イベント数)、クエリベース(特定のイベントパターン)、MLによる異常検知、EQL(Event Query Language)シーケンスルールがあります。
# EQL sequence rule example (Kibana Security):
sequence by host.name
[process where process.name == "cmd.exe"]
[network where destination.port == 4444]
# Detects: cmd.exe followed by connection to port 4444
# (common reverse shell pattern)ラテラルムーブメントの検知
次のような活動からラテラルムーブメントを検知します。PsExecによるサービス作成(Event 7045)、リモートWMI実行、不審な管理共有へのアクセス(Event 5140)、リモートで新たに作成されたスケジュールタスクです。
# Splunk: detect PsExec-style lateral movement
index=security EventCode=7045
| where Service_Name="PSEXESVC" OR Service_File_Name="\\*\\*.exe"
| table _time, ComputerName, Service_Name, Service_File_Name
# WMI remote execution
index=sysmon EventCode=1 ParentImage="*WmiPrvSE.exe"
| table _time, host, CommandLine, Userデータ持ち出しの検知
次のような活動からデータ持ち出しを検知します。通常とは異なる宛先への大規模な送信、異常に長いサブドメインを含むDNSクエリ(トンネリング)、一定間隔で行われるHTTPSビーコン通信です。
# DNS tunneling detection in Splunk
index=dns
| eval subdomain_len=len(subdomain)
| where subdomain_len > 50
| stats count by query, src_ip
| sort -count
# Large outbound (NetFlow/firewall logs)
index=firewall action=allow direction=outbound
| stats sum(bytes) as total_bytes by dest_ip, src_ip
| where total_bytes > 100000000 # 100MB threshold保存済み検索による脅威ハンティング
頻繁に使用する検知クエリを、メールを送信したりインシデントを作成したりするスケジュール検索として保存します。検知速度と誤検知率のバランスを取るため、適切な時間範囲としきい値を設定してください。
MITRE ATT&CKに対応付けた検知
検知ルールをATT&CKのテクニックに対応付けます。これによりカバレッジの不足箇所を把握し、新しいルールの優先順位を決めやすくなります。ATT&CK Navigatorなどのツールを使うと、検知できるテクニックと見逃しているテクニックを可視化できます。
誤検知を減らすためのチューニング
新しいルールは、対象を広げすぎて発火することがよくあります。既知の正常な送信元を除外し、しきい値を引き上げ、コンテキストフィールド(業務時間、既知のスキャンIPなど)を追加し、有効化前に過去のデータで検証することでチューニングします。
アラート疲れ
質の低いアラートが多すぎると、アナリストはそれらを無視するようになり、本来の目的が失われます。量より質を優先してください。1日10件の精度の高いアラートは、ノイズの多いアラート500件より優れています。性能の低いルールは抑制、チューニング、廃止を行ってください。
確認問題
EQLシーケンスルールは、単純なクエリルールでは検知できない何を検知できますか。
まとめ:検知ルール
検知エンジニアリングは、攻撃者のTTPをクエリロジックに変換します。SplunkにはSPLを、Kibana SecurityにはKQLとEQLを使用します。ルールをMITRE ATT&CKに対応付けてカバレッジを追跡します。広範囲でノイズの多いルールよりも、精度が高く対象を絞ったルールを優先してください。脅威の状況は変化するため、検知ロジックも継続的にチューニングしてください。
よくある質問
「検知ルールと相関分析の作成」レッスンは無料ですか?
はい。「検知ルールと相関分析の作成」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「検知ルールと相関分析の作成」で何を学びますか?
Splunk SPLまたはKibana KQLクエリを作成し、ブルートフォース、横方向の移動、データ流出を検知します。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「検知ルールと相関分析の作成」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。