Antivirüsleri Atlatma Yöntemleri

Fearlessleon

Adanmış Üye
11 Şub 2013
6,634
7
Hacking.py

Antivirüsleri Atlatma Yöntemleri

Bilgisayar virüsü, kavram olarak ilk 1983’de Fred Cohen tarafından ortaya atılmıştır. İlk virüsler olarak atıfta bulunulan tanımlamalar, aslında virüs kavramının ortaya çıkmasından sonra geriye yönelik araştırmalar sonucunda virüs tanımına uyulması sebebiyle denilmişlerdir. Virüsler bilgisayar sistemlerine hasar vermek için tasarlanmış kendi bir benzerini kopyalara çoğaltabilen, bilgisayarın çalışmasına müdahale edebilen zararlı program kodlarından oluşur. Bilgisayar virüsleri hasar vermiş olduğu kurban olarak adlandırılan kişi veya kuruluşlara ait sistemlere ekonomik zararlar verebilir, verilerini bozabilir veya silebilirler. Virüsler bilgisayar sisteminde yer alan açıklar kullanılarak geliştirilir. Çözüm olarak sistemin her daim güvenlik açıklarına karşın güncel tutulması önerilmiş olsa da; sistemin asli görevi zararlı kod bulmak olmadığından bu görev özelleşmiş çözüm olarak sunulan antivirüs teknolojilerine verilmiştir. Günümüzde bir çok kullanıcı virüslerden korunmak için ücretli veya ücretsiz çözümlerden hizmet almaktadırlar.

İki bölümden oluşacak bu yazı dizisinde güvenlik amaçlı sıklıkla kullanılan antivirüs yazılımlarının kötü niyetli kişi veya kişiler tarafından nasıl atlatıldığı konusuna değinilecektir. İlk bölümde antivirüs çalışma prensibi temel düzeyde anlatılıp; atlatma işleminin temel mantığı bir örnek ile gösterilecektir. İkinci bölümde birkaç teknik daha gösterilerek, son kullanıcının bilinçlendirilmesine yönelik tedbirlerden bahsedilecektir.

Antivirüslerin Çalışma Prensibi

İlk antivirüsler sadece belirli bir virüse karşı özelleşmiş olarak çıkmışlardı. Örneğin ilk antivirüs The Reaper, Creeper virüsü için çıkmıştı. Bilgisayar sistemleri geliştikçe virüsler çoğaldı ve farklı yeteneklere sahip oldular. Antivirüs yazılımları da birden çok virüsü tanıyabilir hale geldi. Bu aslında virüslerin her daim bir adım önde olduğu gerçeğini bizlere gösteren bir sonuçtur. Günümüzde antivirüs teknolojileri ise virüslere karşın sürekli gelişiyor. Bir çok antivirüs teknolojisi olmasına rağmen bu yazılımlar temelde iki şekilde çalışır:

  • İmza tabanlı tespit
  • Sezgisel tespit (şüpheli davranışlar)

Antivirüs yazılımları her ne kadar şüpheli davranışları tanımlayabilecek sezgisel yeteneklere sahip olduklarını söylemiş olsalar da aslında geleneksel olarak yapılan imza tabanlı tespittir. Antivirüs teknolojisi bünyesinde önceden bildirilmiş ve ilgili virüsü kimliklendiren bir imzaya sahiptir. Böylece antivirüs yazılımı daha önceden bildiği virüsü sistemi tarayarak kolayca yakalayabilmektedir. Genellikle virüslerin tespit edilmesi bu şekilde olduğundan son kullanıcılar sistemlerinde yer alan antivirüs yazılımına ait imza dosyalarının güncellemelerini otomatik veya sıklıkla yapmaları gerekir.

İmza tabanlı tespit yönteminin en temel sıkıntısı antivirüsün bilmediği bir virüsü de tanımıyacağı olmasıdır. Günümüz antivirüs teknolojileri geleneksel yöntemlerin dışında gelişmiş sezgisel tanımlamalara sahip gerçek zamanlı analizler yaparak virüsleri ve virüs tanımıyla bazı yönleriyle benzerlik gösteren diğer zararlı yazılımları da tespit edebilmektedir.

Antivirüs yazılımları disklerdeki dosyaları tarayabileceği gibi bellekte yer alan işlem kodu (opcode) olarak bilinen düşük seviyeli makine dili komut işlemlerini de tarar.

