Antivirüs Yazılımları Hakkında-Bölüm 1

guvenlik  virus Antivirüs Yazılımları Hakkında Bölüm 1

Korunuyoruz ama nasıl? Günümüzün virüs tarayıcıları son derece karmaşık sistemler. Bulaşmaların ve casusların önünü almak için farklı teknolojilerden yararlanıyorlar. PC’leri yavaşlatmalarıyla ünlü olan antivirüsleri mercek altına aldık.

Virüs tarayıcınız sağ olsun, sürekli iğne üstünde oturuyorsunuz. Program ikide bir sinir bozucu uyarılar veriyor, kendini güncelleyip duruyor, hatalı mesajlar da cabası. Tüm bunlara rağmen bir de yeni çıkan virüse mi kurban oldunuz? Öyleyse hemen söyleyelim ki hiçbir virüs tarayıcı yüzde yüz koruma sağlamıyor.

Buna karşılık siber suçlularla mücadelede yazılımların en son sürümlerini kullanmak bir zorunluluk. Sayısal parazitler artık ekrandaki karakterleri bozup müzik çalmakla yetinmiyorlar; onlar artık acımasız paragözlerin aracı ve sizin de cebinize göz dikmiş durumdalar.

Çağdaş parazitler kendilerini belli etmeden arka planda çalışıyor ve böylelikle kullanıcı, bulaşmanın farkına uzun süre varamıyor. Zararlı kod yazarları işte parolaları bu sayede çalıyor, internet bankacılığı erişim verilerini ele geçiriyor ya da sürü posta yolluyorlar.

Virüs yazarları hiç şüphesiz zararlı kodlarını sürekli geliştiriyorlar ve bu tavşan – tilki oyununa anti virüs üreticilerinin de katılması gerekiyor. Bu, sadece sonsuz sayıda imza geliştirmek değil, virüs ordusuna hemen boyun eğdirecek yeni teknolojiden de sorumlu olmak anlamına geliyor.

İmza: Virüsün parmak izi

20 yıl önce, virüs tarayıcılar karakter dizelerini karşılaştırmaktan öte bir işlevi olmayan, çok basit programlardı. Göz alıcı Windows arabirimi olmadan komut satırından çalışan yazılım, disket ya da sabit disk sürücüdeki her dosyayı teker teker açıp, içinde “parmak izi” var mı diye bakarak olası virüs saldırılarını yakalıyordu.

Her bir antivirüs firması kapsamlı çözümlemelerin ardından, parmak izlerinden oluşan bir veritabanı yaratıyor ve incelenen programda bu imzalardan birine rastlanırsa, bulaşma uyarısı veriliyor.

Bu arama işlevleri istendiği her an genişletilebiliyor ve bugün bile virüs taramasının önemli bir parçası.

Virüsün imzası neye benzer?

Popüler virüslerin imzalarını taramak, en temel ilke olarak bugün de varlığını koruyor.

guvenlik  virusimzasi Antivirüs Yazılımları Hakkında Bölüm 1

KARAKTER DİZESİ: En basit yöntem, şekli veritabanında depolanan şablonla tamamen örtüşmesi gereken durağan bir imzayı aramak. Bu, Win32/CIH virüsünün koduna, yazarının eklediği “CIH v1.2 TTIT” karakter dizesi gibi bir şey olabilir. Bu imzadan yola çıkarak, tüm virüslü programlar saptanabilir.

JOKERLER: Karakter dizesindeki “v1.2″ muhtemelen bir sürüm numarası olduğuna ve başka sürümlerin de yayılma olasılığı bulunduğuna göre. bu kısım göz ardı edilebilir. Bu durumda, tarayıcının “CIH v?.? TTIT” karakterlerini araması gerekecek ve soru işaretleri joker görevi görecek; yani yerine herhangi bir karakter gelebilecek. Ama “v1.2a” gibi bir sürüm numarası bu şablona uymayacaktır. 0 yüzden joker karakter olarak soru işareti yerine, birden çok karakterin yerini tutabilen bir yıldız kullanılabilir: “CIH v* TTIT” dizesi, sürüm numarası yerine ne yazılırsa yazılsın işe yarayacaktır. Karakter dizesinin çok uzun olmaması için de minimum ya da maksimum karakter sınırı konabilir.

