Главная Блог Интернет

Компьютерные вирусы - непобедимые убийцы

Популярное начало истории о конце света в массовой культуре - заражение всех и вся каким-нибудь страшным вирусом. Компьютерные вирусы тоже частенько возводят в ранг непобедимых убийц, но насколько оправданно?
Компьютерные вирусы

Начнём с того, что появление компьютерных вирусов - важный этап для области высоких технологий: благодаря им программирование и вообще вся высокотехнологичная сфера получила мощный толчок в развитии.

Но, несмотря на то что с момента появления первого массового вируса прошло уже почти 30 лет, в целом их структура не сильно изменилась. Конечно, они становятся всё более изощренными и сложными в анализе, но поведение компьютерных вирусов по-прежнему схоже с поведением их тёзок от биологии - они внедряются в организм, самовоспроизводятся и наносят ему вред.

И ТАК, ЗА мной, ЧИТАТЕЛЬ! Я предлагаю попробовать вместе создать абстрактный вирус. Но начнём с теории. Практически в любом программном обеспечении существуют так называемые уязвимости - недостатки проектирования системы, ошибки программирования или просто ненадежные пароли, которыми может воспользоваться вирус для проникновения внутрь. Он состоит из двух частей: инфектора и непосредственно вредоносного кода. Первый блок использует уязвимости системы - находит подходящее место в заражаемом объекте, а второй всячески нарушает обычную её работу.

Исполняемые файлы - то есть файлы, которые содержат программу в том виде, в котором она будет «понятна» и сможет быть исполнена компьютером (к примеру, с расширением *.ехе), - состоят из секций, которые имеют размер 2n байт. Но не все байты в секциях заполнены, порой там образуются пустоты, которые можно использовать в качестве пристанища для нашего вируса. Поэтому надо высчитать свободное место и быть уверенным, что зловредный код помещается туда целиком, - иначе работоспособность инфицируемого объекта будет нарушена, а это позволит быстро выявить вирус. Так что инфектор должен найти лазейку и внедрить туда тело «заразного» кода без вреда объекту.

Инфектор должен найти лазейку и внедрить туда тело "заразного" кода без вреда самому объекту.

Такого рода лазеек существует несколько: кроме упомянутого «пробела» между секциями, это начало основной кодовой секции исполняемого файла, байтовые отступы между заголовком и началом кодовой секции, собственная секция, которую вирусный код пристраивает в самом конце файла (правда, этот вариант - слишком очевидный для антивирусов).

Нашли свободное место и записали туда вирус? Отлично! Однако это всего лишь полдела, не менее сложная задача - правильно запустить код, чтобы он выполнил все нужные действия максимально скрытно и не вызвав подозрений у программ-защитников, антивирусов. Тут вариантов уже чуть меньше: выполнять код до начала работы программы-носителя, между инструкциями или после завершения работы зараженной программы.

Исполнение между инструкциями выглядит наиболее перспективным, потому как в случае изящного внедрения и грамотного перехвата управления можно успеть порядочно напакостить ещё до тех пор, пока антивирус что-то заподозрит.

В ЦЕЛОМ АЛГОРИТМ ЗАРАЖЕНИЯ МОЖЕТ ВЫГЛЯДЕТЬ ТАК

 
  1. Находим место для вируса. Если есть место в существующих секциях - выбираем его, в противном случае - создаем новую секцию.
  2. Записываем вирус в выбранное место.
  3. Находим код запуска программы-хозяина.
  4. Освобождаем место под трамплин, - инструкции, которые передают управление вирусу (обычно это просто команда формата «а теперь иди по такому-то адресу и исполняй код там»), - переносим часть машинных инструкций из кода запуска в конец тела вируса.
  5. Записываем в освободившееся место трамплин.

После того как вирус запустится и сделает все свои грязные дела, он передаст управление обратно коду хозяина. Злой гений торжествует. А уж когда управление передано вирусу, скопировать файл с инфектором и отправить по почте всей адресной книге с заголовком «Смотри, какой котик!» не составит труда.

А ТЕПЕРЬ ПЕРЕМЕСТИМСЯ на другую сторону баррикад и посмотрим, в чём опасность для нас со стороны антивирусов? Для начала, у всех антивирусов есть собственная база уже обнаруженных и идентифицированных вирусов, отсортированных по методу внедрения, перехвату управления, типовому хранению данных и подозрительным действиям. Антивирус при анализе тоже читает весь исполняемый файл, выполняя часть функций инфектора, так что методы атаки и защиты в чем-то очень похожи.

Компьютерные вирусы

