
Hive v5ファイル復号アルゴリズム
この数か月間に行った作業は、Hive v5-5.2 の悪意のあるファイル暗号化メカニズムを明らかにするために必要なものでした。 この作業は2つの部分に分けられました。
この数か月の作業に対するサポート、対話、助言に対して、素晴らしい @rivitna に感謝いたします。 Hive ランサムウェアなどに関する有用な情報が満載の rivitna の GitHub もぜひご覧ください。
この README には、ファイル復号化アルゴリズムに関する情報を記載しています。詳細な動作については、PoC を参照してください。 キーストリームは暗号化されたクリアテキストです。クリアテキストは 0xA00000 バイトの集合に、最初の 0x2FFF00 バイトを追加したもので、合計 0xCFFF00 バイトになります。これらのバイトは、2022年7月にリリースされた最初のパートで説明した脆弱なアルゴリズムを使用して作成されました。 以下はクリアテキストの例です。

この文書で分析・参照した Hive サンプルは、@rivitna が作成した このリスト から選びました。心から感謝します。 ランサムウェアの複雑さを理解するには、Microsoft Threat Intelligence Center (MSTIC) が公開した この分析 をご覧ください。
クリアテキスト(復号化されたキーストリーム)は、Hive ランサムウェアが各ファイルを暗号化する際に使用されます。ファイルを暗号化するとき、Hive ランサムウェアは、ファイルの暗号化に使用するクリアテキスト内の正確な位置(オフセット)を参照する2つの整数を、次の式に従って計算します。

ここで、c = i % 0x2FFF00、d = i % 0x2FFD00 であり、i はバイトカウンタです。
ファイルを書き込む前の準備操作は以下のとおりです。

この場合も、クリアテキストは基本的な役割を果たします。実際、以下の目的で使用されます。

または、この場合の 0x7539D:

しかし、次のエビデンスでは for ループが少し異なり、特定する必要があるマジックバリューを明示しないように記述されています。これは Hive 5.2 に属するアーティファクトに関するものです。

この場合、公開されたツールにあるオフセット総当たり(ブルートフォース)機能を使用して、既知の拡張子を持つファイルと対応する復号化済みキーストリームを使用できます。暗号化されたファイルのヘッダーと暗号化されていないファイルのヘッダーを使用することで、復号化ツールがファイルの復号化を開始する必要があるオフセットを特定できます。
ファイルの暗号化モードには、0xFB または 0xFF の2つの値を指定できます。
このプログラムは2つのオプションを提供します。

https://github.com/rivitna/Malware/blob/main/Hive/Hive_samples.txt