サイバーシェフ
サイバースイスアーミーナイフ
CyberChef は、Web ブラウザー内であらゆる種類の「サイバー」操作を実行するためのシンプルで直感的な Web アプリです。これらの操作には、XOR や Base64 などの単純なエンコード、AES、DES、Blowfish などのより複雑な暗号化、バイナリおよび 16 進ダンプの作成、データの圧縮と解凍、ハッシュとチェックサムの計算、IPv6 および X.509 の解析、文字エンコードの変更などが含まれます。 。
このツールは、テクニカル アナリストと非テクニカル アナリストの両方が、複雑なツールやアルゴリズムを扱うことなく、複雑な方法でデータを操作できるように設計されています。これは、アナリストによって数年間にわたる 10% のイノベーション時間で考案、設計、構築され、段階的に改善されました。
ライブデモ
CyberChef は現在も鋭意開発中です。したがって、それは完成品とみなされるべきではありません。テストとバグ修正がまだ残っており、新しい機能を追加し、追加のドキュメントを作成する必要があります。ぜひ貢献してください!
CyberChef の暗号化操作は、いかなる状況においてもセキュリティを提供するために依存すべきではありません。それらの正確性については保証されません。
ライブデモはここにあります - 楽しんでください!
コンテナ
CyberChef をローカルで試したい場合は、自分で構築することができます。
docker build --tag cyberchef --ulimit nofile=10000 .
docker run -it -p 8080:80 cyberchef
または、画像を直接使用することもできます。
docker run -it -p 8080:80 ghcr.io/gchq/cyberchef:latest
このイメージは、GitHub ワークフローを通じて構築および公開されます。
仕組み
CyberChef には 4 つの主要な領域があります。
- 右上の入力ボックス。操作対象のテキストまたはファイルを貼り付け、入力、またはドラッグできます。
- 右下の出力ボックスには、処理の結果が表示されます。
- 左端の操作リストでは、CyberChef が実行できるすべての操作を分類されたリストまたは検索によって見つけることができます。
- 中央のレシピ領域では、使用する操作をドラッグし、引数とオプションを指定できます。
単純な方法でも複雑な方法でも、好きなだけ操作を使用できます。いくつかの例を次に示します。
- Base64 でエンコードされた文字列をデコードする
- 日付と時刻を別のタイムゾーンに変換する
- Teredo IPv6 アドレスを解析する
- 16 進ダンプからデータを変換し、解凍します。
- シェルコードを復号化して逆アセンブルする
- 複数のタイムスタンプを完全な日付として表示する
- 異なるタイプのデータに対して異なる操作を実行する
- 入力の一部を操作の引数として使用する
- AES 復号化を実行し、暗号ストリームの先頭から IV を抽出します。
- ネストされたエンコーディングの複数のレイヤーを自動的に検出
特徴
- ドラッグアンドドロップ
- 操作はレシピリストにドラッグしたりリストから取り出したり、再編成したりできます。
- 最大 2GB のファイルを入力ボックス上にドラッグして、ブラウザに直接ロードできます。
- オートベイク
- 入力またはレシピを変更すると、CyberChef が自動的に「ベイク」し、すぐに出力を生成します。
- パフォーマンスに影響を与える場合 (入力が非常に大きい場合など)、これをオフにして手動で操作することができます。
- 自動エンコード検出
- CyberChef は、さまざまな技術を使用して、データがどのエンコーディングに従っているかを自動的に検出しようとします。データを理解する適切な操作が見つかると、出力フィールドに「マジック」アイコンが表示され、クリックするとデータをデコードできます。
- ブレークポイント
- レシピ内の任意の操作にブレークポイントを設定して、実行前に実行を一時停止できます。
- レシピを一度に 1 操作ずつ実行して、各段階でデータがどのように表示されるかを確認することもできます。
- レシピの保存とロード
- もう一度使いたくなる素晴らしいレシピを思いついた場合は、[レシピを保存] をクリックしてローカル ストレージに追加します。次回CyberChefを訪れるときは、それがあなたを待っています。
- レシピと入力内容を含む URL をコピーして、他の人と簡単に共有することもできます。
- 検索
- 必要な操作の名前またはそれに関連する単語がわかっている場合は、検索フィールドにそれを入力し始めると、一致する操作がすぐに表示されます。
- ハイライト表示
- 入力または出力でテキストを強調表示すると、オフセットと長さの値が表示され、可能であれば、対応するデータが出力または入力でそれぞれ強調表示されます (例: 入力内の「question」という単語を強調表示して、どこにあるかを確認します)出力に表示されます)。
- ファイルへの保存とファイルからのロード
- いつでも出力をファイルに保存したり、入力フィールドにファイルをドラッグ アンド ドロップしてファイルをロードしたりできます。最大約 2GB のファイルがサポートされます (ブラウザによって異なります)。ただし、一部の操作では、この量のデータを実行するには非常に長い時間がかかる場合があります。
- CyberChef は完全にクライアント側です
- レシピの設定や入力 (テキストまたはファイル) が CyberChef Web サーバーに送信されることはありません。すべての処理はブラウザ内、自分のコンピュータ上で実行されます。
- この機能により、CyberChef をダウンロードしてローカルで実行できます。アプリの左上隅にあるリンクを使用して、CyberChef の完全なコピーをダウンロードし、仮想マシンにドロップしたり、他のユーザーと共有したり、閉じたネットワークでホストしたりできます。
ディープリンク
CyberChef の URL ハッシュを操作することで、ページを開く際の初期設定を変更できます。形式はhttps://gchq.github.io/CyberChef/#recipe=Operation()&input=...
です。
サポートされている引数は、 recipe
、 input
(Base64 でエンコード)、およびtheme
です。
ブラウザのサポート
CyberChef はサポートするように構築されています
- Google Chrome 50+
- Mozilla Firefox 38+
Node.jsのサポート
CyberChef は、Node.js v16
完全にサポートするように構築されています。詳細については、「ノード API」wiki ページを参照してください。
貢献する
新しいオペレーションを CyberChef にコントリビュートするのは非常に簡単です。クイックスタート スクリプトでは、プロセスを順を追って説明します。基本的な JavaScript を作成できれば、CyberChef のオペレーションを作成できます。
インストールのウォークスルー、新しい操作とテーマを追加するためのハウツー ガイド、リポジトリ構造の説明、利用可能なデータ型とコーディング規約はすべて、「Contributing」wiki ページにあります。
- 変更をフォークにプッシュします。
- プルリクエストを送信します。これを初めて行う場合は、プル リクエストの CLA アシスタントを介して GCHQ コントリビューター ライセンス契約に署名するよう求められます。また、GCHQ からあなたの貢献への感謝のしるしや GCHQ での雇用機会についての連絡を受けることに満足するかどうかも尋ねられます。
ライセンス
CyberChef は Apache 2.0 ライセンスに基づいてリリースされており、Crown Copyright によって保護されています。