Akira ランサムウェアに対する複合ツール:GPU を用いて暗号化キーにブルートフォースを仕掛ける

New Akira ransomware decryptor cracks encryptions keys using GPUs

2025/03/15 BleepingComputer — Akira ランサムウェアの Linux 版に対する復号ツールが、セキュリティ研究者の Yohanes Nugroho によりリリースされた。この無料のツールは、GPU パワーを利用して復号キーを取得し、ファイルのロックを解除する。Nugroho は、友人から助けを求められ、この復号ツールを開発することになった。Akira が暗号化キーを生成する方法に、つまり、タイムスタンプを用いる方法を分析すれば、1週間以内で暗号化されたシステムを復号できると判断したのだ。

予想外の複雑さのために、このプロジェクトには3週間が費やされ、また、暗号化キーを解読するためにの GPU リソースに $1,200 が費やされたが、最終的に成功した。

GPU を使用してキーを総当たり攻撃する

Nugroho の復号ツールは、ファイルのロックを解除するキーを、ユーザーが提供するという、従来の復号ツールのようには機能しない。

その代わりに、カレント時刻 (ナノ秒単位) をシードとして、Akira 暗号化ツールが暗号化キーを生成するという事実を利用する。つまり、ファイルごとに一意となる暗号化キーに対して、総当たり攻撃を仕掛けるという手法を取る。

この暗号化シードは、強力で予測不可能な暗号化キーを生成するために、暗号化機能で用いられるデータである。つまり、そのシードはキー生成に影響を与えることになる。したがって、ブルートフォース攻撃などの攻撃による、暗号化キーや復号化キーの再作成を防ぐために、脅威アクターにとってシードの秘密は重要なものとなる。

Akira ランサムウェアは、4種類のナノ秒精度のタイムスタンプ・シードを用いて、各ファイルに対する固有の暗号化キーを動的に生成し、1,500 ラウンドの SHA-256 でハッシュしている。

Four timestamps used for generating keys
Four timestamps used for generating keys
Source: tinyhack.com

これらのキーは RSA-4096 で暗号化され、暗号化された各ファイルの末尾に追加されるため、秘密キーなしで復号化することは困難になる。つまり、タイムスタンプのタイミング精度のレベルにより、1秒あたり 10億を超える値が生成されるため、キーに対するブルートフォース攻撃することは困難を極める。

さらに、Linux 上の Akira ランサムウェアはマルチスレッドを用いて、複数のファイルを同時に暗号化するため、使用されるタイムスタンプの特定は難しく、さらに複雑になると、Nugroho は述べている。

CPU threads handling file encryption at different times
CPU threads handling file encryption at different times
Source: tinyhack.com

この研究者は、友人から共有されたログ・ファイルを分析することで、ブルートフォース攻撃を仕掛けられる可能性のあるタイムスタンプを絞り込んだ。それにより、ランサムウェアが実行された時刻や、暗号化が完了するまでの時間を推定するための、ファイル・メタデータの確認が可能となった。続いて、各種のハードウェアで暗号化ベンチマークを作成し、予測可能なプロファイルの作成へと至った。

RTX 3060 をもしいた最初の試行は、1秒あたり 6,000万回の暗号化テストだけが実行できるという、きわめて時間の掛かるものであった。RTC 3090 にアップグレードしても、その速度の向上における効果はほとんど無かった。

最終的に、この研究者は、十分なパワーを適切な価格で提供する、RunPod と Vast.ai のクラウド GPU サービスを用いて、自身のツールの有効性を確認することにした。

具体的に言うと、16個の RTX 4090 GPU を使用することで、約10時間で復号キーに対するブルートフォース攻撃を達成できた。ただし、復元が必要な暗号化ファイルの量に応じて、このプロセスに数日を要する場合もあるという。

Yohanes Nugroho は、GPU の専門家であればコードの最適化が可能であり、パフォーマンスを向上させられるはずだと、記事で述べている。そして彼は、Akira により暗号化されたファイルを、復元する方法を説明する復号ツールを GitHub で公開した。

一般論となるが、ファイルの復号化を試行する際には、暗号化されているオリジナル・ファイルのバックアップを作成すべきだ。間違った復号キーが適用され、ファイルが破損する可能性がある。

なお、BleepingComputer では、このツールをテストしていない。したがって、安全性や有効性を保証できないため、その使用は自己責任となる。