サンドボックスは、孤立した環境で悪意のあるファイルを実行するために使用され、動的な動作を計装し、フォレンジックアーティファクトを収集します。
ケープは、Windowsプラットフォームで次のコア機能を備えたCuckoo V1から派生しました。
ケープは、カッコウの伝統的なサンドボックス出力をいくつかの重要な追加で補完します。
誰でも使用できる無料のデモンストレーションインスタンスがオンラインであります。
https://capesandbox.com-アカウントのアクティベーションについては、https://twitter.com/capesandboxに到達してください
Cuckoo Sandboxは、2010年にGoogle Summer of Code ProjectとしてHoneynet Project内で始まりました。当初、Claudio Guarnieriによって設計および開発されました。最初のベータリリースは2011年に公開されました。2014年1月、Cuckoo V1.0がリリースされました。
2015年は極めて重要な年であり、カッコウの歴史に大きなフォークがありました。メインカッコウプロジェクトでは、元のモニターおよびAPIフック法の開発が停止しました。 Jurriaan Bremerが作成したLinux Toolchainを介してコンパイルされたrestructuredTextベースの署名形式を使用して、代替モニターに置き換えられました。
ほぼ同じ時期に、Cuckoo-Modifiedと呼ばれるフォークがBrad 'Spender' Spenglerによって作成され、64ビットサポートや重要なことにMicrosoftのVisual Studioコンパイラの導入を含む大幅な改善があります。
その同じ年に、ケビンオライリーによるコンテキスト情報セキュリティで、ケープと呼ばれる動的コマンドライン構成とペイロード抽出ツールの開発が開始されました。名前は「構成とペイロード抽出」の頭字語として造られ、元の研究は、MicrosoftのDetours Libraryが提供するAPIフックを使用して、未梱包のマルウェアペイロードと構成をキャプチャすることに焦点を当てていました。ただし、APIフックだけでも、任意のマルウェアからペイロードまたは構成を開梱するために不十分な電力と精度を提供することが明らかになりました。
このため、研究は、可能な限りステルス性になるために、マイクロソフトデバッグインターフェイスの使用を回避しながら、マルウェアを正確に制御および計装できるようにするための新しいデバッガーコンセプトに始まりました。このデバッガーは、APIフックと組み合わせて非常に強力な機能を備えた、概念実証迂回ベースのコマンドラインツールに統合されました。
最初の作業で、Microsoft DetoursをCuckoo-ModifiedのAPIフックエンジンに置き換えることが可能であることが示されたとき、Cape Sandboxのアイデアが生まれました。 2016年9月に44Conでデバッガー、自動開梱、ヤラベースの分類、統合された構成抽出が追加されたことで、ケープサンドボックスは初めて公開されました。ケープバージョン1。
2018年の夏、このプロジェクトは幸運にも、長年のカッコウの寄稿者であるAndriy 'Doomedraven' Brukhovetskyyからの大きな貢献の始まりを見てきました。 2019年に彼はケープをPython 3に移植するという巨大なタスクを開始し、その年の10月にCAPEV2がリリースされました。
CAPEは、マルウェアとオペレーティングシステムの両方の機能の進歩に対応するために、継続的に開発および改善されています。 2021年、ダイナミックなヤラスキャンを介した爆発中にケープのデバッガーをプログラムする機能が追加され、アンチサンドボックス技術のために動的バイパスを作成できました。 Windows 10がデフォルトのオペレーティングシステムになり、その他の重要な追加には、インタラクティブなデスクトップ、AMSI(アンチマルウェアスキャンインターフェイス)ペイロードキャプチャ、Microsoft Nirvana、およびデバッガーベースの直接/間接Syscallの対策に基づく「Syscall Hooking」が含まれます。

マルウェアは、3つのメカニズムを介してケープに分類できます。

解析は、ケープ独自のフレームワークを使用して行うことができます。代わりに、次のフレームワークがサポートされています:Ratdecoders、DC3-MWCP、Malduck、またはMaco
def extract_config(data):を備えた純粋なPythonであるCapeのフレームワークcape_utils.py使用することをお勧めします。
CAPEは、多くのマルウェアのテクニックまたは動作を利用して、未払いのペイロードキャプチャを可能にします。
これらの動作により、さらなる分析のためにペイロードが注入、抽出、または減圧されたものがキャプチャされます。さらに、CAPEは各プロセスのプロセスダンプを自動的に作成します。または、DLLの場合、メモリ内のDLLのモジュールイメージを作成します。これは、モジュールイメージダンプが完全に開梱されていることが多いシンプルなパッカーが詰め込まれたサンプルに役立ちます。
ケープのデフォルトの「パッシブ」解凍メカニズムに加えて、ブレークポイントを使用して、実行前に可能な限り早い段階でキャプチャされるように、ブレークポイントを使用して新たに割り当てられたまたは保護されたメモリ領域へのライティングを検出する「アクティブな」解体を有効にすることができます。これは、Web Submission TickboxまたはOption unpacker=2指定することにより有効になり、デフォルトでは爆発の品質に影響を与える可能性があるため、デフォルトで除外されます。
ケープは、特定のパッカーを開梱するためにヤラ署名を介してプログラムできます。たとえば、UPXタイプのパッカーは非常に一般的であり、CAPEではこれらの結果、パッケージ化されたペイロードが受動的にキャプチャされますが、デフォルトのキャプチャは、パックされたペイロードが実行され始めた後に行われます。したがって、カスタムヤラの署名を介してUPX由来のパッカーを動的に検出し、最終的なパッカー命令にブレークポイントを設定することにより、実行を開始する前に元のエントリポイント(OEP)でペイロードをキャプチャすることができます。


