Разработка подсистемы сканирования корпоративной сети на наличие запрещенных к использованию программ

Автор работы: Пользователь скрыл имя, 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

Работа состоит из  1 файл

мой_диплом_se.doc

— 1.87 Мб (Скачать документ)

our $dst_pserver = 7777;

# массив используемых IP адресов коммандой use

our @ip_use;

# ХЕШ-Массив  с переченем комманд и их  описанием

our %cmd =

(

'use' => ["использовать  заданный IP для выполнения комманд  оболочки: !cmd","use 192.168.1.1"],

'!cmd' => ["выполнение комманд на серверах указанных в use","!ps aux"],

'show' => ["показать заданные IP опцией use","show"],

'scan' => ["сканировать  фс в заданном окружении","scan /usr/bin"],

'iplist' => ["вывести опрошенных  по UDP бродкасту хостов", "iplist"],

'update' => ["обновить базы сигнатур","update"],

);

 

# отключить буферизированный вывод

$|++;

 

Ниже приведенная как  и в случае со сценарием la_server.pl главная функция main(), в которой производиться вызов всех остальных функций содержащихся в данном сценарии. По аналогии, она так же начинается с разветвления процесса при помощи fork(). В случае с la_console.pl, родительский процесс ожидает данные со стандартного уст-ва ввода STDIN, предварительно проверяя правильно введенные команды, после чего отправляет их серверной части при помощи функции udp_client().

Процесс-потомок работает как серверная часть, ожидая ответы от рабочих станций со сценарием la_server.pl.

 

# точка входа

main:

{

# порождение процесса

die " *ERR: fork()\n" unless (defined(my $pid = fork()));

 

# родительский процесс

if($pid == 0)

{

# баннер командной  строки

banner();

# чтение со  стандартного уст-ва ввода

while( my $in = <STDIN> )

{

chomp $in; if( length($in) > 1 )

{

if($in eq 'iplist')

{

udp_client($in);

}

elsif($in =~ /^use/)

{

$in =~ s/^use\s+//;

$in =~ s/\s+//g;

@ip_use = split(/,/, $in);

 

print "[+] Used ip:\n" . join("\n", @ip_use) . "\n";

 

}

elsif($in =~ /^\!(.+)/)

{

my $cmd = "cmd:$1";

if(!@ip_use)

{

print "[-] не задан IP адрес, используйте комманду use\n";

banner();

next;

}

udp_client($cmd);

}

elsif($in eq 'show')

{

print "[+] Used ip:\n";

if(@ip_use) { print join("\n", @ip_use) . "\n"; }

else { print "0\n"; }

}

elsif($in eq 'update')

{

$in .= _read_file($sdbf);

udp_client($in);

}

else { print help(); }

}

else

{

print help();

}

banner();

}

exit;

}

else # потомок

{

print "Start root console server...\n";

udp_server();

exit;

}

}

 

# --- SUBROUTINE's --- #

 

#-------------------------------

# Ф-ция отправки UDP датаграммы

# Аргументы: plain_text

# Возврат: none

sub udp_client

{

# Отправляемые данные

my $data = shift;

# Открыть сокет

socket( SOCKET, PF_INET, SOCK_DGRAM, getprotobyname("udp") ) or die "Error: can't create an udp socket: $!\n";

# Отключить буферизацию для дескриптора SOCKET

select( ( select(SOCKET), $|=1 )[0] );

# Сформировать пару IP:PORT для сокета

my $broadcastAddr = sockaddr_in( $dst_pserver, INADDR_BROADCAST );

# Установить опцию сокета SO_BROADCAST

setsockopt( SOCKET, SOL_SOCKET, SO_BROADCAST, 1 );

# Отправка данных

send( SOCKET, $data, 0,  $broadcastAddr ) or die "Error at sendding: $!\n";

# Закрытие сокета

close SOCKET;

}

 

#-------------------------------

# Ф-ция отправки UDP датаграммы

# Аргументы: none

# Возврат: plain_text

sub udp_server

{

# открыть сокет

socket( UDPSOCK, PF_INET, SOCK_DGRAM, getprotobyname('udp') ) or die "socket: $!";

# отключить буферизацию

select( ( select(UDPSOCK), $|=1 )[0] );

# установка опций сокета

setsockopt( UDPSOCK, SOL_SOCKET, SO_BROADCAST, 1 ) or die "setsockopt SO_BROADCAST: $!";

# my $broadcastAddr = sockaddr_in( $udp_port, INADDR_BROADCAST );

# сформировать пару IP:PORT для сокета

my $broadcastAddr = sockaddr_in( $src_pserver, INADDR_ANY );

# слушать заданный порт

bind( UDPSOCK, $broadcastAddr ) or die "bind failed: $!\n";

 

# чтение из сокета и  обработка посылаемых комманд

my $in; while( my $addr = recv( UDPSOCK, $in, 1500, 0 ) )

{

my ( $r_port, $r_addr ) = unpack_sockaddr_in($addr);

print  inet_ntoa($r_addr) . " : $r_port   $in\n";

 

if($in eq 'update')

{

$in .= _read_file($sdbf);

udp_client($in);

}

 

print "\n[cmd#] ";

}

}

 

