Ters Mühendislikte Şifrelenmiş Veri Analizine Giriş
Ters mühendislik, tasarım, davranış ve içsel çalışmalarını anlamak için bir yazılım veya donanım sistemi dışlama sürecidir - bu nedenle veriyi korumak için, yazılım analizinde obfuscate mantık, veya güvenli iletişim - ters mühendislik, şifreli bir veri ile karşı karşıya kalır.Bu, yanlış anlaşılmaz verileri, kötü niyetli fonksiyonlar, özel algoritmaları veya kritik yapılandırma parametrelerini gizlemek için kullanılan temel algoritmaları ve stratejik algoritmaların ötesine geçmek için kullanılan yöntemlere yol açabilir.
Şifreleme Neden Ters Mühendislik Hedefleri'nde Görünüyor
Şifreleme sadece bir güvenlik özelliği değildir; geliştiriciler tarafından yapılan kasıtlı bir tasarım seçimidir. tersine mühendislik bağlamlarında, şifreleme birkaç nedenden dolayı görünür:
- [[Dönetici verilerinin korunması[[[Dönetici:0)
- [FONT:0]Anti-reverse mühendisliği[[Dönetici: 1 ) - Özel şifreleme rutinleri obfuscate kodu için kullanılır, teller ve statik analizleri zorlar.
- [[0) Ağlama ve protokolleri[Dönler: 1 ) - Birçok uygulama TLS, özel şifreleme tabakaları veya obfuscation schedule kullanarak şifreli ağ trafiği.
- [FONT=0]Media ve içerik koruması[[DRM) – Dijital haklar yönetimi (DRM) sistemleri, oyun geri almadan önce şifreleme gerektiren medya dosyalarını şifreliyor.
- [FONT:0)Malware iletişimi[DÜT:1] – Komut-ve-kontrol (C2) genellikle eylemleri tespit etmek ve gizlemek için şifreleme kullanır.
Şifrenin ardındaki amacın tanınması, ters mühendisin doğru analitik yolu seçmesine yardımcı olur. şifreleme iyi bilinen algoritmaların (AES, RSA, ChaCha20) veya özel yerleşik silücülerin, hedef aynı kalır: verilerin nasıl dönüştürüldüğü ve sonra doğru metni geri kazan.
İlk Reconnaissance: İkili Şifrelemeyi Tanımlamak
Şifrelemeye başlamadan önce, analist kriptolamanın gerçekten mevcut olduğunu ve doğasını belirlemelidir. İlk reconnaissance aşaması statik ve basit heuristics üzerinde güvenir:
String Analizi ve İmza Taraması
IDA Pro ve Ghidra gibi parçalar, kriptografik kütüphaneler veya “Kolaysız” veya “büyükleştirme vektörü” gibi mesajlar için ikiliyi taramak için kullanılabilir.(DIE)).
Entropy Analysis
Şifrelenmiş veriler yüksek entropiyi gösterir (entropiye yakın değerler) ikili veya bellek çöplüklerinde yüksek dereceden bölümler bulmak için.Entropide bir artış) veya ).
Magic Bytes ve File Headers
Birçok şifreleme planı, bazı dosyaların şifreli veya dosya başlıklarından ayırt edilebilir bir şekilde ayrılır. Örneğin, şifreli bir posta dosyası, [[0) ile başlar. TLS trafiği, [[Şamping:0) ile başlar. (handshake) ve BitLocker şifreli hacimler bir kalite şifreleme rutinleri bile uzun alanları, başlangıç vektörleri, veya hex inceleme yoluyla tespit edilebilir.
İlk tanımlamadan sonra, analist daha ayrıntılı statik ve dinamik analizlere devam eder.
Statik Analiz: Encryption Algorithm'i Uygulamasız
Statik analiz, onu uygulayan kodu inceleyerek şifreleme algoritmasını anlamayı amaçlamaktadır. Bu yaklaşım en güvenli çünkü herhangi bir anti-debugging veya anti-analiz mantığını tetiklemiyor.
Kriptografik Routines'i bir Disloke Ederek
IDA Pro veya Ghidra kullanarak, ters mühendis kriptografik işlevleri bulur. Anahtar göstergeleri şunları içerir:
- [FONT=0]Constant tabloları[[Dönetici: 1 ) - Birçok algoritma (örneğin, AES S-boxes, DES substitution kutuları, CRC masaları) sabit göz masalarına güveniyor. Görünüşe göre rastgele değerler ile 256-bayt masası bulmak güçlü bir ipucu.
- [FONT=0)Shift ve XOR operasyonları[Dönetici: 0[Döneticiler)[değiştir | kaynağı değiştir] – Blok ciphers tipik olarak bir dizi değişim kullanır, XOR ve alt kurumlara bakınız.
- [FONT:0]Non-linear işlemleri[[Döntme: 1) - Galois alanlarındaki S-boxlar ve multiplikasyon AES'de kullanılabilir. Bu algoritmaları tanımlamak algoritmayı doğrulayabilir.
- [FONT:0)Key programı – AES anahtar genişleme, RSA anahtar nesil ve anahtar teslimlik fonksiyonları (PBKDF2, bcrypt) elde edilen anahtarlar oluşturur.Bir başlangıç anahtarının kriptolama programını nasıl açığa çıkarabileceğini kanıtlayın.
Algoritma standart olduğunda, analist sık sık sık bilinen uygulamalara karşı sürekli ve operasyon dizilerini belirleyebilir (örneğin OpenSSL veya TinyAES ile karşılaştırılır).
Sertcoded Keys ve İlkleme Vektörler
Statik analiz bazen kripto anahtarını doğrudan ikilide açığa çıkar. Anahtarlar sabit diziler olarak gömülü olabilir, XOR-encoded değerleri, veya basit bir algoritmadan üretilen bir hex aramayı kullanın (16, 24 veya 32 kişi için) beklenen anahtar uzunluğun yüksek olması.
Saf Statik Analizleri
Güçlü obfuscation, paketlenmiş kod ve çevre bağımlı anahtar nesil, bu tür durumlarda, dinamik analiz gerekli hale gelebilir.
Dinamik Analiz: Runtime'da Şifrelemeyi Korumak
Dinamik analiz, kontrol edilen bir ortamda hedef uygular, tersine mühendisin eylemleri eylemleri gözlemlemesine izin verir. Bu yaklaşım, özellikle iş zaman anahtarlarını, algoritma çeşitlerini ve orta metin eyaletlerini çıkarmak için güçlüdür.
Hook Encryption Fonksiyonlları için Debuggers kullanmak
Debuggers like algT:0)x64dbg) ve [[Windows) ve [[Dönetici[FONT:3)[değiştir | kaynağı değiştir] ve ayrıca bellekteki anahtar ve IV.
Memory Dump Analysis
Şifreleme fonksiyonu yürütürken, düz metin veya şifreleme anahtarı hala hafızada kalabilir.SeseFLT:0)Volattitude) (örneğin bellek forensics) [[DFLT:2|Kuşturma.NET[D)[Döneticileri için|Döneticileri için)[Döneticileri için) belirli bir desenler için hafızayı tarama işlemine izin verebilir.Dumping the entire process hex editörü ile verileri arama ve genellikle sonuçları ile arama.
Dinamik Taint Analizi ve Instrumentation
Gelişmiş araçlar:0)Frida[[Dönetici:0) Dinamik bir araçlama sağlar. analist, kripto işlevleri aracılığıyla veri akışını takip eden JavaScript kancalarını yazabilir. Örneğin, kancaÖRT:6) veya [[DynamoRIO) daha sonra sabit bir değerle kayıt altına almak için kullanılabilir.
SideChannel Saldırıları (Timing, Power, and Cache)
Tipik yazılım ters mühendislikte daha az yaygın olsa da, yan kanal saldırıları, şifreleme anahtarlarını uygulama zamanı veya hafıza erişim desenlerini ölçerek ortaya çıkarabilir. Örneğin, AES'ye yönelik bir zamanlama saldırısı bilinen girişlerle hedefle gerçekleştirilebilir ve bu, tam olarak kontrol edilen bir ortam gerektirir, ancak donanım veya ters mühendislik için değerli bir teknik olarak kalır.
Şifrelenmiş Data Analizi için Temel Araçlar
Aşağıdaki aletler tablo kategori tarafından düzenlenir, şifreli verileri analiz etmek için özel güçlü yönleri vurgulanır:
Network Trafik Analizi
- [FONT:0]Wireshark[[Dönetici: 1) Ağ paketlerini yakalar ve denetimler; oturum anahtarlarıyla sağlandığında (IP/UDP üzerinden özel şifreleme tespit etmek için kullanışlıdır.
- [FONT:0]tcpdump + Wireshark K) - uzak ortamlarda komut satırı paketi yakalama için.
Statik Analiz ve Disassembly
- [FONT:0]IDA Pro[DÜDÜT:1] - endüstri standart bir eklenti desteği ile (PKK, CryptoScanner, Signatures).
- [FONT:0)Ghidra[DÜDÜDÜDÜDÜDÜDÜDÜŞÜNÜCÜDÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜ: 0,0)Ghidra[DÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜŞÜNÜŞÜNÜCÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜ: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0:0)[ÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜye Olmayanlar - Özgür, AYARATIDÜye ait ücretsiz
- [FONT:0)GNU Binutils (objdump, readelf)) - ELF binerlerinin hızlı bir inceleme için.
Dinamik Analiz ve Debugging
- [FONT=0}x64dbg[[Dönetici: 1 ) – Windows için yerleşik zengin debugger, kripto kancaları için yerleşik veritabanı ile.
- [FONT:0]Frida[[Dönetici: dinamik araçlama aracı: hem yerel hem de Android uygulamaları için özel şifreleme kodu bağlamak için ideal.
- [FONT:0]Unicorn Engine[[[Dönetici:0)[Döneticileri izolasyonda çalıştırabilecek CPU emülatörü; tam program olmadan şifreleme rutinlerini çıkarmak için kullanışlı.
- [FONT:0]QEMU[[DÜT:1] – tam sistem emulation; bir kum kutulu ortamdaki bilgisayar veya yazılımları yürütmek için kullanışlı.
Memory Scanning ve Editing
- [FONT:0)Cair Engine[[[Dönetici: 1 ) – arama değeri, desen tarama ve hız açma özellikleri; genellikle anahtarlar veya düz metin tamponları bulmak için kullanılır.
- [FONT=0)ReClass.NET) – ters mühendislik ağ protokolleri ve hafıza yapıları tersine çevirmeye yardımcı olur; şifreli alanları görselleştirebilir.
- [FONT:0)WinDbg[[DDDDDbg[DDDDDDDDDDDDDbg[DDDDDDDDDDDDDDDD)[DDDDDDDD)[DDDDDDDD) – çekirdek-mode fiziksel hafızayı boşaltabilecek bir şekilde.
Kriptografik Analiz ve Öğrenme
- [[0)CrypTool 2[Dönetici: 1) Kriptografik algoritmaları ile deney yapmak için grafik araç; standart ciphers anlamak için yardımcı.
- [FONT:0]Hash MyFiles[[[Dönetici: 1 ) – Hex dizelerinden elde etmek için küçük fayda; anahtar bütünlüğü doğrulamak için faydalı.
- [FONT:0)010 Editör – senaryolama, entropi görselleme ve dosya yapıları ile ilgili şablon tabanlı parsing.
Gelişmiş Stratejiler: Emulation, Sembolik Execution ve Fuzzing
Geleneksel statik ve dinamik analiz şifreleme algoritmasını veya anahtarını ortaya çıkarmak için başarısız olduğunda, daha sofistike teknikler devreye girer.
EmulationBased Ekstraksiyon
Unicorn Engine kullanarak, bir analist şüpheli bir şifre fonksiyonunun ham talimatlarını alabilir ve bunları bilinen bir girişle kontrollü bir ortamda yürütebilir.Soru sağlayarak ve çıktıyı gözlemleyebilir, algoritma adım adıma ters dönebilir.Bu teknik özellikle obfuscated virtual-mak, VM, Themida).
Angrr ile Sembolik Gerçek
[FONT:0]Angr[DÜDÜT:1], birden çok yolu araştırmak için sembolik bir infazı kullanan ikili bir analiz çerçevesidir.Ayrıca, şifreleme fonksiyonunun durumunu otomatik olarak araştırmak için kullanılabilir. Örneğin, şifreleme anahtarla basit bir XOR kullanırsa, Angr aynı zamanda konkolic yürütmeyi (execution + sembolik) de karmaşık koşulları ele alabilir.
Tefsül etmek için özür dilerim
Uygarlık gibi ölçüm araçları:0) Amerikan Fuzzy Lop (AFL)) veya [[FONTFuzzer) Bu yaklaşım, normal olarak adlandırılan şifreleme rutinlerini teşvik etmek için uygun hale getirilebilir.Rezersiz olarak, analist hangi girişlerin şifreleme fonksiyonunu belirleyebilir ve sonra durumu yakalamak için bir de bir debügger kullanabilir.
Bir Metodical Workflow için en iyi uygulamalar
yapılandırılmış bir iş akışı, ayrıntılı bir şekilde bilgi kaybı sağlar ve eksik kritik bilgilerin olasılığını azaltır:
- [FONT:0) Çevre[Dönetici][Dönetici, donanım ve herhangi bir anti-debugging korumaları dikkat edin. Her zaman kontrollü bir sanal makine veya kumbox kullanın.
- [FONT:0) Statik yenidenkonnaissance ile başlayın[DÜT:1) – tarama dizeleri, entropi ve dosya imzaları. olası şifreleme türleri tanımlayın.
- [FONT:0] Dinamik analizleri erken ) kullanın – eğer statik analiz tezgahları, ikiliyi çalıştırın ve zaman davranışını yakalamak için debuggers/instrument kullanın.
- [FONT:0) Mümkün olan otomatik olarak – Frida için senaryolar yaz, IDAPython veya Ghidra tekrar kanca ve log şifreleme işlevlerine giriş yapın. Bu, birden çok giriş test ettiğinde zaman tasarrufu sağlar.
- [FONT=0]Validate decryption[[Dönetici: 1 ) – bir anahtar ve algoritma iki kez küçük bir şifre rutin yaz (örneğin, PythonZEFLT:8) ve onu ele geçiren ciphertext'e karşı test edin.
- [FONT:0) Bir laboratuvar defterini tut – her araç versiyonunu kaydetmek, komut, dengeleme ve gözlem. Ters mühendislik teknik beceri hakkında olduğu kadar veri yönetimi hakkında çok şey.
- [FONT:0]Stay etik[[Dönetici: 1)) - sadece analiz etme izniniz olan mühendislik yazılımı.
Etik ve Yasal Uyarılar
Ters mühendislik şifreleme mekanizmaları karmaşık bir yasal alanda mevcuttur. Çoğu yargıda, Birleşik Devletlerde veya AB Copyright Yönergesinde (örneğin, yasal olarak güvenli limanlara giren bir proje üzerinde açık izin vermeniz) izin verilir.
Vaka Çalışması: Bir Miras Uygulamasından Özel XOR-Based Cipher'i Dönüştürmek
IDA Pro'daki bir değişiklik, XOR'un tüm dosyayı x64g'te bir mola ile şifrelediği bir işlev ortaya çıkar.The file starts with a single key byte with the entire file with this key, the configuration is full reading.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Kriptolu verileri tersine çevirerek mühendislik projelerinde farklı bir beceri setini talep eder: kriptografik algoritmaların bilgisi, statik ve dinamik analiz araçları ve sistematik bir yaklaşım.Relyatingcrypt data inverse Engineering project needs a different skills set: testing of kriptografik algoritmaları, the ters mühendis can reliable recovery using emulation, symbol execution, and fuzzing the goal of specific or obfuscatedcryptally, and then detecting keys at runtime, and then detectling data becomes a managed text from even hardized steps.