先日報じられた民主党全国委員会へのハッキング事件により、極めて一般的なデータ窃取の手口が再び注目を集めています。それは、電子メールを標的とした侵入攻撃です。 こうした情報漏洩に対する即座の対応として、メッセージの暗号化や二要素認証といった対策がしばしば提唱されます。 実際には、こうした攻撃の防止、検知、および対応は、はるかに複雑です。 一般的な企業ネットワークには、攻撃者が電子メールを盗み出すための無数の機会が存在します。それは、少数のユーザーを対象とした極めて標的を絞った攻撃であっても、あるいは時間をかけて大量のデータを収集しようとする試みであっても同様です。
この7年間、私は標的型攻撃によって機密性の高い電子メールを紛失してしまった多くの組織と協力してきました。 このブログ記事では、攻撃者が使用しているのを見かけたいくつかの一般的な手法について解説し、認証や暗号化が及ぼす影響について考察するとともに、Taniumがこうした手法の検知と対応にどのように役立つかについてご紹介します。
前提となる仮定
本記事では、Windows環境への標的型侵入において、私が「最低限必要な条件」と考えているいくつかの前提を置いて進めていきます。 まず、被害を受けた組織がMicrosoft Exchangeを使用していることを確認しておきましょう。Microsoft Exchangeは、依然として最も普及している企業向け電子メールプラットフォームです。 また、攻撃者がすでに被害者の内部ネットワークへのアクセス権を取得しており、 から、以下の拠点のうち少なくとも1つ を操作できると仮定しましょう:
- Outlook Web Accessなどの、外部からアクセス可能なWebメールサーバーへのブラウザ経由でのアクセス
- (1) 同一の内部ネットワーク内にある、以前にバックドアが仕込まれていたシステム、または (2) 侵害されたVPNやその他のリモートアクセスソリューションのいずれかを経由して、内部のExchangeサーバーにアクセスする経路
- 電子メールが調査対象となっている標的となった個人の、エンドユーザー用ワークステーションへのバックドアアクセス
最後に、攻撃者が以下の種類の認証情報のうち、少なくとも1つを不正に入手したと仮定します:
- Exchange またはドメイン管理者に属する、特権付きの Active Directory アカウント
- 被害を受けたPC間での横方向の移動に再利用可能な、一般的なローカル管理者アカウント
- 調査対象となっている個人の、権限のないドメインアカウントで、その個人の電子メールが調査対象となっているもの
その点を踏まえて、いくつかのよくあるケースを見ていきましょう。
攻撃者は、Outlook Web Access(OWA)を標的とすることがよくあります
攻撃者は、侵入後の段階、すなわち認証情報の窃取に成功した後、Outlook Web Access(OWA)を標的とすることがよくあります。 特に、OWAが二要素認証を必要としない場合や、二要素認証を必要とするVPNの背後にあるわけではない場合は、OWAへのアクセスが特に簡単です。 ドメインアカウントの1つ、あるいはすべてのドメインアカウントが盗まれてしまえば、あとは普通のユーザーと同じようにログインするだけです。 大規模な多国籍組織において、このような活動を広範囲にわたり検知することは困難な場合があります。特に、攻撃者が任意の送信元アドレスから、あるいは自由に利用できる任意の中継ポイントを経由して、ブラウザベースのアクセスを利用できることを考慮すると、なおさらです。
たとえウェブメールがVPNの背後に配置されていたとしても、内部ネットワークに侵入に成功した攻撃者から攻撃を受ける可能性があります。 攻撃者は、内部からアクセス可能なWebメールのインスタンスに、単一要素のドメイン認証情報だけでアクセスできるかどうかを、しばしば試みます。 その場合、攻撃者はトンネリング型マルウェアを使用して、バックドアが仕込まれた既存のホストを足掛かりとし、標的とするユーザーとして認証を行うことができます。
暗号化は役立つでしょうか?
組織でOutlook Web AccessとS/MIMEを併用している場合、暗号化された電子メールを読むにはInternet Explorerのみを使用できます。 また、メッセージの復号に必要な秘密鍵は、ローカルエンドポイントの証明書ストアにインストールされている必要があります。 そのため、攻撃者は被害者の秘密鍵を入手するか、あるいは被害者自身のPCにリモートアクセスして、被害者に成りすまして電子メールにアクセスする必要があります。 ドメイン全体が侵害された場合、どちらも大きな障害にはならないでしょう。
組織がPGPなどの他の暗号化方式を採用している場合、攻撃者はやはり、標的となったユーザー自身のシステムから秘密鍵やキーフレーズを復元する必要があります。 ドメイン全体が侵害された場合、攻撃者が特定のユーザーのシステムにアクセスすることを防ぐのは難しいかもしれません。 しかし、これにより、攻撃者は、機会主義的な行動(「どの立場からでもアダムのメールアドレスを入手できる」)から、標的を絞った行動(「まず、アダムのシステムを侵害する必要がある…」)へと転換せざるを得なくなります。
ウェブメールのようなサービスを利用する際、ユーザーは往々にして最も手間のかからない方法を選ぶ傾向にあるということを、念頭に置いておく価値があります。 その結果、自分のパソコンや他のブラウザを使用する際、暗号化されていないメッセージがやり取りされることがよくあり、対象となるメールの範囲は限定的ではありますが、データ盗難がより容易になる機会が生まれてしまいます。
Taniumはこれをどのように検知できたのでしょうか?
組織としては、以前に盗まれた認証情報を使用してインターネット経由でOWAに直接アクセスするために攻撃者が所有するエンドポイントについては、当然ながら把握できないでしょう。 これにより、利用可能な証拠の源は、ネットワークトラフィックおよびメールサーバー自体のログデータに限定されます。 Outlook Web Accessの認証イベントやWebサーバーのログをSIEMに一元化することで、事後調査を大幅に円滑に行うことができます。 ネットワークのアーキテクチャによっては、受信側のWebメールリクエストの実際の送信元IPアドレスを特定するために、いくつかのデータソースを照合する必要がある場合もあります。
Taniumは、 Copy Tools パッケージを提供しており、これによりエンドポイントのログを自動的に収集し、一元管理された場所に配信して、取り込みや後処理を行うことができます。 これまでの事例では、アクセスログに記録されたブラウザのユーザーエージェントと、アクセス時刻および送信元アドレスを組み合わせて、侵害されたアカウントに対するOWAへのアクセスが不正なものか正当なものかを正確に見分けることに成功した調査員の方々と協力したことがあります。
攻撃者が侵害された内部システムを経由してウェブメールにアクセスしている場合、「ピボッティング」に使用されたエンドポイントに関する証拠が、さらに多く得られます。 アクセス手段に応じて、Taniumは、ローカルの**セキュリティイベントログ**エントリ、 、、ブラウザの履歴、および 、、実行済みプロセスのトレース、 を検索できるセンサーを提供しており、これらは過去のイベントに関するユーザーコンテキストを含んでいます。 例えば、感染したユーザーのシステム上のバックドアを通じてInternet Explorerを使用する攻撃者は、管理者のユーザープロファイルではなく、システムコンテキストのプロファイルの下にブラウザの履歴エントリを作成する可能性があります。 こうした記録は、多くの場合、異常な傾向が見られるため、さらなる調査が必要となります。
PowerShell を使用して Exchange Server から電子メールを取得する
PowerShellはもともとMicrosoft Exchangeサーバーの管理を目的として開発されたものであるため、これを使用してユーザーのメールボックスにアクセスしたり、メッセージを取得・送信したりできることは、決して驚くべきことではありません。 私は、攻撃者が悪意のあるPowerShellスクリプトを利用して電子メールを収集した侵入事件を、いくつか目撃してきました。 このアプローチでは、Exchange Web Services(EWS)ライブラリ[1] が必要となりますが、これはデフォルトでは PowerShell に含まれていません。
実際には、EWS を使用するには、PowerShell コードとともに、「Microsoft.Exchange.WebServices.dll」という 1 つの DLL をインクルードするだけで済みます。 Stack Overflow の有益な投稿[2] では、スクリプトを使ってこの方法でメッセージを取得するのがいかに簡単かが示されています。
暗号化は役立つでしょうか?
攻撃者が、標的となったユーザー自身のシステム上で、そのドメインアカウントの権限の下でPowerShellスクリプトを実行した場合、S/MIMEの復号化に必要な、Windowsの証明書ストア内の秘密鍵にアクセスできてしまうことになります。 前述の通り、PGPのような別の暗号化方式が使用されていた場合、攻撃者は、取得したメッセージを閲覧するために必要な鍵とパスフレーズを復元するために、追加の手順を踏まなければなりません。
Taniumはこれをどのように検知できたのでしょうか?
Tanium Traceは、ネットワーク接続のアクティビティを、関連するプロセスやユーザーのコンテキストとともに継続的に記録します。 当社のハンティングダッシュボードの1つでは、 ()、Trace Network Connections()、 センサーを使用して、ポート 80 および443への接続を確立したすべてのPowerShellインスタンスのフィルタリングされたビューを提供しています。 Exchange 管理者を除き、このような PowerShell の使用方法は、ほとんどのエンドユーザーシステムやその他の種類のサーバーでは異例のこととなります。 当社の顧客は通常、Taniumの「コンピュータグループ」機能と、こうした監視ダッシュボードを組み合わせて使用し、この種の悪意のある活動をより高精度に特定しています。
別の方法としては、エンドポイント上で「Microsoft.Exchange.WebServices.dll」ライブラリが存在するか、あるいは使用されているかを確認する方法があります。 Taniumのユーザーは、「 」、「Index Query」、「 」センサーを実行することで、すべてのシステムのハードドライブ全体を数秒で検索し、このライブラリを名前またはハッシュで特定することができます。 さらに、 、、Loaded Modules、、 の各センサーを使用すると、メモリ内にこのライブラリを読み込んでいるシステムを特定することができます。 ここでもまた、コンピュータ関連のグループが、このライブラリの想定された用途と想定外の用途を区別するためのさらなる視点を提供することができます。
メッセージング・アプリケーション・プログラミング・インターフェース(MAPI)ツール
MAPI / RPC は、Outlook が Exchange サーバーに対応するために使用する標準プロトコルです。 これはドキュメント化されており、さまざまなAPIを通じて利用可能であるため、他のWindowsアプリケーションでもこれを利用することができます。 For example, “MAPIGET.EXE”, one of the utilities highlighted in Mandiant’s 2010 report on APT1, connects to Exchange servers via MAPI and stolen NTLM credentials to harvest a targeted account’s messages and attachments. Outlookがインストールされているシステムでは、VBSやVBAなどのスクリプト言語も、そのMAPIネームスペースを利用して受信トレイを操作し、電子メールを取得することができます。ただし、インストールされているOutlookのバージョンや設定によって、制限が異なる場合があります。
ネットワーク監視の観点から、MAPIがRPCを利用しているため、クライアントは単一の固定サービスポートではなく、番号の大きい幅広いポートを使用してExchangeサーバーに接続することになります。 Exchange に「Outlook Anywhere」機能が設定されている場合、クライアントは HTTPS ポート 443 経由の RPC を使用して接続できます。
暗号化は役立つでしょうか?
多くのMAPIベースのツールでは、S/MIMEで暗号化されたメッセージを単に「smime.p7m” 」という添付ファイルとして取得します。 他のシナリオでもすでに述べたように、攻撃者が被害者ユーザー自身のエンドポイント上で活動しており、十分な権限を持っている場合、Windowsの証明書ストアにアクセスすることが可能です。
Taniumはこれをどのように検知できたのでしょうか?
Established Connections および Trace Network Connections の各センサーは、スタック可能な出力を生成することができ、これにより、アナリストはExchangeサーバーのアドレスやポート範囲に接続する任意のプロセスの名前、パス、およびハッシュを即座に比較することができます。 アナリストは、 、Trace Executed Processes、 を活用してさらに詳細な分析を行い、不審なイベントのコマンドラインや実行履歴を取得することができます。 このデータを監視することで、組織は、電子メールサーバーのインフラと通信しようとしている不正なアプリケーションを特定することができます。
ローカルのOutlookメールボックスおよびアーカイブファイルの盗用
Outlookのユーザーのほぼ全員が、このアプリケーションのオフライン機能やアーカイブメールボックス機能についてご存知でしょう。 攻撃者の視点から見れば、これらはエンドポイント上の他のファイルと何ら変わりません。ネイティブなオペレーティングシステムのコマンドや、多くのバックドアに共通する機能を用いて、コピー、アーカイブ、転送を行うことが可能です。 制限要因として考えられるのは、これらのファイルのサイズと、ユーザーがパスワードによる保護を設定しているかどうかという2点です。
暗号化は役立つでしょうか?
ここまでお読みになった方なら、おそらくもう答えはお分かりでしょう。 攻撃者が自身のPC上で被害者のOutlookアーカイブにアクセスできる場合、おそらくWindowsの認証情報ストア内のあらゆる情報にアクセスできるか、あるいはキーロガーやその他の手法を用いて他の認証情報を取得できる可能性があります。
Taniumはこれをどのように検知できたのでしょうか?
トレースファイル操作 センサーを使用すると、通常とは異なる場所にある、あるいは異常なプロセスによって作成または変更されたOutlookメールボックスファイルを追跡する、フィルタリングされた検索やダッシュボードを構築することができます。 同様に、Taniumの Index Query センサーは、企業全体にわたって保存されているメールボックスファイルを検索することができます。
キーストロークの記録とスクリーンスクレイピング
感染したシステム上で十分な権限を持つ環境で実行されているマルウェアであれば、すべてのキー入力を記録したり、定期的にウィンドウの内容や画面全体をキャプチャしたりすることができます。 これらのツールの多くは、攻撃者が設定したパターンに一致するデータのみ、あるいは特定のアプリケーションやウィンドウタイトルからのデータのみをキャプチャするように設定することができます。 エンドユーザーが閲覧した電子メールの内容は、この方法で漏洩する可能性があります。 もちろん、攻撃者が短期間で大量の電子メールを収集したい場合、この手法は理想的とは言えず、その適用範囲にも限界があります。各被害者のシステムに感染させる必要があり、また、マルウェアは時間の経過とともに相当量の不要なデータを収集してしまう可能性があります。
暗号化は役立つでしょうか?
いいえ。画面に表示されているか、入力されているかに関わらず、情報は公開されています。
Taniumはこれをどのように検知できたのでしょうか?
バックドアやキーストロークロガー、スクリーンキャプチャ/スクレイパー、その他の関連するマルウェアを実装する方法は数え切れないほどあります。そのため、これらすべてを検知できる単一の手法は存在しません。 しかし、こうしたマルウェアの最も基本的な仕組みに対処するには、永続化メカニズムを分析することが効果的な方法であることに、私はしばしば気づかされます。 攻撃者がエンドポイントから長期間にわたりデータを収集したい場合、そのマルウェアは再起動後も存続していなければなりません。
多くのTaniumのお客様は、 、、Autorun Program Details、 、、Trace Loaded Drivers、 、、DLL Load Order Hijacking Search、 、、Service Module Details、 、、WMI Event Consumers、 といった、永続性に関連するセンサーを活用し、企業全体で不審なバイナリやスクリプトを検出しています。
調査担当者が、キーストロークの記録や画面キャプチャを行うマルウェアを特定すると、そのマルウェアが統一された出力ファイルの命名規則を採用していることも判明する可能性があります。 トレースファイル操作 センサーは、特定の名前やパス形式に一致する過去のファイル操作を特定するのに役立ちます。また、 インデックスクエリ センサーも同様に、ディスク上の任意の場所にある、特定のパターン(あるいはヘッダーバイトのシーケンス)に一致する保存済みファイルを検出することができます。
その他の方法とまとめ
この投稿では、攻撃者が被害者のコンピュータや侵害された企業ネットワークから電子メールを盗み出す方法について、ごく一部にしか触れていません。 その他の手法としては、次のようなものがあります:
- ユーザーの電子メールを第三者のアドレスに密かに転送するようにExchangeを設定する方法
- のユーザーは、意図的に 自身のメールを個人のメールアドレスに転送しており、そのメールアドレスはその後、不正アクセスを受けています
- BEEF()[3] などのブラウザエクスプロイトフレームワークは、ウェブメールの利用状況やその他のブラウザ内のデータを密かに監視することができます。
- 社内メールのアーカイブ(すなわち、訴訟や監査の支援を目的としたもの)に使用される社内向けソフトウェアを対象としています。
- 被害者を騙して、正規のメールクライアントを装った悪意のあるモバイルアプリを利用させること
- … その他にも数え切れないほどあります …
企業の電子メールのセキュリティ確保には、他の資産と同様に、綿密な脅威モデリングが必要です。 攻撃者は通常、目的を達成するために抵抗が最も少ない経路を選ぶものであることを考慮してください。したがって、あらゆる攻撃経路が、必ずしも対策に同等の投資を要する、現実的かつ可能性の高い攻撃ベクトルであるとは限りません。
一般的なフラットなWindowsネットワークでは、ごく少数のシステムで発生した局所的な侵害が、瞬く間にドメイン全体にわたる大規模な侵害へと拡大する可能性があります。一方、より限定的な範囲のデータに関心を持つ侵入者にとっては、標的とする個々のユーザーを感染させるだけで「十分」である場合もあります。 同様に、メッセージの暗号化は、これらすべての攻撃経路に対する万能薬というわけではありません。 しかし、これにより、攻撃者がネットワーク上の任意の拠点から任意のアカウントのメッセージに機会を捉えてアクセスすることを容易にするのではなく、より限定された被害システム群を通じて操作を行わざるを得なくなる可能性があります。
電子メールを盗み出すために利用可能な手法の幅は驚くほど広く、この脅威に直面しているのは、注目度の高い標的だけではありません。 これらを検知し、対処するための包括的なエンドポイントの可視性を確保することが、メールのセキュリティを維持するための最善の方法です。
[1] https://github.com/officedev/ews-managed-api
[2] http://stackoverflow.com/questions/4454165/how-to-check-an-exchange-mailbox-via-powershell
[3] http://null-byte.wonderhowto.com/how-to/hack-like-pro-hack-web-browsers-with-beef-0159961/
著者について:Taniumのチーフ・セキュリティ・アーキテクトを務めるライアン・カザンシヤン氏は、インシデント対応、フォレンジック分析、およびペネトレーションテストの分野で、 14 年以上にわたる豊富な経験を有しています。 ライアン氏は、Taniumの脅威対応ソリューションの設計とロードマップを統括するとともに、Taniumのエンドポイント検出・対応(EDR)チームを率いています。 Taniumに入社する前、ライアン氏はMandiantにおいて、標的型攻撃の被害を受けたフォーチュン 500 にランクインする数十社の企業と連携し、調査および対策業務を統括していました。 ライアン氏は、Black HatやFBIのサイバー対策チームのインストラクターとして、数百人のインシデント対応担当者を育成してきました。 同氏は、『Incident Response and Computer Forensics 第3版』(McGraw-Hill、 2014)の寄稿者の一人です。 また、ライアン氏はテレビシリーズ『Mr. Robot』の技術コンサルタントも務めており、脚本家や制作チームと協力して、劇中で描かれるハッキングの手法を考案しています。
