Кратка история на компютърните вируси
 


Малко археология
Има противоречиви мнения за рождената дата на първия компютърен вирус. Със сигурност не е имало никакви вируси в машината на Бабидж, но Univac 1108 и IBM 360/370 вече са си имали "Pervading Animal" и "Christmas tree". Първият вирус е роден в началото на 70-те години или дори в края на 60-те, въпреки че никой тогава не го е наричал вирус. Но нека да спрем дотук с изчезналите и фосилизирани видове.
 

Пътешествието започва
Да поговорим за по-новата история: "Brain", "Vienna", "Cascade" и др. Тези, които в средата на 80-те са използвали IBM PC, си спомнят тоталната епидемия, причинена от тези вируси през 1987 - 1989. Буквите започват да падат от екрана и тълпи от потребители се втурват към сервизите за монитори (не както в наши дни - хард дискът се поврежда от старост, но винаги е виновен някой нов, непознат вирус). След това компютрите започват да пеят "Янки Дудъл", но хората вече са поумнели и никой не се опитва да си поправя говорителите. Стана ясно, че проблемът не е в хардуера, а че има вирус и то не един, а по-скоро дузина.
И така вирусите започват да заразяват файлове. "Brain" и лудата топка на "Ping-pong" отбелязват победа над буут сектора. Потребителите на IBM PC въобще не харесват новото положение и така се появяват първите противоотрови. Само някой от тях са все още живи и са прераснали от отделен проект в големи софтуерни компании, играещи голяма роля на софтуерния пазар.
По отношение разпространението на вирусите в различните държави съществуват доста големи разлики. Първият широко разпространен вирус на запад е буут вирусът "Brain", файловите вируси "Vienna" и "Cascade" се появяват по-късно. В Източна Европа и Русия първо се появяват файловите вируси, а буут вирусите идват една година по-късно.
Времето минава, вирусите се плодят и размножават. В началото те са все едни и същи: опитват се да се доберат до RAM паметта, загнездват се във файлове и сектори; периодично убиват файлове и унищожават дискети и хард дискове. Едно от първите открития е вирусът "Frodo.4096" - може би първия известен невидим вирус (стелт вирус). Той работи само на повърхността на DOS, но няколко месеца по-късно "Beast.512", също стелт вирус, вече атакува DOS kernel. Идеята за невидимост набира скорост - през лятото на 1991 има епидемия, причинена от "Dir_II".
Все пак е доста лесно човек да се отърве от стелт вирусите: достатъчно е да се изчисти RAM паметта и след това да се намери и унищожи гадината. Криптираните вируси обаче са по-трудни за унищожаване. За да се идентифицират и унищожат е необходимо да се напише специална подпрограма, която да дебъгва. Все пак, никой не е особено загрижен, докато не се появява нова генерация вируси, наречени полиморфни. Те имат различен подход към невидимостта: криптират се (в повечето случаи) и за да се декриптират по-късно, използват команди, които не се повтарят при различните заразени файлове.
 

