КЕЙС В 2009 г. сотрудники завода по обогащению урана в Нетензе (Иран) неосознанно заразили защищенную автономную (не подключенную к интернету) сеть завода вирусом Stuxnet, созданным спецслужбами нескольких государств. Специально спроектированный вирус уничтожил более четверти центрифуг на заводе, увеличивая скорость их работы до 1400 оборотов в секунду (вместо положенных 1000), а потом резко уменьшая. При этом инженеры завода, находящиеся в соседнем здании, видели на своих экранах нормальные показатели работы центрифуг. Этот случай считается одним из первых примеров применения кибероружия
[788].
Независимо от способа проникновения на компьютер жертвы все вредоносные программы можно разделить на три основные категории, которые будут рассмотрены далее.
Вирусы
Вирусы появились еще до распространения персональных компьютеров. Основная особенность вирусов – способность к размножению путем внедрения в другие файлы. По сути, вирус – это код, который исполняется после запуска зараженной программы пользователем или операционной системой.
Примечание. Вирусы подразделяются на резидентные и нерезидентные. Первые загружают (резидентную) часть своего кода в оперативную память, а затем перехватывают обращения операционной системы к другим объектам и заражают их. Нерезидентные вирусы такими возможностями не обладают и поэтому считаются менее опасными. Кроме того, многие вредоносные программы обладают стелс-функциями (т. е. стремятся скрыть свое присутствие) и полиморфными алгоритмами. В последнем случае вредоносные программы самостоятельно воссоздают множество собственных модифицированных версий, чтобы избежать обнаружения и сохранять вредоносные функции. Для усложнения распознавания они шифруют свой код, используя разные ключи шифрования
[789]. Для борьбы с полиморфизмом вредоносных программ в антивирусном программном обеспечении применяются технологии эвристического анализа.
Вирусы обычно предназначены для повреждения или удаления данных и подразделяются на:
■ файловые вирусы, обычно внедряемые в исполнительные модули программ, которые затем запускаются пользователем или операционной системой;
■ загрузочные вирусы, проникающие в загрузочные сектора HDD или SSD и flash-накопителей); активация вируса происходит при загрузке операционной системы с зараженного диска;
■ макровирусы, заражающие файлы документов с макросами Microsoft Office и др.;
■ вирусные скрипты (в том числе и пакетные
[790]) чаще всего проникают на компьютер пользователя в виде почтовых сообщений и заражают оболочку Windows, Java-приложения и т. д.
[791],
[792]
Черви
Черви, в отличие от вирусов, это самостоятельные компьютерные программы. Они способны к самостоятельному распространению по локальным сетям и через интернет различными методами: от рассылки своих копий по электронной почте до прямой передачи на другие компьютеры с использованием уязвимостей в программах и операционных системах. Часто для активации червя даже не требуется никаких действий пользователя. Черви являются в некотором роде вирусами, так как созданы на основе саморазмножающихся программ, но не могут заражать существующие файлы. Вместо этого они ищут уязвимости в сети или системе, чтобы распространяться дальше. Кроме того, черви в отличие от вирусов обычно нацелены на размножение, а не на повреждение и удаление данных. Некоторые черви существуют в виде сохраненных на жестком диске файлов, а другие находятся лишь в оперативной памяти компьютера. Классифицируются следующие виды червей:
■ Классические черви размножаются самостоятельно через сетевые ресурсы, но в отличие от сетевых червей для их активации пользователю требуется запускать их, о чем будет сказано ниже. Такие черви ищут удаленные компьютеры и копируют себя в каталоги, открытые для чтения и записи. При этом черви данного типа перебирают доступные сетевые каталоги, используя функции операционной системы, и случайным образом ищут в глобальной сети компьютеры, подключаются к ним и пытаются открыть их диски для полного доступа.
Примечание. Сигнатура – хранящийся в базе данных антивирусной компании уникальный идентификатор вредоносного объекта. Если образец этого объекта ранее не исследовался и его сигнатуры нет в базе данных (например, если код вируса совершенно новый либо существенно обфусцирован (запутан с помощью мусора) или изменен (полиморфные вирусы)), антивирусное программное обеспечение не сможет опознать его
[793]. Для решения проблемы опознавания новых и измененных вирусов, как уже упоминалось, применяются технологии эвристического (вероятностного) анализа
[794].
■ Сетевые черви обладают способностью к саморазмножению в компьютерных сетях без участия пользователей. Для заражения уязвимых компьютеров червь посылает специальный сетевой пакет (эксплойт), в результате чего код червя проникает на компьютер-жертву и активируется. Если сетевой пакет содержит только часть кода червя, то после ее проникновения основной файл червя скачивается и исполняется. Часто сетевые черви используют сразу несколько эксплойтов для повышения эффективности заражения.
Email-черви распространяются по каналам электронной почты либо в виде вложений в письма, либо в виде ссылок на вредоносный файл. После попадания на компьютер пользователя червь рассылает себя по всем адресам, например: по адресам, обнаруженным в адресной книге; отправителям и получателям писем на данном компьютере (как правило, многих из них пользователь не заносит в адресную книгу); по адресам, обнаруженным в содержимом файлов на диске. К разновидностям почтовых червей можно отнести P2P-червей (распространяются через пиринговые файлообменные сети), IM-червей (саморазмножаются в системах мгновенного обмена сообщениями, таких как Facebook Messenger, Skype или WhatsApp) и IRC-червей (распространяются через IRC-каналы).
Структура антивирусной программы
Антивирусные программы обычно состоят из нескольких компонентов, причем один и тот же производитель может выпускать несколько версий приложения, включающих определенный набор модулей и ориентированных на различные сферы использования.