5 Eylül 2010 Pazar
Sitemize Hoşgeldiniz
Mail Güvenliği
KeyLogger & Trojan Security :
Keylogger ve Trojan lar genellikle kullanıcılara dosya biçiminde server’ı yedirip pcsine RAT ile bağlanma ya da pc deki tüm passlar(şifreler), konuşmalar,sistem bilgileri vs. çekmeye dayanır.
Bu Tür Zararlı Programlardan Korunmanın en önemli Yolları :
A1) Güvenlik Duvarı (Ateş Duvarı) Kullanıp pcye hacker girişini engellemek.Windowsun kendi firewallı etkili olmamakta birlikte çabuk aşılacağından Tavsiyem Combo gibi Firewall yada Kaspersky Anti-Hacker gibi programlar kullanmanızdır.
A2) Antivirus Yazımı Kullanıp güncel TutmanızAldığınız dosyalarda trojan,Keylogger gibi casusları bulmanızda ve silmenizde çok önemli bir yer tutmaktadır.
Antivirus için önerim ise Avira Antivir +, Bit Defender gibi yazılımlardır
A3) 1 ve 2 nin birleşimi her zaman daha önemlidir.Ya trojanımız tanınmaz işte bu sefer devreye İnternet Security programalrı girecektir.Güvenlik duvarıda dahil Sayfa yı tempe indirmeden tarama gibi bir çok özelliklere sahiptir.Özellikle Önereceğim Norton 2009 İnternet security ve Kaspersky 2009 internet Security programları Bir dosyadaki şüpheli hareketleri görürse bloglama veri transferlerini inceleme gibi özellikleri ile sezgisel olarak trojan olup olmadığını anlayarak size uyarmaktadır.Bu yüzden özellikle bu iki programı denemeniz lazım.
A4) Şüpheli Dosyayı Analize Gönrdemek.Çoğu antivirus programlarında Lab özelliği vardır yani inceleme için laboratuıara gönderebilirsiniz.Size gelen şüpheli bir dosya varsa bunu açmadan Lab a ya da virustotal.com gibi sitelere göndererek tüm antiviruslara test amaçlı sunup dosyanın güvenirliğini anlayabilirsiniz. http://www.virustotal.com/vtsetup.exe bu programıda indirerek masaüstündeki bir dosyaya sağ tıkla gönderden virustotalı seçerek orada incelemeye kısayoldan gönderebilirsiniz.
A5) AntiKeylogger Programları Yüklemek.Anti keylogger yazılımları dosyanın trojan olma ihtimalini daha doğrusu nerelere erişim yapmaya çalıştığını farkederek size uyarılarda bulunur.Tavsiye edeceğim bir Türk yazılım olan Zemana AntiKeylogger programıdır.
A6) Sosyal Mühendislikten Korunmak.bunda asıl amaç dikkatli olmaktır.Msnden yollanan her dosyayı almayın.Mail olarak gelen resim formatıda dahil hiç bir dosyayı emin olmadan açmayın.Sanaldaki hiç bir kişiye tam olarak güvenmeyin.Ve biraz ayık olmakta fayda var.
A7) Dosyaları Sanal Pc de ya da Windows ortamından farklı bir işletim sistemi kullanarak açın.Uzman kişiler aynı makinaya çift işletim sistemi kurabilirler sizde bunu yaparsanız yada Virtual Pc 2007 gibi Sanal bir bilgisayar oluşturup şüpheli dosyaları orada açarsanız.Ne olduğunu anlayıp ona göre işlem yapabilirsiniz.http://linkscanner.explabs.com/linkscanner/ gibi online scanner adreslerinde taratarak sitenin güvenirliğini anlayabilirsiniz.
B3) Özellikle İnternet Explorer dan farklı Tarayıcı kullanmanızı öneririm.Bu demek Mozilla ya da opera kullanın demek değil.Daha alternatif olan Safari,Flock,Songbird gibi herkesin pek rağbet etmediği programları kullanın bunlarada açık olabilir fakat önemli olan Attackerın sizi sık kullanan bir tarayıcı kullandığınızı düşünerek ona göre sistem hazırlamasıdır.Yani Ters köşeye yatırın saldırganı.Ama siz illa ie vs kullanacağım diyorsanız İe8 kullanın,Mozillanın son sürümü mevcut beta sürümü 3.1 Beta 2 onun gibi güncel sürümlerini kullanın.
B4) SM den korunma “A6″ da belirtmiştik güvenmediğiniz kişilerden verilen sitelere girmeyin.Güvensiz olarak belirlenen sitelere hiç girmeyin.Gireceksenizde farklı bir tarayıcıda girin
B5) “A7″ deki Sanal pcde verilen linklere girmeniz en mantıklısıdır.O yüzden Sanal Pc nin önemini anlayınız.Phishing Security :
HtmL Logger Security :
Html Logger tarayıcılardaki açıkları kullanarak Site linkini hedefe tıklattırıp pc sine trojanı download ettirmeyi çalışan bir yöntemdir.Html Loggerlar İnternet Tarayıcılarına özgüdür ve kodları farklıdır.
Html Loggerlardan Korunma Yöntemleri ise :
B1) “A3″ de Belirttiğim gibi İnternet security programları bunda en önemli koruyucu etendir.Normal bir Antivirus programı dosyayı tempe indirdikten sorna taradığı için direkt serverı pcye indirebilir bu yüzden etkili değildir.İnternet security programları site üzerinde tarama yaparak bunu önler.
B2) Verilen linkleri
Xss & Xsrf Security :
Xss Size Site üzerinden veya mail,msn gibi konuşma penceresinden yolalnıp sizin cookienizi çalmaya yarayan ve bu cookie ile sizin hesaptan giriş yapmaya yarayan bir yöntemdir.Xsrf de bu türe yakındır istem dışı komut yollatmaya çalışır password değişikliği gibi.Her ne kadar Hotmail Xss de cookie şifrelide gelse bu elbet bir gün çözülecek o yüzden her linke güvenmeyin.
Korunma Yöntemleri ise :
C1) Size verilen linklere tıklamayın kopyalayıp tarayıcıya elinizle yapıştırın.Bu şekilde boş bir cookie çekeceklerdir.
C2) Microsoft Anti Xss, CW xss Security gibi programları kurarak.Xss durumunda haberdar edilip engellenmesi.
C3) Güncel Tarayıcılar kullanmak.Özellikle İE8 de microsoft anti xss scurity programı hazır halde yüklenip tarayıcıya entegre edilmiştir.Bu şekilde korunabilirsiniz.
C4) Firefox kullanıp No script Eklentisini kurup Aktif hale getirmek,işte en önemli xss korunma yöntemlerinden birisidir.Xss yi pasif hale getirir.
C5) Bilinçli olup güncel Haber sitelerinden Xss ve diğer tehditler karşısında bilgiler almak sizi hazır olda bekletir.
C6) SM den korunmak.Tanımadığınız kişilerden link alıp direkt girmeyin.Ayrıca bir linkte hem xss hem Html logger yapıp çifte vuruş yapmak isteyen olabilir o yüzden HTML Logger korunma yönteminide unutmayınız.
Trojan DownLoader Security :
Trojan Downloaderlar bir programa bazı programlar sayesinde eklentiler sayesinde uzaktan ftpsindeki server.exe yi çağırması mantığına dayalıdır.
Bunlardan korunmak içinse :
D1) “A1,A2,A3,A4,A5,A6,A7″ bunlarda dahil her türden tedbirinizi almalısınız.
D2) Ağı izlemek.Programın çalıştırdıktan sonra ağda bir veri aktarımı varsa buna dikkat ederek ne olduğunu anlayabilirsiniz bu tür durumda direkt ağ bağlantısını kesiniz.
Phishing genellikle kullanıcıların passlarını almak için kullanılan web Kontrollü fakelerdir.Bir düzenekle siz oraya verielri girince şifreler ftpsinde log.txt ye düşmektedir.
Korunma yöntemlerine geçersek :
E1) “A3″ deki gibi İnternet Security programalrında özellikle Norton ve Kis de AntiPhishing özelliği vardır buda Sahteciliği önler.Size uyarı olarak bu site sahtekardır mesajı verir.
E2) Site Adresinin Doğruluğunu kontrol ediniz. Mesela hotmail.com.tr.gg gibi bir adresten geliyorsa dikkate almayınız. Ayrıca bazı link gizleme yanıltmaları ile linki gizlerler içeriğe bakıp yada tarayıcıdaki adrese bakıp güvenirliğini anlayabilirsiniz.
E3) SM den korunmak Güvenmediğiniz sitelere girmeyin,Linke tıklamayın,Her yerde her sitede aynı şifreyi kullanmayın.
Fake Security :
Fake Türkiyede okadar meşhur olduki çoluk çocuk herkes bir sitenin fakesini yapıp şifre almaya bakıyor.Fakede amaç sahte bir site görünümü izlenimi verip şifreleri mail aracılığı ile Attackera göndermeye amaçlar.
Fakeden korunmak için :
F1) Phishingle aynı mantık olacağından oradaki “E1,E2,E3″ e dikkat edin.
Basittir ama bir anlık dalgınlık sizi yanıltabilir.
F2) Sitenin kaynak kodunu görünteleyip kodları inceleyin gerekirse “@” i arayıp kayıtlı bir mail adresi varmı bakınız.
Msn Cracker – Brute Force Security :
Brute Force yöntemi Şifrenizi deneme yanılma ile tahmin edecek bir programın çalıştırılmasıdır.Bunda amaç tek tek şifreleri dener olumluysa şifreyi gösterir.
Korunmak için :
G1) Şifreleriniz oldukça güçlü olmalıdır.2. ve 3. karakterler mutlaka şifrenizde olmalıdır(Örneğin : #!?\\\\\\\\\\\\\\\\-_).
G2) Belirli Aralıklarla şifrenizi değiştirin.Bu şekilde program sonuca yaklaşsada pek netici alamaz.
CLickJacking Security :
Clickjacking bir nevi başka bir içeriğin bulunması ama size makyajla başka birşey göstermesi o alana şifrenizi yazarsanız Attackera verielriniz gidecektir.Bir nevi site üzerine resim yerleştirme gibi birşey diyebiliriz basit anlamda.
Networking – Port Security :
Bilgisayarınızda Bazı portlar olsun bazı programalrın açtığı portlar ve güvenlik açıkları Attackerların pcnize oradanda mail şifrelerinize sızmak için olanak sağlamaktadır.
Korunma Yöntemleri :
I1) Bilgisayarınızı Port Scanner programları ile tarayıp açık portlar varsa kapatınız.Diğer maddelerde belirttiğim gibi Güvenlik Duvarı ve İnternet security programalrı kullanın.Girişleri engeller.
I2) Özellikle Netbios Açığını kapatmak (138,138,139) gibi portları kapatmak pcnize sızmanızı engeller.Limewire gibi programalrı kullanırkende ayarları dikkatli yapmanız lazım.
Kişisel Güvenlik :
Buraya kadar olan her maddeyi öğrenip uyguladıktan sonrada gerisi bizim zekamıza kalacak birşey.Bilgisayarınızda msn şifresini hatırla demeniz Stealer gibi programların coşmasına sebep olacak yani şifrenizi alacaklardır.Ya da pcnize başka birisinin oturmasına imkan vermeniz sizin açınızdan pek yararlı olmayacaktır.Güvenlik sorularınız bilinecek türden ve basit olmamalıdır.Şifrelerinizde aynı şekilde zorlaştırılmış olmalı.Kişisel bilgilerinizi kimseye vermemelisiniz.Arada sırada Hijackthis uygulamalısınız gözünüze çarpan programcık vs varmı.Anti Spy programalrı ile belli aralıklarlada sistemi taratmalısınız.
Tersine Mühendislik Videoları
#Packer : Upx
#Kullanılan tooller : krzydbg ,peid , upx shell
#Program download link : indirBR
#Tool linkleri : krzydbg, peid, upx shell
#Video link : indir
--------------------------------------------------------------------
#Programın Adı : SWF Decompiler Premium
#Packer : yok
#Kullanılan tooller : krzydbg ,peid , Dede
#Program download link : indir
#Tool linkleri : krzydbg, peid, dede
#Video link : indir
--------------------------------------------------------------------
#Programın Adı : Real RM Converter
#Packer : ASPack 2.12 -> Alexey Solodovnikov
#Kullanılan tooller : krzydbg ,peid, AspackDie-1.41
#Program download link : indir
#Tool linkleri : krzydbg, peid, AspackDie-1.41
#Video link : indir
#Programın Adı : Hide Files and Folders
#Packer : yok
#Kullanılan tooller : krzydbg ,peid
#Program download link : indir
#Tool linkleri : krzydbg, peid
#Video link : indir
--------------------------------------------------------------------
#Programın Adı : Video Capture Master
#Packer : yok
#Kullanılan tooller : krzydbg ,peid, dede
#Program download link : indir
#Tool linkleri : krzydbg, peid, dede
#Video link : indir
Web Güvenliği
Hayatımız açısından büyük önem taşıyan sanal alemde, web siteleri büyük önem taşımaktadır. Çeşitli sosyal ağ sitelerinde çoğu kişisel bilgilerimizi yayınlarız. Ancak kişisel bilgilerimiz veya sahip olduğumuz siteler tehlikede olabilir !
Web güvenlik açıkları sayesinde şifrelerimiz veya çeşitli kişisel bilgilerimiz çalınabilir. Peki nedir web güvenlik açıkları ?
# kısaca özetlemek gerekirse, webmasterler tarafından yapılan çeşitli kod kod hatalarından doğan açıklara denir.
Evrensel olarak tanımlanan ve yaygın olan açık isimleri şu şekildedir
- Remote File Inclusion
- Sql Injection
- Xss
- XSRF
- Sosyal Mühendislik
1-)Remote File Inclusion
Remote File Inclusion(RFI) Uzaktan Dosya dahil olması anlamına gelmektedir.
Remote File Inclusion bir saldırı tekniği, bilgisayardan İnternet web sitelerine saldırı için kullanılır.
Uzaktan dosya katılım(RFI) saldırıları kötü niyetli kişilerin kurban olarak gördüğü web sitesinde kendi PHP kod çalıştırmasına izin verir.Böylece uzaktan dosya dahil olur.
php tabanlı sitelerde Remote file inclusion 4 tane kodun sayesiyle bulunur. Bunlar şu kodlardır,
include,require,include_once,require_once bu kodlar ile tanımlanman değişkenler sayesinde sitenize uzaktan dosya eklenerek zarar verilebilir
2-)Sql Injection
SQL injection saldırganların veritabanından bilgileri almak için kullandığı bir yöntemdir.Bu bilgiler arasında çeşitli şeyler yer alabilir.Ancak saldırganın işine yarıyacak olan kullanıcı şifreleri olduğu için buna yönelir, yada otomatik olarak admin olarak giriş yapmaya çalışır.Bu yöntemleri ayrı ayrı açıklayacağım.SQL injectionda arka planda olağan şekilde çalışan veritabanına SQL cümlecikleri yolluyarak saldırgan istediğini yaptırmaya çalışır.Dinamik içeriğin sunulduğu login, haber, arama, destek sayfaları gibi birimi (sayfası) bulunan siteler SQL injectiona açık konumdadır.
“SELECT * FROM members” daha önceden bildiğimiz üzere members adlı tablonun kolonlarını ve değerlerini döndürecektir.Ancak bu basit kod parçasına meta karakter eklersek bu kod parçası sql injectiona neden olabilir.Peki meta karakter nedir?Meta karakter programlama dili için özel anlam ifade eden karakterlerdendir.Programlama diller bu karakterlerden sonra gelen ifadeyi normalden farklı şekilde işleyecektir.SQL’de bu karakterler ” ‘ ” ve ” ; ” karakterleridir.SQL tek tırnak arasında string bekliyecektir.Noktalı virgül ise komutun bittiğini belirtir.SQL injection çeşitli yerlerde bulunabilir.Bunu yukarıda belirttik.Ama başlıca 2 çeşit diyebiliriz.Bunlar login sayfasındaki SQL injection açıkları ve “id=” gibi çeşitli değer almayı bekliyen sayfalardır.
3-) Xss
XSS ise kısaca; sitede HTML ve JavaScript kodları ekleyerek saldırı yapmaya olanak sağlar.Yani XSS script açıklarıdır.Bu kodlar yardımıyla dolaylı yoldan cookielere ulaşarak giriş yapma imkanı buluruz.
Örnek olarak; Sizin kullanıcı adı ve şifrenizi cookie kodlarını kullanarak kullanıcı adı ve şifre yazmadan siteye sizmişsiniz gibi gözükerek cookie koduyla giriş yapılmasıdır.
XSS Bulma ve Site(de) Arama
XSS açıkları çok yaygın olarak bulunur.Daha çok sitelerde arıyacağınız yerler post ve get methodlarının olduğu sayfalarda, arama bölümlerinde, haber modüllerinde,shutboxlarda,yorumlarda,mesajlarda vb. yerlerde bulunur.
4-)XSRF – CSRF (Cross-Site Request Forgery)
XSRF – CSRF günümüzün en yaygın ve en kullanışlı Web App. Security açığıdır.XSRF- CSRF İçinde XSS Bulunduran ve XSS alanında görülen bir güvenlik açığıdır. Kullanıcı parametresi kullanarak güven sağlamış gibi tehlike arz etmektedir.Bu uygulama ile “Banka Şifreleri, Para transfer uygulamaları,Mail Şifreleri …” gibi bir çok legal kullanımlar tehlike altındadır.
XSRF kullanım saldırganları kullanıcının kayıtlı bilgilerini kendi ellerindeki bir istemci tarafından kullanıcıya tıklattırarak değiştirebilirler.Bu durumda kullanıcı Online yani giriş yapmış olmalıdır.XSS kullanıcı bilgilerini kendi tarafına javascript kodlarıyla çekmek amaçlıdır fakat XSRF kullanıcının bilgileri kendi tarafından değiştirmek amaçlıdır.Gönderilen tek bir link ile bunu sağlamak mümkündür.
XSRF Exploiting:
XSRF ile saldırı yapabilmek için saldırganın yardımcı bir sistem kullanması gerekmektedir.Bu yardımcı sistem kullanılan ve bilgilerin alınması için gerekli Web sayfası olabilir.Saldırgan web sayfasındaki XSRF açığı oluşturan alanı kendine göre düzenleyip size farklı bir link ile sunabilir bilgilerinizi değiştirip kendi giriş yapabilir.
site.com/password.php
Kullanıcı üstteki linkte giriş yaptığı alanda şifrelerini değiştirebilir olsun.
site.com/password.php?pass=helal
Şifre değişiminden sonra linkteki gibi bir URL uygulaması görüntüleniyor.
Böyle bir uygulama içerisinde Post ve Get Metotları kullanarak kullanıcının şifreleri sadece bir link ile değiştirilebilir.
Sayfa içerisindeki kodlamaya göre böyle bir kodlamayı HTML yaparak veya içerisinde yolladığınız bir linkte saklayarak kurbana yedirmeniz doğrultusunda şifre değişecektir.XSRF uygulamaları sadece kodlama ile değil URL üzerinde de etkilemektedir.
XSRF Korunma Yöntemleri:
· GET Metot’u yerine POST Metot’u kullanabilirsiniz.
· Kullanıcı Parametresi veya Özel Bir sunucu isteyerek engelleyebilirsiniz.
· İstemci yönlendirmesi kullanabilirsiniz
5-)Sosyal Mühendislik
Sosyal Mühendislik ;kişi kurum ve çevrelerin birbirleri içersinde , bir döngü oluşturup süreklilik kazanması şeklinde kısaca tanımlayabiliriz.Sosyal Mühendis’in kapsayacağı alan çok geniş ve beyin sınırlarını zorlayacak noktadadır.Sosyal Mühendis olabilmek için ilk önce temel prensip kişinin sosyal biri olmasıdır.Kişinin sosyal olmasıda eğitimden geçer.Eğitimin amacı kişiyi kendi yetenekleri çerçevesinde yetiştirip ona toplumda var olma , söz hakkı verme , sosyalleşme , kendini daha da geliştirme vs imkanlar sunar.s
Sosyal Mühendislik ‘te kişi ve kurumların imaji düzgün olmadır.Çünkü imajın tanımını yapacak olursak ; kişi ve kurumların çevresiyle olan ilişkilerine imaj adı verilir.İmaj sahibi olmak için eğitim çok önemlidir.Eğitim olmadan sosyal imajın oluşması çok zordur.Eğitimin verdiği bu önemli özellik 3’e ayrılır.Kişisel imaj , istenilen imaj ,algılanan imaj .Kişisel imaj kişinin kendisine nasıl görünmek istediğidir.Algılanan imaj ;kişinin karşısındaki insana nasıl görünmek istediğidir.İstenilen imaj ise kişinin karşısındaki insan tarıfından nasıl görünmek istediğidir.Örneğin iş görüşmesine gidecek bir insanın kişisel imaji yerinde olmalı.Burda Sosyal Mühendislik ve eğitim dediğimiz kavram başlıyor.Örnekte belirttiğim gibi kişide imaj oluşumu eğitim ,kişinin karşısındaki iletişimi ise sosyal mühendisliktir.Örneğimizi açacak olursak kişi iş görüşmesine gitti ve görüşme odasına girdi.Kişinin bu zaman içersinde konuşma anlatma ve dinleme becerileri yerli yerinde olmalıdır.Kişi kendisinde emin bir tavırla konuşmalı ve kendisine güvenmelidir.İlk imaj oluşumu 25-30 sn içerinde gerçekleşir.Oluşan ilk imajı değiştirmek oldukça zordur.Bu nedenle kişinin ilk görsel imajı çok önemlidir.İmaj oluşumu ilk okul çağlarında kişinin öğretmeninden aldığı tavsiye jest ve mimiklerden,okuduğu kitaplardan,çizdiği resimlerden alır.Bu nedenle eğitim çok önemlidir.Eğitimin kişiye kattığı ve sosyal mühendislikte öne çıkan en önemli diğer özellikler ise konuşma ve dinleme becerisidir.Kişinin iyi bir konuşma yapabilmesi için;kişinin kafasında 25-30 sn’lik bir basamak konuşması hazır olmalı.Konuşacağu kelimeleri bir basamak zinciri şeklinde sıraya koymalı,kişiyle göz teması kurmalı,konuştuğu kadar dinlemesini bilmeli.argo ve asalak kelimelerden uzak durmalı,kısa ve öz konuşup laf kalabalığından uzak durmalıdır.Etkin dinleme yapabilmek için;kişi beynini boşaltmalı ve rahatlamalı,konuşmacının ses tonu ve kıyafetine aşırı dikkat etmemeli,not almasını bilmeli ,kişinin jest ve mimimklerine dikkat etmeli,konuşulanları aşırı analiz etmemeli,konuşma sırasında kişinin fikirleriyle ters düşerse aşırı tepki gösterip kişinin konuşmasını bölmemelidir.Bu aşamaların hepsi iyi bir eğitimle gercekleşir.Kurumların uygulayacağı sosyal mühendislik çok önemlidir.Örneğin kurumun danışma servisi ,sekreteri,temizlikçisi vs.. kurumun imajını yansıtır.Danışma servisinde olan kişinin düzgün konuşma yapabilmesi .düzgün kıyafeti ve sekreterin davranış biçimi bunların hepsi kurumun ve yöneticinin imajını oluşturur.Yöneticinin makam odası ,üye olduğu dernekler,yaptığı sporlar, tamamen karşısındaki insanlar hakkında imajını oluşturur.Sosyal sorumluluk projelerinde yer almak katkıda bulunmak kurumun tamamen sosyal mühendislik uygulamasıdır.Bunların hepsi eiğitimin temelinden geçer.Eğitim olmadan bu kavramların oluşmasına olnaka yoktur.Örneğin iş görüşmesine gelecek şahısın konuşma ve etkin bir dinleme becerisine sahip olmaması özgüven eksikliği kişinin eğitimiyle alakalıdır.Tabiki eğitim olmayınca sosylam mühendis olma olasılığıda sıfıra iner.
Sosyal mühendis olabilmek için iyi bir eğitimden geçilmesi şarttır.Eğitimli üstüne sosyal olan insanın sınırları zorlayacağı muhtemeldir.Eğitimle kendisini birleştiren kişi her zaman her koşulda her yerde başarı,özgüven ve bir imaj içerisindedir.Sosyal Mühendis olmak iyi bir eğitimden geçer.
Tersine Mühendislik
Tersine mühendislik (Reverse Engineering,RE) bir aygıtın, objenin veya sistemin; yapısının, işlevinin veya çalışmasının, çıkarımcı bir akıl yürütme analiziyle keşfedilmesi işlemidir. Bu yöntem, genellikle orijinalinden kopyalamadan onunla aynı şeyi yapan yeni bir alet veya yazılım yapmaya çalışır ve sıklıkla bir şeylerin (örneğin; makine veya mekanik alet, elektronik komponent, yazılım programı gibi) parçalarına ayrılması ve çalışma prensiplerinin detaylı şekilde analizini içerir.
Amerika Birleşik Devletleri dahil diğer birçok ülkede bir sanat eseri veya bir süreç meslek sırlarıyla korunsa dahi, bunların tersine mühendisliği yasal olarak elde edildiği taktirde yapılabilir. Patentler, diğer taraftan, buluşların kamusal ifşasını gerektirir, ve böylece patentli parçalar üzerinde araştırma yapmak için tersine mühendisliğe ihtiyaç duyulmaz.Tersine mühendislikle uğraşanların bir genel motivasyonu rakiplerin ürünlerinin patent koruması veya telif hakkı koruması taşıyıp taşımadığıdır.
Yazılımda Tersine Mühendislik
Yazılımlarda “tersine mühendislik” terimi insandan insana değişir; Chikofsky ve Cross çeşitşi kullanımları araştıran ve bir taksonomi tanımlayan bir çalışma yapmışlardır.Bu çalışmaya göre;
Tersine mühendislik bir sistemin daha yüksek bir soyutlama seviyesinde temsilini yaratmak için analiz edilmesi işlemidir.
Aynı zamanda geliştirme çevriminde geriye gitme olarakta görülebilir. Bu modelde, uygulama fazının çıktısına(kaynak kodu formunda) tersine mühendislik uygulanarak, geleneksel şelale modelinde(waterfall model) geri dönerek, analiz fazına geri gidilmiştir.
Tersine mühendislik sadece, modifiye edilmediği(ki nu onu yeniden yapılandırma anlamındadır) düşüncesi altında, yazılım sistemini inceleme işlemidir.
Pratikte, tersine mühendisliğin iki çeşidi bulunur.Birinci durumda, yazılım için kaynak kodu zaten vardır, fakat programda kötü şekilde yazılmış veya yazılıp ta artık geçerli olmayan yüksek seviye görünüşlerinin bulunmasıdır.İkinci durumda yazılım için uygun kaynak kodu yoktur ve yazılım için kaynak kodunu bulmak için yapılan bütün teşebbüsler tersine mühendislik olarak adlandırılır.Bir çok insan bu ikinci terime aşinadır.
Yazılımların tersine mühendisliği, telif hakları ihlallerinden sakınmak için temiz oda dizaynı tekniği denen(clean room design) teknikten faydalanır.
İkili Yazılım
Bu işlem bazen Tersine kod mühendisliği(Reverse Code Engineering,RCE) olarak da adlandırılır. Bir örnek olarak, java platformu için ikili kodların kaynak koduna dönüştürülmesi Jad(Joint Application Development) kullanılarak yapılabilir.Tersine mühendisliğin ünlü bir örneği yıllardır bilgisayar donanım platformuna hakim olan eden tarihi IBM PC compatible endüstrisindeki PC BIOS ‘un llk IBM kaynaklı olmayan uygulamasıdır.
Amerika’da Digital Millennium Copyright Act adlı telif hakları yasası, önleme yasağından muaf olarak dosya formatlarının birlikte işlerliğini hedefleyen bazı tersine mühendislik uygulamalarını yasaklar fakat yargıçlar anahtar davalarda bu kanunu göz ardı eder, çünkü kullanım kısıtlamalarını önleyebilmekte fakat giriş kısıtlamalarını önleyememektedir. Önlemedeki kısıtlamaların yanında, yazılımların tersine mühendisliği Amerika’da telif hakkı kanunundaki adil kullanım istisnasıyla korunmaktadır.
Microsoft Windows sistemlerini çalıştıran sistemlere onu çalıştırmayan sistemlerle dosya paylaşımına izin veren Samba yazılımı tersine mühendislik yazılımının klasik bir örneğidir, çünkü Samba projesi Windows’un dosya paylaşımıyla ilgili yayınlanmamış bilgiyi, Windows kullanmayan bilgisayarlar buna öykünebilsin diye, tersine mühendislikle bulmak zorundaydılar.Wine yazılımı projesi Windows API için aynı şeyi yapar ve OpenOffice.org bunu Microsoft Office dosya formatları için yapar.Reactos projesi ise ikili(ABI ve API) uyumluluğun NT dalının günümüz Windows işletim sistemine, yazılıma ve Windows için yazılmış sürücülerin bir temiz oda ters mühendislik uygulanmış GPL açık kaynak karşılığında çalıştırılmasına izin vererek, sağlanması konusunda daha hırslıdır.
İkili Yazılım Teknikleri
Yazılımlarda tersine mühendislik çeşitli yöntemler kullanılarak yapılabilir.Yazılımlarda tersine mühendisliğin üç ana grubu şunlardır;
1.Bilgi değişimi gözleminin analizi, standart tersine mühendislikteki en yaygın yöntemdir, bus analyzer ve packet sniffer denen yazılım ve donanımların kullanımını içerir, örneğin, bilgisayar ağına bağlantıya giriş için ve verilere erişmek için.Ağ davranışı daha sonra, o davranışı temsil eden tek uygulama olarak analiz edilebilir.Bu özellikle sürücülerin tersine mühendisliğinde faydalıdır.Bazen, gömülü sistemlerdeki tersine mühendislik üretici tarafından üretilen aletlerden yardım alır; örneğin JTAG portları veya diğer hata ayıklayıcı metodlar.Microsoft Windows’ta, SoftICE gibi düşük seviye hata ayıklayıcıları popülerdir.
2.Bir ayırıcı kullanarak ayırmak (Disassembler), sadece makine dili anımsatıcıları kullanılarak programın kendi ham makine dilinde okunup anlanşılmasıdır.Bu herhangi bir bilgisayar programına uygulanabilir, fakat özellikle makine kodlarına alışık olmayan biri için uzun bir zaman alır.Etkileşimli ayırıcı (İnteractive Disassembler) ise popüler bir araçtır.
3.Kaynak koduna geri dönüştürücü kullanarak dönüştürme, değişen sonuçlarla, sadece makine veya byte kodunda uygun olan bazı yüksek seviye dillerinde kaynak kodunun yeniden yaratılmasını deneyen bir işlemdir.