CyberChef

この記事をシェア

概要

CyberChefは、英国GCHQが開発したさまざまな形式のデータを相互に変換するためのWebアプリケーションです。クライアントサイドで全ての処理が実行されるため、オフライン環境でも実行することができます。
CyberChefの最大の特長は、Recipeと呼ばれるデータ変換操作を組み合わせることで、プログラムコードを書かずに複雑な変換操作を行える点です。
CyberChefで利用できる主なデータ変換操作は以下のとおりです。

  • 2/8/10/16進数変換
  • Base64エンコード/デコード
  • URLエンコード/デコード
  • IPv4/IPv6アドレスのパースやフォーマット変換
  • テキストエンコーディング(UTF-8やShift-JISなど)の変換
  • MD5/SHA-1/SHA-2などのハッシュ値計算
  • 古典暗号(シーザー暗号やヴィジュネル暗号など)の暗号化/復号
  • 現代暗号(AES/DES/RSAなど)の暗号化/復号
  • Exif情報の抽出/削除
  • QRコードの作成/読み取り
CyberChefの画面説明

CyberChefの画面説明

以下に、シーザー暗号を復号する例を示します。
シーザー暗号は最もシンプルな暗号の1つで、アルファベットを同じ数だけシフトする(ずらす)ことで平文を暗号化します。この例では左に3文字シフトされた暗号文を復号しています。

CyberChefでシーザー暗号を復号する例

CyberChefでシーザー暗号を復号する例

マルウェア解析における利用方法

マルウェア解析の分野では、CyberChefは主に難読化されたマルウェアバイナリや通信内容の解析に利用されています。また、CTF(Capture The Flag)と呼ばれる情報セキュリティの競技で利用されることもあります。
Avaddonランサムウェアに含まれる難読化された文字列をデコードする手順を以下に示します。

  • 難読化された文字列をCyberChefに入力する
  • 各行をBase64でデコードする
  • 各行をXORおよびADD演算で変換する

詳細な手順

1.難読化された文字列をCyberChefに入力する
Avaddonランサムウェアに含まれる難読化された文字列を画面右上のInputに貼り付けます。テキストファイルを直接読み込むことも可能です。
難読化された文字列の末尾には=が0~2個あることがわかります。これはBase64の特徴(パディング)です。

Inputにテキストを入力した画面

Inputにテキストを入力した画面

2.各行をBase64でデコードする
左ペインのOperationsからForkとFrom Base64を検索し、ダブルクリックでRecipeに追加します。Forkは1行ずつ個別に処理するための操作で、From Base64はBase64をデコードする操作です。

ForkとBase64のRecipeを追加した画面

ForkとBase64のRecipeを追加した画面

ここで、ランサムウェアのプログラムコードを逆アセンブルした結果から文字列のデコード処理にはXOR(Key=0x03,0x9F)とADD(Key=0x05)が使われていることが分かっています。

Fiddlerで通信をキャプチャーし、その内容を閲覧している画面

文字列のデコード処理

3.各行をXORおよびADD演算で変換する
左ペインのOperationsからXORとADDを検索し、ダブルクリックでRecipeに追加します。続いて鍵(Key)をそれぞれ入力します。

XORとADDのRecipeを追加した画面

XORとADDのRecipeを追加した画面

画面右下のOutputに結果が表示されます。
これらの文字列から、ランサムウェアが作成・変更するレジストリや暗号化除外対象のフォルダーなどの情報を知ることができます。

この記事をシェア
サイバーセキュリティ
情報局の最新情報を
チェック!