Giriş: Cybersecurity'deki Ters Mühendislikin Temel Rolü

Ters mühendislik, bitmiş bir üründen mavi baskılar çıkarmak veya tasarlamak sürecidir. Yazılıma uygulandığında, ticari yazılımlardan gelen şüpheli binleri, orijinal kaynağa erişim olmadan analiz etmeyi ve yapısına erişmeyi içerir.

Bu genişletilmiş kılavuz, obfuscated kod kalıpları, ortak arka kapılı arşivler ve yasal düşüncelere sahip olmak için derin bir şekilde tasarım sağlar. Güvenlik araştırmacısı, bir penetrasyon testier veya DevSecOps mühendisi, bu becerileri ustalaştırma yeteneğinizi alttan veya tam zamanlı yazılımlardan koruma yeteneğinizi önemli ölçüde artırır.

Ters Mühendislik Anlamak: Core Concepts and Approaches

Decompilation ve İkili Analiz

Ters mühendislik, makine kodunu insan hazır formlara dönüştürmekle başlar.ETHFLT:0)Disassembly), gerçek CPU talimatlarının en doğru temsilini sağlarken, mimariye özgü çağrışımları ve talimat setleri hakkında daha az doğru bir şekilde yeniden yapılandırmaya çalışır.Decompilasyon, C veya C++ gibi daha yüksek seviyeli bir genelleme sağlar.

