Tersine Mühendislik Nedir?
İngilizce: Reverse Engineering
Yayın: · Son güncelleme:
Tersine Mühendislik Nedir? Kısaca
Tersine mühendislik (reverse engineering), bir yazılımın, dosyanın ya da donanımın tasarım belgelerine ve kaynak koduna erişmeden, hazır ürünü inceleyerek nasıl çalıştığını anlamaya yönelik analiz yöntemidir.

Tersine mühendislik nedir?
Tersine mühendislik, bitmiş bir ürünü inceleyerek nasıl yapıldığını anlamaktır. Normal mühendislikte tasarımdan ürüne gidilir. Burada yön terstir: Elde yalnız çalışan program ya da cihaz vardır ve analist onun iç yapısını çözmeye çalışır.
Siber güvenlikte en çok zararlı yazılım analizinde kullanılır. Bir fidye yazılımının hangi dosyaları şifrelediği, nereye bağlandığı ve nasıl yayıldığı bu yöntemle anlaşılır.
Nasıl yapılır?
İki temel yaklaşım vardır. Statik analizde program çalıştırılmadan incelenir. Derlenmiş kod, okunabilir bir forma çevrilmeye çalışılır ve içindeki metinler, adresler ve fonksiyonlar incelenir.
Dinamik analizde ise program yalıtılmış ve kontrollü bir ortamda çalıştırılır. Hangi dosyaları açtığı, hangi adreslere bağlandığı ve sistemde ne değiştirdiği gözlenir. Bu ortam genellikle bir sandbox ya da sanal makinedir.
Örneğin bir kurumda e-posta ekiyle gelen şüpheli bir dosya bulunduğunda analist, dosyanın hangi sunucuya bağlandığını çıkarır. Bu adres hemen engelleme listesine eklenir ve diğer kurumlarla paylaşılır.
Nelere dikkat etmeli?
Tersine mühendisliğin hukuki boyutu vardır. Lisans sözleşmeleri ve fikrî mülkiyet mevzuatı, ticari yazılımların incelenmesine sınırlar getirebilir. Birlikte çalışabilirlik ya da güvenlik araştırması gibi amaçlar bazı durumlarda istisna sayılsa da somut durumda hukuki görüş almak gerekir.
Zararlı yazılım analizi mutlaka yalıtılmış bir ortamda yapılmalıdır. Aksi hâlde analiz edilen yazılım, analistin kendi ağına bulaşabilir. Delil inceleme tarafı için adli bilişim maddesine bakabilirsiniz.
Sıkça Sorulan Sorular
Tersine mühendislik yasal mı?
Amaca, ürünün lisans koşullarına ve ilgili mevzuata göre değişir. Güvenlik araştırması gibi meşru amaçlar olsa da somut bir durumda hukuki görüş almak doğru olur.
Tersine mühendislik için hangi bilgiler gerekir?
İşletim sistemi yapısı, Assembly gibi düşük seviyeli diller ve ağ protokolleri bilgisi temel gereksinimlerdir. Disassembler ve debugger gibi araçların kullanımı da öğrenilir.