Вряд ли неискушенному вирусописателю удастся удивить мировые корпорации. К тому же у вирусологов есть одно мощное оружие - эвристический анализ, смысл которого заключается в гипотезе, что данный объект ведёт себя неправильно и потенциально наносит вред исполняемым файлам или другим объектам. Работает по принципу правоохранительных органов в полицейских государствах: мы сейчас вас задержим, а потом разберёмся, виноваты вы или нет. Именно поэтому антивирусы так негативно относятся ко всякого рода взломщикам, даже если там нет никаких зловредных компонентов, - ведь взломщики целенаправленно изменяют поведение исполняемого файла, даже если дело касается всего лишь компьютерной игры.

По факту, если тело вируса не распознано однозначно, то выяснить, является ли подозрительный код зловредным, можно только на практике. Вот антивирус и гребёт в карантин всё, что плохо работает, - лучше перебдеть.

О СЕНЬЮ 2015 ГОДА специализированные СМИ заговорили о «рыцаре в сияющих доспехах» - малыше Linux.Wifatch. Он ведёт себя точь-в-точь как вирус: заражает роутер, подменяет кое-какие инструкции, выполняет свой код, отличный от стандартной прошивки, - правда, есть одно «но»: внедрившись в устройство, он начинает оберегать роутер от других вирусов.

Компьютерный Робин Гуд был обнаружен в 2014 году: он даже не пытался себя скрыть и имел миролюбивые сообщения в коде, напоминая АНБ и ФБР о конституции и правах человека. Вирус сам обновлял свою базу, удалял другой обнаруженный им вредоносный код и закрывал уязвимости роутера - заполнял все «лазейки», которыми могли бы воспользоваться другие хакеры: например, отключал самый уязвимый протокол Telnet, сообщал об этом администратору сети и предлагал обновить прошивку роутера. Тем не менее, специалисты компании Symantec, занимающейся разработкой ПО в области защиты данных и информационной безопасности, заявили, что в самом вирусе есть множество потайных ходов, которые можно использовать для совершения противоправных действий.

Кстати, хотя добрый вирус создавался с целью защиты роутеров, исходный код программисты выложили только спустя год после обнаружения, в целях безопасности исключив из общего доступа скрипт сборки, - они опасались, что код сможет использовать «тёмная сторона силы», внедрив в него какой-то по-настоящему разрушительный элемент. Конечно, слепо верить разработчикам из White Team, как называют свою команду хакеры, не стоит. Они и сами прекрасно понимают, что никогда не войдут в круг доверия, однако дают слово, что не станут использовать вирус во вред.

К АЗАЛОСЬ БЫ, идея на миллион - заселить сеть «добрыми» вирусами, которые уничтожали бы вредителей и облагораживали кибер-пространство. Идея, кстати, отнюдь не новая: ещё на заре Интернета, в 1994 году программистом Веселином Бончевым (Vesselin Bontchev) был представлен доклад на тему «хороших» вирусов, программ, которые должны упрощать жизнь рядового пользователя, беря на себя часть рутинных функций. Например, в обязанности классического вируса-антивируса, которым является Wifatch, входит нахождение известных ему вредоносных программ, их уничтожение, закрытие «дыр» в программном обеспечении и уведомление пользователя в некоторых особых случаях.

Компьютерные вирусы

Одной из старейших идей является вирус-архиватор, который бы сжимал файлы перед их заражением, сохраняя свободное место на диске (правда, с появлением террабайтных винчестеров размер файла перестал играть какую-либо значимую роль).

Ещё одним помощником мог бы стать вирус-шифровалыцик, который шифрует заражённые файлы, чтобы доступ к ним мог получить только текущий пользователь системы - таким образом, содержимое файлов окажется недоступным для злоумышленников. Совсем простые вирусы поддержки, которые производили бы рутинные задачи - например, удаление временных файлов, индексацию и дефрагментацию диска, - тоже могли бы быть очень полезными. Однако есть множество «но», которые вдребезги разбивают идею создать сеть с развитой культурой «добрых» вирусов.

ИСТОРИЯ БОЛЕЗНИ

 

Первым вирусом, вызвавшим компьютерную эпидемию, стал Brian, написанный братьями Амджатом и Базитом Алви (Amdjat и Basit Faroog Alvi) в 1986 году. На фоне компьютерных вирусов последних лет Brian выглядит весьма безобидно, однако в своё время он наделал шума, выведя из строя более 18 тысяч американских компьютеров. Brian распространялся на дискетах и действовал по методу стелс-вирусов, скрывающих свое присутствие в системе, - при попытке чтения зараженного сектора он «подставлял» незараженный оригинал.

Однако Brian был призван всего лишь наказать местных пиратов, которые воровали программное обеспечение у братьев Алви, а вот настоящий массовый обвал компьютерных систем из-за зловредного кода случился гораздо позже - в 1988 году, по вине знаменитого «червя Морриса». Роберт Тэппэн Моррис написал простую самокопирующуюся программу, которая своим безудержным размножением смогла вывести из строя порядка 6000 компьютеров и парализовать работу сети ARPANET Министерства обороны США, - общие убытки, нанесенные «червём», составили 96 миллионов долларов.

