Ana sınıf: VirWare
Virüsler ve solucanlar, bilgisayarlarda veya bilgisayar ağları aracılığıyla kullanıcının kendi kendine farkında olmadan kendini kopyalayan kötü amaçlı programlardır; Bu tür kötü amaçlı programların sonraki her kopyası kendi kendini kopyalayabilmektedir. Ağlar yoluyla yayılan ya da uzaktaki makinelere “sahibi” (örn. Backdoors) tarafından komut verildiğinde ya da kendi kendine çoğaltılamayan birden çok kopya oluşturan programlar Virüsten ve Solucanlar alt sınıfının parçası değildir. Bir programın Virüsler ve Solucanlar alt sınıfı içinde ayrı bir davranış olarak sınıflandırılıp sınıflandırılmadığını belirlemek için kullanılan temel özellik, programın nasıl yayıldığıdır (yani, kötü amaçlı programın kendi kopyalarını yerel veya ağ kaynakları aracılığıyla nasıl yaydığı). Bilinen pek çok solucan yayılır. e-posta eki olarak gönderilen dosyalar, bir web veya FTP kaynağına bağlantı yoluyla, bir ICQ veya IRC mesajında gönderilen bir bağlantı yoluyla, P2P dosya paylaşım ağları vb. yoluyla gönderilir. Bazı solucanlar, ağ paketleri olarak yayılır; Bunlar doğrudan bilgisayar belleğine nüfuz eder ve solucan kodu daha sonra aktif hale gelir. Solucanlar, uzaktaki bilgisayarlara girmek ve kendi kopyalarını başlatmak için aşağıdaki teknikleri kullanırlar: sosyal mühendislik (örneğin, kullanıcının ekli bir dosyayı açmasını öneren bir e-posta iletisi), ağ yapılandırma hatalarını (tam olarak erişilebilen bir diske kopyalama gibi) ve istismar etme işletim sistemindeki boşluklar ve uygulama güvenliği. Virüsler, bir bilgisayara bulaşmak için kullanılan yönteme göre bölünebilir: dosya virüsleri önyükleme sektörü virüsleri makro virüsleri komut dosyaları virüsleri Bu alt sınıftaki herhangi bir program ek Truva işlevlerine sahip olabilir. Ayrıca, birçok solucanın kopyaları ağlar üzerinden dağıtmak için birden fazla yöntem kullandığı da not edilmelidir. Algılanan nesneleri çoklu işlevlerle sınıflandırma kuralları, bu tür solucanları sınıflandırmak için kullanılmalıdır.Sınıf: Virus
Virüsler yerel makinenin kaynakları üzerinde çoğalırlar. Solucanlardan farklı olarak, virüsler diğer bilgisayarları yaymak veya bunlara nüfuz etmek için ağ hizmetlerini kullanmaz. Virüsün bir kopyası, yalnızca virüslü nesnenin, virüs işleviyle alakası olmayan bir nedenle başka bir bilgisayarda etkinleştirilmişse, uzak bilgisayarlara ulaşacaktır. Örneğin: erişilebilir disklere virüs bulaştığında, bir virüs bir ağ kaynağında bulunan bir dosyaya girer, bir virüs kendisini çıkarılabilir bir depolama aygıtına kopyalar veya bir dosyayı virüslü bir eki olan bir e-posta gönderir.Platform: DOS
No platform descriptionAçıklama
Teknik detaylar
Bu çok tehlikeli, polimorfik ve gizli parazitik virüslerin bir ailesidir. Bu virüsler 7K'dan daha uzun, çok karmaşık ve belki de en karmaşık DOS virüsleridir. Bu virüsler EXE, OBJ ve LIB dosyalarını bozar ve COM-damlalıklarını ZIP, ARJ ve RAR arşivlerine ekler. Virüsler dahili metin dizelerini içerir:
Olağandışı program sonlanmasıVirüs / DOS 0.54 Telif Hakkı (c) 1995 Zhengxi LtdUyarı! Bu program sadece dahili kullanım içindir!
Kurulum
Virüsün kodu, enfeksiyon yoluna bağlı olarak farklı noktalardan kontrolü alır, ancak her durumda hedef polimorfik şifre çözme rutinidir. EXE dosyalarında (ekleme) şifre çözme rutini, bir EXE dosyası çalıştırılmak üzere belleğe yüklendiğinde, EXE dosyaları (ekleme) - yükleyici kodundan (bkz. EXE bulaşması), virüs bulaşmış OBJ ile bağlantılı dosyalarda, hemen denetimi alır. LIB dosyaları - CALL komutundan (bkz. OBJ / LIB enfeksiyonu), COM damlalıklarının başlangıçlarında JMP komutu vardır, JMP de şifre çözme rutinine kontrol sağlar.Şifresi çözüldüğünde, virüsün kurulum rutini kontrolü alır. Virüs INT 1 (Bir Adım İzleme) kancalar ve INT 21h izler. İzleme sırasında, virüs INT 21h işleyicisi içindeki bazı özel kodları arar (bu kod, DOS 5.x ve DOS 6.x'te bulunur). Böyle bir kod bulunursa, virüs birkaç koşulu denetler ve bazı durumlarda yüklemeyi sonlandırır.
Virüs yüklemeyi sonlandırırsa:
- MS Windows yüklü
- önyükleme sürücüsü A: veya B:
- INT 8, 13h, 28h aynı segmente işaret ediyor (anti-virüs monitörü kurulu ise kurulumdan çıkmak için)?
- anasistem dosyasının gün (tarih ve saat damgası) geçerli güne (aynı gün veya saat damgası) eşittir (dosya günü ile birlikte XORed öğesinin en yüksek iki bit'i sıfırdır)
INT 21h işleyicisi:... ...+ ------- 2E FF 1F ???? ÇAĞRI ÇAĞRI CS: Int257 C7 06 ???? ; sihirli kelime?25 Int25: ???? ???? ???? ???? ; INT 25h uzak addr � ... ...+> INT 25h işleyicisi:+ -------- EA ???? ???? JMP FAR VirusHandler � ... ...+> Virüs işleyici:2E 8F 06 ... POP CS: Arayan_IP... ...Sonuç olarak virüs, hem INT 21h hem de INT 25h çağrılarını engellemek için aynı işleyiciye sahiptir. Bu çağrıları ayırmak için virüs arayanın (Caller_IP) adresini kontrol eder. Çağrı INT 21h işleyicisinden geçerse, virüs kontrolünü Virüs INT 21h işleyicisi rutinine geçirir, başka bir durumda da Virus INT 25h işleyicisi kontrolü alır.
Yükleme yordamı tamamlandı, ancak virüs kodunu diğer bellek bloklarına taşıyabilir (bkz. INT 21h işleyici analizi). Bu nedenle, virüsün TSR kopyası, sistem belleğinin aynı bloklarını işgal etmez, ancak kendisini UMB olanlar da dahil olmak üzere diğer adreslere taşıyabilir.
Sonra virüs kontrolü ana programa döndürür. Bu dönüşün üç farklı varyantı vardır, bunlar enfeksiyon yöntemine bağlıdır. COM damlalık durumunda virüs sadece mesajı görüntüler:
Olağandışı program sonlanmasıve Terminate işleviyle DOS'a döner (INT 21h, AH = 4Ch). EXE ekleyen bir enfeksiyon yöntemi durumunda, virüs, polimorfik motor kullanarak orijinal dosya başlığını geri yükler (polimorfik şifre çözme rutini üretir ve orijinal üstbilgiyi geri yüklemek için çalıştırır, bkz. Aşağıdaki EXE enfeksiyonu). Virüs yükleyicinin dosyaya eklenmesi nedeniyle EXE, kendi kendine özgün kodu geri yükler çünkü EXE-ekleme yolu virüs sadece ana bilgisayar programına döner. OBJ / LIB dosyası durumunda virüs, sadece ana programa geri döner (aşağıdaki OBJ / LIB enfeksiyonuna bakınız).
INT 21h Handler
Virüs INT 21h fonksiyonlarının 18'ini kesiyor:3Dh, 6Ch - Dosya Aç / Oluştur3Eh - Dosyayı Kapat3Fh - Okuma Dosyası42h - Lseek4Bh - Dosya Çalıştır41h - Dosya Sil11h, 12h - FindFist / Sonraki FCB4Eh, 4Fh - FindFist / Sonraki ASCII00h, 4Ch - Sonlandır31h - TSR Kal67h - Set Sayısı48h, 49h, 4Ah - bellek yönetimi işlevleri (Allocate, Free, Resize)Set Tutar Sayısı, Execute File ve hafıza yönetimi fonksiyonları, virüs tarafından kodun sistem belleğine gizlenmesinde kullanılır - virüs, bellek tarama yardımcı programlarını kullanırken bellek haritasında görünmemek için MCB blokları ile çalışır.
Terminate, Stay TSR ve FreeMemory fonksiyonlarının durdurulması sırasında virüs, kodunu sistem belleğinde yeni adrese taşır. Virüs belleğin yeni bloğunu (geleneksel veya UMB bellek bloğu olabilir) tahsis eder ve kendini oraya kopyalar. Bu nedenle, virüsten yüklenirken, TSR kopyasını yerleştirmek için UMB bloklarını etkilemez, ancak kendini UMB'ye taşıyabilir ve kendini orada gizleyebilir.
Virüs açıldığında dosya birkaç farklı arama gerçekleştirir. İlk olarak, virüs açılış modunu kontrol eder ve dosya yazmak için açılmışsa, virüs dosyayı dezenfekte eder.
Dezenfeksiyondan önce virüs dosyaya erişilir ve bu dosyaya erişen program (arayan). Virüs, erişim programının adını (arayan) isimlerin listesiyle karşılaştırır (aşağıya bakınız) ve erişilen programın adı bu listeden bulunuyorsa erişilen dosyayı dezenfekte etmez. Dosya isimleri:
UUENCODE.EXE, PKLITE.EXE, LZEXE.EXE, NDD.EXE, DIET.EXE, AFD.EXE, SD.EXE,SPEEDDSK.EXE, DEFRAG.EXE, TLINK.EXE, LINK.EXEAH = 3D00h işlevi (ReadOnly'yi Aç) durumunda, virüs bazı garip eylemler gerçekleştirir. Arayanın kodunu tarar ve yamalar. Bazı anti-virüs tarayıcılarının yamalarına benziyor. Neyse ki, virüsün bir hatası var ve o dal hiçbir zaman idam edilmiyor.
Dosyayı açarken virüs de kontrolü gizli strana getiriyor - virüs, dosya uzunluğunu orijinali ile değiştiriyor.
Dosyadan okurken virüs gizli rutini çağırır. Virüs bulaşmış dosyanın üstbilgisinden okunması durumunda, virüs okuma, orijinal üstbilgiyi okuma arabelleğine okur, çözer ve kopyalar.
Lseek fonksiyonu durumunda virüs, kontrolü virüsün başka bir gizli gizliliğine getirir - virüs, orijinal dosya uzunluğundan arama yapmaya izin vermez.
Virüs bulaşmış dosyanın silinmesi sırasında virüs dezenfekte eder.
FindFirst / Next aramaları ile dosyaları ararken, dosya virüs bulaşmışsa virüs, orijinali ile dosya uzunluğunu değiştirir.
FindFist / Next ASCII çağrıları virüs tarafından virüs bulaşmalarını yakalamak için kullanılır. Virüs, FindFirst işleviyle erişilen herhangi bir dosyanın adını ve FindNext işleviyle erişilen yaklaşık her 5. dosya (olasılık 3/16 ile) kaydeder. Virüsün dosya adı için sadece bir arabelleği vardır, böylece her adın bir öncekinin üzerine yazılır.
Herhangi bir dosyanın kapatılması sırasında virüs, arabellekte saklanan adla dosyayı denetler ve bu dosyaya bulaşır. Virüs ayrıca, kapalı olan dosyayı da enfekte eder, ancak olasılıkla 1/4 (virüsün rasgele üreteci) sonucunu doğurur.
enfeksiyon
Dosyaya bulaşmadan önce virüs çeşitli durumları kontrol eder:- dosya, geçerli gün numarasını dosyanın dosya tarihi ve zaman damgasıyla (yükleme sırasında olduğu gibi) karşılaştırarak "sadece oluşturur" değildir.
- dosya yereldir ve A: veya B: sürücüsünde değil
- dosya adı *.? V? (* .OVL?)
- boş disk alanı yeterlidir (INT 21h, AH = 36h ile kontroller)
EXE Dosyaları Infect
Virüs, EXE'i kendi kendine ayıklanan dosyalara eklemek, eklemek ve arşivlemek için üç farklı yöntemle bulaşır.İlk olarak, virüs dosya yapısını kontrol eder ve eğer EXE dosyası (örneğin, ZIP2EXE tarafından yaratılır) kendiliğinden ayıklanırsa, virüs, aşağıda açıklanan yöntemle ekli arşive (ZIP, ARJ, RAR) bulaşır - COM dropper oluşturur ve bunu arşivin içeriğine ekler.
Ardından virüs, dosya uzunluğunu kontrol eder ve uzunlukları 400h (1024) bayttan daha az olan dosyaları etkilemez. Yüklenebilir modülün uzunluğu (not: dosya uzunluğu değil) 32K daha büyükse, virüs yükleyiciyi dosya ortasına yerleştirir. Başka bir durumda virüs, dosyaya ekleme yöntemiyle bulaşır.
Dosyaları ekleyerek dosyaları etkilerken virüs dosya üstbilgisini okur, şifreler ve dosyanın sonuna kaydeder. Sonra virüs polimorfik jeneratörünü çalıştırır ve şifreli virüs gövdesini ve polimorfik döngüleri dosya sonuna kaydeder. Virüs bulaşmayı bitirmek için virüs, dosya uzunluğunu 9Dh'ye bölerek 25 saat (kalan virüslü dosyaları tespit etmek için virüs "ID" damgası) verir ve EXE başlık alanlarını (kayıtlar ve modül uzunluğu) değiştirir.
Not: virüs, ana makine dosyasının orijinal üstbilgisini polimorfik şifreleme döngüsü ile şifreler ve bu döngü, virüs gövdesini şifrelerken kullanılan rutinden farklıdır. Yani virüs, orijinal EXE başlığını şifrelerken ve ana gövdeyi şifrelerken, polimorfik motoru iki kez çağırır.
Virüs bulaşmış EXE dosyasının çalıştırılması sırasında, şifre çözme döngüleri ana virüs gövdesini geri yükler, ancak orijinal dosya başlığını geri yüklemez. Ana bilgisayar programına dönmek için virüsün ana bilgisayar verilerinin şifresini çözmesi gerekir, ancak rasgele seçilen şifreleme işlevleriyle motor rasgele döngüler üretir. Bu sorunu çözmek için virüs, ana verileri şifrelerken rastgele üretecin başlangıç değerlerini depolar ve bu verilerin şifresini çözerken aynı değerlere sahip polimorfik jeneratörü çalıştırır. Sonuç olarak, jeneratör, ana veriyi şifrelemek için kullanılan kodun aynısını getirmekte ve bu rutinin onu şifresini çözerek çalıştırılmaktadır.
EXE dosyaları bulaşıyor (ekleme)
Dosya uzunluğu 32 K'dan büyükse, virüs, EXE ana modülünün başlangıcına gider (EXE başlığından hemen sonra), kodun 6K'sını okur ve orada C / Pascal rutinlerini arar. Genellikle C / Pascal rutinleri, BP kaydını kaydeden aynı "başlık" dan başlar ve yığın gösterici SP'yi BP'ye taşır.Virüs, bu "üstbilgiler" için kodu tarar ve bu tür bir kod bulunursa, virüs bir sonraki alt yordamın veya yer değiştirilmiş adresin çakışmasını önlemek için RET veya CALL FAR talimatı için sonraki 54 saat bayt kodunu tarar. Böyle bir kod (RET veya CALL FAR) bulunursa, virüs enfeksiyon rutininden çıkar.
Sonra virüs bu rutinin 54h byte'ını okur, virüs yükleyicisinin koduyla yazar, daha sonra ana virüs gövdesini polimorfik motorla şifreler ve dosya sonuna kaydeder. Daha sonra virüs, basit SUB fonksiyonu ile alt programın orijinal kodunu ve yükleyicinin ikinci kısmını şifreler ve dosyayı dosyanın sonuna kaydeder. Sonra virüs, dosyanın sonuna "rastgele" enfeksiyon yöntemi ile aynı şekilde rastgele veriler yazar.
Enfekte bulaşmadı------------ --------+ -------------- + + -------------- + �Exe Başlık � �Exe Başlık � + -------------- � + -------------- � �Ana EXE kodu � �Ana EXE kodu � � -------------- � � -------------- � /C / Pascal subr � - + �Virus yükleyici � Bölüm 1, 52h bayt, şifrelenmemiş � -------------- � � � -------------- � EXE � � � Ana EXE kodu � � � � � (devam) � + -------------- + � + -------------- � � �Virus pol Polimorfik döngülerle şifrelenmiş � � -------------- � Command �Virus loader SUB Bölüm 2, SUB komutu ile şifrelenmişH � -------------- � 70 sa bayt+ -> �Saved kodu pat Yamalı alt yordamın orijinal kodu,SUB ile şifrelenmiş h -------------- � 52h bayt �Random verileri � dosya uzunluğu / 9Dh, kalan 25h+ -------------- +Yükleyicinin çalıştırılması, PSP alanlarını kullanarak ana dosya adını arar, dosyaları açar, dosya sonuna arar, daha sonra damlalıkların ikinci kısmını okur, çözer ve çalıştırır. Bu bölüm, yamalanmış alt yordamı geri yükler, sistem belleğini (geleneksel veya UMB) ayırır, ana virüs gövdesini okur ve denetimi şifre çözme polimorfik döngüsüne geçirir. Bu döngü virüs gövdesinin şifresini çözer ve kontrolü kurulum rutinine geçirir.
Bu çok sinsi bir enfeksiyon yoludur. Virüsün kodu dosyada gizlidir ve dosya kodundan virüs koduna doğrudan giriş yoktur. Virüs yükleyiciyle değiştirilen alt program, "nadiren" gerçekleştirilebilir. Örneğin, hata iletisini görüntüleyen alt yordam. Böylece virüs, bu tür dosyalarda uzun süre "uyuyabilir" ve daha sonra sisteme bazı sınırlı koşullar altında atlar ve bulaşır.
Arşivleri Arşivleme
Arşiv durumunda virüs, virüs bulaşmış COM damlalık görüntüsünü belleğe alır ve arşive ekler. Bu COM damlalıkları her zaman JMP komutu ile başlar, ardından rastgele veriler, şifrelenmiş virüs kodu ve şifre çözme polimorfik döngüdür. JMP komutu, kontrolü şifre çözme döngüsüne getirir.Damlalık adı rastgele seçilir ve .COM uzantısı ile tamamlanır, örneğin:
HAIF.COM, UCM.COM, DOO.COM, VLG.COM, vb.Arşiv alanlarını işlerken virüs harici bir yardımcı program kullanmaz, ancak gerekli tüm alanları kendisi doldurur. Virüs damlalığı paketlemez, ancak "saklanmış" yöntemini kullanır - virüs "olduğu gibi" arşivde saklanır. Virüs bulaşırken arşiv içeriğini kontrol eder ve iki kez enfekte etmez.
OBJ ve LIB Dosyalarını Enfekte Etme
OBJ / LIB modüllerini enfekte ederken virüs dosya alanlarını kontrol eder, oluşturur ve polimorfik döngülerle şifrelenmiş virüs kodunu içeren yeni nesne kayıtlarına ekler.Nesne dosyasını tararken, virüs, C / Pascal alt yordamı "üstbilgisi" için olduğu gibi EXE dosyasının içine eklenirken bu dosyanın kodunu denetler ve yalnızca bu kodun bulunması durumunda dosyalara bulaşır. Ancak OBJ veya LIB modülünde virüs, yükleyicinin kodlarını oraya indirmez, fakat C / Pascal başlığını CALL komutuyla (E8xxxx) üzerine yazar.
CALL'in virüs polimorfik şifre çözme döngüsüne kontrolü getirdiği yürütülebilir dosyaya bağlı olmak. Bu döngü virüs kodunu çözer ve kontrolü virüs yükleme rutinine geçirir.
EXE dosyalarının (ekleme) yanı sıra ÇAĞRI kontrolünü asla alamaz ve virüs uzun süre uyuyabilir. Ancak bazı koşullar altında virüs dışarı fırlayabilir ve sistemi enfekte edebilir.
INT 25h İşleyici
Bu işleyici, INT 25h seviyesinde gizli rutini gerçekleştirmektedir. Dizin girişlerine erişilirken virüs, dosya uzunluğunu orijinal olanlarla değiştirir, virüs bulaşmış dosyanın üstbilgisini okurken virüs geri yükler ve orijinal biçimini getirir.Virüs, tabii ki, INT 25h seviyesinde% 100 gizlilik gerçekleştirmiyor. Gizli rutini atlamanın yolları var. Ancak, bazı anti-virüs programları, dosya içeriğini INT 21h DOS işlevleriyle okursa, dizin yapısını okur ve sonra içeriğini 25 INT çağrıları mutlak olarak arar, virüs görünmez kalır.
Tetik Rutin
ZIP dosyaları işlenirken, virüs "saklanan" yöntemle dolu bir kayıt bulur, ZIP dosyasının tarih ve zaman damgasını kontrol eder. Bu dosyanın son değiştirilme yılı 1996 ya da daha fazlaysa, virüs, C: 'den Z:' ye kadar olan tüm disklerin tüm dizinlerinin tüm dosyalarını arar ve daha sonra dosyaları ve tüm alt dizini siler.Daha fazlasını okuyun
Bölgenizde yayılan güvenlik açıklarının istatistiklerini öğrenin statistics.securelist.com