Автор работы: Пользователь скрыл имя, 22 Февраля 2013 в 11:47, дипломная работа
Проблема с вредоносным программным обеспечением (далее ВПО) не является новой, точно также она не исчезнет в ближайшем будущем. Слишком много денег вложено теми людьми, которые используют трояны, вирусы и армии ботов, чтобы просто отказаться от их использования. Целью атак этого вредоносного программного обеспечения являются не только обычные пользователя домашних компьютеров, но и также пользователи корпоративных компьютеров.
Актуальность выполнения дипломного проекта по данной теме обусловлена фактом использования вредоносных программ для решения задач промышленного шпионажа.
ВВЕДЕНИЕ 3
1 АНАЛИЗ УГРОЗ ВЫЧИСЛИТЕЛЬНОМУ ПРОЦЕССУ ПРЕДПРИЯТИЯ ОТ ВРЕДОНОСНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 5
1.1 КЛАССИФИКАЦИЯ ВРЕДОНОСНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 5
1.2 КАНАЛЫ РАСПРОСТРАНЕНИЯ ВРЕДОНОСНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 6
1.3 ОПИСАНИЕ ПОПУЛЯРНЫХ ВИДОВ ВРЕДОНОСНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 7
1.4 ОБЗОР ВПО НА ПРИМЕРЕ ВИРУСА WIN32.MANIAC.B 9
1.5 ПОСТАНОВКА ЗАДАЧИ НА ДИПЛОМНОЕ ПРОЕКТИРОВАНИЕ 12
2 МЕТОДЫ БОРЬБЫ С ВРЕДОНОСНЫМ ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ 13
2.1 КОНТРОЛЬ ПРИЛОЖЕНИЙ 13
2.2 ОРГАНИЗАЦИЯ КОНТРОЛЯ ПРИЛОЖЕНИЙ В СРЕДЕ WINDOWS 14
2.3 ОРГАНИЗАЦИЯ КОНТРОЛЯ ПРИЛОЖЕНИЙ В СРЕДЕ UNIX 16
2.4 ПРОАКТИВНЫЕ ТЕХНОЛОГИИ 16
2.5 АНТИВИРУСНАЯ ЗАЩИТА 18
2.6 ОРГАНИЗАЦИОННЫЕ МЕРЫ 20
3 РАЗРАБОТКА СИСТЕМЫ ПО ОБНАРУЖЕНИЮ ЗАПРЕЩЕННОГО И ВРЕДОНОСНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 22
3.1 ПРОЦЕСС РАЗРАБОТКИ 22
3.2 ИСПОЛЬЗУЕМЫЕ ТЕХНОЛОГИИ В ХОДЕ РАЗРАБОТКИ 23
3.2.1 ТРАНСПОРТНЫЙ ПРОТОКОЛ UDP 23
3.2.2 СИГНАТУРНОЕ ОБНАРУЖЕНИЕ 24
3.2.3 ПРОЦЕССЫ В СРЕДЕ ОС UNIX 26
3.3 ПОИСК И СОЗДАНИЕ СИГНАТУРЫ 29
3.4 ПРИНЦИП РАБОТЫ РАЗРАБОТАННОЙ СИСТЕМЫ ПО ОБНАРУЖЕНИЮ ВПО LA_SERVER.PL И LA_CONSOLE.PL 30
РИСУНОК 17 – ДЕМОНСТРАЦИЯ РАБОТЫ LA_SERVER.PL И LA_CONSOLE.PL ПО ШИРОКОВЕЩАТЕЛЬНОМУ КАНАЛУ. 32
3.5 РАЗБОР РАБОТЫ СЕРВЕРНОЙ ЧАСТИ LA_SERVER.PL 33
3.5 РАЗБОР РАБОТЫ КЛИЕНТСКОЙ ЧАСТИ LA_CONSOLE.PL 40
ЗАКЛЮЧЕНИЕ 46
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 47
ПРИЛОЖЕНИЯ 48
Принято разделять вирусы:
- по поражаемым объектам (файловые вирусы, загрузочные вирусы, скриптовые вирусы, макровирусы, вирусы, поражающие исходный код, сетевые черви);
- по поражаемым операционным системам и платформам (DOS, Microsoft Windows, Unix, Linux);
- по технологиям, используемым вирусом (полиморфные вирусы, стелс-вирусы, руткиты);
- по языку, на котором написан вирус (ассемблер, высокоуровневый язык программирования, скриптовый язык и др.);
- по дополнительной вредоносной функциональности (бэкдоры, кейлоггеры, шпионы, ботнеты и др.).
Вирус Win32.Maniac.D является
резидентным зашифрованным
Вирус не способен существовать как самостоятельная программа (т.е. в виде рабочего файла, содержащего только вирусный код), т.к. выполнен в виде логического программного блока (не содержит заголовка и, соответственно, т.н. "точки входа" - место в коде заголовка файла, с которого производится считывание стартового адреса программы и начинается ее выполнение), внедряемого в Windows-приложения и использующего заголовки зараженных им файлов для получения управления и последующего запуска.
Поражает системные файлы с
расширениями "EXE" (программы и
самораспаковывающиеся архивы/
Сразу же после инсталляции в
систему вирус расшифровывает (XOR
66h) и запускает процедуру поиска
и заражения файлов. Сканируются носители
данных последовательно один раздел за
другим, выявляя уже зараженные файлы,
при этом для каждого из дисков вирус создает
в памяти отдельный счетчик, который увеличивает
на 1 при обнаружении уже зараженного файла
и в дальнейшем при заражении каждого
нового файла. При этом он проверяет, чтобы
значение счетчика не превышало 15, т.е.
на каждом диске вирус заражает не более
15 файлов. Как только счетчик текущего
сканируемого диска дошел до значения
15, вирус прекращает на нем (диске) поиск
файлов для заражения (равно, как и в том
случае, когда счетчик еще не дошел до
значения 15, но находящиеся на диске файлы,
подходящие для заражения, закончились)
и приступает к заражению следующего диска.
Счетчики зараженных файлов сохраняются
в памяти с момента их создания и до завершения
работы вируса (т.е., в принципе, до завершения
работы Windows).
Вирус заражает не все программные файлы,
а только те из них, которые соответствуют
следующим требованиям: файл имеет расширение
"EXE" или "SCR", файл является Windows
PE-файлом (проверяется по формату заголовка
файла), файл находится не в каталоге/подкаталоге
системной папки Windows,
размер файла составляет не менее 20480 байт
(это соответствует размеру вирусного
тела в зараженных файлах).
При заражении файла вирус дописывает свое зашифрованное тело в его конец, в результате, внешне зараженный файл отличается от исходного лишь увеличением размера на величину 20480 байт.
На рисунке 1 изброжен формат файла до заражения и после.
Рисунок 1 - Файл до заражения (слева) и после (справа).
Запуск зараженного файла происходит следующим образом: первым получает управление дроппер вируса, который проверяет наличие своей "метки"-идентификатора, и, соответственно, либо сперва производит процедуру инсталляции в систему основного компонента, а уже потом расшифровывает, считывает и запускает стартовый адрес оригинальной программы, либо сразу производит запуск оригинальной программы и завершает при этом свою работу.
Процесс запуска зараженной программы показан на рисунке 2.
Рисунок 2 – Процесс запуска зараженной программы
При подключении зараженной машины к сети internet у пользователя может сложиться впечатление, что большинство запущенных программ странно работают. Если на РС установлен firewall, то он будет сообщать, что то одна, то другая программа пытается войти в сеть. При этом индикатор принятых/отосланных байт данных может меняться в большую сторону.
В реальности вирус расшифровывает (XOR 66h) и запускает на выполнение сразу несколько шпионских процедур, которые пытается осуществлять от имени других программ, в чьи процессы ему удалось внедрить свой поток.
Первая вредоносная
процедура заключается в
- модель и версию драйвера видеокарты;
- имя пользователя и его пароль для входа в систему;
- какие-то данные об устройствах компьютера;
- текст, содержащийся на текущий момент в буфере обмена данными принтера;
- логин, пароль и номер ICQ-клиента;
- логин и пароль для входа в сеть Интернет;
- внешний (сетевой) IP-адрес и имя компьютера.
Затем файлы с собранной информацией шифруются, после чего вирус пытается передать их, используя HTTP-протокол, на Web-ресурсы. Для передачи вирус открывает от имени установленного в системе "по умолчанию" вэб-браузера Internet Explorer 1033-й порт протокола TCP/IP и в фоновом режиме пытается транслировать данные на искомые ресурсы. Если по каким-либо причинам 1033-й порт оказывается недоступен, то вирус увеличивает значение порта на 1 (т.е. 1034, 1035 и т.д.) и повторяет попытки соединения с ресурсом. Процедура повторяется до тех пор, пока либо вирус не достигнет желаемого результата (не отошлет данные злоумышленнику), либо машина не будет отключена пользователем от сети internet. При успешном завершении данной процедуры, вирус расшифровывает и загружает в память следующую "метку"-идентификатор (чтобы не запускать данную процедуру повторно до момента своей новой активизации) “KUKU300a”.
Вторая вредоносная
процедура заключается в
Для загрузки файла вирус открывает от имени выбранного им активного процесса 53 TCP порт и, в случае удачного соединения с сервером, пытается скачать с него EXE-файл, после чего произвести его запуск. В том случае, если попытка открыть порт от имени др. процесса была пресечена (например, выход приложения в сеть internet был заблокирован firewall-ом), то вирус пытается повторить попытку, но уже от имени другого из подвластного ему активного процесса. При успешном завершении данной процедуры, вирус также, как и при первой процедуре, расшифровывает и загружает в память «метку»-идентификатор, но уже другую.
В связи с ростом и
повышенной активности ВПО, необходимо
разработать программный
Данная программная
система должна учитывать структуру
организации вычислительного
- создание собственных сигнатур и поиск по ним;
- использование в своей работе UDP протокола;
- поиск файлов на основе контрольной суммы MD5;
- самообновление;
- предоставление командной оболочки по запросу;
- сканирование ФС и мониторинг процессов по запросу и расписанию;
- оповещение при совпадении сигнатур.
Контроль запуска приложений
сводиться к перехвату
Для визуального понятия сути о вызовах в среде Windows, на рисунке 3 представлен снимок работы Process Monitor.
Рисунок 3 – Работа Process Monitor. Использование Event Tracing for Windows.
Полный перечень системных вызовов ОС Unix находится в файле /usr/include/asm/unistd.h. Например для функции create() существует системный вызов #defane __NR_CREATE 8, где его номер (8) загружается в регистр EAX.
Так же можно проводить мониторинг появление новых процессов.
Эффективный контроль приложений в линейки ОС Windows осуществляется сторонним ПО. Для наглядного примера рассмотрим Kaspersky Internet Security (далее KIS), изображение которого приведено на рисунке 4.
Рисунок 4 - Kaspersky Internet Security
Контроль приложений в KIS - это локальная система предотвращения вторжений (Host Intrusion Prevention System, далее HIPS), которая объединяет в себе функционал проактивной защиты и сетевого экрана. HIPS позволяет гибко манипулировать разрешениями на доступ к файлам и реестру, системным правам и сетям различных типов. Это помогает существенно снизить количество обращений к пользователю KIS за счет предоставления полной свободы действий доверенным приложениям и полного ограничения в правах недоверенных приложений.
Основу любой HIPS составляет таблица правил. HIPS в KIS использует таблицу, большинство правил которой сгруппировано по приложениям.
HIPS контролирует определенные
Под защитой HIPS будут находиться только те объекты, которые обозначены в ее таблице правил.
Важной особенностью HIPS является групповая политика, которая позволяет применять одни и те же разрешения для всех приложений, внесенных в определенную группу. По умолчанию в KIS подготовлены четыре группы, по которым продукт будет автоматически распределять запускаемые на компьютере приложения. К этим группам относятся: доверенные, слабо ограниченные, сильно ограниченные, недоверенные.
Для каждой группы уже заданы определенные разрешения, которые, по мнению экспертов Лаборатории Касперского, являются оптимальными. В частности, доверенные приложения никоим образом не ограничены в своих правах и возможностях, слабо ограниченным запрещаются наиболее опасные для системы действия, сильно ограниченным разрешены лишь те действия, которые не могут нанести существенного ущерба, а недоверенные не могут выполнять практически никаких системных действий.
Основная таблица Контроля приложений позволяет быстро задавать однотипные разрешения для групп и отдельных приложений.
Правила HIPS обычно содержат три базовых компонента: субъект (т.е. приложение или группа, которое вызывает определенное событие), действие (разрешить, запретить или спрашивать пользователя) и объект (то, к чему приложение или группа пытается получить доступ). HIPS в KIS работает по тому же принципу. В зависимости от типа объекта правила разделяются на три группы: файлы и системный реестр, системные права, сети.
У первой группы объектом являются файлы, ключи реестра. У второй группы объект - это системные права на выполнение тех или иных действий (например, на запуск или остановку процессов). У третьей группы - это сетевые объекты (IP-адреса и их группы, порты и направления).
При желании можно создавать свои ресурсы и таким образом определять права доступа приложений к собственным объектам.
Некоторые правила можно настроить очень тонко: например, для файлов и реестра можно отдельно определять разрешения на чтение, запись, удаление и перечисление.
В приложении KIS реализован механизм наследования прав. Когда одно приложение запускает другое, разрешения для первого автоматически передаются на второе. Если бы этого механизма не было, недоверенное приложение могло бы использовать доверенное в своих целях и, пользуясь его неограниченными привилегиями, осуществлять любую активность.
На момент написания данной дипломной работы, мной не было найдено ПО, которое осуществляет контроль приложений, подобно KIS (и не только) в среде Windows, эта может обуславливаться правовой политикой пользователей.
Распространение ВПО
по всей файловой системе (далее ФС)
возможно только с правами суперпользователя ro
ionotify - это подсистема ядра Linux (kqueue аналог для FreeBSD), которая позволяет получать уведомления об изменениях в файловой системе. ionotify позволит отлеживать все события ФС, перехватывая их, можно запрещать или сигнализировать о измени системных файлов в заданной области ФС, например в /usr/bin.
Ниже перечислены некоторые события ionotify:
IN_ACCESS - к файлу было
произведено обращение (чтение)
IN_ATTRIB - были изменены метаданные (права доступа, временные метки, расширенные атрибуты и т.п.);