02.04.2003

–азвертывание OpenSource Honeyd honeypot в »нтернет

Ёто - втора€ из трех статей, посв€щенна€ Honeyd, OpenSource решению, которое превосходно подходит дл€ обнаружени€ атак и неавторизованной активности. ¬ первой статье, мы обсудили, что такое honeypots, их назначение и какими они бывают. «атем мы перешли к детальному рассмотрению Honeyd. ¬ этой статье мы еще подробнее рассмотрим Honeyd. “очнее говор€, мы развернем Honeyd в огромном и опасном »нтернете на одну неделю и посмотрим, что произойдет. ÷ель в том, чтобы проверить Honeyd, позволив плохим парн€м атаковать его. «атем мы проанализируем, как действовал honeypot, и что обнаружилось.

ћихаил –азумов, по материалам SecurityFocus

Ёто - втора€ из трех статей, посв€щенна€ Honeyd, OpenSource решению, которое превосходно подходит дл€ обнаружени€ атак и неавторизованной активности. ¬ первой статье, мы обсудили, что такое honeypots, их назначение и какими они бывают. «атем мы перешли к детальному рассмотрению Honeyd. ¬ этой статье мы еще подробнее рассмотрим Honeyd. “очнее говор€, мы развернем Honeyd в огромном и опасном »нтернете на одну неделю и посмотрим, что произойдет. ÷ель в том, чтобы проверить Honeyd, позволив плохим парн€м атаковать его. «атем мы проанализируем, как действовал honeypot, и что обнаружилось.

 онфигурирование и ввод в действие

ѕеред тем, как перейти к рассказу о том, как действовал Honeyd, и что обнаружилось, давайте уделим немного времени дл€ обсуждени€, как € сконфигурировал и ввел honeypot в действие. ƒл€ целей этой статьи, € развернул Honeyd версии 0.5 на защищенной системе Red Hat Linux 7.3. Ёта верси€ Honeyd имеет новые возможности. ќсобенно важно, что теперь можно задавать множественные IP адреса и диапазоны дл€ одновременного контрол€ honeypot. Ёто дает нам больше гибкости в том, что контролирует honeypot. “акже, верси€ 0.5 имеет новые возможности дл€ ведени€ логов. ћало того, что все соединени€ регистрируютс€ в /var/log/messages, Honeyd теперь поддерживает опциональный файл регистрации, в котором все соединени€ регистрируютс€ более детально, что очень ценно дл€ последующей обработки. ћы рассмотрим эти возможности, а также другие, позже.

—еть, которую € выбрал, €вл€етс€ сетью мелкой компании с выходом в »нтернет. Ёта сеть не защищена файрволом, и потому подвержена всем типам взломов, червей, и другой злонамеренной активности, существующей в »нтернет. Ёто €вл€етс€ превосходной почвой дл€ тестировани€ honeypot. ¬ этой сети было п€ть IP адресов, которые не использовались. я настроил Honeyd контролировать четыре IP адреса с помощью виртуальных honeypot.  ак вы помните, Honeyd работает путем наблюдени€ за неиспользуемым IP пространством и взаимодейству€ с любой активностью, адресованной к неиспользуемым IP. я использовал п€тый IP адрес дл€ удаленного управлени€ honeypot. Ётот IP Ц реальный IP, присвоенный реальному компьютеру, на котором запущено программное обеспечение honeypot. »спользу€ конфигурацию IPTables, показанную ниже, € защитил свой honeypot. ‘айрвол позвол€ет все вход€щие подсоединени€ ко всем четырем виртуальным honeypots. ¬ то же врем€, файрвол строго ограничивает доступ к самой системе, в данном случае только € имею доступ по SSH с моей администраторской системы. „тобы еще больше защитить ваш honeypot, вы можете применить к процессу Honeyd chroot() или даже systrace(). Ќиже представлена конфигураци€ IPTables, которую € использовал дл€ доступа к системе honeypot и четырем виртуальным honeypots.

 $IPTABLES -A INPUT -i lo -j ACCEPT
