Разработка подсистемы сканирования корпоративной сети на наличие запрещенных к использованию программ
Министерство образования Республики Беларусь
Учреждение образования
«Гомельский государственный университет
имени Франциска Скорины»
Заочный факультет
Кафедра автоматизированных систем обработки информации
Допущен к защите Зав. кафедрой___________________ "_13__" июня 2011г.
|
Разработка подсистемы сканирования корпоративной сети на наличие запрещенных к использованию программ
Дипломный проект
Исполнитель
студентка группы АС-61 __________________
Научный руководитель
доцент кафедры АСОИ,
к.т.н., доцент __________________ Воруев А.В.
Рецензент
зав. кафедрой МПУ,
д.т.н., доцент __________________
Гомель 2011
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
Проблема с вредоносным программным обеспечением (далее ВПО) не является новой, точно также она не исчезнет в ближайшем будущем. Слишком много денег вложено теми людьми, которые используют трояны, вирусы и армии ботов, чтобы просто отказаться от их использования. Целью атак этого вредоносного программного обеспечения являются не только обычные пользователя домашних компьютеров, но и также пользователи корпоративных компьютеров.
Установка антивирусного программного обеспечения, конечно же, очень важная вещь, также как и программа для проверки содержимого, которая должна работать на вашем сервере Exchange. Но лучшее, на текущий момент, оружие защиты – это обученный пользователь. Всегда будут появляться новые версии вредоносного программного обеспечения (malware), которые смогут проскользнуть через вашу защиту, неважно, будь то новый троян, или новая уязвимость в веб браузере на клиентском компьютере. Если пользователи будут знать о проблеме, то, можно считать, что большой путь по снижению угроз от вредоносного программного обеспечения в вашей корпоративной среде уже пройден.
Актуальность выполнения дипломного проекта по данной теме обусловлена фактом использования вредоносных программ для решения задач промышленного шпионажа.
Термин «промышленный шпионаж» впервые был сформулирован в начале 60-х годов на семинаре по методам сбора информации для руководящего состава, организованном фирмой Маnadgемеnt Invеstigаtion Сеrviсеs. Однако на самом деле еще в древние века римский император Юстиниан совершенно разрушил торговлю китайцев знаменитым шелком на Ближнем и Среднем Востоке, похитив у них гусеницу тутового шелкопряда. В 70-х годах прошлого столетия Рокфеллер, применив классические методы шпионажа, перехитрил своих конкурентов в погоне за нефтью в США. Некоторые говорят, что успешно проведенные акции промышленного шпионажа ведут к получению незаконных преимуществ над конкурентами, которым иногда приходится тратить миллионы на проведение научно-исследовательских работ и в итоге к увеличению армии безработных.
Кроме тотальной защиты информации эффективной схемой решения проблемы стал контршпионаж. Сюда может относиться дезинформация, навязывание бесполезной информации и перевербовка агентов. Всегда следует помнить, что шпионаж становится известным фактом только в случае провала шпиона, информация об успешно проведенных операциях всплывает крайне редко. Поэтому всегда лучше исходить из худшего.
Впрочем, применительно в компьютерным программам, это решение применимо лишь отчасти. И лишь формально способ контроля вредоносного программного обеспечения, предлагаемый в данном дипломном проекте, можно отнести к средствам контршпионажа.
1 Анализ угроз вычислительному процессу предприятия от вредоносного программного обеспечения
1.1 Классификация вредоносного программного обеспечения
Вредоносная программа (жаргонное «вредоноска», буквальный перевод англоязычного термина Malware, malicious - злонамеренный и software - программное обеспечение, жаргонное название - «малварь», «маловарь», «мыловарь» и даже «мыловарня») - это любое программное обеспечение, предназначенное для обеспечения получения несанкционированного доступа к информации, хранимой на ЭВМ, с целью причинения вреда (ущерба) владельцу информации и/или владельцу ЭВМ (сети ЭВМ).
Суть явления вредоносного программного
обеспечения состоит в
Создание помех в работе рабочей станции (далее РС). Блокировка антивирусных сайтов, антивирусного ПО и административных функций ОС с целью усложнить лечение. Манипуляция внешними устройствами РС (cd/dvd/колонки). Изменение/уничтожение информации.
Инсталляция другого ВПО. Загрузка других файлов из сети internet (downloader). Распаковка другой вредоносной программы, уже содержащейся внутри файла (dropper).
Кража, мошенничество, вымогательство и шпионаж за пользователем. Для кражи и шпионажа может применяться сканирование жёсткого диска на наличие уникальной информации, регистрация нажатий клавиш и перенаправление пользователя на поддельные сайты, в точности повторяющие исходные ресурсы. Для вымогательства и шантажа с целью получения денежных средств может применяться шифрование файлов. Для мошенничества может использоваться телефонный модем с целью совершения дорогостоящих звонков, что влечёт за собой значительные суммы в телефонных счетах.
Дестабилизация работы ПО. Сокрытие или маскировка ВПО с целью оставить на длительное время удаленный доступ к скомпрометированной целевой системе, либо выполнение других действий (например рассылка спама).
Прочая деятельность. Шуточный функционал, делающий какие-либо беспокоящие пользователя вещи: открытие-закрытие внешнего привода, включения/отключения монитора и устройств ввода, показ рекламы (adware).
Иногда нагрузка представляет собой функционал по установке дополнительных утилит: IRC-клиенты, программные маршрутизаторы. Такое ПО вредоносным не является, но из-за того, что за ним часто стоит истинно вредоносная программа, детектируется антивирусами.
Методы размножения:
- Эксплойт - теоретически безобидный набор данных, некорректно воспринимаемый программой, работающей с такими данными. Здесь вред наносит не сам файл, а неадекватное поведение ПО с ошибкой.
- Логическая бомба - в программе срабатывает механизм при определённом условии (таймер), и неотделима от полезной программы-носителя.
- Троянская программа - не имеет собственного механизма размножения.
- Компьютерный вирус -
- Сетевой червь - способен самостоятельно размножаться по сети. Делятся на IRC-, почтовые, размножающиеся с помощью эксплойтов и т. д.
ВПО может образовывать цепочки: например, с помощью эксплойта на компьютере жертвы развёртывается загрузчик (2), устанавливающий из интернета червя.
1.2 Каналы распространения вредоносного программного обеспечения
Путями проникновения вируса могут служить как мобильные носители, так и сетевые соединения - фактически, все каналы, по которым можно скопировать файл.
Дискеты и лазерные диски. Самым распространённый канал заражения в 1980-2000 годы был через файловый либо boot-сектор сменного носителя (дискеты). Сейчас практически отсутствует из-за появления более распространённых и эффективных каналов и отсутствия флоппи-дисководов на многих современных компьютерах. Но сам принцип процветает на применяемых сменных дисках CD, DVD и BD.
Твердотельные накопители (USB-флеш).В настоящее время USB-накопители заменяют дискеты и повторяют их судьбу, большое количество ВПО распространяется через съёмные накопители, включая цифровые фотоаппараты, цифровые видеокамеры, цифровые плееры (MP3-плееры), сотовые телефоны. Использование этого канала ранее было преимущественно обусловлено возможностью создания на накопителе специального файла autorun.ini (только для Windows), в котором можно указать запускаемую программу, при открытии такого накопителя.
Электронная почта. Обычно ВПО в письмах электронной почты маскируется под безобидные вложения: картинки, документы, музыку, ссылки на сайты. В некоторых письмах могут содержаться действительно только ссылки, т.е. в самих письмах может и не быть вредоносного кода, но если открыть такую ссылку, то можно попасть на специально созданный веб-сайт, содержащий вредоносный код. Многие почтовые вирусы, попав на компьютер пользователя, затем используют адресную книгу из установленных почтовых клиентов типа Outlook для рассылки самого себя дальше.
ПО обмена мгновенными сообщениями. Распространена рассылка ссылок под видом фото, музыка либо программы, в действительности являющиеся вирусами, по ICQ и через другие программы мгновенного обмена сообщениями.
Веб-страницы. Возможно также заражение через страницы internet ввиду наличия на страницах всемирной паутины различного «активного» содержимого: скриптов, ActiveX-компонент. В этом случае используются уязвимости программного обеспечения, установленного на компьютере пользователя, либо уязвимости в ПО владельца сайта (что опаснее, так как заражению подвергаются добропорядочные сайты с большим потоком посетителей), а ничего не подозревающие пользователи, зайдя на такой сайт, рискуют заразить свой компьютер.
1.3 Описание популярных видов вредоносного программного обеспечения
Определяющим фактором
ближайшего десятилетия станет уход
ОС Windows с позиций главной
Рост числа новых ОС скажется на процессе появления новых угроз: киберпреступники не смогут одновременно успешно писать вредоносный код для большого количества различных платформ – им придется выбирать что-то одно: или много разных пользовательских ОС и устройств под их управлением, либо специализация на Windows и атаках на корпорации. Очевидно, второй вариант будет для них предпочтительнее: к 2020 году зарабатывать на пользователях будет значительно сложнее, так как наметившийся тренд эволюционирования систем электронных платежей и онлайн-банкинга сохранится, подобные устройства постепенно трансформируются в биометрические системы, системы персонификации пользователей и защиты платежей.
Пока же наибольшую опасность представляют следующие виды:
Spyware (шпионское программное обеспечение). Эта вид ВПО, которое скрытным образом устанавливается на компьютер с целью сбора информации о конфигурации компьютера, пользователя, пользовательской активности без согласия последнего. Также могут производить другие действия: изменение настроек, установка программ без ведома пользователя, перенаправление действий пользователя.
Spyware может осуществлять широкий круг задач, например:
- собор информации о наиболее часто посещаемых сайтов;
- регистрация нажатий клавиш на клавиатуре (кейлоггеры), создание снимка экрана;
- несанкционированное удалённо управлять компьютером (бэкдор, ботнеты);
- инсталляция на компьютер пользователя дополнительные программы;
- участи в сетях
- модификация параметров операционной системы (system modifying software);
- перенаправление активности браузеров, что влечёт за собой посещение веб-сайтов вслепую с риском заражения вирусами, или взлома.
Кейлогер. Это программное обеспечение или аппаратное устройство, регистрирующее каждое нажатие клавиш клавиатуры, или создание снимка пользовательского экрана вокруг курсора мыши, в момент ее использования.
Виды информации, которые могут контролироваться:
- нажатия клавиш на клавиатуре;
- нажатия клавиш мышки;
- дата и время нажатия;
- снимок экрана вокруг курсора мыши во время клика.
Компьютерный вирус - разновидность компьютерных программ, отличительной особенностью которых является способность к размножению (саморепликация). В дополнение к этому вирусы могут без ведома пользователя выполнять прочие произвольные действия, в том числе наносящие вред пользователю и/или компьютеру. По этой причине вирусы относят к вредоносным программам.
Вирусы распространяются, копируя свое тело и обеспечивая его последующее исполнение: внедряя себя в исполняемый код других программ, заменяя собой другие программы, прописываясь в автозапуск и другое. Вирусом или его носителем могут быть не только программы, содержащие машинный код, но и любая информация, содержащая автоматически исполняемые команды - например, пакетные файлы и документы Microsoft Word и Excel, содержащие макросы. Кроме того, для проникновения на компьютер вирус может использовать уязвимости в популярном программном обеспечении (например, Adobe Flash, Internet Explorer, Outlook), для чего распространители внедряют его в обычные данные (картинки, тексты, и т. д.) вместе с эксплойтом, использующим уязвимость.
Ныне существует немало разновидностей
вирусов, различающихся по основному
способу распространения и
В настоящее время не существует единой системы классификации и именования вирусов (хотя попытка создать стандарт была предпринята на встрече CARO в 1991 году).
Принято разделять вирусы:
- по поражаемым объектам (файловые вирусы, загрузочные вирусы, скриптовые вирусы, макровирусы, вирусы, поражающие исходный код, сетевые черви);
- по поражаемым операционным системам и платформам (DOS, Microsoft Windows, Unix, Linux);
- по технологиям, используемым вирусом (полиморфные вирусы, стелс-вирусы, руткиты);
- по языку, на котором написан вирус (ассемблер, высокоуровневый язык программирования, скриптовый язык и др.);
- по дополнительной вредоносной функциональности (бэкдоры, кейлоггеры, шпионы, ботнеты и др.).
1.4 Обзор ВПО на примере вируса Win32.Maniac.B
Вирус 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-ом), то вирус пытается повторить попытку, но уже от имени другого из подвластного ему активного процесса. При успешном завершении данной процедуры, вирус также, как и при первой процедуре, расшифровывает и загружает в память «метку»-идентификатор, но уже другую.
1.5 Постановка задачи на дипломное проектирование
В связи с ростом и
повышенной активности ВПО, необходимо
разработать программный
Данная программная
система должна учитывать структуру
организации вычислительного
- создание собственных сигнатур и поиск по ним;
- использование в своей работе UDP протокола;
- поиск файлов на основе контрольной суммы MD5;
- самообновление;
- предоставление командной оболочки по запросу;
- сканирование ФС и мониторинг процессов по запросу и расписанию;
- оповещение при совпадении сигнатур.
2 Методы борьбы с вредоносным программным обеспечением
2.1 Контроль приложений
Контроль запуска приложений
сводиться к перехвату
Для визуального понятия сути о вызовах в среде Windows, на рисунке 3 представлен снимок работы Process Monitor.
Рисунок 3 – Работа Process Monitor. Использование Event Tracing for Windows.
Полный перечень системных вызовов ОС Unix находится в файле /usr/include/asm/unistd.h. Например для функции create() существует системный вызов #defane __NR_CREATE 8, где его номер (8) загружается в регистр EAX.
Так же можно проводить мониторинг появление новых процессов.
2.2 Организация контроля приложений
в среде Windows
Эффективный контроль приложений в линейки ОС 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 реализован механизм наследования прав. Когда одно приложение запускает другое, разрешения для первого автоматически передаются на второе. Если бы этого механизма не было, недоверенное приложение могло бы использовать доверенное в своих целях и, пользуясь его неограниченными привилегиями, осуществлять любую активность.
2.3 Организация контроля приложений
в среде Unix
На момент написания данной дипломной работы, мной не было найдено ПО, которое осуществляет контроль приложений, подобно KIS (и не только) в среде Windows, эта может обуславливаться правовой политикой пользователей.
Распространение ВПО
по всей файловой системе (далее ФС)
возможно только с правами суперпользователя ro
ionotify - это подсистема ядра Linux (kqueue аналог для FreeBSD), которая позволяет получать уведомления об изменениях в файловой системе. ionotify позволит отлеживать все события ФС, перехватывая их, можно запрещать или сигнализировать о измени системных файлов в заданной области ФС, например в /usr/bin.
Ниже перечислены некоторые события ionotify:
IN_ACCESS - к файлу было
произведено обращение (чтение)
IN_ATTRIB - были изменены метаданные (права доступа, временные метки, расширенные атрибуты и т.п.);

- Разработка подсистемы учета ГСМ и путевых листов для конфигурации "Управление торговлей"
- Разработка поисково-разведочных работ для выявления месторождений подземных вод с целью хозяйственно-питьевого и противопожарного водо
- Разработка полиграфического оформления издания
- Разработка полигрофии для студии танцев
- Разработка политики управления свободными денежными средствами организации
- Разработка по повышению конкурентоспособности организации на примере ЗАО ТД «Перекресток»
- Разработка портфолио педагога дополнительного образования
- Разработка плана финансового оздоровления ООО магазин «Мария Ра»
- Разработка планировки помещения в AutoCAD и его реализация в 3d Studio Max
- Разработка платья детского
- Разработка ПМК по дисциплине «Учебная практика»
- Разработка подсистемы автоматизации учета услуг спортивного клуба "Т-Фитнес"
- Разработка подсистемы анализа привлекательности кандидатов в рамках Федерального портала управленческих кадров
- Разработка подсистемы планирования и бюджетирования для компании «БИК-Проджект» на базе SAP BW-IP и SAP BEx