ÖZELLİKLER: Ancak bu sefer virüs tarayıcı,şu an okuduğunuz makalenin bulunduğu dosyayı bile, imzayı içerdiği için yakalayacaktır. Böylesi yanlış alarmlardan kaçınmak ve arama hızını artırmak için üreticiler saptamak istedikleri virüslere ilişkin daha çok bilgiyi imza veritabanlarına koyuyorlar. Buna dosya türü örnek gösterilebilir. Çünkü CIH virüsü sadece Windows’a uygun çalıştırılabilir EXE dosyalarına bulaşır. Yine kapsamı daraltmak için dosyanın belirli bir bölümü (örneğin dosya başı, özel bir konum ya da son 1024 byte) taranabilir.

SAĞLAMA DEĞERİ: Örnekteki imzalar aslında son derece kısa, çünkü kullanıcılar genelde metin içeren karakter dizelerini değil de, 32 ila 128 byte uzunluğundaki, değiştirilmesi daha zor olan virüs kodlarını kullanıyorlar. Kimi zaman bellekten tasarruf etmek için, gerçek imzalar yerine CRC32 gibi sağlama değerlerinden faydalanılıyor. Normalde başlangıç noktası, dosya boyutu ve örneğin dosya başlangıcından 128 byte sonrasının sağlama değeri “FD CC 34 6F” gibi bir değer, 32 ya da 128 değil, sadece 12 byte yer tutuyor. Bununla birlikte, karakter dizesindeki tek bir byte bile değişse, sağlama değeri anlamını yitiriyor. Diğer yandan, imza ararken bu kadar kesin davranmaya gerek yok; kodun birkaç biti değişse bile virüs bulunabiliyor.

Buluşsal arama: Aramanın anahatları

Ne var ki imza yönteminin çok ciddi bir zayıf noktası olduğu unutulmamalı. Tarayıcılar sadece tanıdıkları, yani laboratuvarda incelenmiş olan virüsleri bulabiliyorlar. Bu yüzden de buluşsal (heuristics) denilen yeni bir teknik geliştirildi. Programlar 90 lı yılların başından bu yana virüsleri sadece imzalarına bakarak değil, sıra dışı program dizilerini de araştırarak tarıyorlar. Söz gelimi, “normal” bir program sabit diski biçimlendirmeye ya da içindekileri silmeye çalışmaz. Tarayıcılar günümüzde böyle şüpheli işlevleri de araştırıyorlar, ancak bu da yüzde yüz güvenilir değil. Zira “del” gibi normal komutlar ya da “format” gibi sistem yazılımları da kötü niyetli olmadıkları halde bu tür kodlar içeriyor.

Bir sonraki çözüm çabası, jenerik virüs tarama adını taşıyor ve tarayıcılara bir virüs ailesinin ayırt edici özellikleri veriliyor. Bunlar sıkça kullanılan işlevler ya da virüslerin içinde geçmesi olası karakter dizeleri olabilir. Bu ayrıntılara sahip olan tarayıcı, aynı aileye üye olan yeni virüsleri de yakalayabiliyor.

Emülatörler: Kod testi

