Статья опубликована в рамках: XLVIII-XLIX Международной научно-практической конференции «Технические науки - от теории к практике» (Россия, г. Новосибирск, 26 августа 2015 г.)

Наука: Технические науки

Секция: Информатика, вычислительная техника и управление

Библиографическое описание:
Бадртдинов А.С., Поздеев А.А., Тихоненко М.А. РАЗРАБОТКА ПРОСТЕЙШЕЙ СИСТЕМЫ ОБНАРУЖЕНИЯ ВТОРЖЕНИЙ // Технические науки - от теории к практике: сб. ст. по матер. XLVIII-XLIX междунар. науч.-практ. конф. № 7-8(44). – Новосибирск: СибАК, 2015.
Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

 

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

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

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

РФ,  г.  Пермь

Е-mail liga_asu@mail.ru

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

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

РФ,  г.  Пермь

Е-mail: 

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

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

РФ,  г.  Пермь

Е-mail: 

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

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

РФ,  г.  Пермь

Е-mail tikhonenko_m@mail.ru

 

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  г.  это  направление  было  развито  публикацией  статьи  «О  модели  обнаружения  вторжения»  Дороти  Деннинг.  Она  обеспечила  методологический  подход,  вдохновивший  многих  исследователей  и  заложивший  основу  для  создания  коммерческих  продуктов  в  области  обнаружения  и  предотвращения  вторжений  [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”  —  отбрасываются  исходящие  пакеты  от  машины,  на  которой  запущена  программа.

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)

  }

  }

  }

}

 

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

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

 

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

 

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

 

 

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

 

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

 

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

  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://ru.wikipedia.org/wiki/Средство_обнаружения_вторжений  (дата  обращения:  02.06.2015).
  5. Tcpdump  /  Википедия  —  свободная  энциклопедия  [Электронный  ресурс]  —  Режим  доступа.  —  URL:  https://ru.wikipedia.org/wiki/Tcpdump  (дата  обращения:  04.06.2015).
Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий