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.
30.01.2014 tarihli yazı 36134 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.
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.
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.
►İlginizi Çekebilir: Sahte Güvenlik Yazılımlarına Karşı Dikkatli Olun!
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
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
YORUMLAR
Aktif etkinlik bulunmamaktadır.
- Dünyanın En Görkemli 10 Güneş Tarlası
- Dünyanın En Büyük 10 Makinesi
- 2020’nin En İyi 10 Kişisel Robotu
- Programlamaya Erken Yaşta Başlayan 7 Ünlü Bilgisayar Programcısı
- Üretimin Geleceğinde Etkili Olacak 10 Beceri
- Olağan Üstü Tasarıma Sahip 5 Köprü
- Dünyanın En İyi Bilim ve Teknoloji Müzeleri
- En İyi 5 Tıbbi Robot
- Dünyanın En Zengin 10 Mühendisi
- Üretim için 6 Fabrikasyon İşlemi
- DrivePro Yaşam Döngüsü Hizmetleri
- Batarya Testinin Temelleri
- Enerji Yönetiminde Ölçümün Rolü: Verimliliğe Giden Yol
- HVAC Sistemlerinde Kullanılan EC Fan, Sürücü ve EC+ Fan Teknolojisi
- Su İşleme, Dağıtım ve Atık Su Yönetim Tesislerinde Sürücü Kullanımı
- Röle ve Trafo Merkezi Testlerinin Temelleri | Webinar
- Chint Elektrik Temel DIN Ray Ürünleri Tanıtımı
- Sigma Termik Manyetik Şalterler ile Elektrik Devrelerinde Koruma
- Elektrik Panoları ve Üretim Teknikleri
- Teknik Servis | Megger Türkiye
ANKET