# Allow the following inbound connections
$IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN --dport 22 -j LOG --log-
prefix "Inbound SSH Connection: "
$IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN -s 192.168.1.1 Цd 192.168.1.100 --
dport 22 -j ACCEPT 
$IPTABLES -A INPUT -d 192.168.1.101 -j ACCEPT
$IPTABLES -A INPUT -d 192.168.1.102 -j ACCEPT
$IPTABLES -A INPUT -d 192.168.1.103 -j ACCEPT
$IPTABLES -A INPUT -d 192.168.1.104 -j ACCEPT 
# Maintain state of inbound connections.
$IPTABLES -A INPUT  -m state --state RELATED,ESTABLISHED -j ACCEPT
### Set Policies
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT
 
ѕосле того, как € защитил файрволом свою платформу и определил IP, которые € хотел контролировать с помощью Honeyd, следующим шагом было конфигурирование самих honeypots. я решил протестировать Honeyd с использованием различных операционных систем и сервисов. “аким образом, € создал следующие три honeypots: Windows NT 4.0 Server, Linux 2.4.X, and a Cisco router. „етвертый honeypot, с IP 192.168.1.103, осталс€ без конфигурационного файла. ћне было интересно посмотреть, как будет действовать Honeyd, контролиру€ определенный IP без конфигурации. Ќиже находитс€ конфигурационный файл, который € использовал.

  ### Windows computers
create windows
set windows personality "Windows NT 4.0 Server SP5-SP6"
set windows default tcp action reset
set windows default udp action reset
add windows tcp port 80 "perl scripts/iis-0.95/iisemul8.pl"
add windows tcp port 139 open
add windows tcp port 137 open
add windows udp port 137 open
add windows udp port 135 open
set windows uptime 3284460
bind 192.168.1.101 windows
### Linux 2.4.x computer
create linux
set linux personality "Linux 2.4.16 - 2.4.18"
set linux default tcp action reset
set linux default udp action reset
add linux tcp port 110 "sh scripts/pop3.sh"
add linux tcp port 25 "sh scripts/smtp.sh"
add linux tcp port 21 "sh scripts/ftp.sh"
set linux uptime 3284460
bind 192.168.1.102 linux
### Cisco router
create router
set router personality "Cisco IOS 11.3 - 12.0(11)"
set router default tcp action reset
set router default udp action reset
add router tcp port 23 "/usr/bin/perl scripts/router-telnet.pl"
set router uid 32767 gid 32767
set router uptime 1327650
bind 192.168.1.104 router 
  

 ак вы можете увидеть из конфигурационного файла, каждой операционной системе были присвоены соответствующие сервисы, которые должны ожидатьс€ на соответствующих системах. —истема Windows имела открытые порты NetBIOS (как UDP, так и TCP), Linux имел сервисы почты и FTP, и наконец Cisco router имел стандартный порт Telnet. ѕосле того, как € сконфигурировал honeypots, все было готово к их запуску под управлением Honeyd. ¬ версии 0.5 мы имеем несколько дополнительных возможностей, включа€ конфигурационные файлы xprobe2.prints. Ётот файл используетс€ дл€ обмана попыток определени€ отпечатков с помощью Xprobe. я также использовал новую возможность регистрации Honeyd, сохран€€ детали атак в добавочный файл, /var/log/honeyd. Ќиже вы можете увидеть, как € запустил свой honeypot.

honeyd -p nmap.prints -f honeyd.conf -x xprobe2.prints -a nmap.assoc Цl /var/log/honeyd 192.168.1.101-192.168.1.104

