** 本記事は、Nearly half of malware now use TLS to conceal communications の翻訳です。最新の情報は英語記事をご覧ください。**
TLS (Transport Layer Security) は、過去 10 年間にインターネット通信のプライバシーとセキュリティを向上させた大きな要因の 1 つです。TLS 暗号化プロトコルは、増え続けるインターネットの Web、メッセージング、アプリケーションのデータトラフィックを保護するために使用されています。セキュア HTTP (HTTPS) Web プロトコル、電子メールプロトコル StartTLS、匿名化ネットワーク Tor、および仮想プライベートネットワーク (OpenVPN プロトコルに基づくものなど) は、すべて TLS を利用してコンテンツの暗号化とカプセル化を行うことで、転送中にコンテンツが観察されたり変更されたりしないように保護しています。
過去 10 年間 (特に大規模なインターネット監視が公になったことを受けて、TLS はインターネット通信の大部分をカバーするまでに拡大しました。Google のブラウザーデータによると、HTTPS の使用率は、2014 年には Web ページアクセス全体の 40% 強でしたが、2021 年 3 月には 98% にまで増加しています。
マルウェアのオペレーターたちも、「防御側によってマルウェアのインストールやデータの窃取が検知・阻止されるのを防ぐため」という基本的には同じ理由で TLS を採用し続けています。この 1 年間で、TLS を利用して通信を隠蔽するマルウェアは劇的に増加しています。2020 年にソフォスが検出したインターネット上のリモートシステムと通信するマルウェアのうち、TLS を使用していたのは 23% でした (リンク先: 英語) が、現在では 46% 近くになっています。
また、TLS 通信の中には、443 以外のインターネットプロトコルポートを使用するものがかなりの割合で含まれています。たとえば、マルウェアが非標準のポート番号で Tor や SOCKS プロキシを使用している場合などです。443、80、8080 以外のポートを使用するマルウェアのインターネット通信に関連するホスト名について、証明書透明性ログを照会したところ、関連性のある TLS 証明書が認証局 (CA) によって発行されていたホストは 49% に上りました。手動でチェックしたホストのうち、ごく一部は自己署名証明書を使用していました。
しかし、マルウェアによる TLS の利用が全体的に増加している主な理由として、TLS で保護された正規の Web サービスやクラウドサービス (Discord、Pastebin、Github、Google のクラウドサービスなど) が、マルウェアコンポーネントのリポジトリとし使用されたり、盗んだデータの送信先として使用されたり、さらにはボットネットや他のマルウェアにコマンドを送信するために使用されるようになったことが考えられます。また、Tor をはじめとする TLS ベースのネットワークプロキシを利用して、マルウェアとそれを拡散する攻撃者との間の通信をカプセル化するケースも増えています。
マルウェアの TLS リクエストの宛先は、9% が Google のクラウドサービスであり、インドの BSNL が僅差で続いています。2021 年 3 月には、Cloudflare がホストとなっているマルウェアの使用が増加しました。これは主に、Cloudflare をベースとした Discord のコンテンツ配信ネットワークの使用が急増したことによるもので、これだけで同月に検出された TLS マルウェアの 4% を占めます。Discord と関連性のあるマルウェアは、9,700 件以上報告されています。その多くは、ユーザー認証情報の窃取を目的とした Discord 固有のものでした。それ以外は、他の情報窃取ツールやトロイの木馬の配信パッケージでした。
合計すると、マルウェアの TLS 通信の約半分が米国とインドのサーバーに送信されていました。
この 1 年間、ランサムウェア攻撃、特に手動で展開されるランサムウェアでは TLS が使用されるケースが増加していますが、これは攻撃者が HTTPS を利用したモジュール型攻撃ツールを使用していることが一因となっています。しかし、ソフォスが日々検出している悪意のある TLS トラフィックの大半は、ローダー、ドロッパー、ドキュメントベースのインストーラーなど、保護されている Web ページにアクセスしてインストールパッケージを取得するための、攻撃の初期段階で使用されるマルウェアです。
ソフォスでは、マルウェアによる TLS の使用法がどのように変化したかを把握するため、検出テレメトリを精査してマルウェアがどれだけ TLS を使用しているかを測定し、TLS を活用する最も一般的なマルウェアを特定し、それらのマルウェアが TLS で暗号化された通信をどのように利用しているかを調査しました。検出テレメトリによると、ソフォスが 3 か月間に「マルウェアのコールホーム」と分類したトラフィック全体の中で、TLS が占める割合は平均 2% 強ではあるものの、マルウェアと通信した固有の (DNS ホスト名で識別された) C2 サーバーの 56% が HTTPS と TLS を使用していました。また、そのうちの約 4 分の 1 は、Google のクラウド環境に存在するインフラストラクチャのものです。
サプライズパッケージ
マルウェアの通信は通常 3 つのカテゴリーに分類されます。1 つ目は追加のマルウェアのダウンロード、2 つ目は盗み出したデータの取得、3 つ目は特定の機能を起動させる命令の取得または送信 (C2/C&C) です。3 種の通信はすべて、TLS 暗号化を利用して防御側の検知を回避することができます。しかし、マルウェアに関連していた TLS トラフィックの大半は、1 つ目のタイプでした。つまり、ドロッパー、ローダー、またはその他のマルウェアが、TLS を利用して基本的なペイロード検査を回避しながら、感染したシステムに追加のマルウェアをダウンロードするものでした。
マルウェアやコードスニペットを配信するための TLS 対応インフラストラクチャは自由に利用できるため、それほど高度な技術がなくてもマルウェアドロッパーで TLS を利用することは可能です。多くの場合、ドロッパーやローダーはトラフィックの偽装を強化する目的で、TLS サポートが組み込まれた正規の Web サイトやクラウドサービスを使用します。たとえば、Bladabindi RAT ドロッパーの下図のトラフィックは、Pastebin ページからペイロードを取得しようとしています。(現在このページは存在しません。)
同様の動作をするマルウェアの事例は、ソフォスの調査で多数確認されています。LockBit ランサムウェアで使用される PowerShell ベースのドロッパーは、TLS 経由で Google ドキュメントのスプレッドシートから追加のスクリプトを取得したり、別の Web サイトから取得したりすることが確認されています。また、AgentTesla のドロッパーも、TLS 経由で Pastebin にアクセスしてコードを取得していることが確認されています (AgentTesla については後述します)。Google と Pastebin は、自社プラットフォーム上でマルウェアをホストしている文書やサイトを直ちに停止することが多いとはいえ、こうした C2 ソースの多くはスパムキャンペーンが 1 回実行された後に放置され、攻撃者はすぐに次の攻撃用に新しいソースを作成してしまいます。
マルウェアによっては、1 回の攻撃で複数のサービスをこのように利用することもあります。たとえば、Discord のコンテンツ配信ネットワークで発見された多数のマルウェアドロッパーの 1 つは、同じく Discord でホストされている別の攻撃ステージをドロップしていました。ドロップされたその攻撃ステージは、GitHub から実行ファイルを直接ロードしようとしました。(GitHub のコードは悪意のあるものとしてすでに削除されていました。ソフォスはこのマルウェア攻撃の最初のステージを、他の多数のマルウェアとともに Discord に開示し、Discord はそれらを削除しました。)
ソフォスが確認した TLS ベースの C2 トラフィックの大部分を占めているのが、マルウェアのダウンロードトラフィックです。たとえば、2021 年 2 月には TLS C2 トラフィックの 90% 以上をドロッパーが占めていました。この数字は、2021 年 1~3 月の月ごとに見た、同様のマルウェアに関連する静的な C2 検出テレメトリデータと一致しています。
秘密のチャネル
マルウェアのオペレーターは、TLS を使用して C2 トラフィックを難読化することができます。HTTPS リクエストを送信するか、TLS ベースのプロキシサービスを介して接続することで、マルウェアはリバースシェルを作成できます。これにより、マルウェアにコマンドを渡したり、マルウェアがスクリプトの一部や特定機能に必要な鍵を取得したりすることが可能になります。C2 サーバーは、リモートの専用 Web サーバーになることもあれば、正規のクラウドサービス内の 1 つ以上のドキュメントをベースにしていることもあります。たとえば、ポルトガルのバンキング型トロイの木馬「Lampion」は、コードのロック解除に必要な鍵のソースとして、Google ドキュメントのテキスト文書を使用しており、この文書を削除することがキルスイッチとして機能していました。Lampion 攻撃では、Google ドキュメントを利用することでマルウェアとの通信の隠蔽が可能となり、また、信頼されているホストを使用することで、レピュテーションベースの検出の回避に成功していました。
マルウェアは、同種の接続を使用することで、機密情報の窃取が可能となり、ユーザーの認証情報、パスワード、Cookie、その他収集されたデータがマルウェアオペレーターに送信されます。マルウェアは、データを盗んだことを隠蔽するために、そのデータを TLS ベースの HTTPS POST にカプセル化したり、クラウドサービス API (Telegram や Discord の「ボット」API など) への TLS 接続を介してデータをエクスポートしたりします。
SystemBC
攻撃者による TLS の使用例として、SystemBC が挙げられます。これは、最近の多くのランサムウェア攻撃で使用されている多面的な通信ツールです。1 年以上前に発見された SystemBC の最初のサンプルは、主にネットワークプロキシとして動作しており、TLS で暗号化された SOCKS5 リモートプロキシ接続に基づいて攻撃者用の仮想プライベートネットワーク接続を確立し、他のマルウェア向けに秘密の通信を提供していました。しかし、SystemBC は進化を続けており、このマルウェアの最近のサンプルは、フル機能を搭載したリモートアクセス型トロイの木馬 (RAT) となっており、展開された後は攻撃者にバックドアを永続的に提供します。最新バージョンの SystemBC は、ネットワークプロキシとしての役割に加えて、Windows コマンドを発行したり、スクリプトや悪意のある実行ファイル、ダイナミックリンクライブラリ (DLL) を配信・実行したりすることができます。
しかし、SystemBC は完全にはステルス化されていません。SystemBC で生成されるトラフィックには、非 TLS、非 Tor のものも多く、これは、寿命の長いマルウェアによく見られるように、機能が段階的に追加されていることを示しています。最近ソフォスが分析したサンプルでは、SystemBC RAT 自体にハードコードされたホストにポート 49630 を介して接続する TCP「ハートビート」が確認されています。
最初の TLS 接続は、IPify のプロキシへの HTTPS リクエストです。IPify は、感染したシステムのパブリック IP アドレスを取得するために使用できる API です。しかし、このリクエストは、標準 HTTPS ポートであるポート 443 ではなく、ポート 49271 で送信されます。この非標準ポートの使用から、パターンが始まります。
SystemBC は次に、現在の Tor ネットワークコンセンサスに関するデータを取得しようとして、ハードコードされた IP アドレスに HTTP GET リクエストで接続しますが、経由するポートは 49272 と 49273 です。SystemBC はこれらの接続を使用して、現在の Tor ネットワーク構成に関する情報をダウンロードします。
SystemBC は次に、Tor ネットワークデータから選んだ Tor ゲートウェイへの TLS 接続を確立します。ここでも、別の非標準ポート 49274 を使用します。そして、別の HTTP リクエストで使用して、ポート 49275 を介して収集したディレクトリデータに基づいて Tor トンネルの宛先までの Tor 回路を構築します。ここで、連続したポートの使用は終了しますが、ソフォスが分析したサンプルでは、標準ポート上のオープンな HTTP リクエストを介して、別のマルウェア実行ファイルの取得が試みられていました。
このサンプルによって取得されたファイル「henos.exe」は、標準ポート (443) で TLS 接続し、Telegram チャンネルへのリンクを返す Web サイトに接続するバックドアです。そして、この事実は、SystemBC インスタンスの背後にいる攻撃者が戦術を進化させていることを示しています。SystemBC の開発者は、HTTP と TLS を組み合わせて使用することや、SystemBC のフィンガープリントを容易にする予測可能な非標準ポートに対処しているため、SystemBC もまた進化を続けると思われます。
AgentTesla
情報窃取ツールとしてだけでなく RAT としても機能することのある AgentTesla は、SystemBC と同様、その長い歴史の中で進化を遂げてきました。7 年以上前から活動している AgentTesla ですが、最近のアップデートでは、匿名化ネットワーク Tor を使用して TLS トラフィックを隠蔽するオプションが追加されています。
また、開発者が正規 Web サービスを使用して、Base64 形式でエンコードされたマルウェアを Pastebin やその類似サービスである Hastebin に保存していることから、AgentTesla の最新のダウンローダーの 1 つで TLS が使用されていることも確認されています。さらに第 1 ステージのダウンローダーは、Windows の Anti-Malware Software Interface (AMSI) にパッチを適用することで、ダウンロードしたコードが結合されたりデコードされたりする際のインメモリスキャンを防止して、検出を回避しようとします。
AgentTesla 自体に追加されている Tor を使用すれば、HTTP 経由の通信を隠蔽できます。また、AgentTesla には、TLS での保護が可能なオプションの C2 プロトコルとして、メッセージ受信に HTTPS サーバーを使用する Telegram Bot API があります。しかし、AgentTesla の開発者は、(少なくとも現時点では) マルウェアに HTTPS 通信を実装しておらず、TLS ハンドシェイクの実行に失敗しています。Telegram は、ボット API に送信される暗号化されていない HTTP メッセージを受け入れます。
Dridex
Dridex もまた、最近大きな進化を遂げた長寿命のマルウェアファミリーです。主にバンキング型トロイの木馬である「Dridex」は、2011 年に初めて発見され、その後大幅に進化しています。Dridex は、トロイの木馬「Trickbot」と同じように、ダウンロードしたモジュールを介して新機能を搭載することができます。Dridex のモジュールは、感染したシステムが最初にセキュリティ侵害を受けた際に一緒にダウンロードされることもあれば、メインのローダーモジュールによって後から取得されることもあります。各モジュールは、認証情報の窃取、ブラウザーの Cookie データやセキュリティ証明書の抽出、キーストロークの記録、スクリーンショットの撮影など、特定の機能を実行します。
Dridex のローダーは、通信を TLS でカプセル化することで隠蔽するように更新されています。Dridex のローダーは、ポート 443 の HTTPS を使用して、追加モジュールのダウンロード、および収集したデータの C2 サーバーへの送信を実行します。また、窃取したデータを RC4 で暗号化することで、さらにわからないように隠蔽し、保護を強化できます。また Dridex が使用している C2 サーバーはレジリエントな (復元力の高い) インフラストラクチャであるため、元の C2 サーバーがダウンしても、インストールされているマルウェアはバックアップサーバーへのフェイルオーバーが可能です。
このようなアップデートが施されたことで、Dridex はセキュリティ脅威であり続けています。また、Dridex のローダーは、TLS を使用するマルウェアの中で最も検出されているファミリーの 1 つですが、その存在を唯一脅かしているのが、サイバー犯罪者によって悪用されている「攻撃的セキュリティ」ツールです。
Metasploit と Cobalt Strike
攻撃的セキュリティツールは、攻撃者だけでなくセキュリティの専門家も長年利用しているツールです。モジュール型の「Cobalt Strike」や「Metasploit」ツールキットといった商用オープンソースのツールは、ペネトレーションテストや「レッドチーム」によるセキュリティ評価のために開発されたものですが、その柔軟性の高さからランサムウェアグループにも使用されています。
過去 1 年間で、攻撃的なセキュリティプラットフォームから誕生したツールが手動で展開されるランサムウェア攻撃で使用されるケースが急増しました。これらの攻撃では、スクリプトの実行、ネットワーク上の他のシステムに関する情報の収集、その他の認証情報の窃取、ランサムウェアなどのマルウェアの拡散が行われます。
Cobalt Strike ビーコンと Metasploit のモジュール「Meterpreter」による攻撃を合わせると、検出された TLS を使用する全マルウェアの 1% 超を占めています。これは、他の主要なマルウェアファミリーと比較しても大きな数字です。
TLS を利用しているその他の攻撃
PUA (迷惑アプリケーション)、中でも macOS プラットフォーム上の PUA も TLS を利用しています。通常は、C2 サーバーに密かに接続するブラウザー拡張機能を通じて、情報の窃取や他の Web ページへのコンテンツ注入が行われます。Bundlore アドウェアが TLS を利用して悪意のあるスクリプトを隠蔽し、検出されることなく広告などのコンテンツを Web ページに注入していることが確認されています。全体的には、C2 通信を行う macOS の脅威の 89% 以上が、TLS を使用してコールホームを実行したり、追加の攻撃コードを取得したりしていることが判明しています。
TLS トラフィックには、マルウェアや PUA 以外にもプライバシーやセキュリティを侵害する脅威が数多く潜んでいます。偽のドメイン名で登録された TLS 証明書、あるいはクラウドサービスプロバイダーから提供された TLS 証明書を持つ Web サイトを悪用するフィッシング攻撃も増加しています。Google フォームを利用したフィッシング攻撃は、一見簡単に検出できるように思えます。しかし、「ブラウザーでは Web アドレスの横に鍵のマークが表示されているか確認せよ」と訓練されているユーザーは、個人情報や認証情報を何気なく入力してしまうことがあります。
トラフィックの分析
上記の内容を総合すると、2020 年以降 TLS ベースのマルウェア通信は 100% 以上増加していることになります。これは、テレメトリ分析とホストデータによって特定できたものだけに基づいているため、控え目な推定値です。
前述したように、一部のマルウェアは TLS を非標準の IP ポートで使用しているため、TLS の使用状況を正確に評価するには、マルウェアの通信をより詳細にパケット解析する必要があります。したがって、本レポートに記載されている統計は、TLS を利用した悪意のある通信のすべてを反映しているわけではありません。また、通信に関連しているポート番号だけに基づいて、潜在的な悪意のあるトラフィックを特定するべきではありません。TLS は、割り当て可能な任意の IP ポート上に実装可能であり、最初のハンドシェイクの後は、他の TCP アプリケーショントラフィックと見分けがつきません。
ソフォスが最も懸念している傾向は、マルウェアの展開や C2 の一環として、商用のクラウド/Web サービスが利用されていることです。マルウェアの作者たちは、正規の通信プラットフォームを悪用することで、Google ドキュメント、Discord、Telegram、Pastebin などで提供される暗号化通信の恩恵を受けています。また、場合によっては、これらのプラットフォームが獲得している「安全」という評判の恩恵を受けています。
さらに、既製の攻撃的セキュリティツールや、TLS ベースの通信を利用しやすくするための既製のツールや API (アプリケーションプログラミングインターフェース) の利用も増え続けています。TLS 証明書の取得や HTTPS サイトの構成を大幅に簡素化することによって小規模な組織や個人の役に立っているサービスやテクノロジーが、一方では、正規のインターネットトラフィックに攻撃者のトラフィックが簡単に紛れ込む要因となっています。その結果、攻撃者はわずかな作業をするだけで、C2 インフラストラクチャを頻繫に変更したり複製したりできるようになっています。
こうした要因によって、マルウェア攻撃に対する防御は一層困難になっています。多層防御を導入していない組織は、展開される前の攻撃を検知できる可能性がますます低くなるかもしれません。