dump-on-apiオプションにより、Webインターフェイスで指定できる特定のAPI関数を呼び出すと、モジュールをダンプできます(例: dump-on-api=DnsQuery_A )。
デバッガーは、ケープが元の機能を超えて進化し続けることを許可しました。最新のマルウェアは一般にサンドボックス内の分析を回避しようとしているため、たとえば仮想化またはAPIフック検出のタイミングトラップを使用することにより、CAPEはヤラシグネチャ内のデバッガーアクションを組み合わせてデバッガーアクションを開発し、爆発的なマルウェアを検出し、装飾的なマニピュレーションを実行し、サンプルを完全に除去します。


デバッガーへのクイックアクセスは、 bp0 bp3介してRVAまたはVA値を受け入れてcountポイントを設定することでdepthへのクイックアクセスが可能bp0=0x1234,depth=1,count=100 。 
モジュールエントリポイントにブレークポイントを設定するには、アドレスの代わりにepが使用されます(例: bp0=ep )。あるいは、フックbreak-on-return API(例: break-on-return=NtGetContextThread )の返品アドレスのブレークポイントを可能にします。オプションのbase-on-apiパラメーターを使用すると、RVAブレークポイントの画像ベースをAPI呼び出し( base-on-api=NtReadFile,bp0=0x2345 )によって設定できます。

オプションaction0 -Action3 action3 、メモリ領域のダンプ( action0=dumpebxなど)や実行制御フローの変更( action1=skipなど)の変更など、ブレークポイントがヒットしたときにアクションを実行できるようにします。 CAPEのドキュメントには、そのようなアクションのさらなる例が含まれています。
ケープモニターのコードを含むリポジトリは異なります。
ケープコミュニティによって開発された数百の署名を含む署名のコミュニティリポジトリがあります。すべての新しいコミュニティ機能をそのレポにプッシュする必要があります。開発者がそれらを維持することができ、喜んで維持することができれば、後でコアに移動することができます。
さらなるマルウェアファミリのために、新しい署名、パーサー、またはバイパスの作成を支援することにより、このプロジェクトに貢献してください。現在作品にはたくさんあるので、このスペースを見てください。
@D00M3DR4V3Nに、CapeをPython 3に単独で移植してくれたことに感謝します。
Python3
Rooterのみをルートとして実行する必要があります。残りはケープユーザーとして。ルートとして実行すると、権限が混乱します。
confフォルダー内のすべての構成ファイルを読んでください!kvm-qemu.shおよびcape2.sh 、 ssh接続が破損した場合にOSの問題を防ぐためにtmuxセッションから実行する必要があります。<username>実際のパターンに置き換えます。<WOOT>を交換する必要があります!sudo ./kvm-qemu.sh all <username> 2>&1 | tee kvm-qemu.logsudo ./cape2.sh base 2>&1 | tee cape.logconfフォルダー内のファイルを構成するためにmodsを実行してCAPEを構成します。systemctl restart <service_name>を使用しますjournalctl -u <service_name>を使用します-hを確認してください。デバッグモード( -d )でサービスを実行することも役立ちます。-hが含まれていますが、スクリプトをチェックして、何をしているのかを理解してください。git pullpython3 utils/community.py -wafをご覧ください-h git add --all
git commit -m '[STASH]'
git pull --rebase origin master
# fix conflict (rebase) if needed
git reset HEAD~1
# make sure kevoreilly repo has been added as a remote (only needs to be done once)
git remote add kevoreilly https://github.com/kevoreilly/CAPEv2.git
# make sure all your changes are commited on the branch which you will be merging
git commit -a -m '<your commit message goes here>'
# fetch changes from kevoreilly repo
git fetch kevoreilly
# merge kevoreilly master branch into your current branch
git merge kevoreilly/master
# fix merge conflicts if needed
# push to your repo if desired
git push
作業でcapev2を使用する場合は、「このリポジトリを引用する」githubメニューで指定されているように引用してください。
pefileを使用する頭痛になります。pefile依存関係を削除します。ヴォリアはこれ以上痛みはありません。