#-------------------------------

# Ф-ция вывода  на дисплей справки

# Аргументы: none

# Возврат: none

sub help

{

my $info = qq(

Commands:

use - $cmd{'use'}[0]

       ПРИМЕР: $cmd{'use'}[1]

\!cmd - $cmd{'!cmd'}[0]

       ПРИМЕР: $cmd{'!cmd'}[1]

show - $cmd{'show'}[0]

       ПРИМЕР: $cmd{'show'}[1]

scan - $cmd{'scan'}[0]

       ПРИМЕР: $cmd{'scan'}[1]

iplist - $cmd{'iplist'}[0]

       ПРИМЕР: $cmd{'iplist'}[1]

update - $cmd{'update'}[0]

       ПРИМЕР: $cmd{'update'}[1]

);

return $info;

}

 

#-------------------------------

# Ф-ция вывод  баннера командной строки

# Аргументы: none

# Возврат: none

sub banner

{

print "\n[cmd#] ";

}

 

#-------------------------------

# Ф-ция чтения файла

# Аргументы: filename

# Возврат: scalar plain_text

sub _read_file

{

open RFH, shift or return 0;

my $src; while(<RFH>) { $src .= $_; }

close RFH;

return $src;

}

 

 

 

 

Заключение

 

В данном дипломной проекте  были рассмотрены принципы работы и  классификация ВПО, методы и технологии борьбы  с ВПО.

В рамках дипломного проекта была разработана программная система по обнаружению ВПО и ПО запрещенного для запуска в корпоративных сетях.

Разработанная программная  реализация будет полноценно работать в среде Unix-подобных ОС, под линейкой Windows и др. ОС тестирование не проводилось.

В настоящее время  рост программистов повышается, соответственно и повышается уровень активности ВПО. Для подавления бдительности пользователей  с целью копроментации удаленной  системы,  разрабатывается ПО под  видом антивирусного, которое имеет  вредоносную нагрузку. В подобных разработках могут быть заинтересованы так же разработчики антивирусов, ведь антивирусный бизнес очень прибылен. Поэтому не стоит доверять антивирусам на 100% ,  помимо них в этом случаи лучше использовать ПО, которое будет осуществлять контроль приложений и отслеживать сетевую активность, а так же внимательное наблюдение за работай рабочей станции не пройдет бесследно.

В ходе дипломного проектирования был получен опыт по созданию сигнатур вредоносного участка кода и автоматизация процесса по поиску запрещенных элементов ПО.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Список использованных источников

 

1  Стивенс, У. UNIX. Взаимодействие процессов / У. Стивинс. – СПБ.: Питер, 2003. – 576.

2 Стивенс, У. UNIX. Разработка сетевых приложений / У. Стивинс. – СПБ.: Питер, 2007. – 1040.

3  Шварц, Р. Perl. Изучаем глубже / Р. Шварц. – СПб.: Символ, 2007. – 320.

4 Керниган, Б. Язык программирования С / Б. Керниган, Д. Ритчи. – СПБ.: Вильямс, 2008. – 304.

5 Стивинс, Р. Протоколы TCP/IP. Практическое руководство / Р. Стивенс. – СПБ.: BHV, 2003. – 672.

6  Пирогов, В. Ассемблер и дизассемблирование / В. Пирогов. – СПБ.: BHV, 2007. - 464.

7  Официальный web-сайт свободной энциклопедии Википедиа [Электронный ресурс]. – 2011. Режим доступа: http://www.wikipedia.org. – Дата доступа: 28.05.2011.

8  Независимый информационно-аналитический центр [Электронный ресурс]. – 2011. Режим доступа http://www.anti-malware.ru. – Дата доступа 29.05.2011.

9  Антивирусная база [Электронный ресурс]. – 2011. Режим доступа: http://rootkits.ru. Дата доступа: 27.05.2011.

10  Антивирусная школа [Электронный ресурс]. – 2011. Режим доступа: http://av-school.ru. – Дата доступа: 28.05.2011.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПРИЛОЖЕНИЯ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение  А.

