概要
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コードの作成/読み取り
以下に、シーザー暗号を復号する例を示します。
シーザー暗号は最もシンプルな暗号の1つで、アルファベットを同じ数だけシフトする(ずらす)ことで平文を暗号化します。この例では左に3文字シフトされた暗号文を復号しています。
マルウェア解析における利用方法
マルウェア解析の分野では、CyberChefは主に難読化されたマルウェアバイナリや通信内容の解析に利用されています。また、CTF(Capture The Flag)と呼ばれる情報セキュリティの競技で利用されることもあります。
Avaddonランサムウェアに含まれる難読化された文字列をデコードする手順を以下に示します。
- 難読化された文字列をCyberChefに入力する
- 各行をBase64でデコードする
- 各行をXORおよびADD演算で変換する
詳細な手順
1.難読化された文字列をCyberChefに入力する
Avaddonランサムウェアに含まれる難読化された文字列を画面右上のInputに貼り付けます。テキストファイルを直接読み込むことも可能です。
難読化された文字列の末尾には=が0~2個あることがわかります。これはBase64の特徴(パディング)です。
2.各行をBase64でデコードする
左ペインのOperationsからForkとFrom Base64を検索し、ダブルクリックでRecipeに追加します。Forkは1行ずつ個別に処理するための操作で、From Base64はBase64をデコードする操作です。
ここで、ランサムウェアのプログラムコードを逆アセンブルした結果から文字列のデコード処理にはXOR(Key=0x03,0x9F)とADD(Key=0x05)が使われていることが分かっています。
3.各行をXORおよびADD演算で変換する
左ペインのOperationsからXORとADDを検索し、ダブルクリックでRecipeに追加します。続いて鍵(Key)をそれぞれ入力します。
画面右下のOutputに結果が表示されます。
これらの文字列から、ランサムウェアが作成・変更するレジストリや暗号化除外対象のフォルダーなどの情報を知ることができます。