Полиморфизъм - мутация на вируса
Първият полиморфен вирус, наречен "Chameleon" става известен в началото на деветдесетте, но проблема с полиморфните вируси набира сила около година по-късно, когато "Tequila" предизвиква световна епидемия.
Идеята за самокриптиращи се полиморфни вируси става популярна и изкарва на бял свят генератори на полиморфен код. В началото на 1992г. се появява вирусът "Dedicated", базиран на първия известен полиморфен генератор - MtE. Полиморфният генератор най-общо е обектен модул (OBJ файл), и за да се получи полиморфен мутант от обикновен, некриптиран вирус е достатъчно да се свържат техните обектни модули - полиморфния OBJ файл и OBJ файла на вируса. Така, за да се създаде истински полиморфен вирус, авторът трябва само да свърже полиморфния генератор с вируса и да го извика от кода на вируса когато желае.
За щастие MtE не се разпространява масово и не предизвиква епидемия. От своя страна разработчиците на антивирусен софтуер получават време, за да се подготвят за нови атаки.
През 1993г. полиморфните вируси са като лавина. Списъкът на вирусите, които могат да се нарекат 100% полиморфни включва (края на 1993г.): Bootache, CivilWar (4 версии), Crusher, Fly, Freddy, Ginger, Grog, Haifa, Moctezuma (2 версии), MVF, Necros, Nukehard, PcFlu (3 версии), Predator, Satanbug, Sandy, Shoker, Todor, Tremor, Trigger, Uruguay (8 версии). Тези вируси изискват специални методи за засичане, включително емулация на изпълнимия код на вируса, математически алгоритми за възстановяване на части от кода и данните на вируса и др.
Някой други вируси, като Basilisk, Daemaen, Invisible (2 версии), Mirea (няколко версии), Rasek (3 версии), Sarov, Scoundrel, Seat, Silly и Simulation не могат да се считат за 100% полиморфни. Те се криптират, но при декриптирането винаги има някакви непроменящи се битове.
Наред с полиморфните вируси се развиват и полиморфните генератори, като се използват все по-сложни методи за генериране на полиморфен код. Те се разпространяват чрез бюлетин бордовете като архивни файлове, съдържащи обектни модули, документация и готови примери. В края на 1993 година има 7 известни генератора:

