外部および内部のタグ付けや SOC 通知などの DFIR タスクの PowerShell と Swimlane の統合を示す図。.

井戸に毒を盛る:守備側の攻撃作戦

「最大の防御は攻撃である」という古い格言は、セキュリティオペレーションセンター(SOC)や情報セキュリティチームの間で広く浸透し始めています。しかし、多くの人にとって、レッドチーム演習やペネトレーションテストの継続的な実施は、直面する大量のアラートや警告の調査に比べれば二の次で、高尚な目標のように感じられるかもしれません。.

完全な模擬攻撃に時間とリソースを割く余裕がない場合は、攻撃者の行動を予測し、それを逆手に取って攻撃に転じるという攻めの姿勢を取ることも可能です。攻撃者が誰であろうと、データの窃取を狙っている可能性は十分にあります。.

汚染されたファイルのシード

本記事では、ネットワーク上に「汚染された」ファイル(ペイロードが埋め込まれたファイル)を拡散させ、悪意のある攻撃者が貴重な情報を盗むのを阻止する手法について考察します。私たちが選んだツールの一つは、オープンソースのポストエクスプロイトツールです。, PowerShell帝国. 強力な活用機能と、Swimlane との統合を簡単にする便利な REST API を備えています。.

ペイロードを埋め込む

まず、ネットワーク上に配置したいファイルを作成する必要があります。この記事では、ペイロードを様々なメディア形式に埋め込む方法を知っていることを前提としています。もし知らない場合は、, ここにいくつかの基本事項があります.

重要なのは、見た目を良くしつつも、見栄えを良くしすぎないことです。攻撃者に、私たちが望んでいない貴重な情報に偶然遭遇したと思わせることが重要です。ファイルは、ネットワーク全体で見つかるものと一貫性を保ちつつ、目を引くような名前にする必要があります。Empire ではペイロードの選択肢が豊富なので、自由に組み合わせて使用できます。社内で開発作業が行われているなら、Word 文書以外のものも散りばめてみましょう。ELF バイナリは、多様化を図るのに最適です。.

帝国はタガーを使う

これらのファイルを広範囲に撒き散らすという話ですが、攻撃者の興味をそそる可能性を最大化するには、複数の場所に様々な種類のファイルを配置する必要があります。ユーザーエンドポイントは便利ですが、ファイルサーバーはデータ窃取の主たる場所です。攻撃者は時間に厳しい制限がない限り、ファイル共有を主要な標的の一つとして探すことが多いでしょう。また、システム内のハニーポット(偽サーバー)にファイルを隠しておき、攻撃者を正規サーバーではなくハニーポットに誘導しようと考えてはいけません。汚染されたファイルを本番システムに追加することで、攻撃者に有望なファイルに見えるようにするのです。.

これで、攻撃者がダウンロードして開くのを待つ埋め込みファイルが作成されました。しかし、コールバックをキャッチしたらどうすればいいのでしょうか?そもそもシードファイルとは一体何なのでしょうか?まず、機密データが盗まれた場合、そのことを知らなければならないでしょう。さらに重要なのは、このような攻撃を阻止する方法は限られており、「ハッキングバック」は許されないということです。真のAPT攻撃を阻止する唯一の方法は、攻撃ツール(エクスプロイト、ペイロードなど)を公開するか、 または インフラを公開する。これらの要素のいずれかを公開すると、企業は変更を余儀なくされ、多くの場合、コストがかさんだり、業務に深刻な影響を与えたりすることになります。.

ああ、見て。コールバックをキャッチしました(もちろん、Swimlaneで自動化しているので、通常はこれを見ることはできませんが)。

帝国 - コールバック

Swimlaneへの取り込みは、他のソースからの取り込みと同様に扱います。Empireとの連携により、以下の処理が行えます。

  1. Empireリスナーのステータスを毎分チェックします
  2. 帝国エージェントを毎分チェック
  3. エージェント セッションが確立されると、Swimlane Workflow は特定の条件に応じて一連のアクションを実行します。.

攻撃者が情報流出を開始したばかりかもしれないため、今こそ時間こそが重要だと認識しています。あるいは、私たちの活動に熟知している可能性もあるため、攻撃者の身元やツールに関する情報を可能な限り迅速に収集する必要があります。攻撃者のマシンを一度しか確認できないかのように、常に注意を払う必要があります。.

Swimlane のワークフローを使用して、「特別な」ファイルからのコールバックをキャッチした場合に実行する必要があるアクションをすでに定義しています。.

Empire-Listeners-Swimlane-ワークフロー

内部IPアドレスか外部IPアドレスかに関わらず(どちらも攻撃者にとっての攻撃拠点となる可能性があります)、PowerShell DFIRコマンドをいくつか実行し、通知を送信することにしました。これらのタスクには、ARPキャッシュ、netstat、プロセスの取得、ホロープロセスのチェック(見つかった場合はメモリダンプの取得)、スクリーンショット、ドライブの列挙などが含まれます。

Empire-Powershell-Swimlane-スクリーンショット

外部IPの場合、コールバックでエージェントに実行させるタスクが実行されない可能性が高くなることに注意してください。これは、ほとんどのAPTがネットワーク内外への通信を制限するためです。したがって、最初のコールバックから可能な限り多くの情報を取得することがベストプラクティスです。幸いなことに、EmpireではBase64でペイロードを埋め込む前に変更できるため、自由に変更を加えることができます。.

詳細な調査を開始する時期

それで終わりですか?もちろん違います。攻撃者のTTP(戦術・手順)の一部は再利用されている可能性が高いため、より詳細な調査を開始する準備が整っています。しかし、それについては別の投稿で取り上げます。今日のところは、オープンソースツールと自動化ツールを用いてネットワーク内の悪意のある攻撃者を追跡し、時間的に重要なデータを収集できたことを、大成功と捉えてください。.

ライブデモをリクエストする