
مستخرج مفاتيح التشفير من ذاكرة لينكس

الخصائص:
التبعيات:
القيود:
ربما سمعت بالفعل أو حتى استخدمت مشروعي 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
أدخل كلمة مرور مرتين، ثم بعض النص وقبل الإنهاء:
CryKeX.sh openssl
أخيرًا، اضغط Ctrl+D ثلاث مرات وتحقق من النتيجة.
مفاتيح 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 لا تزال عرضة بسبب الأنفاق:
CryKeX.sh tor
كما ذكرنا، يمكنك أيضًا تغليف العمليات:
apt install libssl-dev
gcc -lcrypto cipher.c -o cipher
CryKeX.sh cipher
wrap
cipher
لا تتردد في المساهمة واختبار تطبيقات أخرى.
"مفتاح المثابرة يفتح كل الأبواب التي أغلقتها المقاومة"
John Di Lemme