Bu sayfadaki yazılar
Sayfanın metni
Sayfa 22
Virüslere yakalanmış bir sistemi iyileştirme imkânlarından biri de serum denilen bir işlemin programlanmasıdır. Ama böylesi bir program için virüsün önceden keşfedilmiş ve çözümlenmiş olması şarttır. Serumun virüsü ilkin program içeriğinde keşfetmesi zorunlu olduğundan, serum veri kütüklerini tek tek her bit'de tipik virüs özellikleri bakımından yoklamaktadır. Biyolojide olduğu gibi önce virüsü tecrit etmek gerekmektedir. Enfekte edildiği konusunda kuşku duyulmayan bir program enfekte edilmemiş olduğu garantilenmiş kendi ilk metniyle her bir bit'de tek tek karşılaştırılmaktadır. Burada ortaya çıkan fark, virüs demektir. Bu durumda bir serum-programı test edilecek bütün programları artık bilinen bu virüsle kıyaslamak zorundadır. Kurnaz virüs programcıları serum programlarının önüne bir engel koymuşlardır: Bir bilgisayarın serum programları aracılığıyla iyileştirilmesini zorlaştırmak için, kendi virüslerini her yeni kuşakta kendilerini değiştirme yeteneğiyle donatmışlardır. Böylelikle de, ancak iki virüsü ve onun yapısını tanıyan serum programı bir sonraki kuşaktan hiçbir virüsü saptayamaz duruma gelmektedir. Serum programı için daha sonraki kuşaktan virüsler tıpkı kendine büsbütün yabancı virüsler gibi meçhul kalmaktadır.
Fred Cohen “Bilgisayar Virüsleri- Kuram ve Deneyler” başlıklı çalışmasında taklit bir bilgisayar dili kullanarak kendi kendini değiştiren virüsü şöyle betimlemektedir: program evolutionary-virus,
Kopya kuşakları boyunca süren bu mutasyon, bir programın her yeni enfeksiyonunda meydana gelmektedir. Burada virüs yalnızca kendisini ana programa kopya etmekle kalmaz, bunun yanı sıra yeni programa rastlantısal kökenli komutları da ek olarak
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 23
sokar. Bu komutlar ya uygulanmazlar, çünkü bunlar programın çağrılmayan bir yerinde durmaktadırlar, ya da bunların önemsiz komutlar olmaları söz konusudur. Böylece virüs kendi görünümünü değiştirmekte, ana işlevi aynı kalmaktadır. Bunun sonucu ise şudur: Serum-programı aracılığıyla bir virüs kuşağına karşı mücadele verilebilmekte, ama bir sonraki kuşak için bu mümkün olmamaktadır.
Bir serumu geliştirmenin iki kuramsal yolu vardır. Birincisi, virüsün değişmesiyle aynı oranda kendini değiştiren bir serumun geliştirilmesidir. Bu yol, eğer mutasyon rastlantısal etmenlere dayanıyorsa, dolayısıyla da önceden kestirilemiyorsa, imkânsızdır. Geçiş yeteneği güvenceye alınsın diye mutasyon kapasitesine rağmen virüsün hep aynı kalmak zorunda olan belirli anahtar bölümlerinin izini sürme girişimi daha iyi sonuçlar vaat etmektedir. Böylece, bir virüs örneğin kendisi tarafından kullanılan giriş adreslerini gelişigüzel değiştirememektedir. Virüs işletim sisteminin verili durumuna bağlıdır ve önceden enfekte edilmiş bir programı tekrar tekrar enfekte etmemeye dikkat etmek zorundadır. Ancak, bu yöntem sorunsal olmaktan büsbütün kurtulmuş değildir; çünkü öteki programların da aynı ya da benzer bölümleri kullanmaları ve bunların hiç de virüs olmamaları olasılığı belli bir oranda vardır gene de. Bu durumda bir serum-programı zararları ortadan kaldırmaktan çok, bizzat kendisi zarara yol açabilmektedir. O halde, bir serum-programıyla olsa olsa iyileştirme ile yeni enfeksiyon arasında belli bir denge yaratılabilmektedir. Ama bunu elde etmek için de yeni keşfedilen virüslere ilişkin olarak sürekli yeni serum-programları yazılmak zorundadır. Bu da -kolayca hesaplanabileceği gibi- olağanüstü bir programlama masrafı sunmaktadır. Üstelik de en yeni virüs gelişmeleri öyle bir noktaya ulaşmıştır ki, virüsün asıl tehlikeli bölümü tek bir bayta indirgenmektedir. Sadece tek bir aktarım komutu, enfekte edilen programın içine sokulmaktadır. Büyük kuruluşların bilgisayar merkezlerinde virüsleri keşfetme, serumları geliştirme ve bunları enfekte edilen bilgisayar sistemine yerleştirme konusunda uzmanlaşmış salgın önleme şubeleri hizmete açılmıştır. Serum-programlarını her derde deva bir meta olarak pazarlayan sunuculardan bu nedenle önemle sakınmak gerekir. Bu programlar eğer yararlı olmamışlarsa insan bir bilgisayar şarlatanının tuzağına düşmüş demektir. Yararlı oldukları takdirde ise, bunların mücadele ettikleri virüslerin aynı programcının elinden çıkmış olması da büsbütün imkânsız değildir.
VİRÜS İÇİN KARŞI ÖNLEM Bizim diyagramlarımızdan çıkan virüs özellikle sinsi bir örnek oluşturuyor (Bu virüs kendini işletim sisteminin bir parçası olarak beyan ediyor). Ayrıca bu örnek bir işletim sisteminin zayıf yanlarının virüs tarafından nasıl kötüye kullanıldığını açık bir biçimde göz önüne seriyor. (Komut-yorumcusunun (Command Interpreter) yeniden yükleme yapması enfeksiyon zincirini genişletmektedir). Ama öte yandan da, bu tür virüslere karşı özellikle MS-DOS'da basit olduğu ölçüde etkili bir önleyici araç mevcuttur. “COMMAND/P” “shell — command com/p”'deki son satır olarak) komutu ile tüm komut-yorumcusu kendini “üzerine yazılmaz” olarak beyan ediyor. Enfekte edilen işletim sistemi bölümünün sürekli olarak yeniden yüklenmesi ortadan kalkıyor ve bununla birlikte de enfeksiyonun bizzat işletim sistemine sıçramasının önüne geçilmiş oluyor. Ama yine de tedbiri elden bırakmamak tavsiye edilir: Bu yayılma stratejisine sahip olan virüsün çoğu kez değişik enfeksiyon yolları vardır (örneğin programları sistemli bir biçimde aramak ve enfekte etmek gibi) ve virüs bu seçenekler çerçevesinde işletim sistemine ulaşabilir. Ama virüs bu sırada kendi hızından ileri gelen avantajını yitirmekte ve bunun sonucunda da daha göze çarpıcı bir tarzda hareket etmiş olmaktadır.
Ü SIÇRAMALAR