Gelişmiş ikili analiz platformları, örneğin, [[0)Ghidra[Dönetici tarafından geliştirilme) ve [[Dönetici:2) ProIDA Pro[Dönetici 3 ), etkileşimli decompilasyonla birlikte, çapraz-referencing ve grafikler görüşleriyle birlikte, bu araçlar sadece dinamik yürütme sırasında görünür hale gelen hataları tanımlamaya ve yeniden adlandırmaya izin verir.

Statik vs. Dinamik Analiz

[FONT=0]Static analizi[[Dönetici:0) İkili kodu ve veri bölümlerini çalıştırmadan analiz eder.Bu, açık kırmızı bayrakları tespit etmek için yararlıdır: alışılmadık ithalat (örneğin, opak predikates ve kontrol-flow sabit algılama gibi.

[FONT:0]Dynamic analizi[[DDynamic analysis[[DDynamicNT], kontrollü bir sandbox ortamında yazılımı uygulamak, analistlerin gerçek sistem çağrılarını gözlemlemelerine izin vermek, ağ bağlantılarını, dosya değiştirmelerini ve hafıza tahsislerini aranır.(D) ve davranışını belirli koşullara göre izlemek (örneğin, gelen ağ paketleri, sabit bir analizin varlığını doğrulayabilir.

Gizli İşlevsellik: Desenler ve Göstergeler

Unusual API Calls and System Interactions

Gizli işlevsellik genellikle işletim sistemi API'leri için beklenmedik çağrılar olarak ortaya çıkar. Örneğin, bir metin editörü gibi basit bir fayda, afrikatlı kullanım için gerekli olan görevleri yerine getirmemelidir.(Windows kayıt manipülasyonu), ) (işlem enjeksiyonu) veya [[Windows PE dosyaları için) veya [[eski Ninja[değiştir | kaynağı değiştir)

Linux ELF binerler, gizli işlevsellik, standart kütüphaneleri veya gizli modülleri atlatarak doğrudan doğruya taşıyabilir. benzer şekilde, [[ENFLT:8'nin kullanımı, beklenmedik bağlamda dinamik olarak yüklenen eklentiler veya gizli modüller gösterebilir.

Obfuscated Code and Encryption in Data Bölüms

Saldırıcılar nadiren kötü niyetli maaş yüklerini düz metin olarak kullanırlar.(ler) 0)obfuscation) kod segmentlerinin gerçek niyetini gizlemek için.

  • [[Dönetici:0) Şifreleme:[Dönetici:[Dönetici:0) Hassas URL'ler, komutlar veya IP adresleri sadece iş zamanında şifrelenmiş ve şifrelenmiş bir dizi çağrıda şifrelenmiş durumda.
  • [FONT:0) Kontrol-flow obfuscation: İkilinin kontrol akışı grafiği, her zaman aynı sonuca değer veren koşullarla kasıtlı olarak karmaşıktır (sağlıklı görünüyor) ve ölü kod ekler.
  • [FONT=0)Kom Sanallaştırma:[Dönetici:[Döneticileri değiştir] Bazı gelişmiş yazılımlar, geleneksel statik analizleri neredeyse işe yaramaz hale getirmek için özel sanal makineleri kullanır.FİLMİŞT:2).Unicorn Engine veya [[Döneticileri)[FLT:[FLT: 5 ).
  • [FONT:0) Şifrelenmiş veya sıkıştırılmış veri blokları: Büyük yüksek performanslı verilerin algleri veya [[DÜT:10) veya ) bölümleri genellikle ücret yükleri, konfigürasyon dosyaları veya ek ek ek ek ek ek kesintiler içerir. Entropy analizi araçları bu bölümleri hızla vurgulayabilir.

Analistler entropi hesaplamasını kullanmalıdır (örneğin, Ghidra'nın 03.D:0)Entropy[D:0) senaryo veya [[Dönetici:2)binwalk[DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD) şüpheli veri bölgeleri tespit etmek için herhangi bir blok muhtemelen şifreleme veya sıkıştırmayı gösterir.

Durumsal Execution ve Tesadüf Mekanizmaları

Gizli işlevsellik belirli bir koşul karşılanana kadar yurtta kalabilir. Ortak tetikleyiciler şunları içerir:

  • [FONT:0]Date/time koşulları:[Date/time koşulları:[DDate/time koşulları:[DDDate/time koşulları:[DDDDate:0] Kodu mevcut sistemi zaman kontrol eder ve sadece belirli bir ay sonra veya belirli bir ay boyunca etkinleştirir.
  • [FONT:0)Yönetici anahtarlar veya dosyalar: Belirli bir kayıt anahtarı, dosya veya çevre değişkeni varlığı için yazılım kontrolleri.Eğer mevcut değilse, arka kapı kodu atılır.
  • [[Dönemli alan adı:0)[Dönemli alan adı:[Dönetici 1] İkili bir alan çözüyor ve yalnızca belirli bir değeri (C2 bağlantı testi) ile karşılaşırsa devam ediyor.
  • [[Kategoriler:0) Kullanıcı girişi sihirli değerleri:[Dönetici:[Dönder:0) Kullanıcı belirli bir şifre veya anahtarkesin sırasına girdiğinde, gizli menüler veya debug modları.

Bu tetikleyicileri bulmak için, analistler karşılaştırma talimatları ([[Dönemli: 0: 9) Bu referans sabitleri veya zaman ile ilgili API'leri () ayarlamalarına izin verir.

Backdoors'ı tanımlamak: Tipler, Özellikler ve Analiz Teknikleri

Sertcoded Credentials and Authentication Bypass

En basit arka kapı türlerinden biri sert kodlanmış kimliklerin dahil edilmesidir - kullanıcı adı, şifreler veya kriptografik anahtarlar - bu tür yüksek erişim sağlar. Bunlar, ikiliye, özellikle de yakın kimlik doğrulama veya izin verilenler için tüm dize referansları yapıştırmalıdır. Örneğin, bir ağ hizmeti ikilisi girildiğinde, normal kimlik doğrulamayı atabilir ve idari kontrol sağlar. Analistler tüm dizeleri inceler için uyarıları inceler.

Araçlar benzer:0)[[Döncüler[[Dönler:)) Bir başlangıç noktası, ancak saldırganlar genellikle birden çok yerde dizeleri bölünmüş veya basit bir XOR anahtarlarını kodlayabilirler. Daha sağlam yaklaşımlar veri akışını zor kodlanmış buffers karşılaştırma işlevlerine içerir. Örneğin, bir karakter-by-kamper karşılaştırma döngüsü, bir hex-encoded depolama değerine karşı girişini karşılaştıran klasik bir işarettir.

İletişim ve Komut & Kontrol (C2)

Geri kapılar genellikle saldırgan kontrollü sunuculara komutlar veya eski filtre verileri almak için bağlantı kurarlar. Bu iletişim genellikle meşru görünümlü protokolleri (HTTP, HTTPS, DNS) veya standart olmayan limanlarda özel protokolleri kullanır: Tespit aramayı içerir:

  • [FONT=0) {0}[0|0|0|0|0|0|0|0|0|0|0|0|x|x|x|x|))))))))|[0|0|0||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  • [FONT=0)DNS sorguları:[DNST:1] Bazı arka kapılar DNS isteklerinde kodlanmış veriler, özellikle de [[DNS tüneli) kullanılarak, olağanüstü domain isimlerine bakınız.
  • [FONT=0]HTTP GET/POST talepleri bilinmeyen alanlara:[Dönetici 1] İkili, bir kodlanmış bir beacon içeren bir kullanıcı tarafından şifrelenen bir dize veya kurabiye oluşturabilir.
  • [[DÜDÜ:0)Raw soket işlemleri:[DÜT:1) IP paketlerini manuel olarak inşa eden Kod, yüksek seviyeli ağ kütüphanelerini atlar.

Dinamik analiz sırasında, ağ simülasyon araçları 03.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D

Süreç Enjeksiyonu ve Persistence Mechanisms

Başka bir sürecin (işlem enjeksiyonu) ele alınması gereken bir arka kapı özellikle de çalmaya devam etmektedir. Ortak enjeksiyon teknikleri, [[FONTD:0)ForRemoteThread), [[Üyetim:2)SetWindowsHookEx[DDDÖrnek[DÖrnek)[DLLStrefillik|DLL) için aramalar ve geçişler için kontrol etmelidir.

Kalıcı bağlantıyı yer imlerinize ekleyin.Onlar planlanan görevleri, Windows hizmetleri, kayıt anahtarlarını, Linux'taki ajanları veya kayıt değiştirme API'leri (MailT:20) veya başlangıç yönetmenleri dosya oluşturmanın kritik olduğunu içerir.Autoruns) veya Linux'ta reklam yapan ajanların:2LaunchControl))[Döneticileri için kullanılabilir.[Döneticileri değiştir)

Obfus, Sanal veya Özel Yorumcularda Geri Kapılı Mantık

Gelişmiş arka kapı, örneğin, kullanılanlar gibi:0)XcodeGhost[Döneticileri 1 ), bu tür durumlarda, ikili yükleri, dosyada başka yerlerde şifrelenen küçük bir tercüman veya çalıştırılır.[Döneticiler, sabitler, sabitler, sabitler ve özel tercümanlar yalnızca temel mantığını gizlemek için karmaşık anti-makullar kullanır.

Bu, güvenlik araştırmacıları genellikle hafızayı terk ederek bir araya getirirler. Breakpoints, şifreli rutinin ardından belirlenir ve şifreli hafıza bölgesi statik analiz için terk edilir.Unicorn Engine).

In-Depth Analysis için araç ve teknikler

Decompilers ve

  • [FONT:0)Ghidra:[Dönetici:0] [Dönder: Cenâb-ı Haklı, açık kaynak, otomatik mühendislik paketini NSA'dan sunar. x86, ARM, MIPS ve diğerleri için sağlam bir dekompiler sunar.
  • [FONT:0]IDA Pro: [Dönetici analizi için endüstri standardı. Özellikle kütüphane işlevlerini tanımlamak ve güçlü IDC/IDAPython senaryosu için kullanışlıdır. Ancak yüksek maliyeti Ghidra'yı daha erişilebilir hale getirir.
  • [FONT=0)Binary Ninja:[Dönetici:[Dönetici:0) Hem statik hem de ışık dinamik analizi için mükemmel.

Dinamik Analiz ve Debugging

  • [FONT=0}x64dbg:[Dönetici:[Dönetici:0)[0]x64dbg:[Döntgen:[Döncü:[Döncüler için Open-source debugger for Windows., koşullu breakpoints ve ScyllaHide for anti-debugging için.
  • [FONT:0)GDB / LLDB: Standart debuggers for Linux and Mac. genellikle [[Üyetim:2|pwndbg) veya |D|D|Döneticileri için standart bir şekilde birleştirilir.
  • [FONT:0]Valgrind / Dr. Memory: hafıza hatası tespiti ve profilleme için, bu bozuk hafıza yapıları ortaya çıkarabilir.
  • [FONT:0)API Monitor:[Dönetici:[Dönetici:0) Bir süreç tarafından yapılan tüm API çağrılarını, modül veya kategori tarafından filtrelemek için kullanışlıdır. belirli sistem işlevlerine bağlı gizli davranışı tanımlamak için kullanışlı.

Network Watch and Sandboxing

  • [FONT:0]INetSim:[[Dönetici:[Dönetici: 1 ) Simulates ortak ağ hizmetleri (HTTP, DNS, SMTP) yakalamak ve iletişim girişimlerine yanıt vermek için.
  • [FONT=0)Cuckoo Sandbox:[Dönetici:[Dönetici:0)[Dönder:0)[Dönder:[Dönder:0)Cuckoo Sandbox:[Dönetici:[Dönetici:[Döneticileri) Otomatik yazılım analiz platformu davranışsal raporlama ile dinamik analizleri çalıştırabilecektir. Ancak, birçok arka kapı sanal ortamlar tespit eder; bu nedenle manuel analiz hala gereklidir.
  • [FONT:0)Wireshark / tcpdump: [Dönetici paketi denetim için]. şüpheli bir alana tek bir DNS sorgusu, arka kapı için ilk ipucu olabilir.

Entropy, String ve Yapısal Analiz Araçları

  • [FONT:0)PEStudio:[[Dönetici:0) Windows PE dosya analizi; kara listelenmiş ithalat, yüksek hacimli bölümler ve garip bölüm isimleri gibi şüpheli göstergeler.
  • [FONT:0)Binwalk:[Dönetici:[Döneticileri, sıkıştırılmış arşivler ve bilinen imzalar için herhangi bir ikili blob tarama için).
  • [FONT:0)YARA: [DÜDÜDÜDÜDÜDÜDÜ:0)YARA: [DÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜ: 0,6.Bölümler, arka kapıdaki eşsiz dizelere veya kod parçalarına dayanan YARA kurallarının hızlı bir şekilde taramasına yardımcı olabilir.
  • [FONT=0]Mandiant'ın Red Perde: Entropi ve şüpheli diziler için PE dosyaları analiz eder.

Hidden Fonksiyonel Fonksiyonellik için Ters Mühendislik Yazılımlarında Zorluklar

Anti-Reverse Engineering Techniques

Modern yazılım yazarları hamper analizi için bir dizi hile kullanıyor:

  • [FONT:0]Anti-debugging:[Dönem:[Dönem: {0)[[değiştir | kaynağı değiştir], [[Dönemliler, s.
  • [FONT:0]Anti-VM:[Dönetici:[Dönetici: 0 3) Ortak sandbox eserleri için kontrol edin: [[HEDUMLAR, belirli MAC adresi ön ekleri veya düşük CPU sayısı.
  • [[Dönetici:0)Timing checks:[Dönetici:[Dönetici:0)[Döneticileri değiştirildikten sonra sadece belirli sayıda iş saati etkinleştirebilir veya belirli kullanıcı etkileşimlerine otomatik analiz gerektirir.
  • [FONT:0)Pazarlanmış ve şifreli binerler: Kapalıların sabitlenmesi veya şifreli bir paketle şifrelenir (UPX, Themida, VM protected). Gerçek kod sadece paketsiz ikilinin sabit analizi anlamlı bir şey gösterir.

Buları atlamak için, analistlerin statik paketleme (örneğin, 03.D.D.) ile dinamik olmayan PE'yi yeniden yükleme (örneğin, [[Dönetici giriş noktası) bir araya getirmeleri gerekir. Bazı analistler hafıza kesicileri )Scylla[FLT: 5)

Yasal ve Etik Bakışlar

Analiz etmek için kendi başına veya açık bir izniniz olmayan mühendislik yazılımı, izin verilen bir denetim altında veya izin verilen lisans programları ile ilgili olarak, yasal sınırlar dahilinde çalışmanız gerekir: sadece kendi kodunızla ilgili yazılım analiz etmek, bu makaleniz için yetkili bir denetim altında elde edilen biner ve yasal tavsiyelerde bulunmanız için yasal tavsiyelerde bulunmaksızın yasal tavsiyelerinizi yerine getirmek akıllıcadır.

Gerçek Dünya Vaka Çalışmaları: Notable Backdoors'tan dersler

SolarWinds Orion (2020)

GüneşWinds tedarik zinciri saldırı, geri dönüş enjeksiyonu (dubbedurD:0) C2 için kullanılan domain nesil algoritmaları (DGA) ve özel bir XOR tabanlı şifreleme ile kodlama tekniğinde saklı bulundu: YangınEye ve diğer firmalar tarafından desteklenen iki hafta boyunca yurtsever olarak, C2 için IoC (Indic) bu iki sinyalin altında yatan ve özellikle dere dayalı bir kriptolama sistemi ile kontrol edilen trafik.

XcodeGhost (2015)

Çinli saldırganlar Xcode geliştirme ortamıyla dolu, zararlı kodları enfekte sürümle derlenen iOS uygulamalarına enjekte ettiler. Kötü niyetli mantık, cihaz bilgilerini kullanarak C2 sunucularına göndererek, güvenilir bir gelişim aracının normalde kullanılmadığını gösteriyor.

Sistematik Ters Mühendislik Çalışma Akışı için En İyi Uygulamalar

  1. [FONT:0]Bir temelin tanımı:[Dönetici:0) Yazılımın meşru işlevselliğinin ne olması gerektiğini anlamak, mevcut tüm beklenen API çağrılarını karşılaştırmak ve not etmek.
  2. [FONT:0)Initial statik triage:[Dönetici: Run PEStudio, paketlenmiş veya yüksek performanslı bölümler için kontrol, ithalat ve ihracat inceler ve tüm okunabilir dizeleri çıkarın.
  3. [[Dönemli statik analiz: [Dönemli: 1) Ghidra veya IDA'daki ikiliyi yükler. Giriş puanlarını, yapılı / imha fonksiyonlarını ve kritik kod yollarını tanımlayın. şüpheli çapraz-referanslara bakın. Onları anladığınız gibi işlevleriz.
  4. [FONT=0]Dynamic analysis in sandbox:) Güvenli bir izole bir ortam (örneğin, geri dönüş kapasitesi olan bir VM) API monitörü ve ağ monitörü kullanın.Eğer mümkünse tetikleyiciler yapın.
  5. [FONT=0)Targeted debugging:[Dönetici:[Dönetici: 0) Kombine veya koşullu şubelere ilişkin bazı noktaların göz önünde bulundurması.Inpass anti-debugging checks using simple yama (e.g. NOPing out aTELFLT:28) Öğretimi.
  6. [FONT:0)Belirli bulgular:[Dönemli:[Dönemli) kodlar, çağrı grafikleri ve IOCs. Bu, olay yanıt takımları ve yasal işlemler için iletişim için önemlidir.

Sonuç: Ters Mühendislikin Indispensable Skill of Ters Engineering

Analyating wrong design to detect hidden functionality and backdoors is a core yarışın modern siber siber güvenlikte bir kombinasyonudur. Tedarik zinciri saldırıları daha sofistike ve rakipleri gizleyerek, montaj ve orta gösterimi seviyesindeki binleri bozma yeteneği, güvenlik profesyonelleri, statik ve dinamik analizlerin bir kombinasyonunu gerektirir, sağlam bir araçta, kalıcı bir şekilde, hedef yazılımın ve saldırgan mekanizmaların derin bir anlayışını ve saldırganın zihniyetini sistematik olarak uygulayın.Bu kılavuzda belirtilen ilkeleri ve tekniklerini uygulayarak, güvenlik profesyonelleri kötü niyetli bir mantık ortaya çıkarabilirler.

Daha fazla okuma için, [[DÜDÜSÜSÜSÜSÜŞÜ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ÜŞÜ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ÜŞÜ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ÜŞ