Анализ рынка  программных средств запрета  на выполнение несанкционированных  программ

 

Базой для работы программных средств запрета на выполнение несанкционированных программ является группа объектов GPO «Политики ограниченного использования программ» (Software Restriction Policies, SRP). Здесь настраиваются ограничения запуска приложений на компьютерах, начиная с Windows XP и выше. Принцип настроек совпадает с настройками правил файрвола: администратор указывает список приложений, которые разрешено запускать на системах организации, а для остальных ставит запрет. Или поступает наоборот: разрешает все, а затем по мере необходимости блокирует, что не нужно.

Рассмотрим принцип  работы этого механизма на примере  утилиты TimeBoss – программы управлением временем работы на компьютере для всех пользователей, зарегистрированных в системе Windows.

Эта программа создана  для:

- ограничения времени, периода работы пользователей,

- контроля доступом к компьютеру различных пользователей с помощью удобного журнала использования компьютера;

- запрещения или разрешения запуска  конкретных программ и Интернет-сайтов, ограничения периода их использования;

- ограничения по времени запуска  программ с конкретных дисков или  папок.

Принцип работы программы прост: для всех пользователей указывается лимит времени работы на компьютере (или в Интернете), как только пользователь превышает свой лимит, программа автоматически завершает сеанс его работы на компьютере (или закрывает все программы, использующие Интернет). Программа блокирует запуск  запрещенных программ, определенных для пользователей (например: Internet Explorer или любые игры).

Программа использует официальные  механизмы системы Windows и не создает  шпионские модули. TimeBoss не маскируется в компонентах эксплуатационной окружающей среды, не засоряет системные папки и не замедляет работу других программ.

Ниже приведены примеры  других программ, которые можно найти  на рынке для реализации систем блокировки ВПО.

PC Tools AntiVirus Free Edition - отслеживает и уничтожает шпионское программное обеспечение и другие вредоносные программы. Антивирус включает модуль, автоматически отслеживающий состояние компьютера, чтобы моментально среагировать на попадание в систему вируса.

PC Tools ThreatFire - программа для защиты от вредоносного ПО, главным достоинством которой является обнаружение вируса на основе анализа поведения программы, благодаря которому она распознает недоступное для других антивирусов вредоносное ПО. PC Tools ThreatFire предоставляет усовершенствованный мониторинг деятельности системы, позволяя получить детальный отчет о каждом запущенном процессе, а также выполнить поиск по каждому процессу в сети или просто завершить его.

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

a-squared Free - полнофункциональный сканер вредоносного ПО, бесплатный для персонального использования. Главным достоинством a-squared Free является объединение двух главных принципов работы антивируса — обнаружение шпионского ПО путем сигнатурного анализа и анализа поведения программы.

Malwarebytes Anti-Malware - программа для быстрого сканирования системы с целью обнаружения и удаления различных видов вредоносного ПО.

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

Online Armor Free - мощный персональный файервол со множеством полезных функций обеспечения безопасности. Этот брандмауэр совершенно бесплатный для частного использования, он не содержит рекламы и не устанавливает никаких временных ограничений для пользования. Online Armor Free защищает входящие и исходящие компьютерные интернет-соединения и обнаруживает клавиатурные шпионы.

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

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

Comodo Internet Security – бесплатный пакет для комплексной защиты компьютера от вирусов, троянов, других вредоносных программ и хакерских атак. Это легкая в использовании программа, которая практически не нагружает компьютер.

F-Prot - инструмент для контроля за вирусной активностью и средство для предотвращения заражения системы вирусами, почтовыми червями и троянами. База программы содержит более 80 тыс. известных вирусов. Предусмотрена функция работы по расписанию и функция автоматического обновления антивирусных баз через Интернет. Можно просканировать на вирусы все диски или выбрать только какую-либо директорию.

Sygate Personal Free - программа направлена на защиту компьютера от хакерских атак, троянцев и DoS-атак. Кроме этого, файрволл может установить для каждой конкретной программы правила при работе в Интернете. Чтобы блокировать мгновенно доступ всех приложений в Сеть, достаточно в главном окне нажать кнопку Block All. Sygate Personal Firewall выпускается разработчиками в двух вариациях: Free (бесплатная) и Pro (платная).

hat You Wrote - позволяет просматривать и удалять содержимое автозаполнения (как то: адреса, пароли, номера кредитных карт и т.п., которые Вы имели неосторожность ввести на каких-либо сайтах).

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

Информация о работе Разработка подсистемы сканирования корпоративной сети на наличие запрещенных к использованию программ