¬ добавление к возможност€м регистрации Honeyd, € добавил дополнительную функцию ведени€ логов с использованием Snort. Snort был сконфигурирован дл€ перехвата пакетов и их данных всей активности на четырех виртуальных honeypots. “акже, Snort генерировал предупреждени€ на любую обнаруженную злонамеренную активность. я использовал конфигурационный файл Snort похожий на тот, что используют Honeynet Project с Honeynets. »спользованные вместе, Honeyd и Snort €вл€ютс€ мощным решением дл€ регистрации.

–езультаты

¬о-первых, имейте в виду, что поскольку Honeyd не производит никакой активности, ничто не должно взаимодействовать с четырьм€ IP адресами, которые он контролирует. Ёто делает анализ собранной информации очень простым, так как практически все, что он перехватывает, наверн€ка имеет враждебные намерени€. ¬о-вторых, комбинаци€ логов Honeyd и Snort €вл€етс€ чрезвычайно ценной. Ћоги Honeyd дают вам общую картину, а именно, какие системы исследуют какие порты, и когда. ¬ерси€ 0.5 теперь поддерживает два формата регистрации, так что вы можете выбрать дл€ анализа данные, которые лучше соответствуют вашим нуждам. ѕосле того, как вы определили, какой трафик вас интересует, можно использовать Snort дл€ анализа перехваченых пакетов с более детальной информацией.

Ќе удивительно, что Honeyd продемонстрировал, что »нтернет Ц чрезвычайно враждебна€ среда. ≈сли у€звимые системы развернуты в »нтернет, они будут быстро обнаружены и компрометированы. „ерви, авторутеры, и активные взломщики непрерывно обыскивают »нтернет в поисках чего-нибудь ценного. Honeyd быстро и просто продемонстрировал это. ¬ течение одной недели в феврале 2003, Honeyd сканировалс€ в среднем 67 уникальными системами в день. ƒавайте взгл€нем на типичный день и посмотрим на активность, перехваченную Honeyd.

12 феврал€ 2003 года был загруженный день. ¬ течение этого дн€ 82 различных компьютера зондировали honeypots. Ќи одна из этих систем не имела никаких оснований или разрешений соедин€тьс€ с нашим honeypot. ј если так, мы полагаем, что они были враждебными. Ќачнем с просмотра var/log/messages. «десь Honeyd регистрирует всю обнаруженную активность в читабельном дл€ человека формате. Ќиже мы видим несколько различных попыток сканировани€, с разъ€снени€ми, что происходит в каждом случае.

  • ѕерва€ попытка сканировани€ сделана против Windows NT hontypot. јтакующий провер€ет UDP 1978, который, как сказано в логе, €вл€етс€ закрытым портом. Ќаш honeypot должен был ответить сообщением ICMP ERROR Port Unreachable.
  • ¬о втором подсоединении мы видим подсоединение атакующего к TCP 25 на Linux honeypot. Ётот порт не просто открыт, мы прив€зали к нему скрипт, в данном случае скрипт smtp.sh, который эмулирует почтовый сервер. —крипт регистрирует взаимодействие с эмулированным почтовым сервером, которое мы видим в smtp-.log. ¬ этом случае атакующий наверн€ка искал open mail relays. —памер!
  • ƒалее мы видим взломщика, провер€ющего порт 80 на Linux honeypot. ѕорт закрыт и honeypot отвечает RST.
  • » наконец, в последнем логе мы видим атакующего, провер€ющего порт UDP 137, наверн€ка это сканирование NetBIOS. —транно, что атакующий использует частный IP RFC 1918.
/var/log/messages
Feb 12 23:06:33 laptop honeyd[30948]: 
Connection to closed port: udp(210.35.1192.168.1.102:8028.1:1978 - 192.168.1.101:1978)
Feb 12 23:23:40 laptop honeyd[30948]: 
Connection request: tcp(66.136.92.78:3269 - 
192.168.1.102:25)
Feb 12 23:23:40 laptop honeyd[30948]: 
Connection established: tcp
(66.136.92.78:3269 - 192.168.1.102:25) <-> sh scripts/smtp.sh
Feb 12 23:24:14 laptop honeyd[30948]: 
Connection dropped with reset:tcp (66.136.92.78:3269 - 192.168.1.102:25)
Feb 12 23:34:53 laptop honeyd[30948]: Killing attempted connection:tcp 
(216.237.78.227:3297 - 192.168.1.102:80)
Feb 12 23:39:14 laptop honeyd[30948]: 
Connection: udp (10.5.5.71:1026 -192.168.1.101:137)
Feb 12 23:39:14 laptop honeyd[30948]: 
Connection established: udp(10.5.5.71:1026 - 192.168.1.101:137)
/tmp/honeyd/smtp-.log
Wed Feb 12 23:23:40 UTC 2003: SMTP started from  Port
EHLO relay.verizon.net
MAIL From:
RCPT To:
¬ лог-файле /varlog/honeyd, мы видим ту же информацию, но в несколько другом формате. Ёта информаци€ предназначена дл€ чтени€ и обработки скриптами и утилитами. ќбратите внимание также на крайнюю правую часть соединени€. Ёто число показывает общее количество байт при попытке соединени€.

/var/log/honeyd
2003-02-12-23:06:33.0633 udp(17) - 210.35.128.1 1978 192.168.1.101 1978: 69
2003-02-12-23:23:40.0600 tcp(6) S 66.136.92.78 3269 192.168.1.102 25
2003-02-12-23:24:14.0940 tcp(6) E 66.136.92.78 3269 192.168.1.102 25: 98 342
2003-02-12-23:34:53.0969 tcp(6) - 216.237.78.227 3297 192.168.1.102 80: 48 S
2003-02-12-23:39:14.0008 udp(17) S 10.5.5.71 1026 192.168.1.101 137
2003-02-12-23:39:14.0194 udp(17) - 10.5.5.71 1026 192.168.1.102 137: 78

Ћоги Honeyd эффективно показывают нам, что происходит. я обычно начинаю с них, чтобы определить, кака€ происходит активность. ≈сли происход€т подсоединени€ к портам с прикрепленными скриптами, эти скрипты часто имеют собственные возможности ведени€ логов, встроенные в них, как мы видели в скрипте smtp.sh. ≈динственное огорчение состо€ло в том, что € не смог найти Honeyd скрипт дл€ эмул€ции веб-сервера IIS.

¬ добавок к логам Honeyd, каждое из этих соединений также перехватывалось Snort. ћы можем проанализировать пакеты и их данные дл€ каждого атакующего в поисках дополнительной информации, такой как пассивные отпечатки. ≈сли бы была предприн€та реальна€ атака, Snort бы обнаружил атаку и сгенерировал предупреждение. 12 феврал€ Snort обнаружил 48 атак, включа€ попытки переполнени€ FTP CWD, Socks Scans, и WEB-IIS unicode обхода директории. ¬ целом, типичный день в »нтернет.

–еальна€ ценность Honeyd и honeypots вообще состоит не только в том, что они обнаруживают, но и в том, чего они не обнаруживают: ложные тревоги. Honeypots практически устран€ют ложные сигналы. ѕочти вс€ информаци€, которую они собирают, индицирует злонамеренную активность. ѕоскольку количество данных мало, вы можете быстро обнаруживать и реагировать на угрозу. »нструменты, такие как Honeyd, представл€ют превосходную технологию, дополн€ющую ваши IDS системы. ѕредставьте, что вы обнаружите, если развернете что-нибудь вроде этого в вашей внутренней сети?

«аключение

Honeyd демонстрирует истинные способности обнаружени€, присущие honeypots. »мейте в виду, что этот инструмент еще совсем молод: вы можете ожидать много новых, захватывающих возможностей у Honeyd в будущем. ≈сли вы хотите побольше узнать о Honeyd, или honeypots вообще, вы можете начать с сайта http://www.tracking-hackers.com/, или с книги Honeypots: Tracking Hackers.

или введите им€

CAPTCHA