Key

セキュリティ研究者のYohanes Nugroho氏は、Linux版Akiraランサムウェアの復号化ツールを公開した。この復号化ツールは、GPUパワーを利用して復号化キーを取り出し、ファイルを無料でロック解除する。

Nugroho氏は、友人から助けを求められた後、Akiraがタイムスタンプを使用して暗号化キーを生成する方法に基づいて、暗号化されたシステムを1週間以内に解決できると判断し、復号化ツールを開発した。

プロジェクトは予期せぬ複雑さのために結局3週間かかり、研究者は暗号鍵を解読するためにGPUリソースに1,200ドルを費やしたが、最終的には成功した。

GPUを使ったブルートフォース・キー

Nugroho氏の復号化ツールは、従来の復号化ツールのように、ユーザーがファイルをアンロックするためにキーを提供するような仕組みではない。

その代わりに、Akira暗号化ツールが現在時刻(ナノ秒単位)をシードとして暗号化キーを生成することを悪用して、暗号化キー(ファイルごとに一意)をブルートフォースする。

暗号化シードとは、強力で予測不可能な暗号化キーを生成するために、暗号化関数とともに使用されるデータである。シードは鍵の生成に影響するため、ブルートフォース攻撃やその他の暗号化攻撃によって攻撃者が暗号化鍵や復号鍵を再作成することを防ぐには、シードを秘密にすることが重要です。

Akiraランサムウェアは、4つの異なるタイムスタンプのシードをナノ秒の精度で使用し、SHA-256を1,500ラウンド使用してハッシュ化することで、各ファイルに固有の暗号鍵を動的に生成します。

Four timestamps used for generating keys
鍵の生成に使用される4つのタイムスタンプ
出典:tinyhack.com

これらの鍵はRSA-4096で暗号化され、各暗号化ファイルの末尾に付加されるため、秘密鍵なしで復号化するのは難しい。

タイムスタンプのタイミング精度が高いため、1秒間に10億を超える可能性のある値が生成される。

また、ヌグロホ氏によると、Linux上のAkiraランサムウェアはマルチスレッドを使って複数のファイルを同時に暗号化するため、使用されたタイムスタンプを特定するのが難しく、さらに複雑さを増しているという。

CPU threads handling file encryption at different times
異なる時刻にファイルの暗号化を処理するCPUスレッド
出典:tinyhack.com

研究者は、彼の友人が共有するログファイルを見ることで、ブルートフォース可能なタイムスタンプを絞り込んだ。これにより、彼はランサムウェアが実行されたタイミング、暗号化完了時間を推定するためのファイルメタデータを確認し、予測可能なプロファイルを作成するために異なるハードウェア上で暗号化ベンチマークを作成することができました。

RTX 3060を使用した最初の試みはあまりにも遅く、1秒間に6000万回の暗号化テストしかできませんでした。RTC 3090にアップグレードしても、あまり役に立たなかった。

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

具体的には、16個のRTX 4090 GPUを使用し、およそ10時間で解読キーをブルートフォースした。ただし、復元が必要な暗号化ファイルの量によっては、このプロセスには2、3日かかることもある。

研究者は、GPUの専門家が彼のコードを最適化することができるため、パフォーマンスを向上させることができる可能性が高いことを彼の記事で指摘している。

Nugroho氏はGitHubで解読ツールを公開しており、Akiraで暗号化されたファイルを復元する方法を説明している。

ファイルを復号化しようとする場合は、間違った復号化キーを使用するとファイルが破損する可能性があるため、いつものように暗号化された元のファイルのバックアップを取ること。

はこのツールのテストを行っておらず、その安全性や有効性を保証することはできません。

.ia_ad { background-color:#width: 95%; max-width: 800px; margin: 15px auto; border-radius: 8px; border:1px solid #d6ddee; display: flex; align-items: stretch; padding: 0; overflow: hidden; }:0; overflow: hidden; } .ia_lef { flex: 1; max-width: 200px; height: auto; display: flex; align-items: stretch; } .ia_lef a { display: flex; width: 100%; height: 100%; } .ia_lef a img { width: 100%; height: 100%; object-fit: cover; border-radius: 8px 0 0 8px; margin: 0; display: block; } .ia_rig { flex: 2; padding:display: flex; flex-direction: column; justify-content: center; } .ia_rig h2 { font-size: 17px !important; font-weight: 700; color:#line-height: 1.4; font-family:margin: 0 0 14px 0; } .ia_rig p { font-weight: bold; font-size: 14px; margin: 0 0 clamp(6px, 2vw, 14px) 0; } .ia_button { background-color:#border:1px solid #3b59aa; color: black; text-align: center; text-decoration: none; border-radius: 8px; display: inline-block; font-size: 16px; font-weight: bold; cursor: pointer; padding:10px 20px; width: fit-content; } .ia_button a { text-decoration: none; color: inherit; display: block; } @media (max-width: 600px) { .ia_ad { flex-direction: column; align-items: center; text-align: center; } .ia_lef { max-width: 100%; } .ia_lef a img { border-radius: 8px 8px 0 0; } .ia_rig { padding:15px; width: 100%; } .ia_button { width: 100%; } .

攻撃の93%を支えるMITRE ATT&CK©テクニック・トップ10

1,400万件の悪意のあるアクションの分析に基づき、攻撃の93%の背後にあるトップ10のMITRE ATT&CKテクニックとその防御方法をご覧ください。