elektrik port üyelik servisleri elektrik port üyelik servisleri

Antivirüs Programları Nasıl Çalışır?

Virüsler bilgi çağının en büyük tehditlerinden bir tanesi. Firmalar antivirüs programlarıyla en iyi algoritmaları geliştirerek, en iyi yöntemlerle zararlı yazılımları tespit etmek için çalışıyorlar. Peki antivirüs yazılımları virüsleri nasıl tespit ediyor? Bu yöntemler ne kadar güvenilir? Bu araştırmamızda sizler için inceledik.



A- A+
30.01.2014 tarihli yazı 15276 kez okunmuştur.

Virüs Nedir?

Bilgisayar virüsleri bir bilgisayardan diğer bilgisayara bulaşmak, bu bilgisayarların çalışmasını engellemek ve verileri çalmak için yazılmış küçük boyutlu zararlı yazılımlardır. Bilgisayar virüslerini engellemek için antivirüs programları geliştirilmiştir.
 



►İlginizi Çekebilir: Web Uygulamalarındaki Güvenlik Zafiyetleri


 

Virüsler Nasıl Tespit Edilir?

İlk çıkan virüsler de mantık çok basitti, bilinen bir virüsün hex kodu (16 ‘lık sayı siteminde kodlanmış hali) karşılaştırma için örnek olarak alınır, tarama yapılacağı zaman da bu imza bütün dosyaların içinde aranırdı. Eğer imzaya başka bir dosyada rastlanırsa virüs olarak algılanıp silinirdi. Bu yöntem virüslerin ilk başladığı zamanlar yani 1990'larda çok popülerdi. Ancak on yıl sonra 2000 lerde bu yöntem değişmeye başladı ve trojan, keyloger, worm antivirüs yazılımcılarının yeni ilgi alanı olmaya başladı.

 

Peki Antivirüs Programı Nasıl Çalışır?

Tabi ki zaman ilerledikçe mutasyona uğrayan virüsler yazılmaya başlandı, Çeşit çeşit cyrpterlar ve packerlar (şifreleyiciler) çıktı. Antivirüslerde hantallaşsa da bu konuda kendini geliştirdi. Örneğin dinamik tarama, statik tarama , heuristic(sezgisel) tarama gibi yöntemler kullanılmaya başlandı ve artık antivirüsler aptal programlar olmaktan çıktı.
 

 
►İlginizi Çekebilir: Açık Kaynak Siber İstihbarat Ağları


Statik tarama; dosya hard diskte iken yani çalışmazken yapılan taramaydı ve bunu atlatmak mümkündü.  GetProcAddress(DLL dosyalarına direk bağlanma) ve  LoadLibrary (yüklü dosya) kullanılarak virüsün adresini aldıktan sonra fonksiyon gösterici çağırarak, import(içeri aktarım) tablosunu tertemiz yapılabiliyor. Basit XOR(lojik işlem) yöntemi ile, code section(kod bölümlerini) tamamen şifreleyebilirsiniz. Çok rastlanan en basit virüs ve trojanlar bile bu yöntemi kolaylıkla atlatabiliyor, ve antivirüsünüz bunları virüs olarak algılayamıyor.

 

Antivirüsler Virüsü Nasıl Yakalar?

Ama asıl konu programın ram da aktif halde olduğunda kontrolüdür. Programın şüpheli davranışları takip edilir, program herhangi bir yere ek dosya çıkarıyor mu, windows registry(Windows sistem ayarlarının tutulduğu veri tabanı) dosyasına erişim yapıyor mu, registry'nin neresine erişip neleri değiştiriyor, hangi fonksiyonları kullanıyor? Burada önemli olan konu ise fonksiyonları doğrudan adresini kullanarak fonksiyon göstericiler ile kullanmak(yani sahte bir Windows dosyası gibi davranır).

Virüsler günümüz antivirüslerini bu yöntemle de kandıramaz, çünkü fonksiyon mecburen , asıl işi yapan “native api” denilen kernel(çekirdek dosya) fonksiyonlarını çağıracaktır. Herhangi bir kernel fonksiyonu çalışırken, o işlem birimi geçici bir süreliğine kernel moda geçer ve fonksiyon öyle çalıştırılır. Bu aşamada İntel için sysenter (kernel içindeki bir kod parçası) ya da Amd için syscall instructionu(kernel içindeki bir kod parçası) kullanılır.
 

 


Heuristic(sezgisel) yöntem denilen son yıllarda çıkan bir tarama tekniği sezgisel ya da buluşsal bir problem çözme tekniğidir. Sonucun doğruluğunun kanıtlanabilir olup olmadığını önemsememektedir fakat genelde iyiye yakın çözüm yolları elde eder. Sezgisel algoritmalar ise geçiş süresinde daha verimli hale gelebilmek için en iyi çözümü aramaktan vazgeçerek çözüm zamanını azaltan algoritmalardır.

Sezgisel algoritmalar en iyi sonucu bulacaklarını garanti etmezler fakat makul bir süre içerisinde bir çözüm elde edeceklerini garanti ederler. Genellikle en iyiye yakın olan çözüm yoluna hızlı ve kolay bir şekilde ulaşırlar. Fakat bu yolla bulunan dosyalar zararlı olmayabiliyor, buda sisteminizde ciddi sıkıntılara yol açabilir. Çünkü bu yöntem eski işletim sistemlerine yönelikti. Şimdiki işletim sistemleri ise daha komplike, birden çok işi bir anda yapabilmekte bu yöntemle bulunan “zararlı yazılım” aslında sisteminizin bir parçası olabilir.

Sezisel algılama (heuristic), dinamik tarama ile birlikte kullanılırsa daha iyi sonuçlar alınabiliyor. Programın kullandığı fonksiyonlara bakarak birçok zararlı yazılım tespit edilebilir. Örneğin, bir program registry apileri(uygulama arayüzü) ile registry'nin(veri tabanı dosyalarının) başlangıçta çalışacak programlar listesine kendisini ekliyorsa, aynı zamanda bu program keyboard hook apilerini(klavye takip arayüzü) kullanıyorsa, aynı zamanda socket apilerini(pin,yuva arayüzü) de kullanıyorsa, bunun kolayca bir keylogger olduğu anlaşılabilir.
 


 
Yeni Çıkan Virüslere Ne Olacak?

Antivirüs firmaları hep bir adım geride olduğunu unutmamak gerekir çünkü genelde çıkan yeni bir virüsü algılaya bilmeleri için önce yeni çıkan virüsü incelemeye alırlar. Reverse-engineering (tersine mühendislik) yöntemiyle virüs incelenir ve ardından analiz edilir.

Analiz sonuçlarına göre virüsün neler yaptığı, nasıl davrandığını, nasıl kendini kopyaladığı, ne zararlar verdiğini raporlayarak yazılımcılarına bu virüsle nasıl başa çıkabilecekleri anlatılır. Ardından da antivirüs yazılımlarına bu virüsün imzası (her virüsün bir imzası vardır) aktarılır ve antivirüs yazılımlarına güncelleme yapılır. Antivirüsü kullanan tüketiciler de bu güncellemeleri alarak, virüse karşı sistemlerini korumaya başlarlar.


Uğur Yıldırım


Kaynaklar:

►Codeproject
►Wikipedia
►Securityetalii



 

Aktif etkinlik bulunmamaktadır.
ANKET
Endüstri 4.0 için En Hazır Sektör Hangisidir

Sonuçlar