背景
サイバー攻撃の犯人を特定することを一般に「アトリビューション」と呼びますが、その作業は困難を極めます。アトリビューションでは、さまざまなインテリジェンスを収集して分析し、誰が真犯人かを突き止める必要があります。研究者が入手できる証拠が法廷でも認められるレベルの証拠であることはごくまれです。
それでも民間組織はありったけの情報を活用して、サイバー攻撃の犯人特定に挑んでいます。民間組織が入手できる情報はオープンソース インテリジェンス(OSINT)かテクニカルインテリジェンス(TECHINT)のいずれかで、特定の組織が独自に所有するデータから派生したものが含まれる場合もあります。これらの情報から攻撃者を特定できるのは、過去に同じ手口やインフラストラクチャが利用されていた場合に限られるのが一般的です。
一方、情報機関が利用できる情報源の中には、民間組織がアクセスできないものもあります。悪名高いハッカー集団 APT29 が根城にしていた建物内の監視カメラを、オランダの情報機関 AIVD がハッキングしたというニュースに驚いた方も多いでしょう。侵入の成功により、オランダの各情報機関は APT29 の活動に関する貴重な情報を入手できました。しかし、このようなインテリジェンスに民間の研究者がアクセスすることはできません。
情報機関は、アトリビューションの結果について公表しない傾向にあります。少なくとも民間組織と比べて公表はごくまれです。このことを踏まえると、英国の国家サイバーセキュリティセンター(NCSC)がマルウェア WellMess の拡散を APT29 の犯行と名指しで特定し、その報告をカナダ通信保安局(CSE)、米国国家安全保障局(NSA)、米国国土安全保障省サイバーセキュリティ・インフラセキュリティ庁(DHS CISA)が追認した事実は、各国の情報機関が NCSC の主張を裏付ける確かな証拠をそれぞれ独自に持っていることを示唆しています。
民間組織でも入手可能な証拠を調査し、脅威インテリジェンス/セキュリティ研究グループとしてこれらの結論を裏付けるのは有意義なことです。しかし Talos の最終目標は犯人の特定ではなく、お客様を脅威から守り、現在の脅威に対する注意を喚起し、セキュリティコミュニティをサポートすることです。情報機関や法執行機関が持つような高いレベルの可視性には及びませんが、Talos も目標の達成に役立つオープンソース インテリジェンスなどの豊富な情報にアクセスすることができます。
インフラストラクチャと攻撃手口の共有
攻撃の手口の調査と、インフラの調査でそれぞれ異なる結論が導き出されることは珍しくありません。マルウェア「WellMess」はその好例と言えるでしょう。このマルウェアは、日本の JPCERT コーディネーションセンターが 2018 年 7 月のレポートで命名したものです。その 2 年後、WellMess は新型コロナのワクチン研究を狙った攻撃で使用されました。
Go 言語で記述された WellMess には、Linux(ELF)環境と Windows(PE)環境で動作する 32 ビット版と 64 ビット版の亜種があります。WellMess は、DNS、HTTP、HTTPS など、複数のプロトコルを使用してコマンド & コントロール(C2)通信を実行します。感染したシステムでは指示を待たずに情報を盗み出します。これにより任意コマンドが実行されて、データ漏洩が拡大する危険性さえあります。
アトリビューションの攪乱
インフラストラクチャ
複数の攻撃をリンクさせるために利用される一般的な手口の 1 つは、次のように、共通のインフラを利用して調査を攪乱することです。
- マルウェア A がインフラストラクチャ X を利用。
- 攻撃者 M に紐付くマルウェア B もインフラストラクチャ X を利用。
したがって、(マルウェア B だけでなく)マルウェア A も攻撃者 M に紐付いていて、同じインフラ X を介し、攻撃をリンクさせてくる可能性があります。
この手法は、悪意のある IP アドレスとドメインの調査に利用できます。ここで、ドメインと IP アドレスの所有権の違いをおさらいしましょう。ドメインは所有者によって登録されます。つまり、ドメインが参照する IP アドレスは何らかの方法でドメインの所有者に紐付けられます。
一方で IP アドレスの場合、数多くの組織や個人のサービスが同じ IP でホストされるのが一般的です。そのため、同じ IP アドレスを共有するユーザはお互いのことを何も知らず、他のユーザの行動についても一切把握できません。したがって、多くのケースでは IP アドレスからドメインを割り出せますが、何か他の情報がない限り、それらのドメインを登録した所有者まで深掘りすることはできません。
WellMess の 2 つのサンプルを調査することで、自分がアトリビューションについてどのくらいのことを知っているかを確認できます。
サンプル 0b8e6a11adaa3df120ec15846bb966d674724b6b92eae34d63b665e0698e0193 は 2018 年 5 月 23 日に VirusTotal に送信されました。このサンプルの C2 サーバは 45.123.190[.]168 です。
この IP アドレスを参照していたドメインには、次の 2 つがありました。
- 2016-12-24 to 2019-12-04 layers[.]wincodec[.]com
- 2017-11-25 to 2018-11-18 onedrive-jp[.]com
WellMess が VirusTotal に送信された時点で C2 通信に利用されていた IP アドレスを参照していたのは onedrive-jp[.]com の方であるため、WellMess はこちらのドメインに紐付けることができます。
このドメインの履歴を確認してみましょう。
- 2020-07-17 to 2020-07-17 52.45.178[.]122
- 2018-11-22 to 2018-12-29 209.99.40[.]222
- 2018-11-21 to 2018-12-25 209.99.40[.]223
- 2017-11-25 to 2018-11-18 45.123.190[.]168
- 2017-12-19 to 2018-11-03 198.251.83[.]27
詳しく調査すると、同じ時期に IP アドレス 198.251.83[.]27 も onedrive-jp[.]com に紐付けられていたことがわかります。
この IP アドレスの履歴を調べると、2018 年 4 月 13 日〜 19 日の間にアドレスを参照していたドメインが my-iri[.]org だとわかります。この頃、APT28 によるものと特定できる米政治機関への攻撃について、Microsoft 社もドメイン my-iri[.]org との関連性を確認しています。詳細については、こちらとこちらをご覧ください。
下の図は、これらのイベントのタイムラインを示したものです。
証拠は弱いものの、前述の APT29 ではなく、別の攻撃者 APT28 との関連性が見られます。一般に、APT28 と APT29 は、同じ国に存在する別の組織と考えられています。この切り口から別の調査も可能になるかもしれません。
以下は、このサンプルとは直接関係のない注記です。
このサンプルのもう 1 つ興味深い要素に、QnapSSL というファイル名があります。Qnap は x64 CPU を搭載し、Linux システムで動作するデバイスです。これは、WellMess が Qnap デバイスで実行される可能性を示唆するものかもしれません。
攻撃手口
攻撃の方法の類似性を調べることで、攻撃手口(TTP)を分析することもできます。
WellMess のもう 1 つのサンプル、65495d173e305625696051944a36a031ea94bb3a4f13034d8be740982bc4ab75 について考えてみましょう。
このサンプルの元の名前は「SangforUD.exe」で、本来は Sangfor 社の VPN クライアントのファイル名でした。VirusTotal を調べると、一部の検出エンジンがこのサンプルを「DarkHotel:」として検出していることがわかります。
このファイル名と検出名から思い起こされるのは、中国のセキュリティ企業 Qihoo 360 が DarkHotel 攻撃についてまとめた調査レポートです。 このレポートはもう入手できませんが、関連記事がまだオンラインで見つかります。2020 年 4 月に攻撃が発見されてからのプレスリリースはこちらから閲覧できます。
この攻撃では、Sangfor 社の SSL VPN サーバの脆弱性がエクスプロイトされ(Qihoo 社のレポートでは DarkHotel による攻撃とされています)、クライアントのバイナリファイル SangforUD.exe がトロイの木馬に感染したバージョンに置き換えられました。クライアントが悪意のあるサーバに接続すると、トロイの木馬に感染した新しいバージョンの VPN クライアントが自動的にダウンロードされて実行されます。
このサンプルは、攻撃が発見されて公表される数か月前の 2020 年 1 月 21 日に VirusTotal へ送信されたものです。
DarkHotel 攻撃に関与している APT グループは、東アジアを標的としていることで知られるハッカー集団です。DarkHotel と今回のサンプルが関連している可能性は低いものの、証拠次第では別の結論が導き出される可能性も考えられます。
証拠の分析
NCSC のレポートでは、この攻撃が APT29 によるものと断定されています。この結論を裏付けたり反論したりすることはできません。NCSC が使用したインテリジェンスは一般に公開されておらず、異なる種類のインテリジェンスをいくつか組み合わせて判断していると考えられるからです。Talos が TECHINT を通じて行ったインフラストラクチャ関連の調査では、WellMess に APT28 が関与している可能性が示されています。一方、攻撃手口に共通点が見られることから、DarkHotel との関連性も伺えます。
APT28 と APT29 は同じ国に存在する別の組織と考えられていますが、DarkHotel はまったく他の国に結び付いています。APT28 と APT29 が地政学的に共通した野望を持っている可能性も考えられますが、一般に公開されている情報から判断する限り、両組織がインフラストラクチャを共有するとは考えられません。また、これらの組織が DarkHotel と連携している可能性もほぼゼロです。
以上のことから次の仮説を立てることができます。
- VPN サーバハッキングに関して Sangfor 社が下したアトリビューションの結論は間違いで、DarkHotel ではなく、APT28 または APT29 による犯行だった。
- 偶然、2 つの異なる組織が同じ VPN ソフトウェアを同時に攻撃した。
- あるいは、これらの組織が同じソフトウェアを標的とするに至った未知の共通要因がある。
CoreSec360 が WellMess と VPN の脆弱性のエクスプロイトに関して発表した中国語の記事が、アトリビューションをさらに複雑化させています。この記事では、WellMess 攻撃が APT-C-42 という未知の組織による犯行と結論付けられているからです。
個別に見ていくと、それぞれの関連性は否定できませんが、全体的に見た場合、これらの組織の間にはまったく共通点が見られません。これらの関連性の中には虚偽のフラグに基づくものもあれば、偶然の結果生じているものもあるでしょう。いずれにせよ、このケースのアトリビューションは非常に複雑です。
虚偽のフラグ
研究者を混乱させるために、虚偽のフラグが意図的に仕掛けられることもあります。虚偽のフラグが存在することを認めるからには、研究者が真犯人に欺かれ、犯人の特定を誤る可能性があることも認めなければなりません。
虚偽のフラグとして最悪だったものの 1 つに Olympic Destroyer があります。2018 年冬季オリンピックの開催を妨害したマルウェアです。この攻撃ではマルウェアに手掛かりが残されていて、国家の支援を受けた 3 つの異なるハッカー集団による犯行の可能性が伺われました。
Olympic Destroyer のワイパー機能のロジックは、Bluenoroff グループが使用していたものと似通っていて、ファイルシステムのチェックに使用されるファイルの命名規則にも共通点がありました。一方、自律拡散の手口は、APT28 による NotPetya マルウェアの手口と似通っていました。また、コードに含まれるその他の機能は、過去に APT3 や APT10 による使用が確認された機能と同じでした。
アナリストがどのようにしてアトリビューションの結論に至るかを熟知している攻撃者が、アナリストを惑わす目的でこれら虚偽のフラグを仕掛けたと考えられます。Talos では、この件に関して、すでにこちらのブログ記事で詳しく解説しています。
このケースでは、TECHINT を介してのアトリビューションは行えませんでした。研究者にとって貴重な手掛かりが、意図的に改ざんされていたからです。ですが、情報機関がより多くの情報を手に入れていたことはほぼ確実です。米国情報機関の担当者が非公式のブリーフィングで、Olympic Destroyer 攻撃は Sandworm グループによる犯行と述べていたことが報じられています。その後、EU の制裁措置リストに Olympic Destroyer が Sandworm グループのエイリアスとして追加されたことが、これを裏付けています。
こういったケースから、アナリストが攻撃手口やコードの分析だけに頼るのは不十分だということがわかります。パズルを解き明かすためには、情報機関だけが入手できるような、より高次のインテリジェンスが必要なのです。当然のことながら、情報機関はあまり多くの情報を開示しませんし、外部から検証可能な証拠を提示することも多くありません。
アナリストは、発見された手掛かりが虚偽のフラグでないかを常に疑い、全体像が見えてくるまで、あらゆる可能性に注意を向け続ける必要があるのです。
コードの共通化
一般に、ソフトウェアエンジニアは、すでに実績があり信頼性が高いコードを自分のプロジェクトで再利用したいと考えます。そのようなコードは確実に機能し、開発効率を高め、プロジェクトを期日までに予算内で完了するのに役立つからです。サイバー攻撃者が考えることもそれと同じです。
Talos では、攻撃者の開発プログラムを追跡して、マルウェアに追加された機能を観察しています。最近のブログで公開した Tonto Team による Bisonal マルウェアがその例として挙げられます。Talos では、この攻撃者のソフトウェア開発プログラムを 10 年間にわたって追跡してきました。
しかし、このアプローチには落とし穴もあります。まず、2020 年 6 月に Unit42 が ACIDBox マルウェアを発見しました。Unit42 は当時、ACIDBox が攻撃者集団 Turla によるものとは断定できないという結論に達しました。
数日後、ある著名なセキュリティ研究者が、ACIDBox と Turla Nautilus のサンプルにコードの類似性が見られるという記事を自身のブログで発表しました。2 つのマルウェアの間にわずかながらもコードの共通点が見られるという内容で、当時は攻撃者の特定に役立つ興味深い発見と思われました。この研究者は、絶対に確実とは公言せずに自らの発見を発表し、コミュニティの判断に委ねました。その後、Twitter で @TheEnergyStory というアカウント名を使用する、ある鋭い研究者が、共通するコード部分は、実はコンパイルされた Mbed TLS の実装コードであると指摘しました。
この攻撃者は、多くのソフトウェアエンジニアが考えるのと同様に、一般的なライブラリを再利用することで類似する機能の再開発にかかる手間を省いたのです。
2 つのマルウェアでコードの共通点が見つかったとしても、サンプルどうしに関連性があるとは限りません。サードパーティが提供するライブラリはあらゆるサンプルで再利用される可能性があり、サンプルどうしの関連性を裏付ける証拠とはならないからです。もちろん、同じライブラリが使用されている以上、2 つのサンプルの関連性を完全に無視することはできませんが、議論に値するほどの発見とは言えません。
この例が示すもう 1 つの重要ポイントは、セキュリティ研究者のコミュニティと情報を共有してフィードバックを得ることが極めて重要だという事実です。このケースでは、最初の記事が公開されてから数時間以内に、共通するコードの出もとを別の研究者が特定し、そのコードがサンプルに含まれていることが発表されました。その結果、最初に記事を公開した研究者は、新しい情報に基づいて調査を続行することができたのです。
まとめ
サイバー攻撃のアトリビューション(犯人特定)は複雑で、困難を極めます。各国の情報機関はさまざまな情報源に頼って結論を導き出しています。民間組織はこの種の情報にアクセスできない場合がほとんどのため、TECHINT だけを頼りに結論を導き出す傾向にありますが、それにはさまざまな問題があります。研究社を混乱させるために虚偽のフラグが意図的に仕組まれている可能性も考慮すると、アトリビューションはさらに困難になります。
アトリビューションの課題、特に虚偽のフラグが仕組まれているケースの複雑さを考えると、業界団体が公表するアトリビューションの結論には誤りが含まれている可能性もあります。情報機関が持つインテリジェンスを活用できない民間の研究者は、このリスクを常に認識しておく必要があります。
世界の名だたる情報機関が束になって犯人の特定を行ったとすれば、裏付けとなる情報のすべてが公表されていないからといって、その結論をただちに無視するわけにはいきません。私たちがアクセスできる情報と技術では、情報機関が導き出した結論を裏付けることは不可能だからです。この記事の意図は、情報機関が下した結論に異議を唱えることではありません。そのような結論に至るために使用されたインテリジェンスやロジックを民間の研究者たちが持ちあわせていないという事実を再確認することです。
アトリビューションとは、検証可能な情報を収集する科学であると同時に、仮説を組み立て、その仮説を裏付けるために欠けている情報を認識する技術であると言えます。したがって、常に予断を持たずにアプローチする必要がありますが、アトリビューションの結論を公表した組織団体は、公開された情報よりもさらに多くの情報を持っているという事実も覚えておきましょう。
本稿は 2020 年 8 月 13 日に Talos Group のブログに投稿された「 Attribution: A Puzzle」の抄訳です。