Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Использование испытательного стенда на основе средств виртуализации для проверки эффективности средств обнаружения вторжений





И.С. Строганов,   студент, кафедры «Информационная безопасность   Научный руководитель: В.А. Алешин, к. т. н., доцент кафедры «Информационная безопасность»
 

 

 

 

Рассматривается использование испытательного на основе средств виртуализации для выполнения тестирующего воздействия и его обнаружения программным средством Snort

 

 

Структура испытательного стенда следующая [1].

 

 

 
 

 

 


Атака имитируется в клиент-серверном приложении, работающем по протоколу TCP IP (порт 3333), при передаче от клиента к серверу исполняемого файла hello_world.exe, который сохраняется и автоматически запускается на стороне сервера.

Атака происходит из узла с установленной Ubuntu (атакующая сеть) в узел с установленной Windows XP (защищаемая сеть) через два маршрутизатора с FreeBSD, на одном из которых функционирует IDS Snort в режиме обнаружения вторжений.

Приложение состоит из передатчика файла для Ubuntu (Sender) и приемника файла для Windows XP (Receiver.exe).

Приемник при запуске переходит в режим ожидания подключения.

Запуск передатчика:

./Sender <путь_к_файлу> [<IP_адрес_получателя>]

При отсутствии второго аргумента командной строки используется адрес 127.0.0.1.

Запуск Snort в режиме обнаружения вторжений:

<действие> <протокол> <IP отправителя> <PORT отправителя> -> <IP получателя> <PORT получателя > (sid:<номер>; content:”<содержимое>”; msg:”<сообщение об атаке>”)

 

Результаты тестирования.

Передается файл hello_world.exe с узла 192.168.2.5 на узел 192.168.0.5:

./Sender hello_world.exe 192.168.0.5 (рис.1).

Рис.1. функциональная часть приложения для тестирования.

Запуск Snort в режиме обнаружения атак:

snort -i em0 –l snort -c snort.conf

Файл snort.conf:

alert tcp any any -> 192.168.0.0/24 3333 (sid:1; content:”Hello World!”; msg:”Attack detected!”) (рис.2.)

Рис.2. Настройки и запуск Snort.

При передаче файла Snort на маршрутизаторе фиксирует факт атаки в файл snort/alert (рис.3):

 

 

Рис.3. Сообщение Snort об обнаруженной атаке.

В режиме журналирования пакетов при передаче файла Snort сохраняет в папке snort лог-файл с содержимым пакетов (рис.4):

 

 

 

Рис.4. Данные лог-файла о содержимым файла с атакой.

Исходные коды программ представлены на рис. 5.

 

#include <sys/types.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <unistd.h>

#include <stdio.h>

#include <string.h>

 

#define BUFSIZE 1024

 

int sendall(int sock, char *buffer, int len);

 

int main(int argc, char *argv[])

{

if(argc!=2 && argc!=3)

{

printf("Wrong number of arguments\n");

return 0;

}

char buffer[BUFSIZE];

FILE *fl;

int sock, i=0;

struct sockaddr_in addr;

if(!(fl=fopen(argv[1], "rb")))

{

printf("Error: open file\n");

return 0;

}

sock=socket(AF_INET, SOCK_STREAM, 0);

if(sock<0)

{

printf("Error: create socket\n");

return 0;

}

addr.sin_family=AF_INET;

addr.sin_port=htons(3333);

if(argc==2)

addr.sin_addr.s_addr=htonl(INADDR_LOOPBACK);

else

addr.sin_addr.s_addr=inet_addr(argv[2]);

if(connect(sock, (struct sockaddr *)&addr, sizeof(addr))<0)

{

printf("Error: connection failed\n");

return 0;

}

while(1)

{

if(feof(fl))

{

sendall(sock, buffer, i-1);

break;

}

if(i>=BUFSIZE)

{

sendall(sock, buffer, i);

i=0;

}

buffer[i++]=fgetc(fl);

}

close(sock);

fclose(fl);

}

 

int sendall(int sock, char *buffer, int len)

{

int total=0, n;

while(total<len)

{

n=send(sock, buffer+total, len-total, 0);

if(n==-1)

break;

total+=n;

}

return (n==-1? -1: total);

}

 

Исходный код программы-приемника (сервер) для Windows:

#include <winsock2.h>

#include <stdio.h>

#include <string.h>

 

#pragma comment(lib, "wsock32.lib")

 

#define BUFSIZE 1024

 

int main()

{

WSADATA wsadata;

if(WSAStartup(0x101, &wsadata))

{

printf("Error: init winsock\n");

return 0;

}

SOCKET sock_listen, sock_accept;

struct sockaddr_in addr;

char buffer[BUFSIZE];

int bytes_read, file_size, i;

FILE *fl;

sock_listen=socket(AF_INET, SOCK_STREAM, 0);

if(sock_listen<0)

{

printf("Error: create socket\n");

return 0;

}

addr.sin_family=AF_INET;

addr.sin_port=htons(3333);

addr.sin_addr.s_addr=htonl(INADDR_ANY);

if(bind(sock_listen, (struct sockaddr *)&addr, sizeof(addr))<0)

{

printf("Error: bind socket\n");

return 0;

}

listen(sock_listen, 1);

sock_accept=accept(sock_listen, 0, 0);

if(sock_accept<0)

{

printf("Error: acception\n");

return 0;

}

if(!(fl=fopen("recv.exe", "wb")))

{

printf("Error: open file\n");

return 0;

}

while(1)

{

bytes_read=recv(sock_accept, buffer, BUFSIZE, 0);

if(bytes_read<=0)

break;

for(i=0; i<bytes_read; i++)

fputc(buffer[i], fl);

}

file_size=ftell(fl);

fclose(fl);

closesocket(sock_accept);

closesocket(sock_listen);

WSACleanup();

printf("File size: %d\n", file_size);

system("recv.exe");

}

 

Рис.5.Исходный код программы-передатчика (клиент) для Ubuntu.

 

Краткие выводы.

 

Выполнена атака (тестирование Snort) с помощью передачи файла с вредоносной программой, которая была обнаружена.

Данный механизм можно использовать для проверки функционирования других средств обнаружения вторжений.

 

 

Используемые источники

 

1. Настройки испытательного стенда для проведения оценки эффективности функционирования средств защиты информации от НСД на основе средств виртуализации. В.А. Алешин, И.С. Строганов. Кафедра ИУ8. Студенческая весна 2013. 2. Lincoln Laboratory ID Evaluation Website, MIT, http://www.ll.mit.edu/IST/ideval/index.html. 1999. 3. Lippmann, Richard et al. Evaluating Intrusion Detection Systems: The 1998 DARPA Off-line Intrusion Detection Evaluation. Proceedings of DARPA Information Survivability Conference & Exposition (DISCEX), Hilton Head, South Carolina, 25-27 January 2000. Los Alamitos, CA: IEEE Computer Society, 1999: Vol. 2, 12-26.  
 

 

Date: 2015-07-01; view: 464; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию