- Регистрация
- 27.08.13
- Сообщения
- 103
- Реакции
- 103
- Депозит
- 0
- Покупок
-
1
- Продаж
-
1
Оригинал: Detecting Botnets
Автор: Grzegorz Landecki
Дата: 1 января 2009
Перевод: Александр Тарасов aka oioki
Дата перевода: 29 августа 2009
Все мы слышали новости о ботнетах (справка с википедии: Ботнет (англ. botnet) - это компьютерная сеть, состоящая из некоторого количества хостов, с запущенными ботами - автономным программным обеспечением. Чаще всего бот в составе ботнета является программой, скрытно устанавливаемой на компьютере жертвы и позволяющей злоумышленнику выполнять некие действия с использованием ресурсов заражённого компьютера. Обычно используются для нелегальной или неодобряемой деятельности -рассылки спама, перебора паролей на удалённой системе, атак на отказ в обслуживании). Более того, выявлены профессиональные средства их управления. Однако у большинства инженеров нет возможности повзаимодействовать с ними или хотя бы исследовать.
Число ботнетов и компьютеров-зомби увеличивается огромными темпами. Организация ShadowServer Foundation, которая продолжает собирать статистику этой тенденции, приводит следующие данные по активности ботнетов за последние два года (см. рисунок 1).
Вопросы, которые нас интересуют, достаточно просты. Можно ли утверждать, что в нашей сети нет компьютеров-зомби? Достаточна ли защита, предоставляемая патчами, антивирусами, анти-руткитами и антиспамом? Может быть, нужно что-то еще? Можно ли доверять одному ведущему поставщику безопасности? Может быть, следует воспользоваться услугами двух? Нужно ли задействовать какие-либо другие способы обеспечения безопасности?
К сожалению, на эти вопросы нет простых ответов. В марте 2008 года компания Damballa, занимающаяся информационной безопасностью, известила мир о существовании нового ботнета под названием Kraken. Он распределен по всему миру и гораздо более ресурсоемок, чем предыдущий Storm. По заявлению Damballa ботнет содержит около 400,000 зараженных компьютеров (жертв) - некоторые из них из числа компьютеров списка компаний Fortune 500. Это очень интересный пример, ведь многие поставщики средств безопасности (в основном, антивирусов) быстро отреагировали на эти заявления тем, что защита на местах работает, и угроза была в прошлом и нет смысла расстраиваться. Была ли это настоящая угроза, и откуда Damballa взяла эти цифры?
Расскажу вкратце. Damballa обнаружила (возможно, во время аудита безопасноти) новое вредоносное ПО (malware) с жестко закодированными адресами (URL) центров управления (control center, CC - компьютеры, откуда посылаются задания для зараженных компьютеров и куда в итоге идет отчетность о проделанных действиях). Также Damballa обнаружила, что эти жесткие адреса не зафиксированы в DNS (возможно, ботнет в это время еще тестировался, и авторы лишь готовили его к последующему запуску). Они взяли и зарегистрировали эти DNS-имена на себя и таким образом получили контроль над достаточно большим ботнетом, который можно было бы исследовать. Таким образом специалисты Damballa смогли определить IP-адреса компьютеров-зомби, посылающих отчеты о проделанной работе - было обнаружено огромное число компьютеров в больших корпоративных сетях. Теперь Damballa могла играть с ботами и исследовать их потенциальные вредоносные возможности.
Такое поведение специалистов из Damballa вызвало бурные обсуждения. Компания не связалась ни с одной компанией по безопасности, чтобы обсудить обнаруженные методы заражения компьютеров. Она не опубликовала никаких сведений об эксплойтах, и не предупредила поставщиков безопасности. Ребята из Damballa хотели забрать все себе.
Как специалист по информационной безопасности, я понимаю, что возможность исследовать подобный ботнет действительно завлекает, но отнюдь не поддерживаю Damballa в их решениях. Иметь армию зомби под контролем подобной организации намного лучше, чем позволять им гулять в "диком" виде. С другой стороны, Damballa позволила вредоносному ПО распространиться просто с той целью, чтобы провести исследование.
Однако это не самое главное. Главное, что компания Damballa показала существование необнаруженных ботнетов, состоящие из компьютеров в высокозащищенных средах, даже в компаниях, существенно заботящихся о своей информационной безопасности.
Так что даже если большие корпорации, обеспокоенные своей безопасностью, подвержены риску стать частью ботнета, что же можно говорить о других? Очевидно, одних лишь антивируса и средства защиты от вредоносного ПО недостаточно. Но что же делать? И как защитить свою IT-инфраструктуру от необнаруживаемого вредоносного ПО?
Одно из решений называется Darknet ("темная сеть").
Идея Darknet не нова. Она родилась из "медовых горшков" (honeypot) - решение, до сих пор оставшееся недооцененным, хотя его на самом деле легко реализовать. Термин Darknet обозначает закрытую или публичную часть сети, в которой нет никаких серверов/служб. На самом деле, в этой сети есть как минимум один тихий хост, отлавливающий и проверяющий все пакеты. Назовем его "тихий медовый горшок" (silent honeypot). Идея проста. Мы не ожидаем никакого трафика в этой сети, поэтому любой пакет, пришедший сюда, не является разрешенным и его нужно анализировать.
Как показано на рисунке 2, сеть разделяется на две части с сетевой маской /26. Часть Darknet состоит из тихих "ловцов трафика" или систем обнаружения вторжений (Network Intrusion Detection Systems, NIDS).
Существует множество сложных коммерческих систем обнаружения вторжений, но если не хотите платить кучу денег, можно воспользоваться одним из открытых и свободных решений, таким как Snort, Argus или полнофункциональным решением Darknet от Team Cymru (см. источники информации в конце статьи). Эти средства позволят вам получить полный анализ пакетов, относящихся к новым и еще неизвестным эксплойтам.
На рисунке 3 с веб-сайта Team Cymru показано, как Darknet обнаруживает червя спустя несколько минут после его запуска.
В этом примере Darknet обладает публичным адресным пространством, таким образом, будет отлавливаться весь входящий трафик. Мы будем обладать знанием того, какие существуют угрозы из внешнего мира, какие шаблоны трафика имеют место быть, и таким образом предугадывать будущие неизвестные эксплойты. Однако как мы можем обнаружить ботнеты внутри нашей сети? Чтобы ответить на этот вопрос, нужно взглянуть подробнее на поведение вредоносного ПО.
В настоящее время около 90% вредоносного ПО ведет себя обычным и примерно одинаковым способом. С точки зрения сетевого трафика, можно сказать, что типичное вредоносное ПО обладает следующими отличительными особенностями:
Должна обеспечиваться выживаемость. Это относится не совсем к сети. Вредоносное ПО постарается прописать себя в папку Автозагрузка, в стартовые скрипты или в реестр Windows.
Активные попытки самокопирования и распространения (заражение других соседних компьютеров). Способы различны - рассылка почтовых сообщений по адресам из адресной книги (почтовый канал); создание файлов в общих папках Windows, на сетевых дисках и в P2P-ресурсах (назовем это P2P-каналом); либо прямое заражение - путем применения 0-day эксплойтов на непропатченные системы.
Будут попытки связаться с управляющим центром (CC) с целью скачать другое вредоносное ПО, либо получить инструкции - обычно с веб-сайтов (веб-канал) или Internet Relay Chat (IRC-канал). Зачастую эти CC расположены на компьютерах с динамическим IP-адресом (используется динамический DNS) либо расположены в странах, известных дурной славой распространителей вредоносного ПО (Китай, Россия и т.д.), либо в подозрительных сетях (к примеру, известный Russian Business Network).
Будут попытки вредоносных действий - обычно рассылка спама (почтовый канал), утечка данных/шпионаж/хищение аутентификационных данных/фишинг, DDOS, зачастую через веб-канал.
Как мы можем видеть, вредоносное ПО зачастую использует самые популярные каналы распространения и управления - в основном, веб, почта, P2P и IRC-каналы.
Обладая этой информацией, мы можем создать Darknet внутри нашей сети и поместить туда ловцов трафика или систему обнаружения вторжений для сбора подозрительных данных.
Метод, изображенный на рисунке 4, можно объяснить одной фразой: "Весь исходящий трафик, который не разрешен (нарушает политику компании) или подозрителен, будет отправлен на анализ".
Остается одна проблема. Как определить, какой трафик можно считать подозрительным или нежелательным? Универсальным решением будет перенаправлять все пакеты с установленным evil-битом (RFC 3514). К сожалению, реализовать это достаточно сложно.
Рассмотрим пример. У нас есть компания с внутренним почтовым сервером и сервером имен (DNS/WINS). Мы можем перенаправлять весь исходящий трафик (если источник - не эти два сервера) на порты TCP 25 (SMTP), TCP/UDP 53 (DNS), TCP 6667-6669 (IRC) и всех известных P2P-клиентов (например, сети Limeware) на машины сети Darknet для дальнейшего анализа. Так как компьютеры внутренней сети не отправляют почту напрямую на другие сервера и не подсоединяются к IRC, мы можем попросту блокировать эти каналы и таким образом пресекать распространение вредоносного ПО. Если по своей природе деятельность компании направлена на близлежайшую местность или страну, мы можем перенаправлять все WWW-запросы (на порт TCP 80) к подозрительным доменам (таким как .cn или .ru), динамические DNS-имена и т.п.
Для решения этой задачи, мы установим базовые правила iptables в файрволле Linux, как в этом примере (мы перенаправляем все запросы с внутреннего интерфейса eth0 к порту TCP 6669 IRC на внутренний хост 1.1.1.1):
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 6669 -j DNAT --to 1.1.1.1:6669
iptables -A FORWARD -p tcp -i eth0 -d 1.1.1.1 --dport 6669 -j ACCEPT
Нам необходимо будет настроить внутренний сервер 1.1.1.1, чтобы он отлавливал весь трафик. Есть два способа сделать это: мы можем фиксировать все пакеты, пришедшие на сервер; либо установить определенные сервисы (WWW, IRC, SMTP, POP3, DNS) и затем следить за соединениями к ним и их целостностью.
Давайте подробнее рассмотрим способ с машиной, фиксирующей все пакеты. Более сложные решения (такие, как решения от антивирусных компаний) обычно включают несколько машин (зачастую как образы VMware) с различными операционными системами, открытыми общими ресурсами, веб-серверами, P2P-клиентами, почтовыми агентами, клиентами мгновенных сообщений и т.п.
После атаки/заражения, изменения в системе будут сравнены с входным состоянием (снимком VMware), и на основании этих изменений будет проводиться анализ вредоносного поведения и восстановление состояния.
Подобные лаборатории могут быть очень сложными, но для получения базовой функциональности (мониторинг трафика и предупреждения об угрозах) достаточно лишь одного компьютера с вашим любимым дистрибутивом Linux.
Автор: Grzegorz Landecki
Дата: 1 января 2009
Перевод: Александр Тарасов aka oioki
Дата перевода: 29 августа 2009
Все мы слышали новости о ботнетах (справка с википедии: Ботнет (англ. botnet) - это компьютерная сеть, состоящая из некоторого количества хостов, с запущенными ботами - автономным программным обеспечением. Чаще всего бот в составе ботнета является программой, скрытно устанавливаемой на компьютере жертвы и позволяющей злоумышленнику выполнять некие действия с использованием ресурсов заражённого компьютера. Обычно используются для нелегальной или неодобряемой деятельности -рассылки спама, перебора паролей на удалённой системе, атак на отказ в обслуживании). Более того, выявлены профессиональные средства их управления. Однако у большинства инженеров нет возможности повзаимодействовать с ними или хотя бы исследовать.
Число ботнетов и компьютеров-зомби увеличивается огромными темпами. Организация ShadowServer Foundation, которая продолжает собирать статистику этой тенденции, приводит следующие данные по активности ботнетов за последние два года (см. рисунок 1).
Вопросы, которые нас интересуют, достаточно просты. Можно ли утверждать, что в нашей сети нет компьютеров-зомби? Достаточна ли защита, предоставляемая патчами, антивирусами, анти-руткитами и антиспамом? Может быть, нужно что-то еще? Можно ли доверять одному ведущему поставщику безопасности? Может быть, следует воспользоваться услугами двух? Нужно ли задействовать какие-либо другие способы обеспечения безопасности?
К сожалению, на эти вопросы нет простых ответов. В марте 2008 года компания Damballa, занимающаяся информационной безопасностью, известила мир о существовании нового ботнета под названием Kraken. Он распределен по всему миру и гораздо более ресурсоемок, чем предыдущий Storm. По заявлению Damballa ботнет содержит около 400,000 зараженных компьютеров (жертв) - некоторые из них из числа компьютеров списка компаний Fortune 500. Это очень интересный пример, ведь многие поставщики средств безопасности (в основном, антивирусов) быстро отреагировали на эти заявления тем, что защита на местах работает, и угроза была в прошлом и нет смысла расстраиваться. Была ли это настоящая угроза, и откуда Damballa взяла эти цифры?
Расскажу вкратце. Damballa обнаружила (возможно, во время аудита безопасноти) новое вредоносное ПО (malware) с жестко закодированными адресами (URL) центров управления (control center, CC - компьютеры, откуда посылаются задания для зараженных компьютеров и куда в итоге идет отчетность о проделанных действиях). Также Damballa обнаружила, что эти жесткие адреса не зафиксированы в DNS (возможно, ботнет в это время еще тестировался, и авторы лишь готовили его к последующему запуску). Они взяли и зарегистрировали эти DNS-имена на себя и таким образом получили контроль над достаточно большим ботнетом, который можно было бы исследовать. Таким образом специалисты Damballa смогли определить IP-адреса компьютеров-зомби, посылающих отчеты о проделанной работе - было обнаружено огромное число компьютеров в больших корпоративных сетях. Теперь Damballa могла играть с ботами и исследовать их потенциальные вредоносные возможности.
Такое поведение специалистов из Damballa вызвало бурные обсуждения. Компания не связалась ни с одной компанией по безопасности, чтобы обсудить обнаруженные методы заражения компьютеров. Она не опубликовала никаких сведений об эксплойтах, и не предупредила поставщиков безопасности. Ребята из Damballa хотели забрать все себе.
Как специалист по информационной безопасности, я понимаю, что возможность исследовать подобный ботнет действительно завлекает, но отнюдь не поддерживаю Damballa в их решениях. Иметь армию зомби под контролем подобной организации намного лучше, чем позволять им гулять в "диком" виде. С другой стороны, Damballa позволила вредоносному ПО распространиться просто с той целью, чтобы провести исследование.
Однако это не самое главное. Главное, что компания Damballa показала существование необнаруженных ботнетов, состоящие из компьютеров в высокозащищенных средах, даже в компаниях, существенно заботящихся о своей информационной безопасности.
Так что даже если большие корпорации, обеспокоенные своей безопасностью, подвержены риску стать частью ботнета, что же можно говорить о других? Очевидно, одних лишь антивируса и средства защиты от вредоносного ПО недостаточно. Но что же делать? И как защитить свою IT-инфраструктуру от необнаруживаемого вредоносного ПО?
Одно из решений называется Darknet ("темная сеть").
Идея Darknet не нова. Она родилась из "медовых горшков" (honeypot) - решение, до сих пор оставшееся недооцененным, хотя его на самом деле легко реализовать. Термин Darknet обозначает закрытую или публичную часть сети, в которой нет никаких серверов/служб. На самом деле, в этой сети есть как минимум один тихий хост, отлавливающий и проверяющий все пакеты. Назовем его "тихий медовый горшок" (silent honeypot). Идея проста. Мы не ожидаем никакого трафика в этой сети, поэтому любой пакет, пришедший сюда, не является разрешенным и его нужно анализировать.
Как показано на рисунке 2, сеть разделяется на две части с сетевой маской /26. Часть Darknet состоит из тихих "ловцов трафика" или систем обнаружения вторжений (Network Intrusion Detection Systems, NIDS).
Существует множество сложных коммерческих систем обнаружения вторжений, но если не хотите платить кучу денег, можно воспользоваться одним из открытых и свободных решений, таким как Snort, Argus или полнофункциональным решением Darknet от Team Cymru (см. источники информации в конце статьи). Эти средства позволят вам получить полный анализ пакетов, относящихся к новым и еще неизвестным эксплойтам.
На рисунке 3 с веб-сайта Team Cymru показано, как Darknet обнаруживает червя спустя несколько минут после его запуска.
В этом примере Darknet обладает публичным адресным пространством, таким образом, будет отлавливаться весь входящий трафик. Мы будем обладать знанием того, какие существуют угрозы из внешнего мира, какие шаблоны трафика имеют место быть, и таким образом предугадывать будущие неизвестные эксплойты. Однако как мы можем обнаружить ботнеты внутри нашей сети? Чтобы ответить на этот вопрос, нужно взглянуть подробнее на поведение вредоносного ПО.
В настоящее время около 90% вредоносного ПО ведет себя обычным и примерно одинаковым способом. С точки зрения сетевого трафика, можно сказать, что типичное вредоносное ПО обладает следующими отличительными особенностями:
Должна обеспечиваться выживаемость. Это относится не совсем к сети. Вредоносное ПО постарается прописать себя в папку Автозагрузка, в стартовые скрипты или в реестр Windows.
Активные попытки самокопирования и распространения (заражение других соседних компьютеров). Способы различны - рассылка почтовых сообщений по адресам из адресной книги (почтовый канал); создание файлов в общих папках Windows, на сетевых дисках и в P2P-ресурсах (назовем это P2P-каналом); либо прямое заражение - путем применения 0-day эксплойтов на непропатченные системы.
Будут попытки связаться с управляющим центром (CC) с целью скачать другое вредоносное ПО, либо получить инструкции - обычно с веб-сайтов (веб-канал) или Internet Relay Chat (IRC-канал). Зачастую эти CC расположены на компьютерах с динамическим IP-адресом (используется динамический DNS) либо расположены в странах, известных дурной славой распространителей вредоносного ПО (Китай, Россия и т.д.), либо в подозрительных сетях (к примеру, известный Russian Business Network).
Будут попытки вредоносных действий - обычно рассылка спама (почтовый канал), утечка данных/шпионаж/хищение аутентификационных данных/фишинг, DDOS, зачастую через веб-канал.
Как мы можем видеть, вредоносное ПО зачастую использует самые популярные каналы распространения и управления - в основном, веб, почта, P2P и IRC-каналы.
Обладая этой информацией, мы можем создать Darknet внутри нашей сети и поместить туда ловцов трафика или систему обнаружения вторжений для сбора подозрительных данных.
Метод, изображенный на рисунке 4, можно объяснить одной фразой: "Весь исходящий трафик, который не разрешен (нарушает политику компании) или подозрителен, будет отправлен на анализ".
Остается одна проблема. Как определить, какой трафик можно считать подозрительным или нежелательным? Универсальным решением будет перенаправлять все пакеты с установленным evil-битом (RFC 3514). К сожалению, реализовать это достаточно сложно.
Рассмотрим пример. У нас есть компания с внутренним почтовым сервером и сервером имен (DNS/WINS). Мы можем перенаправлять весь исходящий трафик (если источник - не эти два сервера) на порты TCP 25 (SMTP), TCP/UDP 53 (DNS), TCP 6667-6669 (IRC) и всех известных P2P-клиентов (например, сети Limeware) на машины сети Darknet для дальнейшего анализа. Так как компьютеры внутренней сети не отправляют почту напрямую на другие сервера и не подсоединяются к IRC, мы можем попросту блокировать эти каналы и таким образом пресекать распространение вредоносного ПО. Если по своей природе деятельность компании направлена на близлежайшую местность или страну, мы можем перенаправлять все WWW-запросы (на порт TCP 80) к подозрительным доменам (таким как .cn или .ru), динамические DNS-имена и т.п.
Для решения этой задачи, мы установим базовые правила iptables в файрволле Linux, как в этом примере (мы перенаправляем все запросы с внутреннего интерфейса eth0 к порту TCP 6669 IRC на внутренний хост 1.1.1.1):
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 6669 -j DNAT --to 1.1.1.1:6669
iptables -A FORWARD -p tcp -i eth0 -d 1.1.1.1 --dport 6669 -j ACCEPT
Нам необходимо будет настроить внутренний сервер 1.1.1.1, чтобы он отлавливал весь трафик. Есть два способа сделать это: мы можем фиксировать все пакеты, пришедшие на сервер; либо установить определенные сервисы (WWW, IRC, SMTP, POP3, DNS) и затем следить за соединениями к ним и их целостностью.
Давайте подробнее рассмотрим способ с машиной, фиксирующей все пакеты. Более сложные решения (такие, как решения от антивирусных компаний) обычно включают несколько машин (зачастую как образы VMware) с различными операционными системами, открытыми общими ресурсами, веб-серверами, P2P-клиентами, почтовыми агентами, клиентами мгновенных сообщений и т.п.
После атаки/заражения, изменения в системе будут сравнены с входным состоянием (снимком VMware), и на основании этих изменений будет проводиться анализ вредоносного поведения и восстановление состояния.
Подобные лаборатории могут быть очень сложными, но для получения базовой функциональности (мониторинг трафика и предупреждения об угрозах) достаточно лишь одного компьютера с вашим любимым дистрибутивом Linux.