Дату, когда появился самый первый вирус, наверное, уже никто и не
помнит. Но задолго до этого предсказывали изобретение компьютерных
программ, способных размножаться. По-настоящему громко вирусы заявили о
себе на машинах IBM PC, от которых и ведет свою историю современная
настольная компьютерная техника.
Первые вирусы, работавшие в DOS'е, атаковали COM и/или EXE файлы. При
запуске инфицированной программы вирус искал их на диске и заражал. При
этом распространялось это, как правило, на текущий каталог, потому что
написать на ассемблере подпрограмму поиска по всем директориям совсем
непросто. Вирус внедрялся в одну или несколько найденных жертв, после
чего передавал управление программе-носителю.
Файловые вирусы были довольно примитивными и распространялись
достаточно медленно - ведь чтобы произошло заражение, нужно было
запустить уже "инфицированную" программу. Очевидно, если работать с ней
редко или вообще не использовать, вы будете в безопасности. Другое
дело, если в качестве жертвы выбирался часто запускаемый файл, например
COMMAND.COM. Эта программа автоматически загружается при старте
системы, а значит является наиболее желанной жертвой. Если вирус
заражал COMMAND.COM и имел функции поиска по дереву каталогов, то
вскоре весь компьютер "заболевал". Однако COMMAND.COM всегда на виду,
поэтому многие "продвинутые" пользователи постоянно проверяли, не
изменился ли его размер. Да и антивирусы приносили большую пользу.
Следовательно, появились даже такие вирусы, которые сознательно
обходили стороной COMMAND.COM - чтобы не "засветиться".
Гораздо опаснее были резидентные вирусы. После запуска они записывались
в память и брали под контроль дисковые операции (полностью или
частично). То есть обращение к любому файлу на диске могло привести к
его заражению или порче. Сидя в памяти и записываясь подряд во все
запускаемые программы, очень быстро вирус повреждал практически все
файлы на дисках, необходимость писать сложный блок поиска отпадала сама
собой - уже при запуске программы резидентный вирус получал к ней путь.
Резидентные вирусы "за бесплатно" получили "stealth" возможности:
отслеживая обращения к зараженным программам, можно выдавать ложные
сведения о размере и даже на время "выкусывать" из них вирусный код. То
есть "продвинутый" юзер мог сколько угодно рассматривать COMMAND.COM -
резидентный stealth-вирус маскировал все изменения. Не очень умные
антивирусы тоже оказывались не у дел - stealth следил за зараженными
файлами, при открытии из них самоудалялся, а при закрытии
устанавливался обратно.
Очевидно, что для таких вирусов самым главным было как можно скорее
обосноваться в памяти - иначе все обнаружится. А оптимальный способ
первым загрузиться в память - заразить бут-сектор (загрузочный) диска.
Тогда сразу же при старте системы вирус мог получить полный контроль
над ней. Особо продвинутые инфекции даже не позволяли работать
"доктору", а отлавливали запуск наиболее известных антивирусных
программ.
Почему же DOS'овые вирусы чувствовали себя так вольготно? Да потому,
что ОС DOS не имела никаких механизмов защиты: хочешь - садись в
память, хочешь - записывайся в файлы или хоть вовсе стирай их. Впрочем,
винить во всех грехах DOS будет несправедливо. Ведь он проектировался
для слабеньких компьютеров, в которых каждый байт памяти и каждый такт
процессора были на счету. Возможно, поэтому разработчики не осмелились
внедрять модули мониторинга системы. С другой стороны, ввести
элементарные пароли и разграничение прав доступа к файлам на диске не
помешало бы.
После массового перехода на Windows думалось: "Все, вирусам конец". Обо
всех старых подходах и разработках можно было сразу забыть. Дело в том,
что Windows работает в защищенном режиме, где принцип работы с памятью
в корне отличается от DOS'овского. Ни о каких резидентах не могло быть
и речи - ну что это за вирус, который будет висеть на панели задач ?
(Конечно, я немного утрирую, сделать программу относительно невидимой
можно и в Windows, но тотально контролировать систему не получится, в
принципе). Но болезни настигли и Windows. Сравнивать их с "ужасами"
файлово-бутово-резидентных stealth-вирусов язык не поворачивается. Тем
не менее, выяснилось, что и в Windows есть некоторые лазейки.
Считалось аксиомой, что текстовый файл заразить нельзя, ни при каких
условиях. То ли дело файлы Word'а, которые могут содержать макросы на
Visual Basic'е. Программа открывает файл и сразу же может выполнить
записанные в нем макросы. По-моему, такого рода вирусы распространились
по двум причинам. Во-первых, народ не привык проверять текстовые файлы
и до поры до времени просто этого не делал. Во-вторых, Visual Basic
простой и понятный язык, программировать на котором гораздо проще, чем
на Ассемблере. Если практически любой резидентный DOS-вирус был
"произведением искусства", то макрос на Visual Basic'е ничего
особенного из себя не представляет. Basic в школе проходили почти все -
вот и получили инфекции для Word'а, Excel'я и теоретически для всех
программ, файлы которых могут содержать автоматически выполняемые
команды.
И еще один момент: "продвинутый" пользователь, работая в DOS'е,
внимательно следил за винтом и дисководом. И если при запуске внешне
безобидной программы наблюдалось подозрительно долгое шуршание диска,
сразу вставал вопрос об антивирусе. Что же мы происходит в Windows? Ни
с того ни с сего заработал винт? Так это ж винда свопится, разве
непонятно?! Признайтесь честно, обращали ли Вы внимание на то, что
происходит внезапное обращение к жесткому диску? Я уже не говорю о том,
что отследить скорость загрузки программы или документа в Windows
нереально - спасибо хитрому кэшированию. Нет, я не ругаю Винду (вон
даже с большой буквы написал ), просто "мысли вслух".
Ладно, и с Word'овским вирусами все постепенно свыклись, стали
проверять документы перед загрузкой, в общем, относиться к ним с
подобающей серьезностью. И получили новый удар в виде Интернет-червей.
О подобных программах известно давно - они существовали еще задолго до
Windows'а и Outlook'а. Однако в последнее время их поминают все чаще и
чаще.
Принцип "работы" червя предельно прост - он рассылается по электронной
почте в виде прикрепленного файла, написанного, например, на Visual
Basic'е. Windows 95 OSR2 и Windows 98 с установленным Internet
Explorer'ом 4-й версии и выше содержат специальный модуль, который
может выполнять скрипты на Visual Basic'е. По большому счету,
"писателю" не нужно заранее знать, какая система установлена на
компьютере, с каким почтовым клиентом работает пользователь и т. п. Все
эти данные заблаговременно прописаны в реестре .
Для червя главная проблема - запуститься. Ведь пока пользователь
вручную не загрузит скрипт, кругом будет тишь да гладь. Ну а в
противном случае, пеняйте на себя. Червь даст команду почтовому клиенту
разослать его всем-всем-всем. Адреса можно получить из адресной книги,
из папки отправленных сообщений, да мало ли еще откуда. В общем, дело
техники. Ну а что случится с компьютером после того, как размножение
произошло, зависит только от фантазии генетика беспозвоночных (т. е.
червя).
А теперь самое время перейти к вопросу, в чем же секрет такого бешеного
распространения червя ILOVEYOU? На мой взгляд, причина кроется не в
технической продвинутости вируса, а... в названии письма и аттачмента!
Ну действительно, как не открыть файл с любовным посланием? Даже если
он пришел от неизвестного адресата. А вдруг это прекрасная фотомодель,
которая всю жизнь мечтала о встрече, но только сейчас решилась написать
? К тому же, аттач, в котором, собственно, и содержался код червя,
назывался очень хитро "love-letter-for-you.txt.vbs". При установках "по
умолчанию" Windows отображает следующее имя "love-letter-for-you.txt",
т. е. создается иллюзия самого обычного текстового файла, в котором
вирусов быть не может по определению. Дополнительные комментарии
излишни…
В итоге, мы имеем миллионы зараженных компьютеров, миллиардные убытки и
шумиху во всех изданиях, включая "Мой Компьютер". Плюс проблемы у
филиппинского "шутника". Но оставим его в покое, давайте лучше
сформулируем выводы.
Очевидно, что с DOS'овских времен изменилась сама концепция
вирусописательства, методы и технические приемы распространения.
Связано это с переходом на Winodws и скорее всего с широким
распространением Интернета. Конечно же, по сравнению с DOS'ом, Windows
гораздо больше защищена, однако и в ней, особенно в версии 95/98,
содержится масса лазеек для вирусов, червей и прочей компьютерной
заразы.
Пожалуй, наиболее логичной была бы защита не на уровне антивирусных
сторожей, мониторов и т. п., а на уровне операционной системы, которая
содержала бы дополнительные средства защиты и мониторинга, четкое
разграничение прав доступа к ресурсам и контроль за запуском скриптов.
Но что-то мне подсказывает, что даже после этого найдутся "дыры",
которые позволят вирусам выжить.
А быть может, о чудо, выйдет совершенная операционная система Windows
2010, в которой вирус не сможет существовать по определению. Поживем -
увидим…
|