バンキング型トロイの木馬Lurk の作成者たちの裁判が、ついに終了しました。複数当局による前代未聞の合同捜査と当社エキスパートによる支援の結果、彼らの活動は停止されました。彼らが逮捕されたのは 2016 年ですが、捜査と訴訟はそこから 5 年続きました。関与した容疑者と被害者も前例のない数であったことを思えば、驚きではありません。Lurk のメンバーを裁判所までバスで護送しなければならなかったほどです。また、事件簿は 4,000 巻(1 巻= 250 ページ)にも及びました。やるべきことは膨大で時間がかかり、容疑者はあらゆる記録と発言に関して徹底的な分析を受けましたが、ついに2018年、27人の被告は裁判を受けることになったのでした。
KasperskyはLurkグループの活動を 2011 年からモニタリングしてきました。私がLurk のことを最初に聞いたのは、入社した 2013 年当時です。「彼らを捕まえれば引退できる。自分の仕事を完遂することを考えろ」と心の中で自分に言い聞かせたことを覚えています。当時の一般的なサイバー犯罪と比べると、彼らは技術的にも組織的にも実に高度に思われました。とはいえ、今日 Lurkに出くわしたら、それほど印象に残らず、ただベストプラクティスに従うグループに見えることでしょう。
今回の判決は、彼らのサイバー犯罪活動の何がそんなにも特別だったのか振り返る、いいきっかけとなりました。
感染スキーム
まずは、感染経路から始めましょう。この攻撃者は、複数ビジネスメディアの Webサイトにエクスプロイトキットへのリダイレクトを掲載するという、水飲み場型の手法を使用していました。手法自体は新しくありませんが、狙いを定められた者(常に経理担当)が昼休み中(そしてこの時間のみ)にWebサイトへアクセスした場合にのみ感染するようになっていました。このエクスプロイトキットは、スパイ行為を働くことに特化したファイルレスなトロイの木馬をコンピューターへダウンロードしていました。
攻撃者たちはまず、どのようなプログラムがコンピューター上で実行しているか、バンキングソフトウェアまたは調査ソフトウェアの痕跡があるかどうか、コンピューターがどのようなサブネットの中で稼働しているか(主な狙いは銀行および政府のネットワーク)を調べました。要するに、コンピューターの「興味深さ」を評価し、感染させる相手を正確に把握していたのです。
メインのマルウェアは、コンピューターが本当に興味深いものである場合に限ってダウンロードされました。それ以外の場合は、念のため入手できるすべてのパスワードを奪い、感染先のコンピューターからマルウェアを除去しました。
指令サーバーとの通信
これに劣らず注目に値するのは、トロイの木馬と指令サーバー(指令サーバー)との間の情報交換プロセスです。その当時、トロイの木馬の大多数は、指令サーバーのアドレスがハードコードされていました。作成者たちはシンプルにドメイン名を指定し、必要であれば、サーバーの IP アドレスを変更するオプションを残していました。メインの指令サーバーアドレスをコントロールできなくなったときは、シンプルにバックアップの指令サーバーアドレスと置き換えます。結局のところ、この手法はかなり原初的な仕組みのセキュリティでした。この点、Lurkは他とはかなり異なっており、スパイ小説に出てくるような手法を適用していました。
通信セッションの前に、Lurk は 指令サーバーのアドレスを計算します。このサイバー犯罪者たちは Yahoo!にアクセスし、特定企業(私たちが調査しているときは、マクドナルド)の株価を参照していました。特定の時間の株価に応じてドメイン名を生成し、そこにアクセスします。トロイの木馬をコントロールするために、その時点の株価を見て、その数字に基づいてドメイン名を登録していたのです。ということは、指令サーバーにどのドメイン名が使われるのか事前に知ることは不可能でした。
当然ながら、疑問が生じます。このトロイの木馬にこのアルゴリズムが組み込まれていたのなら、リサーチャーがそのようなシーケンスを生成してサイバー犯罪者よりも先にドメイン名を作成し、トロイの木馬がそこへ接続するのを待つことが、なぜできなかったのでしょうか?残念なことに、Lurk の作成者は予防策をとっていました。彼らが採用していたのは、公開鍵暗号方式です。鍵のペアが作成され、指令サーバーにアクセスするボットが公開鍵を使用し、その鍵が本当にその所有者のものであるかを(デジタル署名を検証することで)チェックしていました。秘密鍵を知らないと、公開鍵の偽造は不可能です。そのため、ボットからの要求を受け取ってコマンドを発行できるのは秘密鍵の所有者だけであり、外部のリサーチャーは指令サーバーを擬態することができません。その当時、Lurk以外のサイバー犯罪者は、この保護手法を使用していませんでした。そのため、サーバーで秘密鍵を見つけたら、これは Lurk の攻撃であると確信できました。
組織化されたインフラストラクチャ
Lurk のプロセス確立については、別途言及するに値します。当時のその他サイバー犯罪者グループが単なるフォーラム利用者の寄せ集め (一人がプログラミングを実施し、別の人がお金を引き出し、さらに別の人がコーディネーターを務める)だとするなら、Lurk の場合は対照的に、ほぼ本格的な IT 企業でした。サイバー犯罪者グループと言うよりも、大きなソフトウェア会社と比べたほうが的確です。それだけでなく、組織レベルに関しては、彼らは今に至るまで多くの攻撃グループのお手本であり続けています。
Lurk はマネージャーや人事スタッフを擁し、高度に組織化されたインフラを作り上げた真のプロフェッショナル(おそらく十分な開発経験を持つ人々)によって運営されていました。大半のギャングとは異なり、従業員には(収益の歩合ではなく)給料を支払っていました。さらには、当時ほかではまったく聞いたことのないことですが、毎週の打ち合わせも行っていました。言ってみれば、Lurkは典型的な悪徳企業だったのです。
さらには、情報へのアクセスを制限するために、役割に基づいて明確に構造化されたシステムまで持っていました。一部のグループメンバーは、逮捕後に上司たちのやりとりを読むことになったときにはじめて、自分たちが公平に扱われていなかったことを認識しました。
彼らはすべての活動を、今日の多くの IT 企業よりも子細に文書化していました。当然ながら、これは捜査にも大いに役立ちました。また、もしかすると彼らの破滅にも繋がったのでしょう。アプローチが体系的であるほど追跡しやすいものです。いくつか例を挙げましょう。
ナレッジベース
Lurk グループは詳細なナレッジベースを保持し、複数のプロジェクトを明確に区分していました。それぞれのプロジェクトには、特定の人々しかアクセスできないようになっていました。要するに、あるプロジェクトの参加者は、他のプロジェクトの活動を知らなかったのです。プロジェクトは、非常に技術的なものから組織的なものまで、さまざまでした。また、技術的なプロジェクトは、さらに複数のレベルに分けられていました。例えば、トロイの木馬の開発者は、ウイルス対策のすり抜け方やテスト方法といった関連トピックのナレッジベースにしかアクセスできないようになっていました。しかし、運用上のセキュリティに関する一般的なデータベースもありました(大企業で実際に運用されているセキュリティ規制と似ています)。これらデータベースには、検知を避けるためにLurk の従業員がワークステーションをどう設定すべきかのハウツーや、匿名化ツールの使用方法についての情報がありました。
情報へのアクセス
サイバー犯罪者たちは、Lurk の情報リソースにアクセスする際、複数の VPN を介して複数のサーバーに接続する必要がありました。その際にも、受け取るのはボット管理のアクセス権のみでした。次に、各従業員は自分自身の証明書と、権限の異なる自分自身のアカウントを入手します。要は、普通の企業のリモートワーク用ネットワーク設定のようなものです。全体的に、2 要素認証さえ導入されていれば、モデル企業と見なされていたでしょう。
サーバーはすべて、物理的に異なる国の異なるデータセンターに置かれていました。VPN を通じて仮想レベルでサイバー犯罪者の 1 人に到達した場合でも、そのサーバーの本当の IP アドレスは分かりません。このため、Lurkグループを見つけ出すのは非常に困難でした。
開発
Lurk グループは、固有のソースコードレポジトリ、自動ビルドとマルチステップのテスト手順、プロダクションサーバー、テストサーバーおよび開発サーバーを有していました。彼らは基本的に、本格的なソフトウェア製品を作成していました。トロイの木馬を作成するときには、常にテスト用バージョン、開発者用バージョンのトロイの木馬が存在しました。
当時の典型的なトロイの木馬の指令サーバーは、一般的に、ボットから要求を受け取ってデータベースに記録することが可能で、それらを管理するための管理パネルを持っていました。これらはすべて、単一のページに実装されていました。Lurkは、管理パネルとデータベースを別々に実装していました。その一方、ボットへの応答を送信するためのメカニズムは、中間サービスによって完全に不明瞭化されていました。
エクスプロイトキット
Lurk には 3 つのエクスプロイトキットがあり、それぞれ異なる名前が付いていました。一つは内部の呼称で開発者が付けたもの、 一つは顧客とパートナー向けのもの、一つはリサーチャーによって割り当てられたものでした。つまり、Lurk の作成者は自分たちで開発したものを使用するだけでなく、エクスプロイトキットを他のサイバー犯罪者へ販売してもいたのです。それだけでなく、「パートナー」向けバージョンには異なるコードが含まれていました。非常に人気のある別のエクスプロイトキットに見せかけようとしていたことは明らかです。
Lurk の破滅
最終的に、このサイバー犯罪者たちのトリックは皆、ほとんど役に立ちませんでした。メンバーの大半は逮捕されました。しかし、それは損害がすでに出てからのことでした。その長いキャリアにおいて、彼らは約 4,500 万米ドルを窃取しました。当社エキスパート陣が彼らの手法を調査研究してきた年月は、約 6 年間に及びました(なお、ここで得られた価値ある経験は、サイバー犯罪を打ち負かすために今でも生かされ続けています)。
このストーリーから得られたビジネス関連の教訓についてご興味あれば、こちらの記事(英語)もご一読ください。また、技術的分析の詳細については、Securelistの記事(英語)をご覧ください。