В 1999 году настала эпоха легендарного вируса «Чернобыль», в оригинале CIH, по инициалам своего создателя Чэнь Ин Хао (Chen Ing Hau). Вирус попадал в компьютер с дискет, CD, по электронной почте или прятался внутри других программ, а потом «сидел в засаде», чтобы в годовщину аварии на Чернобыльской АЭС - 26 апреля 1999 года - запуститься и стереть все данные на зараженном компьютере, а в некоторых случаях даже повредить его материнскую плату. Ущерб тогда составил до 80 миллионов долларов.

После CIH были многие другие страшные эпидемии. Например, Code Red в 2001 году перехватывал управление сайта, выводя его из строя, и начинал DDoS атаку на определенные адреса. Ущерб составил 3 миллиарда долларов.

В 2004 году мир сотрясся от атаки сразу трёх глобальных «червей»: Bagle, MyDoom и Sasser. Все три распространялись по почте и наносили разной степени вред, но результат всегда был ошеломляющим. Помимо неисчислимого в миллиардах долларов ущерба, «черви» достигли и других рекордов: MyDoom увеличил загрузку Интернета на 10%, a Sasser вызвал отключение спутниковой связи некоторых французских новостных агентств и отмену нескольких рейсов Delta Airline.

А годами позже началась настоящая эпоха кибервойн - с поврежденными центрифугами в Иране и доменными печами в Германии, а также взрывами на нефтепроводах в Турции (о них вы можете почитать в «ММ» № 8 за 2015 г. - Ред.).

П ЕРВАЯ ТЕХНИЧЕСКАЯ ПРОБЛЕМА СОСТОИТ В ТОМ, ЧТО любые вирусы действуют одинаково: поиск цели, заражение, исполнение, распространение. Антивирус не интересуется целями программы-модификатора, для него любое несанкционированное изменение - вирусная активность, а значит, её источник подлежит удалению.

Вторая проблема - отсутствие контроля: именно по этой причине хакеры White Team не выкладывали исходные коды раньше времени. После того как вирус запущен, его создатель уже ничего не может сделать, чтобы остановить распространение. Если в программу закралась ошибка, которая может навредить пользователю, то разработчику остается только извиняться и молиться, чтобы ущерб был поправимым.

Третья проблема - трата ресурсов компьютера. Жизнедеятельность вируса занимает время и память, при этом запускается без вашего ведома.

Выяснить, ЯВЛЯЕТСЯ ли ПОДОЗРИТЕЛЬНЫЙ код ЗЛОВРЕДНЫМ, можно ТОЛЬКО НА ПРАКТИКЕ

Помимо технических трудностей есть, конечно же, ещё и законодательные. Несанкционированный доступ к информации во многих странах является уголовно наказуемым преступлением, а вирусы идут именно таким путем. К тому же, даже если пользователь будет оповещен, что вирус относится к разряду «добрых», маловероятно, что он станет ему доверять: само слово «вирус» не несет никаких позитивных ассоциаций.

С ПЕЦИФИКА современного информационного пространства такова, что каждое устройство стремится в сеть, обмениваться данными и инструкциями. Каждое интернет-соединение - даже открытое с мирными намерениями - несёт в себе потенциальную угрозу, поэтому лучшая защита от вирусов - полная изоляция как от всемирной сети, так и от людей.

Компьютерные вирусы

Мифы про абсолютную безопасность Linux или MacOS - не более чем неправильно интерпретированная статистика: подавляющее большинство компьютеров работает под Windows (по данным за сентябрь 2015 года - более 85% всех PC), поэтому затраты на написание вирусов под другие системы неоправданны для обычных преступников. Ну а если бюджет бесконечен и цель очень сладка, то вирус можно написать и для более экзотических систем (помните Иран?). Так что будьте бдительны, боритесь с искушением «скачать бесплатно, без смс, без регистрации» и фильтруйте сообщения с незнакомых адресов.

И кстати, вам ещё не пришло моё письмо про котиков?


Текст: Игорь Зубов


Вы можете подписаться на новости нашего блога в соцсетях:  Дзен разработка сайтов ВКонтакте разработка сайтов Одноклассники разработка сайтов

// ОПЫТ И ЗНАНИЯ

Вам нужен сайт от эксперта?

Если вам нужен не просто технически подкованный специалист, а вдумчивый разработчик,

Звоните с 8-00 до 19-00 Новокузнецк (МСК+4)

8-960-915-02-03 Билайн

и вы получите исполнителя и партнёра в одном лице.

12
+

Лет опыта

100
+

Статей в блоге