SQLクエリによるインシデント調査
数百万件のイベントを重要なアクションだけに絞り込みます。
「SQLクエリによるインシデント調査」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
クエリによる調査
CloudTrailとFlow Logsをカタログ化すると、調査は何十億ものイベントを重要な少数に絞り込む一連のSQL queriesになります。重要なのは、何を問うべきかを知ることです。誰が、何を、どこから、いつ行ったのか。このレッスンでは、調査担当者が頼りにするクエリパターンを扱います。
プリンシパルからアクティビティを見つける
認証情報の漏えいが疑われる場合は、そのprincipalによるすべてのアクションをクエリします。userIdentity.arnまたはアクセスキーIDでCloudTrailをフィルタリングすると、その認証情報が行ったすべてのAPI呼び出しを時系列で確認できます。この攻撃者の行動タイムラインは、多くの場合、調査で得られる最も価値の高い成果です。
SELECT eventtime, eventname, sourceipaddress
FROM cloudtrail_logs
WHERE useridentity.accesskeyid = 'AKIAEXAMPLE'
ORDER BY eventtime送信元IPを追跡する
sourceIPAddressでフィルタリングすると、特定のアドレスから行われたすべての操作を確認できます。GuardDutyの検出結果から不審なIPが1つ判明している場合、そのIPが各サービスで行ったすべての呼び出しを見つけ出せます。これにより、被害範囲を把握し、攻撃者が触れたリソースを特定できます。
拒否された呼び出しをハンティングする
errorCodeがAccessDeniedまたはUnauthorizedOperationであるイベントをクエリすると、偵察活動が明らかになります。これは、攻撃者が盗んだ認証情報で何ができるかを試している状態です。1つのプリンシパルから拒否が急増した後に成功した呼び出しが続く場合、攻撃者が使える権限を見つけたことを示しており、明確な権限昇格の兆候です。
権限昇格を見つける
CreateUser、AttachUserPolicy、CreateAccessKey、PutUserPolicyなど、機密性の高いIAMイベントを監視します。攻撃者は、新しいアイデンティティやキーを作成して永続化を試みることがよくあります。これらのイベント名をクエリすれば、初期侵入後に足場をさらに強固にしようとする試みをすばやく見つけられます。
ログを横断して関連付ける
強力な調査では、data sourcesを結合します。CloudTrailのプリンシパルによる操作を同じインスタンスのVPC Flow Logsや、そのインスタンスが処理したリクエストのALBログと照合する、といった方法です。コントロールプレーンのアクティビティとネットワークアクティビティを関連付けることで、断片的な情報ではなく、攻撃全体の経緯を再構成できます。
クエリに時間範囲を設定する
イベントのタイムスタンプを使い、必ずクエリをtime windowに絞り込みます。これにより調査対象の期間に集中でき、パーティションと組み合わせればスキャンするデータ量とコストを大幅に削減できます。最初は広い時間範囲から始め、状況が明らかになるにつれて絞り込むのが自然な進め方です。
カウントとグループ化
集計によってパターンが見えてきます。たとえば、送信元IPでGROUP BYして通信量の多い送信元を見つけたり、プリンシパルごとにイベント名の種類数を数えて活動範囲を把握したり、時間ごとにエラーを集計して急増を見つけたりできます。こうした要約により、生の行データが、実際のインシデントを指し示す傾向に変わります。
Flow Logsもクエリする
同じSQLアプローチをS3のFlow Logsにも適用できます。大量の送信データを見つけたり、送信元ごとに拒否されたポート数を数えたり、インスタンスが通信した外部IPを一覧表示したりできます。CloudTrail(APIで何が行われたか)とFlow Logs(ネットワーク上で何が転送されたか)を組み合わせることで、全体像の両面を把握できます。
クエリを保存して共有する
検証済みの調査用クエリはnamed queriesまたはビューとして保存し、次のインシデントでチームがすばやく再実行できるようにします。「アクセスキーによるすべてのアクション」や「過去1時間の拒否された呼び出し」のような検証済みクエリのライブラリがあれば、その場限りの作業を再現可能な対応能力へと変えられます。
クエリからアクションへ
クエリは証拠を生み、その証拠が対応を導きます。キーを無効化する、インスタンスを隔離する、不正なIAMユーザーを削除する、といった対応です。まずプリンシパル、次にIP、続いて権限昇格イベント、最後に相関分析という規律あるクエリの進め方により、インシデントを適切に封じ込めるために必要な、確信の持てる完全な状況把握が可能になります。
理解度チェック
調査クエリに関する知識を確認しましょう。
まとめ
調査とは、カタログ化されたログに対するSQL queriesです。まずprincipalまたはsource IPから始め、偵察活動を探すためにdenied callsをハンティングし、CreateAccessKeyなどのIAMイベントでescalationを監視し、すべてのクエリにtime-boundの条件を付けます。Group and countでパターンを見つけ、CloudTrailとFlow Logsをcorrelateし、検証済みのnamed queriesを保存することで、証拠収集を再現可能な対応能力に変えられます。
よくある質問
「SQLクエリによるインシデント調査」レッスンは無料ですか?
はい。「SQLクエリによるインシデント調査」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
「SQLクエリによるインシデント調査」で何を学びますか?
数百万件のイベントを重要なアクションだけに絞り込みます。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cloud & IT Cert Prepを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「SQLクエリによるインシデント調査」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?
はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- AthenaによるS3ログのクエリ
- CloudTrailデータ上のテーブル作成
- SQLクエリによるインシデント調査
- 速度とコストのためのログパーティション化