В последнее время о ботнетах в рунете говорят очень много. В основном это связано с DDoS-атаками на известные и посещаемые ресурсы. Ниже мы обсудим опыт крупных компаний в области борьбы с этой напастью.
Ботнет представляет собой совокупность систем, зараженных вредоносным кодом и управляемых централизованно. Причем устроен он таким образом, что уничтожение или отключение достаточно большого количества узлов не должно влиять на его работоспособность в целом. Ботнеты могут использоваться для таких целей, как рассылка спама, фишинг, DDoS, атаки на другие системы, заражение новых ПК и превращение их в узлы ботнета. Стоит отметить, что в данный момент индустрия киберпреступности довольно сильно сегментирована по специализации и направленности преступлений. Это означает, что каждый занимается своим делом. В результате получается, что создатель ботнета продает ресурсы или услуги ботнета другим злоумышленникам, специализирующимся на тех или иных видах преступлений (типовую бизнес-структуру ты можешь посмотреть на иллюстрации). Стоит отметить, что интерфейс управления ботнетом довольно прост. С ним может справиться человек, обладающий даже очень низкой квалификацией. В соответствии с облачными веяниями, в последнее время появилась услуга Malware as a Service. Если кто-то не может создать и распространять свой зловредный код, всегда найдется провайдер, способный сделать это за определенные деньги. Впрочем, создать ботнет сегодня тоже не бог весть какая сложная задача. На рынке есть множество готовых наборов для изготовления ботнета, таких как Zbot (Zeus), Spyeye, Mariposa, Black Energy, ButterFly, Reptile. Это означает, что современные владельцы ботнетов могут даже не обладать какими-либо особыми технологическими навыками. Впрочем, если говорить о крупных ботнетах, то их создатели — это, безусловно, способные, талантливые люди, бороться с которыми довольно сложно. В рамках этого материала я хотел бы рассказать о практиках, которые используются большими компаниями для борьбы с киберпреступностью и, в частности, ботнетами. Речь, в частности, пойдет об активности компании Microsoft, в которой я и работаю.
Возможно, это и заставит кого-то улыбнуться, но в Microsoft в последние несколько лет наблюдается серьезная работа по повышению безопасности продуктов и сервисов. Появились и стали применяться методологии разработки безопасного кода SDL, что ключевым образом повлияло на количество найденных за последнее время уязвимостей (особенно тех, которые можно эксплуатировать). Но речь сегодня пойдет не о превентивных мерах, которые могут предотвратить будущие угрозы, а о борьбе с проблемами, которые актуальны сегодня. Большое количество зараженных машин, работающих под операционной системой Windows, — как раз такая проблема.
Внутри компании был создан целый ряд подразделений по борьбе с киберпреступлениями. Последние носят разные имена — Digital Crime Unit, Microsoft Security Response Center, Trust worth Computing, — но задачи каждого так или иначе пересекаются с проблемой киберпреступности. Вместе с правоохранительными органами и исследовательскими организациями Microsoft начал операции по уничтожению крупнейших ботнетов. Звучит громко? Возможно, но за год были уничтожены такие ботнеты, как:
Для того чтобы понять типовые способы уничтожения ботнета, надо разобраться с его архитектурой и слабыми местами. Чаще всего для управления ботнетом используется один или несколько командных (часто центральных) серверов, называемых Command & Control, или C&C. Они взаимодействуют с конечными узлами ботнета по разным протоколам. Наиболее часто в качестве протокола управления используется IRC. Впрочем, в последнее время резко увеличилось применение P2P-протоколов как более устойчивой, хотя и технологически сложной альтернативы. Интересной экзотикой в последнее время стало использование для управления ботнета файлообменных сетей и передача управляющих команд в теле фотографий, публикуемых на Facebook. Так или иначе, для борьбы с ботнетом можно предпринять несколько конкретных действий:
Сложность борьбы с Waledac заключалась в децентрализованной схеме работы ботнета. Для его работы было зарезервировано ни много ни мало 277 доменных имен. Это значит, что захватывать сервера нужно было одновременно в нескольких ЦОД, у разных провайдеров хостинга. Кроме того, для управления ботнетом успешно использовался P2P-механизм. Если посмотреть на схему ботнета, то сразу бросается в глаза многослойность управляющих серверов. В процессе заражения системы с помощью Waledac зловредный код определяет, какую роль будет выполнять новый узел. Он становится либо простым узлом, рассылающим спам, если находится за NAT и не принимает входящие соединения на 80-й порт, либо узлом, который повторяет (ретранслирует) команды из центра, — то есть своего рода репитером. Репитеры используются для управления ботнетом. Каждый репитер кроме передачи управляющих команд узлам-спамерам поддерживает также список «соседей», состоящий из 100 узлов, также выполняющих роль ретранслятора, к которым он может подключиться по P2P-протоколу. Со временем любой узел-повторитель регистрирует свое доменное имя в fast flux DNS. Это делается для того, чтобы дать возможность обращаться к себе узлам-спамерам, если ближайший к ним репитер вдруг выйдет из строя и станет недоступен. Таким образом узлы ботнета всегда могут найти ближайший узел-ретранслятор и получать от него команды и обновления исполняемого кода. Ботнет устроен так, что со временем роли узлов могут меняться. Если система, используемая как ретранслятор, к примеру, попадает в корпоративную сеть и лишается возможности принимать подключения на 80 й порт, то она автоматически получает роль спамера. При этом проанализировать топологию ботнета не так просто, потому как еще одной задачей репитера является противодействие исследованию топологии ботнета. Он служит своеобразным прокси и не позволяет узлам-спамерам знать что-либо об управляющих узлах C&C.
Проанализировав архитектуру ботнета, мы проработали план для атаки на ботнет со следующими конкретными шагами:
В случае неработоспособности P2P-механизма узлы ботнета начинают искать друг друга с помощью механизма fast flux DNS. Поэтому необходимо было разрушить и этот способ управления, чтобы злоумышленник не мог восстановить контроль над ботнетом. Это интересный момент, потому что здесь мы использовали юридический механизм. Типичная процедура отзыва DNS-имени через ICANN с помощью процедуры со страшным названием «Uniform Domain-Name Dispute-Resolution Policy» может занять довольно много времени. Это позволило бы злоумышленникам успеть осознать, что его атакуют, и предпринять меры по регистрации новых DNS-имен, на которые позже перевести управление ботнетом. Поэтому вместо стандартной процедуры ICANN мы воспользовались процедурой «TRO (temporary restraining order)» — возможностью временно приостанавливать действие доменов на 28 дней по решению федерального суда США. На этом этапе еще одной сложностью было то, что часть DNS-имен была зарегистрирована на территории Китая.
Для того чтобы злоумышленники могли побороться с Microsoft в суде, ежели у них появится желание заявить свои права на ботнет, на сайте было опубликовано исковое заявление. Также в национальных газетах на территории стран, откуда подозреваемые управляли ботнетом, были опубликованы уведомления о вызове в суд. Как и предполагалось, никто не посмел явиться в суд и заявить о своих правах на ботнет. Таким образом Microsoft выиграл суд на территории США и Китая. Подробнее о юридических тонкостях и перипетиях борьбы за ботнет можно почитать в специальном разделе сайта Microsoft.
В результате этих юридических действий права на DNS перешли к Microsoft. На данный момент DNS-имена подключены к серверам Microsoft. В случае, если к этим серверам подключается зараженный узел из ботнета, на него подается команда, приказывающая удалить зловредный код бота Waledac.
Мы надеемся таким образом постепенно очистить интернет от последних остатков ботнета Waldac. Чтобы злоумышленникам было неповадно в дальнейшем создавать ботнеты, Microsoft продолжает расследование и сбор доказательств. С этой целью мы предложили награду в $250 000 тому, кто сообщит сведения, способствующие аресту преступной группы, стоявшей за Rustock. По нашему опыту, такой подход может сработать. В завершение хочется сказать что Microsoft и в дальнейшем намерен активно бороться с киберпреступлениями, преследуя злоумышленников всеми доступными ему способами.
Журнал Хакер, Октябрь (10) 153
Андрей Бешков (abeshkov).
Подпишись на «Хакер»
Что такое ботнет?
Ботнет представляет собой совокупность систем, зараженных вредоносным кодом и управляемых централизованно. Причем устроен он таким образом, что уничтожение или отключение достаточно большого количества узлов не должно влиять на его работоспособность в целом. Ботнеты могут использоваться для таких целей, как рассылка спама, фишинг, DDoS, атаки на другие системы, заражение новых ПК и превращение их в узлы ботнета. Стоит отметить, что в данный момент индустрия киберпреступности довольно сильно сегментирована по специализации и направленности преступлений. Это означает, что каждый занимается своим делом. В результате получается, что создатель ботнета продает ресурсы или услуги ботнета другим злоумышленникам, специализирующимся на тех или иных видах преступлений (типовую бизнес-структуру ты можешь посмотреть на иллюстрации). Стоит отметить, что интерфейс управления ботнетом довольно прост. С ним может справиться человек, обладающий даже очень низкой квалификацией. В соответствии с облачными веяниями, в последнее время появилась услуга Malware as a Service. Если кто-то не может создать и распространять свой зловредный код, всегда найдется провайдер, способный сделать это за определенные деньги. Впрочем, создать ботнет сегодня тоже не бог весть какая сложная задача. На рынке есть множество готовых наборов для изготовления ботнета, таких как Zbot (Zeus), Spyeye, Mariposa, Black Energy, ButterFly, Reptile. Это означает, что современные владельцы ботнетов могут даже не обладать какими-либо особыми технологическими навыками. Впрочем, если говорить о крупных ботнетах, то их создатели — это, безусловно, способные, талантливые люди, бороться с которыми довольно сложно. В рамках этого материала я хотел бы рассказать о практиках, которые используются большими компаниями для борьбы с киберпреступностью и, в частности, ботнетами. Речь, в частности, пойдет об активности компании Microsoft, в которой я и работаю.
Стандартный подход к управлению ботнетом
Microsoft vs. Ботнет
Возможно, это и заставит кого-то улыбнуться, но в Microsoft в последние несколько лет наблюдается серьезная работа по повышению безопасности продуктов и сервисов. Появились и стали применяться методологии разработки безопасного кода SDL, что ключевым образом повлияло на количество найденных за последнее время уязвимостей (особенно тех, которые можно эксплуатировать). Но речь сегодня пойдет не о превентивных мерах, которые могут предотвратить будущие угрозы, а о борьбе с проблемами, которые актуальны сегодня. Большое количество зараженных машин, работающих под операционной системой Windows, — как раз такая проблема.
Внутри компании был создан целый ряд подразделений по борьбе с киберпреступлениями. Последние носят разные имена — Digital Crime Unit, Microsoft Security Response Center, Trust worth Computing, — но задачи каждого так или иначе пересекаются с проблемой киберпреступности. Вместе с правоохранительными органами и исследовательскими организациями Microsoft начал операции по уничтожению крупнейших ботнетов. Звучит громко? Возможно, но за год были уничтожены такие ботнеты, как:
- Rustock, рассылавший 80 % мирового спама.
- Coreflood, который служил инструментом для преступлений, принесших более $100 млн убытков.
- Waledac, боты которого отправляли 1,5 млрд спам-сообщений ежедневно.
Борьба с ботнетами: общие практики
Для того чтобы понять типовые способы уничтожения ботнета, надо разобраться с его архитектурой и слабыми местами. Чаще всего для управления ботнетом используется один или несколько командных (часто центральных) серверов, называемых Command & Control, или C&C. Они взаимодействуют с конечными узлами ботнета по разным протоколам. Наиболее часто в качестве протокола управления используется IRC. Впрочем, в последнее время резко увеличилось применение P2P-протоколов как более устойчивой, хотя и технологически сложной альтернативы. Интересной экзотикой в последнее время стало использование для управления ботнета файлообменных сетей и передача управляющих команд в теле фотографий, публикуемых на Facebook. Так или иначе, для борьбы с ботнетом можно предпринять несколько конкретных действий:
- Захватить или вывести из строя С&C-узлы.
- DDoS на С&C-узлы.
- Жалобы провайдеру, где хостятся C&C-узлы.
- Захват DNS-имен, используемых C&C.
- Блокирование IP-адресов.
- Арест владельца ботнета.
- Судебный иск.
Многослойная архитектура управления Waledac
Waledac: устройство
Сложность борьбы с Waledac заключалась в децентрализованной схеме работы ботнета. Для его работы было зарезервировано ни много ни мало 277 доменных имен. Это значит, что захватывать сервера нужно было одновременно в нескольких ЦОД, у разных провайдеров хостинга. Кроме того, для управления ботнетом успешно использовался P2P-механизм. Если посмотреть на схему ботнета, то сразу бросается в глаза многослойность управляющих серверов. В процессе заражения системы с помощью Waledac зловредный код определяет, какую роль будет выполнять новый узел. Он становится либо простым узлом, рассылающим спам, если находится за NAT и не принимает входящие соединения на 80-й порт, либо узлом, который повторяет (ретранслирует) команды из центра, — то есть своего рода репитером. Репитеры используются для управления ботнетом. Каждый репитер кроме передачи управляющих команд узлам-спамерам поддерживает также список «соседей», состоящий из 100 узлов, также выполняющих роль ретранслятора, к которым он может подключиться по P2P-протоколу. Со временем любой узел-повторитель регистрирует свое доменное имя в fast flux DNS. Это делается для того, чтобы дать возможность обращаться к себе узлам-спамерам, если ближайший к ним репитер вдруг выйдет из строя и станет недоступен. Таким образом узлы ботнета всегда могут найти ближайший узел-ретранслятор и получать от него команды и обновления исполняемого кода. Ботнет устроен так, что со временем роли узлов могут меняться. Если система, используемая как ретранслятор, к примеру, попадает в корпоративную сеть и лишается возможности принимать подключения на 80 й порт, то она автоматически получает роль спамера. При этом проанализировать топологию ботнета не так просто, потому как еще одной задачей репитера является противодействие исследованию топологии ботнета. Он служит своеобразным прокси и не позволяет узлам-спамерам знать что-либо об управляющих узлах C&C.
Каждый репитер поддерживает список соседей
Waledac: уничтожение
Проанализировав архитектуру ботнета, мы проработали план для атаки на ботнет со следующими конкретными шагами:
- Нарушение peer-to-peer механизмов обмена управляющими командами.
- Нарушение обмена DNS/HTTP-командами.
- Нарушение работы двух верхних слоев C&C-серверов.
В случае неработоспособности P2P-механизма узлы ботнета начинают искать друг друга с помощью механизма fast flux DNS. Поэтому необходимо было разрушить и этот способ управления, чтобы злоумышленник не мог восстановить контроль над ботнетом. Это интересный момент, потому что здесь мы использовали юридический механизм. Типичная процедура отзыва DNS-имени через ICANN с помощью процедуры со страшным названием «Uniform Domain-Name Dispute-Resolution Policy» может занять довольно много времени. Это позволило бы злоумышленникам успеть осознать, что его атакуют, и предпринять меры по регистрации новых DNS-имен, на которые позже перевести управление ботнетом. Поэтому вместо стандартной процедуры ICANN мы воспользовались процедурой «TRO (temporary restraining order)» — возможностью временно приостанавливать действие доменов на 28 дней по решению федерального суда США. На этом этапе еще одной сложностью было то, что часть DNS-имен была зарегистрирована на территории Китая.
Для того чтобы злоумышленники могли побороться с Microsoft в суде, ежели у них появится желание заявить свои права на ботнет, на сайте было опубликовано исковое заявление. Также в национальных газетах на территории стран, откуда подозреваемые управляли ботнетом, были опубликованы уведомления о вызове в суд. Как и предполагалось, никто не посмел явиться в суд и заявить о своих правах на ботнет. Таким образом Microsoft выиграл суд на территории США и Китая. Подробнее о юридических тонкостях и перипетиях борьбы за ботнет можно почитать в специальном разделе сайта Microsoft.
В результате этих юридических действий права на DNS перешли к Microsoft. На данный момент DNS-имена подключены к серверам Microsoft. В случае, если к этим серверам подключается зараженный узел из ботнета, на него подается команда, приказывающая удалить зловредный код бота Waledac.
Регистрация доменного имени
Подключение серверов Microsoft к Waledac
Заключение
Мы надеемся таким образом постепенно очистить интернет от последних остатков ботнета Waldac. Чтобы злоумышленникам было неповадно в дальнейшем создавать ботнеты, Microsoft продолжает расследование и сбор доказательств. С этой целью мы предложили награду в $250 000 тому, кто сообщит сведения, способствующие аресту преступной группы, стоявшей за Rustock. По нашему опыту, такой подход может сработать. В завершение хочется сказать что Microsoft и в дальнейшем намерен активно бороться с киберпреступлениями, преследуя злоумышленников всеми доступными ему способами.
Не такие, как все
Опрометчиво считать, что ботнеты состоят только из Windows-машин. Есть ботнеты и на Linux/Unix — Psyb0t, Chuck Norris, насчитывающие сотни тысяч устройств. В основном такие ботнеты создаются из домашних маршрутизаторов, коммутаторов и NAS нижнего ценового диапазона. Уничтожить такой ботнет крайне трудно, так как домашний пользователь в большинстве случаев не обладает знаниями в Linux и навыками обновления прошивки устройства. Производитель устройства заинтересован в быстром устаревании устройства и часто не только не намерен устранять недостатки, но и не имеет механизмов централизованного обновления своих продуктов. По данным исследования от 2009 года, в интернете в любой момент можно найти несколько миллионов домашних устройств с устаревшими прошивками и паролями по умолчанию.Журнал Хакер, Октябрь (10) 153
Андрей Бешков (abeshkov).
Подпишись на «Хакер»