Ancak çokbiçimli (polimorfik) virüslerin ortaya çıkışıyla, tarayıcıların başarısına bir kez daha gölge düştü. En bilinen ve üstesinden gelmesi güç vakalardan birisi, 1992′deki Tremor virüsüydü. Virüs yazarları, bir bilgisayar programının birden çok şekilde tasarlanabileceği gerçeğinden hareket etmeye başladılar. Söz gelimi, 2 sayısını ister 1 + 1 şeklinde gösterebilirsiniz, ister 8/4. İsterseniz türev ya da integral hesaplarını da işin içine sokabilir ve upuzun formüller elde edebilirsiniz. İşte, virüs yazarları bu yöntemi benimseyince, virüslerin asıl “zarar veren kısmı” programın çalışma zamanında hesaplanarak oluşturulmaya başlandı.

Bu formülleri çözüp, programların asıl niyetini öğrenmek içinse anti virüs firmaları hemen kod emülatörleri geliştirdiler. Kod emülatörleri, virüs tarayıcının içinde oluşturulmuş bir sanal işlemciyi kullanarak programların her bir komutunu adım adım çalıştırıyorlar. Bu sayede, dünyanın en “inatçı” virüsleri bile dize geliyor. Ama bunca çabanın karşılığında büyük bir hesaplama gücü gerekiyor.

Norman firmasının Sandbox’u gibi bazı ürünler işi bir adım ileriye götürerek, benzetim sırasında sadece bir iki bilgisayar bileşeninin değil, sabit diski, internet bağlantısı ve Windows işletim sistemi olan bir bilgisayarın taklidi yapıyor. Böyle masraflı testler sıradan testlere kıyasla daha çok zararlıyı yakalayabiliyor ama aynı oranda fazla zaman gerektiriyor.

Virüs tarayıcıların yapısı

Bir anti virüs yazılımının kalbi, tarayıcının şüpheli dosyayı gönderdiği yer olan arama motorudur. Çoğu zaman, saptama rutinleri zararlıyı yakalamadan önce, sıkıştırılmış dosyanın açılması gerekir. Arama motorunun ve veritabanının güncellenmesi her şeyden önemli!

guvenlik  antivirus Antivirüs Yazılımları Hakkında Bölüm 1

Sıkıştırma: Başlangıç noktasına dönüş

Günümüzde zararlı kodların birçoğu bir çalışma zamanı sıkıştırıcısıyla korunuyor. UPX ya da WWPack gibi araçların orijinal amacı, programların sabit diskte daha az yer kaplaması ama çift tıklandığı an çalışabilmesiydi.

Çalışma zamanı sıkıştırıcısı (runtime packager) diye bilinen bu programların işlevi, WinZip ya da WinRAR’inkiyle aynı, ama arada bir fark var: Programları açmak için ek bir araca gereksinim duyulmuyor ve sıkıştırılmış yazılımın imzası da değişiyor. Bu, anti virüs araçları için bir cephede daha mücadele demek. Çünkü bu tür yüzlerce sıkıştırıcı, bu sıkıştırıcıların sayısız farklı sürümü ve sıkıştırma işleminde rol oynayan birçok farklı seçeneği var. Bazı üreticiler sıkıştırılmış virüslerden alınan kodları doğrudan imza veritabanlarına ekledilerse de, bunun bir işe yaramadığı kısa zamanda ortaya çıktı. Zira aynı virüsler arka arkaya, her seferinde farklı programlarla sıkıştırılıyor ve sürekli yeni imzalara ihtiyaç duyuluyordu.

Bazı diğer üreticiler ise daha çok kafa yorup önce sıkıştırma işlemini tersine çalıştırmaya (yani, programları açmaya) ondan sonra alışıldık imza tarama ve buluşsal arama yöntemlerini kullanmaya başladılar. Çalışma zamanı sıkıştırıcısı kullanan virüsleri enselemenin en güvenilir yolu kod emülasyonundan geçiyor ancak milyonlarca, hatta milyarlarca programın benzetimi yapılacaksa iş çığırından çıkıyor. Bu yüzden de tarayıcıların içindeki özel rutinler en sık kullanılan sıkıştırıcıları destekliyor ve dosya açma işini bir kod emülatörüne göre çok daha hızlı kotarıyor.

