Для того чтобы взломать ваш сервер, подключенный к Интернету, взломщик должен определить пути наступления, то есть выработать какой-то предварительный план действий. Для этого ему необходимо, как минимум, узнать тип операционной системы вашего компьютера. А как максимум — получить список всех открытых портов (или служб), работающих на подключенной к Интернету системе. Все эти мероприятия обычно осуществляются с помощью так называемого сканирования. Процесс состоит в попытках подключения по различным протоколам (TCP или UDP) по заранее приготовленному списку часто используемых различными сервисами портов.
В зависимости от продвинутости взломщика могут быть использованы также и завуалированные методы анализа доступности сервисов вроде стелс-сканирования, представляющего собой последовательную посылку пакетов, запрашивающих соединения, и дальнейшего обрыва соединения при получении ответного пакета. Само собой разумеется, что после такой разведки взломщик сможет проверить ваши службы, доступные извне, на наличие известных ему уязвимостей и, возможно, получить доступ к вашей системе. В ответ на подобные действия злоумышленников были созданы достаточно эффективные средства противодействия. Одним из таких средств является демон scanlogd, который предназначен для информирования о попытках сканирования.
Небольшая оговоркаЯ намеренно не применяю термин хакер, означающий, прежде всего хорошее знание механизмов, а не их обязательное использование в преступлениях, которые связаны с информационными технологиями.
Список инструментов, которые могут использоваться для идентификации попыток сканирования, достаточно широк. Созданы и достаточно хорошо известны среди системных администраторов как достаточно сложные программы — анализаторы вторжений, которые предоставляют возможности определения сканирования в своем составе, — так и отдельные определители попыток сканирования. Все подобные системы имеют свои особенности, поэтому для качественного анализа попыток сканирования можно использовать одновременно несколько из них. Из всех бесплатных инструментов, предназначенных для предотвращения вторжений, утилита scanlogd является одним из наименее изощренных, но в то же время крайне эффективных средств информирования о злонамеренных действиях. Scanlogd фактически простейший детектор, предназначенный для определения попыток сканирования. Но, несмотря на всю внешнюю незамысловатость этой программы, она отлично справляется с отловом самых распространенных методов сканирования.
scanlogd Утилита Scanlogd имеет небольшой размер и использует в процессе работы несколько библиотек сторонних производителей (libpcap, libnet и libnids). Установка утилиты scanlogd в AltLinux выполняется с помощью встроенного менеджера обновления системы Synaptic. В других дистрибутивах Linux (или UNIX) вы можете скомпилировать утилиту из исходных кодов, свободно распространяемых на официальном веб-сайте программы scanlogd. Конечно же, в этом случае необходимым условием нормальной работоспособности утилиты будет являться установка всех необходимых ей библиотек (список со ссылками на которые приведен выше). И если в «Альте» Synaptic сам установит все, что вам необходимо, для запуска scanlogd, то в случае с ручной компиляцией программы вам нужно будет самостоятельно позаботиться про ручную установку необходимого программного обеспечения.
Настройка scanlogd в LinuxПосле установки утилиты необходимо проверить правильность создания символической ссылки для скрипта автозапуска демона scanlogd. Эта ссылка предназначается для запуска демона scanlogd в ходе процесса инициализации системы. Проверить ее наличие в вашей Linux-системе можно следующей командой:
#> ls -l /etc/rc5.d/*scanlogd.
Если такая ссылка еще не существует, ее необходимо будет создать либо с помощью файлового менеджера mc, либо с помощью команды ln. В первом случае в одной из файловых панелей mc перейдите в каталог /etc/rc.d/, а во второй панели наведите указатель на файл /etc/rc.d/init.d/scanlogd. После чего введите последовательно "Ctrl+x" и «S» или выберите пункт меню "Файл — Символич. ссылка". В качестве имени ссылки укажите /etc/rc5.d/S35scanlogd. Следует учесть, что, даже если ссылка создана, для запуска демона scanlogd (конечно же, без перезагрузки операционной системы) следует ввести (в консоли, от имени root) команду: /etc/rc5.d/S35scanlogd start. Если все выполнено правильно, будет выведено сообщение вроде "Starting scanlogd [Done]".
Обработка результатов, выдаваемых scanlogd
Утилита scanlogd не имеет ни одного настраиваемого извне параметра. Она просто фиксирует все попытки доступа к портам. То есть пользователь получает «черный ящик», который выполняет необходимые ему действия по анализу проходящих через систему пакетов. В том случае если была попытка открыть подключение к 7-ми привилегированным портам (имеющим номер до 1024) либо к 21-му не привилегированному порту (все номера выше 1024 ), scanlogd передает сообщение для демона syslogd, который записывает его в лог-файл. По умолчанию в AltLinux все сообщения от scanlogd будут записаны в лог-файл /var/log/messages. Для упрощения дальнейшего анализа логов сканирования вашей системы и их обработки можно указать демону syslog на необходимость дополнительной записи всех нужных вам сообщений в еще один лог-файл. Для этого допишите в конец файла конфигурации /etc/syslog.conf строку:
daemon.crit /var/log/daemon_crit
Логика работы syslog позволяет указывать так называемый приоритет и источник системных сообщений. Именно эти параметры записываются в файл конфигурации syslog в приведенной выше строке. Для сообщений от scanlogd таким приоритетом является «crit» для источника сообщений «daemon». После добавления строки следует перезапустить демон системного логгера syslog с помощью команды:
/etc/init.d/syslogd restart
Формат логов scanlogd Сообщения scanlogd записываются в лог-файл в следующем формате:
ip_источника to ip_хоста ports порт1,порт2 ..., TCP_флаги, @время
Ip_источника — это ip-адрес отправителя пакетов, сканирующих ваш хост. При разборе сетевых инцидентов следует, однако, иметь в виду, что этот адрес вполне возможно подделать (TCP и UDP не имеют поддержки идентификации отправителя пакетов). Поэтому не стоит считать наличие в логах scanlogd какого-либо ip-адреса 100%-ным доказательством того, что атака велась именно с него. Ip_хоста — это адрес интерфейса, по которому производилось сканирование. В том случае если у компьютера есть несколько сетевых карт или интерфейсов доступа, позволяет определить направление атаки. Порт1 ... — список портов, по которым производились попытки подключения. Обычно перечисляются только несколько первых портов, в противном случае в лог бы записывалось слишком много информации, что могло бы приводить к его переполнению. Параметр TCP_флаги — представляет собой управляющие биты, установленные в сканирующих ваш хост пакетах. Конечно, для того чтобы понять, что ваш компьютер сканируется, не обязательно знать значения этих битов, но для углубленного анализа сканирования они будут полезны. Их описание можно найти в RFC793.
Автоматизация scanlogdДля отправки сообщений про сканирование вашего сервера электронной почтой можно использовать приведенный ниже php-скрипт. Его следует создать в каталоге /etc/cron.daily/, после чего сообщения про сканирование вашего хоста начнут отсылаться на указанный вами е-майл один раз в сутки.
Листинг php-скрипта для обработки логов scanlogd |
Особености scanlogdПо умолчанию демон scanlogd реагирует на обращение к определенному количеству портов в течение определенного промежутка времени. Фактически анализируется взвешенное значение таких обращений. Кроме того, утилита не дает возможности атакующему хосту выполнить с ее помощью DDOS-атаку, поскольку в случае прохождения в течение 20 секунд более 5 процессов сканирования вывод логов на некоторое время будет заблокирован. Основная особенность (достоинство это или недостаток — судить вам) scanlogd — невозможность тонкой настройки параметров ее функционирования с помощью конфигурационного файла. То есть вы имеете готовую логику работы и можете ее использовать без возможности какой-либо притирки под свои нужды. Это, конечно, имеет определенные плюсы при использовании утилиты начинающим и в качестве страховки на всякий случай. Но при профессиональном подходе к проблеме раннего обнаружения сетевых атак никакая возможность не помешает.
Windows-версияКроме версий для Linux, также имеется свободно распространяемая версия scanlogd для операционных систем типа Windows. Она доступна к загрузке с этого сайта.
В завершениеБыстрое развитие информационных технологий заставляет как взломщиков, так и администраторов компьютерных систем применять все более изощренные методы и средства. Администратору компьютерной сети, подключенной к Интернету, следует помнить, что большинство сетевых атак начинается со сканирования. Очень важно не дать взломщику шансов на дальнейшее продолжение атаки. Следует также учесть, что как бы хорошо ни был защищен ваш сервер, всегда следует предпринимать дополнительные меры предосторожности. Рано или поздно может возникнуть такая ситуация, когда логи scanlogd позволят вам воссоздать полную картину происшедшего инцидента. Конечно, хорошо, чтобы такого вообще не случалось, но никто ведь не застрахован от ошибок. Следует помнить также про то, что scanlogd является наипростейшим способом защиты вашей системы. В том случае если у вас нет вообще никакого предупреждающего механизма, применение такого средства позволит выявить возможные бреши в вашей системе защиты и наиболее видимые попытки взлома. Само по себе применение scanlogd еще не является панацеей от всех сетевых бед. Желательно объединять возможности этой программы с другими системами раннего обнаружения атак.
Ссылки по теме
Статья получена: hostinfo.ru