BİLGİSAYAR VİRÜSLERİ
Retro bilgisayarHer şey ayın on üçüne rastlayan bir cuma günü başladı. Takvim “dikkatli olun” diyordu. Bugünün uğursuzluğuna inanarak evden dışarı çıkmayıp C-64'ümle uğraşmaya karar vermiştim. Nasıl da yanılmışım! Bilgisayarın normal işlemleri sırasında görüntü ansızın korkunç bir şekilde titremeye başladı ve ekranda şu mesaj belirdi:
DR.DR. STROBE & PAPA HACKER WAS HERE! ALSO STARRING GARFIELD MERHABA! BU GERÇEK BİR VİRÜSTÜR! SERİ NO.: 18
Birdenbire ne olmuştu? Bu bir virüs müydü? Yoksa bilgisayarım mı hastaydı? Şimdi ne yapmalıydım? Bilgisayarı kapatmak bir çözüm olabilir miydi? Gerçekten de bir bilgisayar virüsü belleğe yerleşmişti. Bu bilgisayar virüsleri kendi kendilerine çoğalan, gizlice hafızaya ve bilgi taşıyıcılarına (disket) yerleşen kısa ve zararlı programlardır. Bunlar uzun bir süre bilgisayarın belleğinde sessiz kalırlar, fakat aktif hale geçtiklerinde tam anlamıyla bir kargaşaya neden olurlar. Şimdiye kadar bilinen C-64 virüsleri zararsızdır, yani faal durumdayken bile herhangi bir bilgi kaybı yaratmazlar. Zararsız virüslerin diğer bir türü ise kendi kendine çoğalma özelliği bulunmayanlardır. Bunların en tanınmışı “Spinne” (Örümcek) adlı virüstür. “Spinne” aktif hale geçtiğinde ekranda dolaşan bir örümcek görülür. İlk başta bu görüntü bir çok kişiye oldukça ilginç gelebilir, fakat bir müddet sonra hafızadaki her şey silinir. Bunlar gibi zararsızların yanında bir de Bayrischen Hacker-post'un yaydığı BHP-Virüs türünden çok tehlikeli virüsler vardır. Bunlar genelde iki bölümden oluşur. Çoğalma kısmında, virüs ulaşabileceği tüm bilgi taşıyıcılarına ulaşmaya çalışır.
İlk önce virüs daha evvel bulaşamadığı bir program arar. Eğer bir tane bulabilirse, hemen kendini diskete veya (PC'lerde) Hard Disk'e kaydeder. Burada kurnazca directory ve etkileyeceği program arasında bir yere saklanır. Bilindiği gibi directory, programların disket üzerinde nerede bulunduklarını bilgisayara bildirir. Bu enformasyon directory-pointer'ında kodlanmıştır ve programın başlangıcını gösterir. Virüs, çoğalma işlemleri sırasında hiçbir şey belli etmeden değiştirir ve sağlıklı bir programın başlangıcını kendi üzerine alır. Böylelikle ana program yüklenmek istendiğinde directory ilk önce disket üzerinde virüsün bulunduğu adresi gösterir. Bu şekilde ilk önce virüs bilgisayarın belleğine yerleşir ve ardından esas program yüklenir. Resim 1'de yukarıda anlatılanlar bir şema halinde gösterilmiştir. Virüslerin ikinci kısmı başlar. Burada artık faal duruma geçen virüs bilgileri bir daha geri getirilmeyecek şekilde silebilir, disketi formatlayabilir veya Hard Disk üzerinde kendi amacı doğrultusunda değişiklikler yapabilir. Kısaca bu andan itibaren bir virüs birçok önemli hasar verebilir. Bu hasarlar hemen o an gerçekleşmez! Ama program virüs tarafından öyle değiştirilir ki, siz bir şey kaydederken disket üzerinde bulunan her şeyi farkında olmadan silersiniz. Bunların yanında aktif hale geçmek için belli bir sinyali bekleyen virüsler de vardır. Adeta bir saatli bomba gibi çalışan virüsler “patlamak” için daha önce ayarladıkları bir zamanı (örneğin PC'lerde belli bir tarihte ve belli saatte) veya belirsiz bir zamanı (programın x defa yüklenmesini) beklerler. Fakat bu bekleme sırasında virüsler katiyen boş durmazlar; çeşitli sistemlere bulaşmaya devam ederler. Bazı bilgisayar sistemlerine yukarıda anlatılan türden tehlikeli virüsler bulaşmış olmasına rağmen
CİDDİ
VIRÜSLERI
BİR TEHLİKE
ANIL GÜLmen, her şey şimdilik normal çalıştığı için kimsenin bundan haberi yoktur, fakat bir gün bomba patlayacaktır. Bu katil programların “virüs” diye adlandırılmalarının sebebi, aynen biyolojik benzerleri gibi davranmalarıdır: Çoğalmaları kontrol edilemez, bazı enformasyonları değiştirirler ve tek başlarına (bilgisayar ve program olmadan) yaşayamazlar. Herhalde en tanınmış C-64 virüsü burada işlevini anlatacağımız BHP virüsüdür. Münih'teki “Bayrische Hacker-post” (kısaca BHP) bilgisayar kulübünün üyeleri 1985 yılında C-64, Atari 800XL dahil olmak üzere tüm bilgisayarlarda virüs yazılabileceğini ileri sürdüklerinde, birçok yerde alayla karşılanmışlardı. Bunun üzerine BHP üyeleri hemen işe koyularak kısa bir süre zarfında tehlikeli virüslerin tüm özelliklerini taşıyan bir program geliştirmeyi başardılar. Oluşturulan bu program ilk başta herhangi bir zarar vermiyordu, fakat bilgisayardan bilgisayara, disketten diskete korkunç bir hızla yayılmaktaydı. Böylelikle oluşturdukları bu virüsle BHP üyeleri amaçlarına ulaşmış
VİRÜSLERDEN
NASIL KURTULABİLİRİM?
Bazı virüsler için öldürücü programlar mevcuttur (Virus-Killer). Bütün virüsler için geçerli genel bir yazılım ne yazık ki yoktur, çünkü bunların her biri farklı özelliklere sahiptir. Az da olsa yazılmış Virus-Killer'ler yeterli derecede güvenilir değildir. Yüzde yüz geçerli tek kurtulma yöntemi disketin tekrar formatlanmasıdır. Bu metodun dezavantajı ise virüsle birlikte disket üzerindeki tüm bilgilerin kaybolmasıdır.
VİRÜSLER NASIL BULAŞIR?
Virüssüz program
Özellikle kaçak kopyalanan Directory programların virüslü olma ihtimali yüksektir. Fakat orijinal programlar da yüzde yüz güvenilir denilemez. Örneğin Atari ST'nin “GFA-Basic 3.0” adlı programına virüs bulaşmıştır ve hazırlanan 10.000 disketin 1.500 tanesi piyasaya sürülmüş durumdadır. Bu gibi durumlarda üretici firma zararı karşılamak zorundadır. Virüsler disketle olduğu gibi modem aracılığıyla da bulaşabilir, fakat siz öncelikle kaynağını bilmediğiniz kopyalanmış programları yüklerken dikkatli olun.
Program programı gösterir
Virüslü program
Directory
Program oluyorlardı. BHP-Virüsü C-64 reset edildikten sonra, yani başlangıç durumuna getirildiğinde bile, hafızadan silinmiyor ve daha sonra yüklenecek programlara bulaşmaya devam ediyordu. Bu beladan kurtulmanın tek yolu ise bilgisayarı açıp kapatmaktı, fakat virüs eğer herhangi bir diskete bulaştıysa burada rahatça gizlenebilmekteydi.
programı gösterir
9 blok uzunluğunda (bulaşmış)
Bir virüs enfeksiyonu modeli: Virüs directory'yi değiştirerek, her program erişimi sırasında kullanıcı tarafından fark edilmeden öncelikle virüsün uyarılmasını sağlar. Programın asıl amacı daha sonra yerine getirilir.
VİRÜS 6000 BİLGİSAYARI MAT ETMİŞTİ
2.11.1988 Çarşamba günü Amerikan bilgisayarları için bir felaket günüydü. Ülkedeki 6.000 bilgisayar bir virüs nedeniyle felç olmuştu. Bunların arasında önemli sistemlerin bilgisayarları da bulunuyordu. Birçok firmanın terminalleri, üniversite ve laboratuvar bilgisayarları çeşitli veri girişlerine ya hiç reaksiyon göstermiyordu ya da tamamen alakasız bilgi çıkışları yapıyordu. Bu virüs US-Navy'nin (bahriye) kumanda merkezinden, Lawrence Livermore Laboratories'den (Amerika'nın atom silahlarını geliştirdiği yer) ve uzak çalışmalarının yürütüldüğü NASA'dan etkilerini esirgememişti. Bu virüsü yaratan kişi New York'taki Cornell Üniversitesi'nde doktora yapmakta olan Robert Morris Jr. adlı öğrenciydi. Robert virüsünü 50.000 bilgisayarı kapsayan ARPANET iletişim
Robert Morris Jr. tek bir virüs ile hemen hemen 6000 bilgisayarı felç etmişti. Uzmanlar, eğer isteseydi çok daha büyük hasarlar verebileceğini söylüyorlar.
ağına yerleştirmişti ve bu şekilde en sıkı korunan bilgisayar sistemlerine bile girip ve buralarda çalışma yapabileceğini kanıtlamak istiyordu. Herhangi bir veri giriş hatası bu virüsün hızla yayılması için yeterli oluyordu. Her bilgisayar kullanıcısı bu şekilde farkında olmadan virüsün tüm ülkeye yayılmasını sağlıyordu. Çoğalma devamlı katlanarak arttığı için büyük bilgisayarların hafızaları bile kısa sürede tükeniyor ve bu da sistem kilitlenmelerine yol açıyordu. Tüm bunların yanında aslında virüs kötü amaçlar doğrultusunda programlanmamıştı, zira kayıtlı olan tüm bilgiler sağlam olarak duruyordu. Cornell Üniversitesi informatik öğretmeni Dean Krafft Spiegel dergisine Robert'in “iyi niyetini” şöyle açıklıyordu: — Onun için daha büyük zararlar vermek çok kolay olurdu. Birkaç ek satır kayıtlı tüm bilgileri silebilirdi.
1 2 Program kodu 7
0 1024 2048 40960 49152 — 53248 57344 65535 1 Zeropage, Stack, vektörler | 2 Ekran 3 Basic yorumlayıcısı 4 Boş bellek alanı 5 G/Ç alanı; virüs burada 6 Kernel/İşletim sistemi 7 Reset koruması G/Ç alanı 5 |
1 | 2 Program kodu 3 | 4 0 1024
2048 ca.4300 20960 49152 53248 — 57344 65535 1 Zeropage, Stack, vektörler 2 Ekran 3 Basic yorumlayıcısı 4 Boş bellek alanı
5 G/Ç alanı; virüs burada
Resim 2: Bu bellek yerleşimini BHP virüsünde görüyorsunuz. Aranan bir programın yüklenmesinden sonra, başlangıçta her şey yolundadır: Program 2300 bayt kaydırılmıştır ve henüz aktif durumda olmayan virüs, Basic'in başlangıcında bulunmaktadır. Aktif durumdaki bir virüste program normal bellek alanındadır ve virüs G/Ç alanının altında yer almaktadır. Reset koruması 32768 ($8000) adresine konmuştur.
VİRÜSLERDEN
NASIL KORUNABİLİRİM?
Gerçekten çok iyi bir korunma yöntemi şu anda mevcut değildir. Kendi bilgisayarınızda formatlanmamış her disket hastalıklı olabilir. Bu nedenle daima kendinize ait disketlerle çalışmaya özen gösterin. Uzun süre kullanmayacağınız disketleri ise başkalarına ödünç vermeyin. Eğer sağlıklı olup olmadığını bilmediğiniz bir disketi yüklemeniz gerekirse işiniz bittikten sonra bilgisayarı sakın resetlemeyin. Bu gibi durumlarda en kesin yöntem bilgisayarı ve çevre birimlerini tamamen kapatıp açmaktır.
BHP-Virüsü aktif konuma geçtiğinde yukarıdaki metin ekrana gelmektedir. En alt satırda ise şu mesajı görebilirsiniz: SERİ NO: kuşak numarası Bu numara virüsün enfeksiyon sayısını bildirir; yani her yeni programa bulaşıldığında bu sayı bir artar. Benim karşılaştığım 18. kuşaktı, yani daha önce 17 kez aktif hale gelmişti. Yukarıda belirtilen metin ekrana geldikten sonra ikinci bir uyarı mesajı ekrana gelinceye kadar rahatlıkla çalışmaya devam edilebilir. Şu anda BHP-virüsünün iki çeşidi mevcuttur: 1. Versiyon: Virüs kendini sadece bir defa belli eder ve bir daha gözükmez. 2. Versiyon: Virüs belirsiz aralıklarla devamlı ekrana gelir. Bunlardan ikincisi çok daha fazla yayıldığı için ilk uyarı mesajı ekranda belirdiğinde hemen bilgisayarınızı kapatmanızı tavsiye ederim, böylelikle en azından hastalığın diğer disketlerinize bulaşmasını önleyebilirsiniz. Şimdi isterseniz bu virüsün yayılma mekanizmasını daha yakından inceleyelim. Virüs faaliyet halindeyken bilgisayarın içinde bazı işletim sistemi alt rutinlerinin adreslerini değiştirir (LOAD, SAVE, Break, NMI, Basic Warmstart). Bu şekilde değiştirilen adreslerin gerçek fonksiyonları tamamen virüsün alt programları tarafından yürütülür ve bilgisayarın bağlı olduğu cihazlarla (Floppy, Printer,...) ancak dolaylı yoldan iletişim sağlanır. Artık virüs bilgisayarımıza hükmetmektedir ve kendi işini rahatlıkla görmektedir. LOAD veya SAVE komudu ile Disk Driver'ınızı kullanmak istediğinizde virüs disket üzerinde hemen boş block arar ve bulduğu ilk yere kendini kaydettikten sonra Resim 1'de görüldüğü gibi ana programla bağlantıyı kurar. Bu iş için harcanan 9 Block directory'de gösterilemez. Görüldüğü gibi yukarıdaki fonksiyon prensibinden hareket eden herkes bir virüs yaratabilir. Bir süre önce yabancı bir bilgisayar dergisi C-64 için bir virüs programlama kursu başlatmıştı. Şimdilik elimizden bu kursun yararlı amaçlar için kullanılmasını ve yeni tehlikeli virüslerin oluşmamasını dilemekten başka bir şey gelmiyor. PC alanında bu iş daha da ileri gitmiştir. Avrupa'da şu anda “Nightmare” adlı bir virüs oluşturma seti piyasada satılmaktadır. Bu set, kullanıcıların virüslerle daha samimi olabilmeleri amacıyla tasarlanmıştır. Yalnız bu Software'in üzerinde şöyle bir uyarı göze çarpmaktadır: “Bu program bir oyuncak değildir” ve bundan başka oluşturulan virüsler için seti satan firma hiçbir sorumluluk kabul etmemektedir. Federal Almanya'da bu iş kanunlarla çok sıkı tutulmuştur. Örneğin hayati önem taşıyan bilgisayarlara (hastane, havaalanı) bulaşabilecek bir virüs yaratmanın cezası beş yıla kadar hapistir. Virüsler ayrıca politik amaçlarla da kullanılmaktadır. Bundan birkaç sene önce Amerika'da Delaware Üniversitesi bilgisayarlarına bir virüs bulaştırılmıştı. Bu virüs üniversiteyi bir Pakistan bankasına 2.000 Dolar yatırmaya zorluyordu. Bu paranın karşılığı olarak okul tahrip edilen bilgileri eski haline getiren bir program alacaktı (Süddeutsche Zeitung, Haziran 1988). Acaba 90'lı yıllarda virüs tehdidi daha da artacak mı? Avrupa'da 1987 ve 1988 yıllarında bu konuyla ilgili herhangi bir resmi kayda rastlanmadı, fakat durum Amerika Birleşik Devletleri'nde çok daha ciddi: Bir öğrencinin yarattığı virüs, NASA ve Savunma Bakanlığı'nınkiler de dahil olmak üzere 6.000 bilgisayarı adeta felç etmişti. C-64 kullanıcıları şu ana kadar sadece BHP-Virüsünün sık sık ekrana gelen uyarı mesajlarından rahatsız olmaktadırlar. Her ne kadar bugüne dek karşılaşmadıysak da teorik olarak C-64'de de bilgileri silen veya değiştiren virüsler yazılabilir.
Virüs kendini G/Ç alanının altındaki $d000 adresine yerleştirmektedir.
Program, çalışabilmesi için Basic başlangıcına (2049) kaydırılır.
Değişen vektörler: LOAD SAVE BREAK RESTORE Basic-Warmstart Reset koruması
Virüs aktif hale geçiyor.
Program çalışmaya başlıyor.
Resim 3: Normal bir resette BHP-Virüs'ü önce kendini güvence altına alır ($d000'a yerleşir). Bu arada bilgisayarın normal işlevlerini taklit eder. Sistem kontrolleri virüs tarafından yürütülmektedir.
Eğer hastalıklı bir program yüklenirse resim 2'de üst tarafta görülen hafıza modeli oluşur. Eğer LIST komutunu yazarsanız ekrana gelecek satırdan virüsü anlayabilirsiniz:
1987 SYS PEEK
(43) 4 256*PEEK(44) 4 48:
VIRUS
Virüs hafızada aktif konuma geçmeden bu satır gözükmez. RUN ile program çalıştırıldığında SYS komutunun adresi hesaplanır (Eğer Basic başlangıcı 2048'de ise 2097 bulunur) ve makine dilinde yazılmış olan virüs programı devreye girer. Virüsün diğer adımları resim 3'deki diyagramda gösterilmektedir. Bu arada resim 2'de alt kısımda görülen bellek dağıtımı oluşturmaktadır. Virüs kendini
53248'den
PROFESYONELLER İÇİN GEREKLİ
BİLGİLER
($d000) başlayan yere kaydeder. Burada dışarıdan çok zor girilir; Basic V2.0'dan ulaşmak ise imkansızdır. Daha sonra ana program gerçek yerine yerleştirilir. 32768 ($8000) ve sonraki 9 bayt virüs tarafından reset koruması olarak kullanılır (CBM-80 kelimesi $8004'den itibaren yazılır). Unutmayın! Bilgisayarı kapatıp açmak bir virüsün tüm yaşam fonksiyonlarını sona erdirir. Resim 2'nin üst kısmında hastalıklı bir program yüklendikten hemen sonra (RUN edilmeden önce oluşan) bellek dağılımı görülmektedir. İkisi arasındaki tek fark, ana programın aşağı yukarı 2300 bayt ileri kaydırılmasıdır. Kullanılmıyor gibi görünen alanda ise, RUN komutuyla derhal aktif hale geçebilecek olan virüs yer almaktadır.