はじめに
表題のとおり、本記事はLetsDefendでの疑似アラート対応に関するWriteup記事です。
当アラートの対応を行わない方には、本記事は有用でないかもしれません。
また、本記事の考え方や対応に問題があれば、コメントでご指摘くださればと思います。
[補足]
Lets Defendは、ブルーチームのトレーニングを積めるウェブサイトです。
ご興味がある方はぜひ覗いてみてください。
ウェブサイトは日本語に対応してませんが、最近だと翻訳機能が優秀なので学習で困ることはないと思います。
Writeup
ステップ1 アラートの把握
[Monitoring > INVESTIGATION CHANNEL] でアラートの概要を把握

以下の項目に着目することで、本アラートの大要は掴めるかと思います。
- Rule
ファイルとディレクトリの探索が検出されました
- Trigger Reason
機密ファイルとディレクトリへの不正アクセス
- L1 Note
アラートの数分前に、IP 169.150.218.77 の異なるユーザーによるシステムへのブルートフォース攻撃が行われているのが目撃されました。しかし、この攻撃が成功したかどうかは判断できませんでした。
- Command Line(詳細な解説は、本文下端の「補足」にて)
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*/--/g' -e 's/^/ /' -e 's/-/|/'
【当時点での自分の調査方針】
- 以下2点の真偽の調査
- ブルートフォースによる認証情報の入手
- 不正ログイン後のファイルとディレクトリの探索
- 真である場合、不正ログイン後のアクティビティ調査を行い、スコープや対応内容を明確にしていく
ステップ2 プレイブックに基づいた対応
- Log Managementにおいて調査を進める

検索画面において フィルタリングを活用し、ブルートフォース攻撃と疑わしき挙動を確認する。

Raw log を確認すると、上画像のように認証失敗しているログもある。
こういった感じにフィルタリングを用いて、認証に成功している通信がないかを確認。
もし認証に成功している痕跡が確認できたら、その後どのような侵害があったか調査を行っていく。
- プレイブックに戻って対応
OSを聞かれる。下画像のように、OSは Endpoint Security で確認できる。


どのような調査行為が行われたのかを選択する。

対象端末の実行コマンドラインから判断できる
攻撃元のIPアドレスがネットワーク内外のいずれかで判断

調査で発見した不審なIPとURIについて、レピュテーションサイトで調査

以下はVirus Totalにおける調査の例

スコープに関しては、対象エンドポイントのコマンドラインから判断した

攻撃の出元やレピュテーションの調査結果から、攻撃の可能性が少しでもあると判断したなら隔離の方針で選択

今後の対策

日本語訳:
サイバー攻撃はどのように発生したのか?スタッフと管理職はインシデントにどの程度適切に対応したか?次回同様のインシデントが発生した場合、スタッフと管理職はどのような異なる対応が可能か?
将来同様のインシデントを防止するために、どのような是正措置が有効か?将来同様のインシデントを検知するために、どのような前兆や指標を監視すべきか?
IoCを入力し、プレイブックを使った対応完了


ステップ3 アラートのクローズ
- [Monitoring > INVESTGATION CHANNEL] の画面で対象アラートに対し、"Alert Close"を押下

別のアラートでスクリーンショットを取得しているため、イベントIDが"255"ではなく"200"となっています。
各項目を入力して、"Close Alert"を押下
その後、[Monitoring > Closed Alerts] の画面で結果が表示されます

これにてアラート対応は完了!
補足
検知コマンドラインの解説(生成AIより)
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\/--/g' -e 's/^/ /' -e 's/-/|/'
-
ls -R-
ls -Rは、カレントディレクトリとそのサブディレクトリを再帰的にリスト表示します。 - サブディレクトリを列挙する際、その名前の後にコロン (
:) がつきます。これが後続の処理に役立ちます。
-
-
grep ":$"-
grep ":$"は、ls -Rの出力から、末尾にコロン (:) がついている行だけを抽出します。 - これにより、ディレクトリ名のみが抽出され、ファイルのリストは除外されます。
-
-
sed -e 's/:$//'-
sedコマンドは、文字列を置換します。s/:$//は、行末のコロンを取り除きます。 - これにより、ディレクトリ名の後についていたコロンが削除され、純粋なディレクトリ名が残ります。
-
-
sed -e 's/[^-][^\/]*\/--/g'- この正規表現は少し複雑ですが、基本的にディレクトリツリーの構造を扱います。
-
[^-][^\/]*\/--は「/で区切られたサブディレクトリのパターン」で、-を除去します。- これにより、サブディレクトリの一部や不要な部分が除去されるため、ツリー状の表示がクリーンになります。
-
sed -e 's/^/ /'-
s/^/ /は行の先頭にスペースを追加します。 - これにより、ディレクトリツリーの各レベルが視覚的にインデントされます。深い階層ほどスペースが多くなり、ツリーの形を成すようになります。
-
-
sed -e 's/-/|/'-
s/-/|/は、 を|に置換します。 - これにより、ツリー構造の見た目が「
|」を使った線のように表示され、階層構造がより視覚的にわかりやすくなります。
-
結果として得られるもの:
-
このコマンドラインの最終的な出力は、ディレクトリ構造をツリー状に表示します。各ディレクトリレベルにインデントが付き、
|記号で階層を表現することで、フォルダの階層が視覚的にわかりやすくなります。例えば、次のような結果になります(実際のディレクトリ構造によって異なる):
|── dir1 | |── subdir1 | |── subdir2 |── dir2 | |── subdirA | |── subdirBこれを実行することで、ターミナル上で簡単にディレクトリツリーを確認することができます。



