İçeriğe geç
parazade

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?
İçindekiler
  1. Tersine mühendislik nedir?
  2. Nasıl yapılır?
  3. Nelere dikkat etmeli?

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.

İlgili terimler

Adli Bilişim(Digital Forensics)Adli bilişim (digital forensics), bilgisayar, telefon, sunucu ve bulut hesapları gibi kaynaklardaki dijital delillerin bütünlüğü korunarak toplanması, incelenmesi ve hukuki ya da kurumsal süreçlerde kullanılabilir şekilde raporlanmasıdır.SandboxSandbox (kum havuzu), şüpheli dosya, bağlantı ya da programların asıl sistemden yalıtılmış, kontrollü bir ortamda çalıştırılıp davranışlarının gözlendiği ve zarar verirse bu zararın dışarı taşmadığı güvenlik mekanizmasıdır.Kötü Amaçlı Yazılım(Malware)Kötü amaçlı yazılım (malware), bir cihaza ya da ağa zarar vermek, veri çalmak, kullanıcıyı gözetlemek veya sistemi izinsiz kontrol etmek için tasarlanmış her türlü yazılımın genel adıdır.ExploitExploit, bir yazılımdaki, işletim sistemindeki ya da cihazdaki güvenlik açığını kullanarak saldırganın izinsiz erişim, kod çalıştırma veya yetki yükseltme gibi sonuçlar elde etmesini sağlayan kod ya da yöntemdir.Yazılım(Software)Yazılım, bir bilgisayarın ya da akıllı cihazın ne yapacağını adım adım tarif eden programların, verilerin ve talimatların bütünüdür. Donanım fiziksel parçaları, yazılım ise bu parçaları çalıştıran mantığı ifade eder.Birlikte Çalışabilirlik(Interoperability)Birlikte çalışabilirlik (interoperability), farklı blokzincirlerin birbirleriyle veri, mesaj ve varlık alışverişi yapabilmesidir. Köprüler ve zincirler arası iletişim protokolleriyle sağlanır; güvenlik riskleri yüksektir.