効果的なランサムウェア対策:Conti グループの攻撃 PlayBookから得られるインサイト
はじめに
ランサムウェアの感染拡大に対してもっと何かできることはないかと、お客様からよく尋ねられます。経験上、サイバー攻撃への正しい対抗策は、確固とした、ステップバイステップの検知と対応(D&R)のための基盤を構築することです。最近、ランサムウェア・アズ・ア・サービス(RaaS)の大手グループの一つであるContiグループから内部情報やデータが大量に流出したおかげで、攻撃者の立場からこれを見る機会を得ることができました。
Contiグループとは
Contiとは、ロシアと東欧のサイバー犯罪者から成るランサムウェアグループで、一般のテクノロジー企業のような運営形態をとっています。Contiグループはこれまで世間を騒がせた数多くのランサムウェア攻撃に関与しており、最近ではロシアによるウクライナ侵攻後にロシアへの忠誠を誓う声明を発表しました。そんな中、2021年と2022年にウクライナ人研究者と思われる人物によって、グループに関する極秘情報がリークされました。
Contiグループは、利益の上納を条件として、そのツール、インフラ、およびトレーニングの仕様を彼らのアフィリエイトに許諾しています。彼らを通じて、サイバーセキュリティチームはContiの運営方法に関する膨大な量の情報を得ることができました。
この情報に注目すべき理由
Conti情報の漏洩により、ContiのTTP(ツール、技術、手順)などを含め、大規模なサイバー犯罪グループがどのように運営されているかを垣間見ることができました。含まれていた情報は、ランサムウェアインシデントに対するこれまでのぼんやりした認識を、よりシンプルでリアルな攻撃経路へと転換することに役立ち、私たちはその追跡と検知の機能を構築できるようになりました。
攻撃Playbookが示すもの
図1:Conti漏洩情報のコンテンツが含まれている7zipアーカイブ
図1は、漏洩情報のコンテンツが保存されているサイトです。チャットログには、標的とする企業、利用する脆弱性の種類、推奨されるハッキング方法、さらには攻撃実行の日時を含め、ContiとContiアフィリエイトが用いたリソースが示されています。
Contiが利用している組織内ソフトウェアやツール情報(Rocket.ChatとTrickBot)は、ペネトレーションテストでよく使用されている入手容易なマテリアルで、Contiが組織としてどう運営されているのかが分かります。
最後のトレーニング教材ファイルからは、Contiのオペレーターのスキルレベルが分かります。これを参考に防御側のチームはオペレーションの複雑さのレベルを決定できます。
トレーニング体制
Contiが使用しているトレーニング教材の多くには、MetasploitやCobalt Strikeなど、おなじみのソフトウェアが含まれています。こちらも、高スキルな攻撃に必ずしもつながるものではなく、サイバーディフェンス企業であれば、このようなツールが使用されたであろうインシデントの検知と対応戦略をすでに持っているか、開発することができるはずです。
テクニカルスキル
MSFVenomコマンドの生成など、単純なペイロードのタイプを使用していることから、Contiは独自の技術ではなく、検知機能を構築しやすいオープンソースツールを使用していることが明らかです。ペイロードのタイプエラーのいくつかはすぐに分かるもので、攻撃者はリモートアクセスのためにBind TCP Shellcodeのようなコードを使用したり、ポート4444(一般的に攻撃に悪用されるポート)やbindshell64.dllといったファイル名を使用したりします。これらの一部は、高度な検知ツールがなくても容易に検知できます。
TTP (ツール、技術、手順)
図2:Cobalt Strikeチームのサーバー
図2には、攻撃者がハッキングしようとしているマシンの情報を収集できるアクセスポイントが表示されています。
Conti漏洩情報で最も頻繁に登場するツールや技術は以下のとおりです。
- Cobalt Strike
- PowerView
- Metasploit
- ShareFinder
- AnyDesk
- Mimikatz.
キルチェーンにおける攻撃検知のチャンス
図3:WithSecureのキルチェーン
防御チームが、図3に示すキルチェーンの最初の7つの段階でContiのTTPを効果的に検知できれば、ランサムウェア攻撃を確実に阻止できることでしょう。
- 攻撃対象領域を減らすことで、セキュリティ環境の健全性を改善する
- 保護、検知、対応システムを導入する
図4:レッドチームのキルチェーン(上)とブルーチームのキルチェーン(下)
図4のダイアグラムは、Microsoftによって提唱されたD&R(検知と対応)の概念の内訳を示すものです。ダイアグラムの赤の部分は攻撃のキルチェーンを意味し、青の部分は防御のキルチェーンを意味します。
特に、認識、トリアージ、調査、封じ込めといったステップは重要です。これらのステップがあってこそ、防御側のチームはランサムウェア攻撃者を適切に排除できます。したがって、これらすべてのステップを確実に遂行するためにも、信頼性と能力に優れた検知・対応サービスが不可欠となってきます。
深掘り検証:TTP(ツール、技術、手順)
Conti漏洩情報に含まれていたTTPには、フィッシングや既知の脆弱性への標的型攻撃が含まれていました。
不正アクセス
フィッシング:電子メールを介したTrickBotペイロード
図5.1:フィッシングメールを介したTrickBot
Contiは最近、(1) TrickBot Malwareを買収しました。その意図は、大量のフィッシングメールを送信して、誰かがペイロードを実行するチャンスを増やすことです。TrickBotは(2) Cobalt Strikeを展開してから、(3) C2(コマンドおよびコントロールインフラ)アクティビティを生成し、攻撃者が環境内のマシンにアクセスできるようにします。
既知の脆弱性への標的型攻撃:脆弱なFortiGateファイアウォール
図5.2:脆弱なFortiGateファイアウォールを介したランサムウェアの展開
Contiは、脆弱なFortiGateファイアウォールを標的とすることで知られていますが、いったんアクセスに成功すると、フィッシングの技術と同様、Cobalt Strikeを展開し、標的組織内のワークステーションやサーバーをコントロールします。
不正アクセス後
次に、攻撃者はある種の(4)内部偵察を実行します。これは、事前にディスクに収めたバイナリを使用して遂行されるものですが、たとえばドメイン内のドメインコントローラをリストアップするために使用されるNLTestや、特定のグループ(特にドメイン管理者)に関する情報収集に用いられるnetgroupなどが挙げられます。AdFindコマンドもよく利用されます。
こうした情報を集め終わると、攻撃者は(5) Kerberoastingを利用してパスワードが脆弱で権限が高いSPN(サービスプリンシパル名)を見つけ、権限の拡大を試みます。次に、(6) DCSyncを通じて、アクティブディレクトリ環境の掌握へと進みます。この時点でドメインは完全に侵害され、アクティブディレクトリのコンテンツは漏れ、攻撃者はドメイン中の最重要アカウントにアクセスできるようになっています。(7) NTDSutilも、DCSyncと同様の成果をもたらします。
最後に、Contiがデータの抽出に用いるオープンソースの例として挙げられるのが、(8) Rcloneです。これが完了すると、ランサムウェアの展開と、場合によっては恐喝行為が開始されます。
検知方法
Conti TTPを検知する方法
上記のConti攻撃段階のそれぞれには、検知するチャンスがいくつかあります。
問題:TrickBotペイロードメール/脆弱なFortigateファイアウォール
解決策:パッチ
パッチを適用して脆弱性を解消することは、脆弱性の悪用とランサムウェア攻撃を抑制する上で唯一の実際的な方法です。サーバーのユーザーに対して専門的なフィッシング対策訓練を行うことも価値があります。
問題:Cobalt Strikeペイロードの展開
解決策:Cobalt Strikeビーコンペイロードの検知Cobalt Strikeを検知する主要技術を3つご紹介します。
- beacon.dll’または‘beacon.x64.dll’のDLL参照– ‘beacon’とくれば、たいていCobalt Strikeだと分かります。
- メモリのアーティファクトの検知 – 実行中のプロセスのメモリに、プロセスの注入を示すアーティファクトが存在します。
- ラテラルムーブメントの検知 – Cobalt Strikeアクティビティにおいて、攻撃者はラテラルムーブメント(侵入拡大)という手法で標的のネットワークを進み、価値あるアセットに近づきます。特定のツールや技術を使用すれば、この種のアクティビティを検知できます。.
問題:Cobalt Strike C2アクティビティ
解決策:Cobalt Strike C2パスSolution
- これらのパスへのトラフィックに対して検知機能を構築する – これらは最も信頼できる検知方法ではないかもしれませんが、セキュリティ組織やチームがより徹底した調査を実施できるなら、少なくとも更なる調査につながるトリガーポイントになるかもしれません。
- よく用いられる‘Malleable C2プロファイル’に注目し、検知機能を構築する – Malleable C2プロファイルとは、Cobalt Strikeで悪用されがちなカスタマイズ可能なC2プロファイルで、通信を偽装することで最も頻繁に表示されるURIパスを特定します。
問題:内部偵察
解決策:内部偵察の検知
異常なアクティビティの兆候を追う
- 社内環境において、通常の業務の一環としてAdFindが使用されていない場合、パスワードが含まれるコマンドラインパラメータと共にAdFindが使用されているインスタンスを追跡します。これは疑わしいアクティビティであるため、さらなる調査が必要です。
- DCListを引数に持つNLTestでドメインコントローラの追跡が行われていたり、ドメイン管理者グループのマッピングが試みられていたりする場合も、悪意のある侵入者がいる確実なサインです。
- Look for enumeration commands when they originate from an injected process: When Cobalt Strike exploits a running process, you will see memory artifacts. If that same running process is executing these commands, then a thorough investigation is in order.
問題:Kerberoasting攻撃
解決策:Kerberoasting攻撃の検知Kerberoasting攻撃は、複数の方法で検知できます。
- “kerberoast”を含む引数を持つプロセス名powershell.exeを探します。
- EventIdを検索します。4769は、kerberoastサービスチケット要求に関連付けられたEventIdです。これらの要求の頻度が特に多く、通常このようなアクティビティを実行しないユーザーに由来する場合、調査が必要です。
問題:DCSync攻撃とNtdsutil攻撃
解決策:
- DCSyncコマンドとNtdsutilコマンドは両方とも、標的であるアクティブディレクトリ関連の情報をできるだけ多く収集するために使用されます。両者を検知する機能は、次の方法で構築できます(主な例としてまずDCSyncを使用します)
イベントIDが4662で、プロパティがDS-Replication-Get-Changes-All、DS-Replication-Get-Changes-In-Filtered-Set – DCSync攻撃では、ドメインコントローラにイベントID(4662)が生成されるので、特にDSレプリケーションに関連する一意のプロパティが付随する場合、検知が可能となります。
DCレプリケーションに関連しないアカウントからの場合 – 攻撃者がアクティブディレクトリのコピーをエクスポートしようとしている時、プロセスデータを通じて簡単にNtdsutilを特定できます。“ifm”と“create”を含む引数を持つコマンドを探します。
問題:Rcloneによる漏洩
解決策:プロセスやネットワークログでrcloneのインスタンスを探す。
優れた対策
その他のステップ:
- 公開済みTTPをプロットし、パープルチーム方式でテストを行い、保護領域を確認する – この記事に列挙した検知メカニズムは再現可能であり、Contiまたは似たタイプの脅威グループに関連するあらゆるリスクの検知、抑制に利用可能です。
- レッドチームを活用して検知と対応が適切に機能するか確認する – レッドチーム演習は、非常に高度な水準で機能する最良のシミュレーション方法と言えます。組織のセキュリティサービスが優秀なレッドチームを検知できるなら、ほとんどの攻撃者を捕捉できると自信を持ってよいことになります。
- 行動バターンを評価する – 裏に潜むアクティビティ、すなわち複数のツールまたは技術によって再現され得る行動パターンを読みながら検知機能を構築します。
- 攻撃の付け入る隙をなくす – パッチを適用しましょう。これこそが、外に面したアセットから脅威が環境内に侵入しないようにする一番簡単な方法です。
結論
ランサムウェア攻撃は、確固とした検知・対応戦略によってのみ打ち負かすことができます。検知・対応チームが適切な防御ツール、技術、手順を用いながら、キルチェーンの最も重要な段階でエステート内の各攻撃経路を効果的に調査できれば、本格的なランサムウェア攻撃につながる前に、悪意のあるアクティビティを挫折させることができます。
この記事は、Arran Purewalのプレゼンテーションの抜粋です。フルバージョンを視聴したい方はこちら。