

プロパティ:
依存関係:
制限事項:
すでに私のAES-REXプロジェクトをご存知かもしれません。これはほぼ同じことを行いますが、方法が異なります。AES-REXがレジスタから暗号鍵を抽出するのに対し、CryKeXは揮発性メモリ(RAM)から抽出します。
DRAM内の暗号鍵のセキュリティに関するテーマについては、すでにいくつかの研究が発表されています。基本的には、鍵のように見えるもの(エントロピーが高く、特定の長さを持つもの)を見つけ、その周囲のメモリ構造(Cデータ型)を分析してその性質を確認する必要があります。
メモリマッピングは変化しないため、プロセスのライブメモリをダンプし、これらの技術を使用して可能性のある鍵を見つけるという考え方です。ありがたいことに、そのためのツールが存在します。
このスクリプトは、既に実行中のプロセスに注入するだけでなく、新しいプロセスをラップすることもできます。つまり、プロセスを個別に起動し、その直後に注入します。これにより、システム上のほぼすべてのプロセス/バイナリから鍵をダンプできます。
もちろん、メモリへのアクセスはカーネルによって制限されているため、プロセスに対して特権が必要です。
Linuxのディスク暗号化(LUKS)は、この問題を軽減するためにアンチフォレンジック技術を使用していますが、メモリ全体から鍵を抽出することは依然として可能です。
Firefoxブラウザは多少似たようなメモリ管理を使用しているため、影響を受けていないように見えます。
PGP/GPGについても同様です。
残念ながら、Ansibleのようなソリューションは影響を受けます。
詳細については、eForensicsをご覧ください。
依存関係のインストール:
sudo apt install gdb aeskeyfind rsakeyfind || echo 'have you heard about source compiling?'
OpenSSL AES鍵の対話型例:
openssl aes-128-ecb -nosalt -out testAES.enc
パスワードを2回入力し、テキストを入力して、終了する前に:
CryKeX.sh openssl
最後に、Ctrl+Dを3回押して、結果を確認してください。
OpenSSL RSA鍵:
openssl genrsa -des3 -out testRSA.pem 2048
パスフレーズが求められたら:
CryKeX.sh openssl
確認:
openssl rsa -noout -text -in testRSA.pem
SSHから鍵を抽出してみましょう:
echo 'Ciphers [email protected]' >> /etc/ssh/sshd_config
ssh user@server
CryKeX.sh ssh
OpenVPNから:
echo 'cipher AES-256-CBC' >> /etc/openvpn/server.conf
openvpn yourConf.ovpn
sudo CryKeX.sh openvpn
TrueCrypt/VeraCryptも影響を受けます: VeraCryptで「veracrypt」ファイルを選択し、パスワード「pass」でマウント:
sudo CryKeX.sh veracrypt
Chromiumベースのブラウザ(Googleに感謝):
CryKeX.sh chromium
CryKeX.sh google-chrome
Firefoxは明示的に影響を受けませんが、Tor Browser Bundleはトンネリングのため依然として脆弱です:
CryKeX.sh tor
前述の通り、プロセスをラップすることもできます:
apt install libssl-dev
gcc -lcrypto cipher.c -o cipher
CryKeX.sh cipher
wrap
cipher
他のアプリケーションをテストして貢献してください。
"忍耐の鍵は、抵抗によって閉ざされたすべての扉を開く"
ジョン・ディ・レメ