MTE 0.90 (Mutation Engine),
TPE (Trident Polymorphic Engine), 4 версии
NED (Nuke Encryption Device),
DAME (Dark Angel's Multiple Encryptor)


Оттогава насам всяка година дава няколко нови, така че изброяването им е безсмислено.


Автоматизация на производството и конструктори на вируси
Колкото Мързелът е основна движеща сила на прогреса (да открием колелото, защото е много трудоемко да влачим мамута до пещерата...). Тази традиционна мъдрост не се нуждае от коментар. В средата на 1992г. прогресът, под формата на автоматизация на производството, докосва света на вирусите. На 5 юли 1992г. първият конструктор на вирусен код за IBM PC, наречен VCL (Virus Creation Laboratory) version 1.00 е готов за употреба.
VCL използва стандартен прозоречен интерфейс. С помощта на система от менюта всеки може да избира типа на желания вирус, обектите на инфектиране (.СОМ и/или .ЕХЕ), наличие или липса на криптиране, начини за защита от дебъгване, вътрешни стрингове, десет допълнителни ефекта и др. Вирусите могат да използват стандартния начин за разпространение чрез добавяне в края на файл, или чрез заместване на съдържанието на файла с тялото на вируса. Става много лесно да се правят гадни номера - ако искаш някой да има компютърни проблеми, просто стартираш VCL и в рамките на 10 - 15 минути вече имаш няколко вируса, които можеш да пуснеш в компютъра на жертвата.
По-нататък става още по-хубаво. На 27 юли същата година се появява първата версия на PS-MPC (Phalcon/Skism Mass-Produced Code Generator). Този инструмент няма прозоречен интерфейс, а използва конфигурационен файл за генериране на изходния код. Този файл съдържа описание на вируса: тип на файловете които ще се инфектират (COM или EXE), възможности за резидентност (това го няма във VCL) , метод за инсталиране на копие от резидентния вирус, възможност за заразяване на COMMAND.COM и други полезни благинки.
G2 (Phalcon/Skism's G2 0.70 beta) е друг конструктор, поддържащ PS-MPC конфигурационните файлове, но позволяващ много повече настройки. Една от версиите е с дата 1.01.1993г. Явно авторите са прекарали новогодишната нощ пред компютъра. Много по-добре би било да бяха пили шампанско...
В резултат на всичко това, писането на вируси се превръща от уважавано, креативно занимание в обикновено занимание.
 

Извън DOS
1992г. донася нещо повече от полиморфни вируси и конструктори на вируси. В края на годината се отваря нова страница в историята на компютърната вирусология - появява се първият вирус за Windows. Той е малък (по-малко от 1К) и абсолютно безобиден, но доста ефикасно заразява изпълними файлове от новия Windows формат (NewEXE).
Не много по-късно се появяват вируси за OS/2, а през януари 1996 се появява и първият Windows 95 вирус. Не-DOS вирусите постепенно изместват DOS вирусите, което всъщност е част от процеса на отмирането на DOS и заместването му от нови операционни системи и нови програми за тях.
 

Епидемии от макро вируси
Август 1995. Цялото прогресивно човечество, Microsoft и Бил Гейтс лично, празнуват представянето на новата операционна система Windows 95. Сред всичкия този шум съобщението за нов вирус, използващ принципно нов метод на заразяване, остава незабелязана. Вирусът инфектира Microsoft Word документи.
Наистина, това не е първият вирус, заразяващ Word документ. Антивирусните компании вече са експериментирали с вирус, копиращ се от един документ в друг. Никой обаче не обръща сериозно внимание на този не много успешен експеримент. В резултат на това всички антивирусни компании се оказват неподготвени за това, което следва - епидемия от макро вируси, и започват през глава да търсят решения, много от които са дори неадекватни (няколко компании почти едновременно излизат с решения, които работят в същия документ като вируса и коригират действията му).
Между другото, става необходимо да се коригира спешно и антивирусната литература. До този момент на въпроса "Възможно ли е да се зарази компютър само като отвориш файл за четене?" отговорът е бил категоричен: "Няма начин!" (всичко това придружено с камара доказателства).
В същото време вирусът, който вече си има име - Concept, продължава победоносното си шествие по света. Най-вероятно излязъл от някое поделение на Microsoft, Concept заразява хиляди, дори милиони компютри за нула време. И нищо чудно - форматът на Microsoft Word вече се е превърнал в индустриален стандарт, а за да хванеш заразата е достатъчно само да отвориш един документ. Всичко това, съчетано с набиращия сили интернет, се превръща в един от най-сериозните проблеми в историята на компютърните вируси.
След по-малко от година, някъде през лятото на 1996, се появява "Laroux" - първият макро вирус заразяващ Microsoft Excel файлове. Същата тази 1996 донася и първия инструмент за конструиране на макро вируси. В началото на следващата 1997 идва и първия полиморфен макро вирус за MS Word, както и първите вируси за Microsoft Office 97. През лятото на 1997 броят на макро вирусите достига няколко стотин.
 

Между две хилядолетия
В Краят на деветдесетте години на ХХ век и началото на новото хилядолетие носят нови зарази и то със скоростта на вече масовия интернет. Ще споменем само някои:

- The CIH virus (W95/CIH.1003.A) (Чернобил). До 1998 се смята, че вирусите могат да повреждат софтуера, но не и хардуера. След 26 април 1998г. това вече не е истина и някой потребители трябва да заменят BIOS чипа или дори цялата дънна платка.

- Melissa (W97M/Melissa.A@mm). В края на март 1999г. този макро вирус предизвиква световна епидемия, разпращайки се на първите 50 адреса от адресната книга на жертвата.

- LoveLetter (VBS/LoveLetter.A@mm) - през лятото на 2000г. се разпространи със страхотна бързина.

- Червеят Code Red. До 2001 вирусите се разпространяваха чрез файлове. Code Red обаче никога не се записва на диска. Той се разпространява като поток данни и съществува само в RAM паметта, използвайки бъг в Internet Information Server.

- Nimda (W32/Nimda.A@mm). През септември 2001 Nimda (Admin написано наобратно) отваря широко вратите на заразения компютър.

- SirCam. Разпространява се като Melissa и LoveLetter. Явно потребителите не са научили урока си...

- Klez. Задържа се на върха на класациите няколко месеца.

- BugBear. Принтерите печатаха докато свърши хартията....
 

 

Предоставено от: