Multi Router Traffic Grapher (MRTG) - простая кросс-платформенная
утилита для отслеживания трафика
проходящего через маршрутизаторы в сети.
Концепция ее проста до безобразия: она при
помощи SNMP отслеживает количество ушедших и
пришедших байт и на основании этого строит
график, который отдается админу через HTML
страницы. Однако MRTG может показывать
гораздо больше, нежели лишь объем трафика.
Ниже рассказывается о том, как использовать
MRTG в качестве детектора атак на ваш сервер и
сеть. Ведь действительно - любая атака
создает некоторые возмущения в
упорядоченной жизни сети, и значит ее можно
засечь и проанализировать при помощи MRTG.
Например:

Угроза Сетевые "аномалии"
Использование CGI сканера против сайта
для нахождения уязвимостей
Пиковое увеличение HTTP 404 Not Found ошибок;
увеличение HTTP запросов в секунду.
Попытка подбора пароля брутфорсом Резкое увеличение ошибок HTTP 401 Authorization
Required.
Появление нового червя Увеличение трафика по одному из
протоколов.
Заражение вашего сервера червем Увеличение исходящего трафика одного
из протоколов; увеличение нагрузки на
процессор сервера.
Нападающий обнаружил уязвимость и
организовал на вашем сервере варезный
FTP сайт
Увеличение исходящего FTP или HTTP
трафика.
Попытка использования SQL injection на
сайте
Увеличение HTTP 500 Server Errors
Попытка переполнения буфера и
загрузки троянов/шпионов для
управления сервером/сетью
Увеличение кол-ва процессов на
сервере, увеличение работы процессора
и потребляемой памяти и т.д.
Использование против сервера DDoS  Увеличение ICMP трафика, различных
ошибок, кол-ва ТСР соединений и т.д.
Прочие попытки взлома  Увеличение предупреждений от вашей IDS.

Как видите - сетевой трафик может служить
достаточно весомым показателем начала
атаки. Хакеру нужны серверные ресурсы: CPU,
память, диск, сеть. Нападающий создает
процессы, открывает порты, создает записи в
логах и ошибки, все это вы можете мониторить.
Единственная возможность для хакера
организовать нападение так, что бы остаться
незамеченным - не выбиваться из обычного
сетевого фона. Это можно сделать например
следующими методами:

  • Увеличить время между попытками атак
  • Уменьшить трафик
  • Избегать увеличения нагрузки на сервер
  • Распределить атаки по нескольким
    источникам, дабы уменьшить трафик с
    одного хоста
  • Использовать время самого большого
    наплыва посетителей или периоды
    распространения червей в Инете
  • Использовать выходные для атаки

Несмотря на это даже опытному хакеру
трудно избегнуть обнаружения. 

Переходим к практике. Допустим мы хотим
мониторить IIS 6, с него надо снимать: сетефой
трафик - объем, кол-во пакетов, кол-во
соединений; ошибки протоколов; web-трафик -
кол-во юзеров, кол-во байт, запросов и ошибок;
загруженность процессора, памяти и диска;
количество процессов и потоков.

На сервере нужно включить сам SNMP - в Windows 2003
через Highlight Management and Monitoring Tools. Необходимо
так же обеспечить некоторые шаги по его
настройке - вообще говоря это не слишком
безопасный протокол и использовать его для
передачи данных через сеть не особо
рекомендуется. Так как мы SNMP будет
использовать локально, настройка сведется
к простым действиям: файрволом закрыть 161 и
62 порты, придумать некую community string (READ ONLY),
которая эквивалента паролю (не
рекомендуется использовать стандартные
имена типа PUBLIC), поставьте прием SNMP пакетов
только от localhost.

Перейдем к MRTG. Скачать программу можно с
официального сайта www.mrtg.org,
так же вам понадобиться для работы ActivePerl
(некий мануаль по установке и работе с CISCO
маршрутизаторами можете прочитать тут: http://support.teleserv.ru/staty_tex/cisco_05.html).
SecurityFocus подготовила примерный
конфиг
, который вы можете использовать
для своей работы, так что о настройках
наверное говорить особо не надо - впрочем в
директории mrtg\doc лежат интересные файлики, а
тут
- руководство по настройке.

Протестировать работу проги можно так:

C:\ProgramFiles\MRTG>perl mrtg mrtg.cfg

если все ОК, то в web-директории должны
появиться HTML и прочие файлы.

В конфиге используются следующие
счетчики:

Counter Source
Bytes in and out SNMP
CPU Usage SNMP
Memory Usage SNMP
Disk Usage SNMP
ICMP Messages SNMP
TCP Connections SNMP
Processes/Threads WMI/VBScript
HTTP Connections LogParser/Batch File
HTTP Errors LogParser/Batch File

И вот как выглядит собираемая статистика:

Заметьте, что MRTG позволяет собирать
информацию из внешних источников, так что
одним SNMP можно не ограничиваться. Говорят,
что Microsoft не очень корректно реализовала
некоторые особенности SNMP, так что можно
продублировать их получение из других
источников - например можно брать данные из
Windows Management Instrumentation (WMI)

Процессы и потоки можно получить так:

Set oWService=GetObject("winmgmts:\\localhost\root\cimv2")
Set colItems=oWService.ExecQuery| ("SELECT * FROM Win32_PerfFormattedData_PerfOS_System",,48)
For Each Item in colItems
Param1=Param1 + Item.Processes
Param2=Param2 + Item.Threads
Uptime=Item.SystemUptime
Next
WScript.Echo Param1
WScript.Echo Param2
WScript.Echo Uptime & " seconds"
WScript.Echo "LocalHost"

А web-статистику - используя Microsoft LogParser из
логов IIS:

@for /f "tokens=1,2,3,4* delims=/ " %%i in 
('date /t') do @set year=%%l&& 
@set month=%%j&& @set day=%%k
@set logfile=c:\windows\system32\LogFiles\%1\ex%YEAR:~2,2%%month%%day%.log
@If Exist %logfile% (
@logparser "SELECT COUNT(*) FROM %logfile% WHERE (sc-status>= 400AND sc-status<500) 
AND TO_TIMESTAMP(date, time) > SUB(SYSTEM_TIMESTAMP(), TO_TIMESTAMP('5','m'))" -q
@logparser "SELECT COUNT(*) FROM %logfile% WHERE (sc-status>= 500AND sc-status<600) 
AND TO_TIMESTAMP(date, time) > SUB(SYSTEM_TIMESTAMP(), TO_TIMESTAMP('5','m'))" -q
) ELSE (
@Echo %logfile%
@Echo 0
)
@Echo Unknown
@Echo %1

Используя данные, получаемые MRTG, можно
прекрасно мониторить работу сервера и на
раннем этапе обнаруживать попытки взлома и
нападений. Конечно, существуют и более
удобные и заточенные для этого средства - но
ведь интересно применить что-то новое,
найти еще одно применение казалось бы
непричастным программам :).

Источник: http://www.securityfocus.com/

 

Check Also

Изучаем ПЛК. Краткий гайд по поиску уязвимостей в промышленных контроллерах

Если ты думаешь, что контроллеры, которые ставят в зданиях и на заводах, защищены намного …

Оставить мнение