• Категории
  • Подписка
  • Разместить статью
14/10/10 5 3723 Системы контроля и обнаружения вторжений
-

Детекторы сканирования в дистрибутивах Linux

Прежде всего, до попытки взлома чужого компьютера хакеру необходимо выполнить ска­нирование по сети выбранной цели. При использовании программ, позволяющих обнаружить выполнение сканирования, владелец компьютера или администратор сети получает преиму­щество и может подготовиться к атаке или заблокировать (или даже отключить) все слабые места защиты. Детекторы сканирования, которые являются неотъемлемой частью качествен­ных систем обнаружения вторжений (Intrusion Detection System — IDS), позволяют предупре­дить о выполняющемся сканировании компьютера.

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

Klaxon

Программа Klaxon (можно найти по адресу — ftp://ftp.eng.auburn.edu/pub/doug) раз­работана Дугом Хьюзом (Doug Hughes) и является довольно простым детектором сканирова­ния. Для прослушивания различных не использующихся службами портов в конфигурацион­ный файл /etc/inetd.conf суперсервера inetd достаточно добавить несколько строк, подобных нижеприведенным.

discard      stream TCP	nowait	  root	/path/to/klaxon	 klaxon	  discard
рорЗ         stream TCP	nowait	  root	/path/to/klaxon	 klaxon	  рорЗ
netbios-ns   stream TCP	nowait	  root	/path/to/klaxon	 klaxon	  netbios-ns
imap2        stream TCP	nowait	  root	/path/to/klaxon	 klaxon	  imap2
rexec        stream TCP	nowait	  root	/path/to/klaxon	 klaxon	  rexec
login        stream TCP	nowait	  root	/path/to/klaxon	 klaxon	  login
tftp         stream ODP	wait	  root	/path/to/klaxon	 klaxon	  tftp

Теперь при вызове любого из указанных портов программа Klaxon зарегистрирует соедине­ние с помощью команды syslog и попробует установить имя удаленного пользователя с по­мощью запроса IDENT.

К сожалению, Klaxon не в состоянии выявить скрытые (stealth) попытки сканирования, эта программа вызывается inetd только при полном установлении соединения (с подтверждени­ем) по протоколу TCP. Если подтверждение не получено, то соединение в конечном итоге об­рывается без запуска Klaxon.

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

scanlogd

Разработанная компанией Solar Designer (создавшей среди других средств и заплат утилиту John the Ripper) программа scanlogd (http://www.openwall.com/scanlogd/ (см. www.openwall.com)) яв­ляется независимым демоном для обнаружения сканирования. Она позволяет использовать сокеты для доступа к протоколам нижнего уровня (raw sockets), а также программы libnids и libpcap Для контроля за входящими соединениями.

Программа scanlogd сигнализирует о выполняемом процессе сканирования портов, если обнаруживает запросы к 7 различным привилегированным портам (номера до 1024), к 21 непривилегированному порту (номера больше 1024) или ко взвешенной комбинации двух портов при их вызове в течение трехсекундного интервала. Сканирование немедленно регистрируется с помощью syslog. Кроме того, при обнаружении пяти процессов сканирования в течение 20 секунд scanlogd временно прекращает создание отчетов о сканировании этого компьютера для предотвращения возникновения атаки отказа в обслуживании, которая может полностью заполнить системный журнал. Сообщения syslog выдаются в следующем формате:

[адрес_отправителя] to [адрес_ получателя] ports [порт, порт, …], [ТСР_флаги] [&время]

Например, при сканировании локального хоста с помощью программы nmap сообщения syslog могут выглядеть следующим образом (для удобства восприятия они сгруппированы в две строки):

scanlogd: 127.0.0.1 to 127.0.0.1 ports 47161, 835, 6110, 889, 6005, 963, 168, 403, ..., f??pauxy, TOS 00 @17:19:58
scanlogd: 127.0.0.1 to 127.0.0.1 ports 44851, 134, 1002, 633, 2, 6006, 761, 958, ..., f??pauxy, TOS 00 @17:22:45
scanlogd: 127.0.0.1 to 127.0.0.1 ports 39792, 910, 73, 117, 2638, 169, 53, 537, ..., f??pauxy, TOS 00 @18:30:32

Указанные TCP_флаги — это управляющие биты, установленные для пакетов протокола TCP. Хотя для того, чтобы понять, что компьютер подвергается сканированию, знать значение этих битов необязательно, но они будут полезными при более углубленном исследовании про­веденного сканирования и атак. Описания управляющих битов приведены в документе RFC 793.

PortSentry

Программа PortSentry (http://sourceforge.net/projects/sentrytools/ (см. sourceforge.net)) является частью проекта Abacus компании Psionic и позволяет не только обнаруживать сканирование, но и предпринимать определенные действия против источника атаки. Она позволяет выявлять и обычное, и скрытое сканирование, а также осуществлять мониторинг до 64 портов, что более чем достаточно для определения сканирования. При выявлении сканирования портов PortSentry может выполнять следующие ответные действия:

  • Записывать в системные журналы информацию об атаке посредством syslogd.
  • С помощью добавления строки в файл /etc/hosts.deny запретить установку соеди­нений с определенным хостом.
  • Добавлять локальный маршрут, который делает невозможным обмен информацией с источником сканирования и эффективно блокирует весь обратный трафик.
  • Перенастроить на компьютере фильтры пакетов для полного запрета доступа со стороны хакера.

Автоматическое блокирование хостов несет угрозу возможной атаки отказа в обслуживании. Хакер может создавать пакеты, внешне похожие на паке­ты, поступающие от другого компьютера. В результате детектор сканиро­вания может запретить соединение с этими хостами. Таким образом, мож­но потерять связь с важными компьютерами, например, с компьютером, на котором хранятся системные журналы, с DNS-сервером или сервером безопасности.

Программа PortSentry может быть запущена в нескольких режимах для протоколов TCP и UDP:

  • Режим TCP. PortSentry будет ждать установки соединения к перечисленным ТСР-портам и при подключении к ним блокировать удаленные хосты.
  • Режим обнаружения скрытого (stealth) сканирования TCP. С помощью сокетов для доступа к протоколам нижнего уровня (raw socket) PortSentry проверяет все входящие паке­ты на предмет сканирования. Если пакет предназначен для одного из контролируемых портов, запускается программа блокирования. Позволяет обнаружить практически все виды скрытого сканирования.
  • Режим UDP. PortSentry контролирует установку соединения к перечисленным UDP-портам и при подключении к ним блокирует удаленные хосты.
  • Режим обнаружения скрытого (stealth) сканирования UDP. PortSentry, используя сокеты для доступа к протоколам нижнего уровня, проверяет все входящие UDP-пакеты без установления соединения. Этот режим не намного полезнее обычного режима UDP, так как скрытое сканирование по UDP практически невозможно.
  • Улучшенный режим обнаружения скрытого сканирования по TCP. PortSentry определяет все порты, использующиеся другими программами, и осуществляет мониторинг всех остальных портов.
  • Улучшенный режим обнаружения скрытого сканирования по UDP. То же самое, но по отношению к протоколу UDP.

Улучшенные режимы обнаружения скрытого сканирования TCP/UDP наиболее опти­мальны, так как позволяют обнаружить любой необычный трафик. Но при этом увеличивается вероятность ложного срабатывания. PortSentry может определить, когда соединение происхо­дит к временно открытому порту, и игнорирует такие соединения. Данный метод соединений довольно распространен, например для FTP, когда открываются временные порты (номера больше 1024) для входящих пакетов в целях обмена данными. Если бы программа PortSentry не могла выполнять подобного определения, то она бы блокировала все эти вполне «мирные» па­кеты.

Порт ident/auth (TCP порт 113) часто вызывается удаленным компьюте­ром для определения имени пользователя, который хочет установить с этим компьютером соединение (за более подробной информацией обрати­тесь к документу RFC 931). Если на компьютера не запущена служ­ба ident, то необходимо добавить этот порт в список игнорируемых PortSentry. Это стандартный порт, на который другие компьютеры посылают свои запросы, и если не внести его в список игнорируемых, то можно заблокировать все компьютеры, с которыми вы хотите установить соединение.

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

LIDS

Средство LIDS (http://www.lids.org/ (см. www.lids.org)) (Linux Intrusion Detection System — система обнаружения и защиты от втор­жений в операционную систему Linux), обладает встроенным детектором сканирования портов, подключаемым как параметр при компиляции. Информация обо всех действиях, которые совершаются против всех защищен­ных LIDS объектов, записывается в системный журнал или отправляется по электронной поч­те. Хотя в LIDS не предусмотрена возможность автоматического выполнения ответных дейст­вий, но с помощью программ мониторинга системного журнала или фильтров электронной почты можно организовать просмотр создаваемых LIDS отчетов и автоматического создания правил для программ ipchains/iptables.


5 комментариев на «“Детекторы сканирования в дистрибутивах Linux”»

  1. спасибо за отличную статью!

  2. Очень интересно почитать, автор раскрыл тему детекторов, спасибо!

  3. Прочел статью в надежде увидеть что-то, что умеет качественно опознавать stealth атаки. Но, прочитав, понял, что до сих пор так ничего и не изобрели. Грустно. stealth в nmap появился еще когда я курсе так на первом был, а щас уже 2010 год. Грустно и печально господа.

  4. Как всегда война снаряда и брони. Победу не одержит никто. Чем лучшую защиту будут разрабатывать, тем все совершеннее будут становиться системы взлома.

  5. nmap имеет целый ряд функций для уклонения от систем вторжения FIREWALL/IDS EVASION AND SPOOFING

Добавить комментарий

Яндекс.Метрика