Научная статья на тему 'Разработка простейшей системы обнаружения вторжений'

Разработка простейшей системы обнаружения вторжений Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
257
129
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СИСТЕМА ОБНАРУЖЕНИЯ ВТОРЖЕНИЙ / TCPDUMP / GOLANG / INTRUSION DETECTION SYSTEM

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Кокоулин Андрей Николаевич, Бадртдинов Артём Сергеевич, Поздеев Антон Александрович, Тихоненко Михаил Александрович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Кокоулин Андрей Николаевич, Бадртдинов Артём Сергеевич, Поздеев Антон Александрович, Тихоненко Михаил Александрович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The program is designed for educational purposes, which serves as a simple intrusion detection system defining packages corresponding to the filter.

Текст научной работы на тему «Разработка простейшей системы обнаружения вторжений»

Технические науки — от теории к практике № 7-8 (44), 2015 г

10. Niehaves B., Koffer S., & Ortbach K. IT consumerization: A theory and practice review — AMCIS 2012 Proceedings, Seattle, WA.

11. Noda T. Solving BYOD issues a must says HP, 2013.

12. Pfleeger C.P., & Shari L. P. Security in computing. Upper Saddle River — NJ: Prentice Hall PTR, 2006.

13. Whitman M.E. & Mattord H.J. Principles of information security — Boston MA: Cengage Learning, 2010.

14. Willis D.A. Gartner publishes «Bring your own device: New opportunities, new challenges» report - Entertainment Close-Up, 2013.

СибАК

www. sibac info

РАЗРАБОТКА ПРОСТЕЙШЕЙ СИСТЕМЫ ОБНАРУЖЕНИЯ ВТОРЖЕНИЙ

Кокоулин Андрей Николаевич

канд. техн. наук, доцент Пермского национального исследовательского политехнического университета

РФ, г. Пермь Е-mail: lisa [email protected]

Бадртдинов Артём Сергеевич

студент Пермского национального исследовательского политехнического университета

РФ, г. Пермь Е-mail: [email protected]

Поздеев Антон Александрович

студент Пермского национального исследовательского политехнического университета

РФ, г. Пермь Е-mail: [email protected]

Тихоненко Михаил Александрович

студент Пермского национального исследовательского политехнического университета

РФ, г. Пермь Е-mail: tikhonenko [email protected]

17

www.sibac.info

Технические науки — от теории к практике № 7-8 (44), 2015 г

DEVELOPING A SIMPLE INTRUSION DETECTION SYSTEM

Andrey Kokoulin

candidate of technical sciences, docent of Perm National Research Polytechnic University

Russia, Perm

Artem Badrtdinov

student of Perm National Research Polytechnic University

Russia, Perm

Anton Pozdeev

student of Perm National Research Polytechnic University

Russia, Perm

Mikhail Tikhonenko

student of Perm National Research Polytechnic University

Russia, Perm

АННОТАЦИЯ

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

ABSTRACT

The program is designed for educational purposes, which serves as a simple intrusion detection system — defining packages corresponding to the filter.

Ключевые слова: система обнаружения вторжений; tcpdump, golang.

Keywords: intrusion detection system; tcpdump, golang.

Обнаружение вторжений и несанкционированных воздействий в сети является актуальной проблемой современного информатизированного общества. Считается, что начало активному исследованию в этой области, было положено в 1980 г. статьей Джеймса Андерсона «Мониторинг угроз компьютерной безопасности». Несколько позже, в 1987 г. это направление было развито публикацией статьи «О модели обнаружения вторжения» Дороти Деннинг. Она обеспечила

18

Технические науки — от теории к практике № 7-8 (44), 2015 г

www. sibac info

методологический подход, вдохновивший многих исследователей и заложивший основу для создания коммерческих продуктов в области обнаружения и предотвращения вторжений [1].

В данной статье представлена разработанная в учебных целях программа-пример элементарной системы обнаружения вторжений, основанная на анализаторе сетевого трафика tcpdump. В качестве языка программирования выбран язык Go, совмещающий в себе производительность, близкую к производительности языка C, и высокую скорость разработки, схожую с, например, языком программирования Python.

Система обнаружения вторжений — программное или аппаратное средство, предназначенное для выявления фактов несанкционированного доступа в информационную систему или сеть либо несанкционированного управления ими в основном через Интернет. Они обеспечивают дополнительный уровень защиты компьютерных систем путем фильтрации поступающих пакетов [3].

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

Go — язык общего назначения с широкими возможностями и понятным синтаксисом. Благодаря мультиплатформенности, надежной, хорошо документированной стандартной библиотеке и ориентированности на удобные подходы к самой разработке, Go является идеальным языком для первых шагов в программировании [5].

Tcpdump (от TCP и англ. dump — свалка, сбрасывать) — утилита UNIX, позволяющая перехватывать (capture) и анализировать сетевой трафик, проходящий через компьютер, на котором запущена данная программа [2]. Позволяет фильтровать поступающие пакеты с помощью большого числа встроенных функций.

В программе, листинг которой представлен далее, используется следующая команда запуска утилиты tcpdump: “tcpdump -i eth0 -n -x src not hostname”. Описание команды:

• “tcpdump” — название утилиты;

• “-i eth0” — выбор интерфесйса eth0 для захвата приходящих сетевых пакетов;

• “-n” — отображает IP-адрес вместо имени хоста;

• “-x’ — делает распечатку пакета в шестнадцатеричной системе, полезно для более детального анализа пакета, количество отображаемых данных зависит от параметра -s;

• “src not hostname” — отбрасываются исходящие пакеты от машины, на которой запущена программа.

19

www.sibac.info

Технические науки — от теории к практике № 7-8 (44), 2015 г

package main import (

"bufio"___________________________________________________________________

"fmt"

"os/exec"

"os"

"regexp"

)

func main() {

filters := [2]string{"(ya|yandex)\\.ru", "(fb|facebook)\\.com"} hostname, _ := os.Hostname()

cmd := exec.Command("tcpdump", "-i", "eth0", "-n", "-x", "src", "not", hostname)

out, err := cmd.StdoutPipe()

if err != nil {

panic(err)

}

defer out.Close()

bufOut := bufio.NewReader(out)

if err = cmd.Start(); err != nil {

panic(err)

}

for {

result, _, err := bufOut.ReadLine()

if err != nil {

panic(err)

}

for _, filter := range filters {

match, _ := regexp.MatchString(filter, string(result)) if match {

fmt.Println(" WARNING:", filter)

}

J__________________________________________________________________________

}

}

Алгоритм работы программы заключается в следующем: программа ищет соответствия сетевых пакетов, захваченных утилитой tcpdump, и элементов массива фильтров, содержащего регулярные выражения для поиска.

20

Технические науки — от теории к практике № 7-8 (44), 2015 г

www. sibac info

Результат работы программы представлен на рисунке 1. На этом же рисунке видны и использованные простые тестовые регулярные выражения ('(ya|yandex)\.ru", "(fb|facebook)\.com") [4].

WARNING

WARNING

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

WARNING

WARNING

WARNING

WARNING

WARNING

WARNING

WARNING

(ya|yandex)Vru (ya|yandex)\.ru (fb|facebook)\. com (fb|facebook)\. com (fb|facebook)\. com (fb|facebook)\. com (fbj facebook)\. com (fbj facebook)\. com (fbj facebook)com

Рисунок 1. Вывод программы

Фрагмент результата выполнения команды, описанной выше, представлен на рисунке 2.

root^HomePC:~# tcpdump -i ethO -n -x src not HomePC

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ethO, link-type EN10MB (Ethernet), capture size 262144 bytes

01:13:05.304132 IP 87, 240.134.101.80 > 192,168.1.2.41167: Flags [M. seq 181545

221:181545552, ack 1377381792, win 47, options [nop, nop,TS val 687242139 ecr 119

76636}, length 331

0x0000: 4528 017f laa8 4000 3706 87a9 57f 0 8665

0x0010: c0a8 0102 0050 aOcf 0ad2 2905 5219 2da0

0x0020: 8018 002f 4d3a 0000 0101 080a 28f6 7b9b

0x0030: 00b6 bfbc 4854 5450 2f 31 2e31 2032 3030

0x0040: 204f 4b0d 0a53 6572 7665 723a 2041 7061

0x0050: 6368 650d 0a44 6174 653a 204d 6f6e 2c20

0x0060: 3232 204a 756e 2032 3031 3520 3230 3a31

0x0070: 333a 3035 2047 4d54 OdOa 436f 6e74 656e

0x0080: 742d 5479 7065 3a20 7465 7874 2f6a 6176

0x0090: 6173 6372 6970 743b 2063 6861 7273 6574

OxOOaO: 3d55 5446 2d38 OdOa 436f 6e74 656e 742d

OxOObO: 4c65 6e67 7468 3a20 3132 350d 0a43 6f6e

OxOOcO: 6e65 6374 696f 6e3a 206b 6565 702d 616c

OxOOdO: 6976 650d 0a50 7261 676d 613a 206e 6f2d

OxOOeO: 6361 6368 650d 0a43 6163 6865 2d43 6f6e

OxOOfO: 7472 6f6c 3a20 6e6f 2d73 746f 7265 OdOa

0x0100: OdOa 5b7b 2274 7322 3a22 3238 3734 3136

0x0110: 3430 3622 2c22 6576 656e 7473 223a 5b5d

0x0120: 7d2c 7b22 7473 223a 2231 3935 3037 3436

0x0130: 3839 3122 2c22 6576 656e 7473 223a 5b5d

0x0140: 7d2c 7b22 7473 223a 2231 3433 3237 3839

0x0150: 3736 3222 2c22 6576 656e 7473 223a 5b22

0x0160: 3233 3c21 3e6f 6666 6c69 6e65 3c21 3e34

0x0170: 3532 3031 3030 333c 213e 3122 5d7d 5d

01:13:05.309139 IP 192.168. 1.2.41167 > 87, 240.134.101.80: Flags [M. seq 1:1009

, ack 331, win 392, options [nop,nop, TS val 11982620 ecr 687242139], length 1008

0x0000: 4500 0424 9712 4000 4006 ffcl c0a8 0102

0x0010: 57f0 8665 aOcf 0050 5219 2da0 0ad2 2a50

0x0020: 8018 0188 a416 0000 0101 080a 00b6 d71c

0x0030: 28f 6 7b9b 504f 5354 2Q2f 696d 3636 3820

0x0040: 4854 5450 2f31 2e31 OdOa 486f 7374 3a20

0x0050: 7134 2e71 7565 7565 7634 2e76 6b2e 636f

0x0060: 6d0d 0a43 6f6e 6e65 6374 696f 6e3a 206b

0x0070: 6565 702d 616c 6976 650d 0a43 6f6e 7465

0x0080: 6e74 2d4c 656e 6774 683a 2032 3339 OdOa

0x0090: 4f 72 6967 696e 3a20 6874 7470 3a2f 2f71

Рисунок 2. Вывод утилиты tcpdump

21

www.sibac.info

Технические науки — от теории к практике № 7-8 (44), 2015 г

Система обнаружения вторжений лишь один из инструментов

защиты важных данных и он не должен рассматриваться как замена

для любого из других защитных механизмов.

Список литературы:

1. Бобров А. Системы обнаружения вторжений / Сайт Института механики

сплошных сред Российской Академии Наук [Электронный ресурс] — Режим доступа. — URL: http://www.icmm.ru/~masich/win/lexion/

ids/ids.html (дата обращения: 02.06.2015).

2. Приступая к работе / Введение в программирование на Go [Электронный ресурс] — Режим доступа. — URL: http://golang-book.ru/chapter-01-gettting-started.html (дата обращения: 02.06.2015).

3. Регулярные выражения / Википедия — свободная энциклопедия [Электронный ресурс] — Режим доступа. — URL: https://ru.wikipedia.org/ wiki/Регулярные_выражения (дата обращения: 02.06.2015).

4. Система обнаружения вторжений / Википедия — свободная энциклопедия

[Электронный ресурс] — Режим доступа. — URL: https://ш.wikipedia.org/wiki/Средство_обнаружения_вторжений (дата

обращения: 02.06.2015).

5. Tcpdump / Википедия — свободная энциклопедия [Электронный ресурс] — Режим доступа. — URL: https://ru.wikipedia.org/wiki/Tcpdump (дата обращения: 04.06.2015).

22

i Надоели баннеры? Вы всегда можете отключить рекламу.