Güncelleme: Hız her şeyden önemli

Böylece virüs tarayıcılar da gün geçtikçe gelişti ve gitgide daha karmaşık programlar halini aldı. Ama en iyi yöntemler, en gelişkin buluşsal yöntemler ve en son imza veritabanları bile virüs yazarlarının bir adım önde olmasını değiştirmiyor. Virüs yazarları, artık virüslerinin önce kullanıcının, daha sonra da anti virüs laboratuvarlarının eline geçmesini beklemiyor. Bunun yerine, önce kendileri anti virüs araçlarıyla tarama yapıp, eserlerinin yakalanıp yakalanmadığını test ediyor ve yakalanmaz hale gelinceye kadar kodları yeniden yazıp sıkıştırıyorlar. Virüs piyasaya salıverildikten sonra, anti virüs üreticilerinin buna tepki vermesi ve güncelleme yayınlaması için bir yarış başlıyor. Zaten yazılmış olan virüslerin yeni sürümleri kolayca oluşturulurken, tarayıcıların güncellenmesi aynı hızda gerçekleşmiyor ve bu olay günde bazen 20.000 kez gerçekleşiyor.

Birçok anti virüs üreticisi imzaları kullanarak zararlı kodlarla mücadele etmenin iki farklı yolunu kullanıyor. Symantec, “pulse update” ya da “streaming definitions” (virüs tanım akışı) adını verdiği teknikten Norton Antivirus 2009 ürününde faydalanıyor. Bu tanımlar düzenli imza güncellemelerinin arasında kullanıcının PC’sine gönderiliyor. Her 5-6 dakikada bir, virüs laboratuvarı en son imzaları boyu 3 ila 5 KB arasında değişen dosyalarla otomatikman aktarıyor.

“Bulut Tarama” (Cloud Scanning) yöntemi ise farklı bir ilke üzerine kurulu. Burada yerel PC şüpheli dosyalardan sağlama değerlerini ya da kod parçalarını anti virüs şirketinin sunucusuna gönderiyor ve bu kodlara ya yeşil ışık yakılıyor ya da zararlı damgası vuruluyor.

Bunun avantajı, yeni tehditlere çok çabuk karşılık verilebilmesi ve virüs salgınlarının daha en başından fark edilebilmesi. Ama her kullanıcı “kendi” anti virüs firmasının, bilgisayarında çalışan ya da kurulu olan her programdan haberdar olmasını istemeyecektir, üstelik firmaların iddia ettiği gibi, kimlik tespiti ve iz takibi mümkün olmayan bir şekilde gerçekleşse bile. F-Secure, Panda ve McAfee’nin en son ürünleri bu çözümleri ürünlerine eklediler bile. Trend Micro’da ise bu yöntem henüz beta aşamasında.

Önleyici koruma: Erken davranın

İster virüs tanım akışı olsun isterse bulut tarama, bu teknikler sadece tepki süresini kısaltmaya yarıyor ve bunun ardından bir tepki gelmek zorunda. Şu ana kadar tanıttığımız tüm yaklaşımlar tepkisel, yani bulaşma gerçekleştikten sonra geçerli. Bu aynı zamanda ileriye dönük olmadıkları anlamına da geliyor. Davranış temelli çözümler ya da bir diğer deyişle “Davranış önleyiciler” sıradan imzalarla saptanamayan yepyeni tehditleri bile yakalayabiliyor. Bunun örneği de Norton AntiBot (Symantec), ThreatFire (PC Tools) ya da DeepGuard (F-Secure).

Bu filtrelerin ilk nesli sadece bir eylemi denetleyebiliyordu. Birçok kullanıcı, kişisel güvenlik duvarlarının “X uygulamasının internete erişmesine izin vermek istiyor musunuz?” türü, akla kötü anılar getiren mesajlarını bilecektir.

Bu filtrelerin çoğu zaman işe yaramak şöyle dursun, kafa karıştırmaktan öteye bir şey yapmadığını ve Windows’un iç işleyişini bilmeyenlerin kendi bağlantılarına engel olduğunu söylemek gerekiyor. Ancak ikinci nesil araçlar artık programların teker teker eylemlerine karışmaktansa, davranışlarını önceden belirlenmiş bir süre boyunca gözlemliyor.

Bu süre içinde olumsuz (potansiyel şüpheli) ve olumlu (iyi programlara özgü) davranışlar kaydediliyor ve ancak bir eşik değeri aşılırsa ya da kritik bir durum ortaya çıkarsa kullanıcıya haber veriliyor. Ama kaynakları korumak adına, bu filtreler tüm süreçleri denetlemiyor. Windows’un iç süreçleri ve birçok bilinen uygulama otomatikman ak listeye alınıyor.

Nasıl davranmalı: Kötü kavramının tanımı

guvenlik  graph Antivirüs Yazılımları Hakkında Bölüm 1

AV-Test.org test laboratuvarında şu ana kadar ortaya çıkmış her virüsün bir kopyası bulunuyor ve bu sayı giderek büyüyor.

Tam aksine, bilgisayara internetten ulaşan çalıştırılabilir programlar potansiyel şüpheli sayılıyor. Eğer bu programın EXE dosyasına tıklandıktan sonra etkinleşen ve kullanıcıya gösterilen bir penceresi yoksa, eğer program kendini zaman yitirmeden Windows\System32 klasörüne kopyalamaya kalkışırsa ve sistemin her başlangıcında çalışmak için kendini kayıt defterindeki “Run” girişine eklerse, ülke dışındaki bir sunucuyla sürekli bağlantı halindeyse, davranış temelli yazılımlar tarafından güvenle engelleniyor.

Ama bu davranışlardan sadece bir tanesi, engelleme için yeterli sayılmıyor. E-postayla da kimi zaman çalıştırılabilir dosyalar gönderiliyor. Birçok donanım sürücüsünün kullanıcıya yönelik bir penceresi yok ve arka planda çalışmaları normal. Bazı programlar ve donanıma yönelik araçlar kendilerini Windows System 32 dizinine kopyalıyor ve nice zararsız yazılım da kurulum sırasında kayıt defterine “Run” girdisi ekliyor. İnternet trafiğinin kendiliğinden gerçekleşmesi ise artık kanıksanmış bir durum zira bazı verileri yeniden yüklemek ya da yeni sürümleri denetlemek için kullanılıyor.

Fakat davranış temelli koruma daha ileri gidiyor ve iyi yazılımları da bir kum havuzunda (Sandbox) engelleyip sadece belirli davranışlara izin veriyor. Bunun amacı bilinen ya da bilinmeyen (sıfırıncı gün) güvenlik açıklarının kötüye kullanılmasını önlemek. Bu yüzden, bir MS Office uygulamasına DOC ve XLS dosyalarına yazma izni verilirken, sabit diskte EXE dosya oluşturması engelleniyor. Zira programın tasarlanma amacı bu değil.

Böylesi bir kural, sisteme güvenlik açıkları sayesinde sızmaları engelliyor. Zira Microsoft Office’e yönelik çoğu saldırı iki aşamada gerçekleşiyor. İlkinde saldırganlar uygulamanın kendi program kodlarını işletmesini sağlıyorlar. Bu küçük program kodu, sabit diske asıl zarar verecek olan kodu yazıyor. Böylesi bir programın etrafındaki koruyucu duvarın çok kısıtlayıcı olmaması, kullanıcının işine engel olmaması gerektiği aşikar. Ama olabildiğince çok saldırıyı engelleyecek kadar da sıkı olmalı.

Kategori: Güvenlik

Etiketler: , , , , , ,

Yorum Yap




Yorumunuzda resminiz görünsün istiyorsanız: Gravatar.