Программно-математическое воздействие
Вредоносные программы и их классификация
Программно-математическое воздействие - это воздействие на защищаемую информацию с помощью вредоносных программ.
Вредоносная программа - программа, предназначенная для осуществления несанкционированного доступа к информации и (или) воздействия на информацию или ресурсы информационной системы[10.1]. Иными словами вредоносной программой называют некоторый самостоятельный набор инструкций, который способен выполнять следующее:
- скрывать свое присутствие в компьютере;
- обладать способностью к самоуничтожению, маскировкой под легальные программы и копирования себя в другие области оперативной или внешней памяти;
- модифицировать (разрушать, искажать) код других программ;
- самостоятельно выполнять деструктивные функции – копирование, модификацию, уничтожение, блокирование и т.п.
- искажать, блокировать или подменять выводимую во внешний канал связи или на внешний носитель информацию.
Основными путями проникновения вредоносных программ в АС, в частности, на компьютер, являются сетевое взаимодействие и съемные носители информации (флешки, диски и т.п.). При этом внедрение в систему может носить случайный характер.
Основными видами вредоносных программ являются:
- программные закладки;
- программные вирусы;
- сетевые черви;
- другие вредоносные программы, предназначенные для осуществления НСД.
К программным закладкам относятся программы и фрагменты программного кода, предназначенные для формирования недекларированных возможностей легального программного обеспечения.
Недекларированные возможности программного обеспечения – функциональные возможности программного обеспечения, не описанные в документации[10.2]. Программная закладка часто служит проводником для других вирусов и, как правило, не обнаруживаются стандартными средствами антивирусного контроля.
Закладки иногда делят на программные и аппаратные, но фактически все закладки – программные, так как под аппаратными закладками подразумеваются так называемые прошивки.
Программные закладки различают в зависимости от метода их внедрения в систему:
- программно-аппаратные. Это закладки, интегрированные в программно-аппаратные средства ПК (BIOS, прошивки периферийного оборудования);
- загрузочные. Это закладки, интегрированные в программы начальной загрузки (программы-загрузчики), располагающиеся в загрузочных секторах;
- драйверные. Это закладки, интегрированные в драйверы (файлами, необходимые операционной системе для управления подключенными к компьютеру периферийными устройствами);
- прикладные. Это закладки, интегрированные в прикладное программное обеспечение (текстовые редакторы, графические редакторы, различные утилиты и т.п.);
- исполняемые. Это закладки, интегрированные в исполняемые программные модули. Программные модули чаще всего представляют собой пакетные файлы, которые состоят из команд операционной системы, выполняемых одна за другой, как если бы их набирали на клавиатуре компьютера;
- закладки-имитаторы. Это закладки, которые с помощью похожего интерфейса имитируют программы, в ходе работы которых требуется вводить конфиденциальную информацию;
Для выявления программных закладок часто используется качественный подход, заключающийся в наблюдении за функционированием системы, а именно:
- снижение быстродействия;
- изменение состава и длины файлов;
- частичное или полное блокирование работы системы и ее компонентов;
- имитация физических (аппаратных) сбоев работы вычислительных средств и периферийных устройств;
- переадресация сообщений;
- обход программно-аппаратных средств криптографического преобразования информации;
- обеспечение доступа в систему с несанкционированных устройств.
Существуют также диагностические методы обнаружения закладок. Так, например, антивирусы успешно находят загрузочные закладки. С инициированием статической ошибки на дисках хорошо справляется Disk Doctor, входящий в распространенный комплекс утилит Norton Utilities. К наиболее распространенным программным закладкам относится "троянский конь".
Троянским конем называется:
- программа, которая, являясь частью другой программы с известными пользователю функциями, способна втайне от него выполнять некоторые дополнительные действия с целью причинения ему определенного ущерба;
- программа с известными ее пользователю функциями, в которую были внесены изменения, чтобы, помимо этих функций, она могла втайне от него выполнять некоторые другие (разрушительные) действия.
Перечислим основные виды троянских программ и их возможности:
- Trojan-Notifier - Оповещение об успешной атаке. Троянцы данного типа предназначены для сообщения своему "хозяину" о зараженном компьютере. При этом на адрес "хозяина" отправляется информация о компьютере, например, IP-адрес компьютера, номер открытого порта, адрес электронной почты и т. п.
- Trojan-PSW - Воровство паролей. Они похищают конфиденциальные данные с компьютера и передают их хозяину по электронной почте.
- Trojan-Clicker — интернет-кликеры - Семейство троянских программ, основная функция которых — организация несанкционированных обращений к интернет-ресурсам (обычно к веб-страницам). Методы для этого используются разные, например установка злонамеренной страницы в качестве домашней в браузере.
- Trojan-DDoS - Trojan-DDoS превращают зараженный компьютер в так называемый бот, который используется для организации атак отказа в доступе на определенный сайт. Далее от владельца сайта требуют заплатить деньги за прекращение атаки.
- Trojan-Proxy - Троянские прокси-сервера. Семейство троянских программ, скрытно осуществляющих анонимный доступ к различным Интернет-ресурсам. Обычно используются для рассылки спама.
- Trojan-Spy - Шпионские программы. Они способны отслеживать все ваши действия на зараженном компьютере и передавать данные своему хозяину. В число этих данных могут попасть пароли, аудио и видео файлы с микрофона и видеокамеры, подключенных к компьютеру.
- Backdoor - Способны выполнять удаленное управление зараженным компьютером. Его возможности безграничны, весь ваш компьютер будет в распоряжении хозяина программы. Он сможет рассылать от вашего имени сообщения, знакомиться со всей информацией на компьютере, или просто разрушить систему и данные без вашего ведома.
- Trojan-Dropper - Инсталляторы прочих вредоносных программ. Очень похожи на Trojan-Downloader, но они устанавливают злонамеренные программы, которые содержатся в них самих.
- Rootkit - способны прятаться в системе путем подмены собой различных объектов. Такие трояны весьма неприятны, поскольку способны заменить своим программным кодом исходный код операционной системы, что не дает антивирусу возможности выявить наличие вируса.
Абсолютно все программные закладки, независимо от метода их внедрения в компьютерную систему, срока их пребывания в оперативной памяти и назначения, имеют одну общую черту: обязательное выполнение операции записи в оперативную или внешнюю память системы. При отсутствии данной операции никакого негативного влияния программная закладка оказать не может.
Вирус (компьютерный, программный) – исполняемый программный код или интерпретируемый набор инструкций, обладающий свойствами несанкционированного распространения и самовоспроизведения. Созданные дубликаты компьютерного вируса не всегда совпадают с оригиналом, но сохраняют способность к дальнейшему распространению и самовоспроизведению. Таким образом, обязательным свойством программного вируса является способность создавать свои копии и внедрять их в вычислительные сети и/или файлы, системные области компьютера и прочие выполняемые объекты. При этом дубликаты сохраняют способность к дальнейшему распространению.
Жизненный цикл вируса состоит из следующих этапов:
- Проникновение на компьютер
- Активация вируса
- Поиск объектов для заражения
- Подготовка вирусных копий
- Внедрение вирусных копий
Классификация вирусов и сетевых червей представлена на рисунке 10.1.
Вирусный код загрузочного типа позволяет взять управление компьютером на этапе инициализации, еще до запуска самой системы. Загрузочные вирусы записывают себя либо в в boot-сектор, либо в сектор, содержащий системный загрузчик винчестера, либо меняют указатель на активный boot-сектор. Принцип действия загрузочных вирусов основан на алгоритмах запуска ОС при включении или перезагрузке компьютера: после необходимых тестов установленного оборудования (памяти, дисков и т. д.) программа системной загрузки считывает первый физический сектор загрузочного диска и передает управление на А:, С: или CD-ROM, в зависимости от параметров, установленных в BIOS Setup.
В случае дискеты или CD-диска управление получает boot-сектор диска, который анализирует таблицу параметров диска (ВРВ — BIOS Parameter Block), высчитывает адреса системных файлов ОС, считывает их в память и запускает на выполнение. Системными файлами обычно являются MSDOS.SYS и IO.SYS, либо IBMDOS.COM и IBMBIO.COM, либо другие в зависимости от установленной версии DOS, и/или Windows, или других ОС. Если же на загрузочном диске отсутствуют файлы операционной системы, программа, расположенная в boot-секторе диска, выдает сообщение об ошибке и предлагает заменить загрузочный диск.
В случае винчестера управление получает программа, расположенная в MBR винчестера. Она анализирует таблицу разбиения диска (Disk Partition Table), вычисляет адрес активного boot-сектора (обычно этим сектором является boot-сектор диска С:), загружает его в память и передает на него управление. Получив управление, активный boot-сектор винчестера проделывает те же действия, что и boot-сектор дискеты.
При заражении дисков загрузочные вирусы подставляют свой код вместо какой-либо программы, получающей управление при загрузке системы. Принцип заражения, таким образом, одинаков во всех описанных выше способах: вирус "заставляет" систему при ее перезапуске считать в память и отдать управление не оригинальному коду загрузчика, а коду вируса.
Пример: Вредоносная программа Virus.Boot.Snow.a записывает свой код в MBR жесткого диска или в загрузочные сектора дискет. При этом оригинальные загрузочные сектора шифруются вирусом. После получения управления вирус остается в памяти компьютера (резидентность) и перехватывает прерывания. Иногда вирус проявляет себя визуальным эффектом - на экране компьютера начинает падать снег.
Файловые вирусы – вирусы, которые заражают непосредственно файлы. Файловые вирусы можно разделить на три группы в зависимости от среды, в которой распространяется вирус:
- файловые вирусы – работают непосредственно с ресурсами операционной системы. Пример: один из самых известных вирусов получил название "Чернобыль". Благодаря своему небольшому размеру (1 Кб) вирус заражал PE-файлы таким образом, что их размер не менялся. Для достижения этого эффекта вирус ищет в файлах "пустые" участки, возникающие из-за выравнивания начала каждой секции файла под кратные значения байт. После получения управления вирус перехватывает IFS API, отслеживая вызовы функции обращения к файлам и заражая исполняемые файлы. 26 апреля срабатывает деструктивная функция вируса, которая заключается в стирании Flash BIOS и начальных секторов жестких дисков. Результатом является неспособность компьютера загружаться вообще (в случае успешной попытки стереть Flash BIOS) либо потеря данных на всех жестких дисках компьютера.
- Макровирусы – вирусы, написанные на макроязыках, встроенных в некоторые системы обработки данных (текстовые редакторы, электронные таблицы и т.п.). Самыми распространенными являются вирусы для программ Microsoft Office. Для своего размножения такие вирусы используют возможности макроязыков и при их помощи переносят себя (свои копии) из одного документа в другой.
Для существования макровирсуов в конкретном редакторе встроенный в него макроязык должен обладать следующими возможностями:
- привязка программы на макроязыке к конкретному файлу;
- копирование макропрограмм из одного файла в другой;
- получение управления макропрограммой без вмешательства пользователя (автоматические или стандартные макросы).
Данным условиям удовлетворяют прикладные программы Microsoft Word, Excel и Microsoft Access. Они содержат в себе макроязыки: Word Basic, Visual Basic for Applications. Современные макроязыки обладают вышеперечисленными особенностями с целью предоставления возможности автоматической обработки данных.
Большинство макровирусов активны не только в момент открытия (закрытия) файла, но до тех пор, пока активен сам редактор. Они содержат все свои функции в виде стандартных макросов Word/Excel/Office. Существуют, однако, вирусы, использующие приемы скрытия своего кода и хранящие свой код в виде не макросов. Известно три подобных приема, все они используют возможность макросов создавать, редактировать и исполнять другие макросы. Как правило, подобные вирусы имеют небольшой макрос-загрузчик вируса, который вызывает встроенный редактор макросов, создает новый макрос, заполняет его основным кодом вируса, выполняет и затем, как правило, уничтожает (чтобы скрыть следы присутствия вируса). Основной код таких вирусов присутствует либо в самом макросе вируса в виде текстовых строк (иногда – зашифрованных), либо хранится в области переменных документа[10.3].
- Сетевые вирусы – вирусы, которые для своего распространения используют протоколы и возможности локальных и глобальных сетей. Основным свойством сетевого вируса является возможность самостоятельно тиражировать себя по сети. При этом существуют сетевые вирусы, способные запустить себя на удаленной станции или сервере.
Основные деструктивные действия, выполняемые вирусами и червями:
- загрузка каналов связи
- атаки "отказ в обслуживании"
- потеря данных
- нарушение работы ПО
- загрузка ресурсов компьютера
- хищение информации.
Помимо всего вышеописанного, существуют вирусы комбинированного типа, которые объединяют в себе свойства разных типов вирусов, например, файлового и загрузочного. В виде примера приведем популярный в минувшие годы файловый загрузочный вирус под названием "OneHalf". Этот вирусный код, оказавшись в компьютерной среде операционной системы "MS-DOS" заражал основную запись загрузки. В процессе инициализации компьютера он шифровал секторы основного диска, начиная с конечных. Когда вирус оказывается в памяти, он начинает контролировать любые обращения к шифровальным секторам и может расшифровать их таким образом, что все программы будут работать в штатном режиме. Если вирус "OneHalf" просто стереть из памяти и сектора загрузки, то информация, записанная в шифровальном секторе диска, станет недоступной. Когда вирус зашифровывает часть диска, он предупреждает об этом следующей надписью: "Dis is one half, Press any key to continue...". После этих действий он ждет, когда вы нажмете на любую кнопку и продолжите ра ботать. В вирусе "OneHalf" использованы разные маскировочные механизмы. Он считается невидимым вирусом и выполняет полиморфные алгоритмические функции. Обнаружить и удалить вирусный код "OneHalf" весьма проблематично, потому что, его могут увидеть не все антивирусные программы.
На этапе подготовки вирусных копий современные вирусы часто используют методы маскировки копий с целью затруднения их нахождения антивирусными средствами[10.4]:
- Шифрование — вирус состоит из двух функциональных кусков: собственно вирус и шифратор. Каждая копия вируса состоит из шифратора, случайного ключа и собственно вируса, зашифрованного этим ключом.
- Метаморфизм — создание различных копий вируса путем замены блоков команд на эквивалентные, перестановки местами кусков кода, вставки между значащими кусками кода "мусорных" команд, которые практически ничего не делают.
Сочетание этих двух технологий приводит к появлению следующих типов вирусов.
- Шифрованный вирус — вирус, использующий простое шифрование со случайным ключом и неизменный шифратор. Такие вирусы легко обнаруживаются по сигнатуре шифратора.
- Метаморфный вирус — вирус, применяющий метаморфизм ко всему своему телу для создания новых копий.
- Полиморфный вирус — вирус, использующий метаморфный шифратор для шифрования основного тела вируса со случайным ключом. При этом часть информации, используемой для получения новых копий шифратора также может быть зашифрована. Например, вирус может реализовывать несколько алгоритмов шифрования и при создании новой копии менять не только команды шифратора, но и сам алгоритм.
Червь — тип вредоносных программ, распространяющихся по сетевым каналам, способных к автономному преодолению систем защиты автоматизированных и компьютерных сетей, а также к созданию и дальнейшему распространению своих копий, не всегда совпадающих с оригиналом, и осуществлению иного вредоносного воздействия. Самым знаменитым червем является червь Moriss, механизмы работы которого подробно описаны в литературе. Червь появился в 1988 году и в течение короткого промежутка времени парализовал работу многих компьютеров в Интернете. данный червь является "классикой" вредоносных программ, а механизмы нападения, разработанные автором при его написании, до сих пор используются злоумышленниками. Moriss являлся самораспространяющейся программой, которая распространяла свои копии по сети, получая привилегированные права доступа на хостах сети за счет использования уязвимостей в операционной системе. Одной из уязвимостей, использованных червем, была уязвимая версия программы sendmail (функция "debug" программы sendmail, которая устанавливала отладочный режим для текущего сеанса связи), а другой - программа fingerd (в ней содержалась ошибка переполнения буфера). Для поражения систем червь использовал также уязвимость команд rexec и rsh, а также неверно выбранные пользовательские пароли.
На этапе проникновения в систему черви делятся преимущественно по типам используемых протоколов:
- Сетевые черви — черви, использующие для распространения протоколы Интернет и локальных сетей. Обычно этот тип червей распространяется с использованием неправильной обработки некоторыми приложениями базовых пакетов стека протоколов tcp/ip.
- Почтовые черви — черви, распространяющиеся в формате сообщений электронной почты. Как правило, в письме содержится тело кода или ссылка на зараженный ресурс. Когда вы запускаете прикрепленный файл, червь активизируется; когда вы щелкаете на ссылке, загружаете, а затем открываете файл, червь также начинает выполнять свое вредоносное действие. После этого он продолжает распространять свои копии, разыскивая другие электронные адреса и отправляя по ним зараженные сообщения. Для отправки сообщений червями используются следующие способы: прямое подключение к SMTP-серверу, используя встроенную в код червя почтовую библиотеку; использование сервисов MS Outlook; использование функций Windows MAPI. Для поиска адресов жертв чаще всего используется адресная книга MS Outlook, но может использоваться также адресная база WAB. Червь может просканировать файлы, хранящиеся на дисках, и выделить из них строки, относящиеся к адресам электронной почты. Черви могут отсылать свои копии по всем адресам, обнаруженным в почтовом ящике (некоторые обладают способностью отвечать на письма в ящике). Встречаются экземпляры, которые могут комбинировать способы.
- IRC-черви — черви, распространяющиеся по каналам IRC (Internet Relay Chat). Черви этого класса используют два вида распространения: посылание пользователю URL-ссылки на файл-тело; отсылку пользователю файла (при этом пользователь должен подтвердить прием).
- P2P-черви — черви, распространяющиеся при помощи пиринговых (peer-to-peer) файлообменных сетей. Механизм работы большинства подобных червей достаточно прост: для внедрения в P2P-сеть червю достаточно скопировать себя в каталог обмена файлами, который обычно расположен на локальной машине. Всю остальную работу по его распространению P2P-сеть берет на себя - при поиске файлов в сети она сообщит удаленным пользователям о данном файле и предоставит весь необходимый сервис для его скачивания с зараженного компьютера. Существуют более сложные P2P-черви, которые имитируют сетевой протокол конкретной файлообменной системы и положительно отвечают на поисковые запросы (при этом червь предлагает для скачивания свою копию).
- IM-черви — черви, использующие для распространения системы мгновенного обмена сообщениями (IM, Instant Messenger - ICQ, MSN Messenger, AIM и др.). Известные компьютерные черви данного типа используют единственный способ распространения - рассылку на обнаруженные контакты (из контакт-листа) сообщений, содержащих URL на файл, расположенный на каком-либо веб - сервере. Данный прием практически полностью повторяет аналогичный способ рассылки, использующийся почтовыми червями.
Мы перечислили наиболее распространенные категории сетевых червей, на практике их значительно больше. Например, в настоящее время всё большую "популярность" приобретают мобильные черви и черви, распространяющие свои копии через общие сетевые ресурсы. Последние используют функции операционной системы, в частности, перебирают доступные сетевые папки, подключаются к компьютерам в глобальной сети и пытаются открыть их диски на полный доступ. Отличаются от стандартных сетевых червей тем, что пользователю нужно открыть файл с копией червя, чтобы активизировать его.
По деструктивным возможностям вирусы и сетевые черви можно разделить на:
- безвредные, т. е. никак не влияющие на работу компьютера (кроме уменьшения свободной памяти на диске в результате своего распространения);
- неопасные, влияние которых ограничивается уменьшением свободной памяти на диске и графическими, звуковыми и прочими эффектами;
- опасные вирусы, которые могут привести к серьезным сбоям в работе компьютера;
- очень опасные — в алгоритм их работы заведомо заложены процедуры, которые могут вызвать потерю программ, уничтожить данные, стереть необходимую для работы компьютера информацию, записанную в системных областях памяти, и даже, как гласит одна из непроверенных компьютерных легенд, способствовать быстрому износу движущихся частей механизмов — вводить в резонанс и разрушать головки некоторых типов винчестеров.
Но даже если в алгоритме вируса не найдено ветвей, наносящих ущерб системе, этот вирус нельзя с полной уверенностью назвать безвредным, так как проникновение его в компьютер может вызвать непредсказуемые и порой катастрофические последствия. Ведь вирус, как и всякая программа, имеет ошибки, в результате которых могут быть испорчены как файлы, так и сектора дисков (например, вполне безобидный на первый взгляд вирус DenZuk довольно корректно работает с 360-килобайтовыми дискетами, но может уничтожить информацию на дискетах большего объема). До сих пор попадаются вирусы, определяющие СОМ или ЕХЕ не по внутреннему формату файла, а по его расширению. Естественно, что при несовпадении формата и расширения имени файл после заражения оказывается неработоспособным. Возможно также "заклинивание" резидентного вируса и системы при использовании новых версий DOS, при работе в Windows или с другими мощными программными системами.
Если проанализировать всё вышесказанное, то можно заметить схожесть сетевых червей и компьютерных вирусов, в частности, полное совпадение жизненного цикла и самотиражирование. Основным отличием червей от программных вирусов является способность к распространению по сети без участия человека. Иногда сетевых червей относят к подклассу компьютерных вирусов.
В связи с бурным развитием Интернета и информационных технологий количество вредоносных программ и вариантов их внедрения в информационную систему неустанно растет. Наибольшую опасность представляют новые формы вирусов и сетевых червей, сигнатуры которых не известны производителям средств защиты информации. В настоящее время всё большую популярность получают такие методы борьбы, как анализ аномального поведения системы и искусственные иммунные системы, позволяющие обнаруживать новые формы вирусов.
Согласно аналитическому отчету о вирусной активности компании Panda Security за 3 квартал 2011 года соотношение созданных вредоносных программ имело вид, представленный на рисунке 10.2.
То есть три из четырех новых образцов программного обеспечения оказались троянами, на втором месте – вирусы. Если раньше вредоносное программное обеспечение создавалось чаще всего в экспериментальных или "шуточных"целях и являлось скорее актом кибервандализма, то теперь это мощное оружие для получения материальной или иной выгоды, приобретающее скорее характер киберпреступности.
В любом случае вредоносные программы способны наносить значительный ущерб, реализуя угрозы целостности, конфиденциальности и доступности информации, о которых мы говорили ранее. Наиболее популярным методом борьбы с ними является установка средств антивирусной защиты.