Son kullanıcılar bilgisayar sistemlerine antivirüs yazılımı kurmalarına rağmen yine de virüs tehditiyle karşı karşıya kalabilmektedir. Antivirüs gibi genel geçer bir ad olarak sunulan bu kavram aslında tarama işleminin yanı sıra internetten gelebilecek saldırılara karşı güvenlik duvarı, sandbox gibi ek hizmetler sunabilmektedir. Tüm bu güvenlik önlemleri bazen son kullanıcının sistemini rahat kullanmasının önüne geçtiğinden dolayı antivirüs yazılımı kullanıcı tarafından kapatılır, kaldırılır veya gereksiz kurallar girilebilir. Bunların sonucunda ise bir antivirüs yazılımı kurulmuş olsa dahi sisteme virüs bulaşabilir. Son kullanıcı bazlı meydana gelen virüs tehtitlerinin yanı sıra antivirüs yazılımlarının ilgili virüsü tanıyamaması sonucu sisteme virüs bulaşabilir.

Geleneksel bir antivirüs yazılımı bir dosyayı tarar iken dosyaya ait ofset (offset) ve atandığı değeri okur. Ofsetin bellekteki adresi ve değeri bir işlem kodu barındırır. Örneğin Intel tarafından oluşturulmuş x86 komut setinde MOV, JMP, LEA, ADD, POP, PUSH, SHR, CLC, CALL vs. birer işlem kodudur. Antivirüsler bunları okuyabilir. Bu esnada 16’lık tabanda (hexadecimal) yazılmış semboller okunur ve dosyanın imzası da görülmüş olunur.

PE Dosya Formatı ve Temel Antivirüs Atlatma Yöntemi

PE (Portable Executable), Windows tarafından kullanılan varsayılan dosya formatıdır. GNU/Linux işletim sistemlerinde oluşturulan dosya tipine verilen isim varsayılan olarak ELF, Mac OS X işletim sistemlerlerinde ise Mach-O’ dır. Bu makalede virüslerin çoğunun Windows tabanlı işletim sistemlerinde barındığı düşünülerek PE dosya formatı üzerinden bir anlatım söz konusu olacaktır. PE dosya formatına ait yapı Şekil-1’de görülmektedir. Antivirüsler için en önemli olan “PE File Header” kısmıdır. Bu bölümde imza (signature), güvenlik tabloları (security tables), debug tabloları (debug tables), zaman-tarih damgaları (time and data stamps) ve daha bir çok bilgi yer almaktadır.

2013-11-24_21_44_41-dl.packetstormsecurity.net_papers_bypass_bypassing-av.pdf.png


Antivirüs yazılımı harekete geçirerek imza dosyanın herhangi bir yerinde başlık bilgisi olarak bulunabilir. Antivirüs yazılımının bilinen bir teknikteki oluşturulmuş imzayı bulması çok kolaydır. Örneğin kullanıcıların banka bilgilerini ve şifrelerini toplayan ncx99.exe adlı bir trojan dosya bir web sayfasından indirilmeye çalışıldığında antivirüs yazılımı Şekil-2 ‘deki gibi uyarı vermektedir.

ncx.exe_dosyas.png


Bu dosyaya ait ilgili imza bir hex editörle açılarak görülebilir. Şekil-3' de yer alan E77E-E78F ofsetleri içerisinden cmd.exe ile özellikle trojanların sıklıkla kullandığı port 99’a bağlanarak saldırıyı gerçekleştirecek kişiye bir kapı açacak bilgi görülmektedir.

hexadecimal_grnm.png


Antivirüs yazılımları başlık bilgilerine bakarak dosyanın zararlı olup olmadığı konusunda uyarı verdiği düşünülürse, antivirüsleri geçmek için akla gelen ilk yöntem imza bilgisinin düzenlenmesi kolay olacaktır. Örneğin imza içerisindeki time ve date stamp bilgileri değiştirilerek, antivirüsler tarafından geçersiz sayılarak atlatılabilir. Bunun Şekil-4'deki gibi bir hex editör veya disassembler ile yapılması mümkündür.

ncx99.exe_pe_balk_bilgisinin_grnm.png


Bu basit teknik sonucunda ncx99.exe’nin yeni haliyle bazı antivirüsleri atlatabildiği görülebilir. Örneğin port 99, port 81 olarak değiştirilirse hangi antivirüslerin atlatılabildiği Şekil-5' de görülmektedir.

orjinal_ncxe.99_dosyas.png

dzenlenmi_ncx99.exe_dosyas_copy.png


Şekil-5'te ilk durumda orijinal dosya yani ncx99 virüsü iki antivirüs yazılımının belirli bir sürümünde herhangi bir iz bulanamamıştır. Daha çok antivirüs yazılımını atlatmak için düzenlenmiş olan ncx99 virüsü, yeni haliyle Şekil-6'da dört antivirüs yazılımından tarafından temiz sayılarak virüsün başarı oranını arttırmıştır.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.