Table of Contents
Огромные вычислительные мощности облачных инфраструктур открывают перед пентестерами и блекхатами множество новых возможностей. Сегодня мы посмотрим на cloud computing с новой стороны и рассмотрим конкретные кейсы использования облачных мощностей для взлома и пентестинга.
IaaS на службе у хакера
Облачные вычисления представлены для пользователя следующими услугами:
- SaaS (Software as a Service)
- PaaS (Platform as a Service)
- IaaS (Infrastructure as a Service)
- HaaS (Hardware as a Service)
- WaaS (Workplace as a Service)
- IaaS (Infrastructure as a Service)
- EaaS (Everything as a Service)
- DaaS (Data as a Service)
- SaaS (Security as a Service)
В первую очередь нас интересует сервис IaaS, так как он предоставляет в данный момент наиболее востребованную и “реалистичную” среду для пентестера. Сервис IaaS предоставляет пользователю возможность создания виртуального сервера на основе оборудования провайдера облачных вычислений. Самое очевидное преимущество данного сервиса — практически неограниченные возможности по масштабированию вычислительных мощностей.
Что же такое сервис IaaS для пентестера? Это уникальная возможность использовать десятки идентичных по возможностям серверов с целью эффективной реализации классических задач в области пентеста:
- обман IPS при удаленном сканировании портов;
- распределенный перебор паролей;
- атаки на отказ в обслуживании;
- сканирование сетевого периметра;
- автоматизированный поиск уязвимостей.
Само собой, использование инновационных технологий облачных вычислений может быть направлено как в полезное русло, так и в не очень полезное. Как плохие парни могут использовать сервис в своих целях? Этот вопрос мы постараемся рассмотреть в данной главе на примере наиболее частых злоупотреблений.
Анонимность
Вопрос анонимности при использовании сервисов облачных вычислений стоит крайне остро. Дело в том, что вся информация, которая необходима для получения доступа к такого рода сервисам, ограничивается лишь номерами кредитной карты и сотового телефона. Большинство провайдеров верят пользователю “на слово” и не задумываются в настоящий момент о вопросах, возникающих после того, как их сервис стал одной из ключевых цепочек в истории взлома какого-либо ресурса. Чтобы выгодно продать свои услуги, провайдеры охотно предлагают пользователям промо-программы, предоставляющие возможность бесплатного использования сервисов в течение определенного промежутка времени. Вся информация о пользователе, получившем доступ к сервису, в таком случае сводится к адресу электронной почты и IP-адресу, который был использован пользователем для управления услугами. Совершенно понятно, что в этих условиях существует много способов абсолютно анонимного использования облачных мощностей.
Сетевая разведка
Термин “сетевая разведка” подразумевает под собой мероприятия, направленные на автоматизированный сбор информации для дальнейшего анализа. Облачные вычисления позволяют создать отличную площадку для проведения такого рода мероприятий, потому что обеспечивают несколько важных факторов, которые необходимы для автоматизации сбора данных. А именно: разные IP-адреса, с которых производится сбор данных, скорость канала связи и вычислительные ресурсы, позволяющие быстро обрабатывать полученную в результате сбора данных информацию.
Сканирование портов
Использование возможностей сервиса IaaS позволяет злоумышленнику преодолевать такие защитные средства, как IPS/IDS. Идея возможности скрытого от IPS/IDS сканирования портов на удаленной системе заключается в том, что сканирование проходит с более чем десятка различных IP-адресов с временными интервалами, по частям. В результате — даже хорошо настроенная IPS/IDS не сможет идентифицировать событие сканирования портов, а если идентифицирует его, то заблокирует только один IP-адрес из множества адресов, сканирующих серверов. Естественно, для реализации такой задачи необходимо разработать программное обеспечение, позволяющее удаленно управлять процессами на серверах, запущенных на площадке провайдера облачных вычислений.
Проведение атак
IaaS-площадки идеально подходят и для атак на удаленные сервисы. Например, для перебора паролей, а также различных видов client-side-атак. Во-первых, на площадке достаточно легко и просто “развернуть” любой боевой арсенал, например, metasploit или canvas. Во-вторых, перебор паролей может быть осуществлен распределенно, как и в случае со сканированием портов удаленного хоста, во избежание блокировки IP-адреса атакующего. В третьих, площадка IaaS может послужить отличным посредником между атакующим и целью с точки зрения того, что история всех действий, совершенных с площадки IaaS, будет уничтожена после выключения сервера.
Брутфорс
Возможность использовать условно “неограниченные” ресурсы облачных вычислений позволяет продуктивно проводить мероприятия по брутфорсу хешей и генерации радужных таблиц с последующим восстановлением по ним зашифрованных строк. Явным плюсом генерации радужных таблиц на базе облачных сервисов является возможность использования огромного устройства хранения данных. На практике генерация радужных таблиц для алгоритма ntlm (mixalpha-numeric-all-space, 8 символов) сводится только к вопросу времени и финансовым затратам. Для генерации такой таблицы на топовом домашнем компьютере потребуется порядка 1290 лет. В случае же облачных вычислений, прямо здесь и сейчас можно купить “машину времени”, которая будет создаваться примерно 1,5 года и ее стоимость составит порядка $320k. Я хочу сказать, что такую таблицу, используя облачные вычисления, на практике можно создать всего за 1,5 года. В таблице 1 показана детальная статистика по финансовым затратам для такой разработки. В данном случае использовалось 20 серверов со следующими техническими характеристиками: 2xIntel Xeon X5570 quad-core “Nehalem” architecture, 2 ядра NVidia Tesla M2050, 23 Гб ОЗУ.
Цифры говорят о том, что пора менять парольную политику — расшифровать NTLM-хеш пароля из 8 символов вполне реально и доступно для плохих парней. Но это только теория. На практике же политика безопасности паролей более лояльна и ограничивает пользователя лишь длиной пароля — 8 символов в лучшем случае. Статистика используемых паролей в крупных компаниях, составленная Дмитрием Евтеевым и приведенная в его докладе “Анализ проблем парольной защиты в российских компаниях“, говорит о том, что большинство пользователей всеми возможными способами пытаются обойти ограничения парольной политики и использовать простой пароль.
В таблице 2 представлены необходимые для генерации различных радужных таблиц ресурсы.
Как видно, генерация “универсальной” радужной таблицы для паролей, состоящих из символов английского алфавита (lowcase) и цифр (от 1 до 12 символов) занимает целый миллениум и порядка 80 млн долларов. Для частного лица это на грани фантастики, но для государств и даже крупного бизнеса — вполне подъемно. Если же задаться целью, то используя всего 20 000 серверов вместо 20, можно создать такую таблицу всего за год.
Облачный DDoS
В первую очередь необходимо разобраться со схемой проведения эффективной ДДоС-атаки на сервер/сервис. Гаранты эффективности ДДоС-атаки:
- большое количество атакующих машин;
- “умная” нагрузка атакуемой системы.
IaaS в скопе со специализированным DDoS-софтом — этой убойная конструкция, позволяющая осуществлять очень эффективные ДДоС-атаки. Сервис IaaS удовлетворяет пункт о необходимом множестве атакующих машин. Специализированный софт должен отвечать за “умную” нагрузку атакуемых систем с целью “отказа в обслуживании”.
Специалистами нашей компании было разработано техническое задание для подобного рода софта. Требования к распределенной системе нагрузочного тестирования:
- мультиплатформенность (Linux/Windows);
- модульность;
- централизованное управление (клиент<->сервер).
Необходимые на первых парах модули:
- SYN flood
- UDP flood
- ICMP flood
- Application flood
- HTTP/HTTPS (GET/POST)
- FTP
- SMTP/SMTP+SSL/TLS
- POP3/POP3+SSL
Параллельно с разработкой распределенной системы нагрузочного тестирования, мы провели испытания уже существующего софта для нагрузочного тестирования. Большая часть публичного ПО не удовлетворяла пункту централизованного управления, в связи с чем пришлось самостоятельно писать управляющие скрипты для централизации управления атакующими приложениями.
Из публичных утилит мы использовали два продукта:
- Mauszahn — утилита для генерации трафика (как валидного, так и невалидного). В большинстве случаев используется для проведения тестирования сетей VoIP или больших сетей, а также для проведения аудита безопасности в отношении систем, возможно уязвимых для специфических атак на отказ в обслуживании.
- SlowPost.pl (аналог для SlowLoris HTTP DoS Tool) — небольшой скрипт, позволяющий провести атаку на протокол HTTP через POST-запросы к веб-серверу, с целью вызвать отказ в обслуживании (исчерпав максимальное количество подключений к серверу). Более подробное описание данной атаки представлено на странице SlowLoris HTTP DoS. Аналогичный способ Application Flood для протокола HTTP через POST-запросы с использованием облачных вычислений был представлен Дэвидом Брайеном и Михаилом Андерсоном на хакерской конференции Defcon 18. Они реализовали функционал распределенной системы Application Flood’а для протокола HTTP, но, к сожалению, практический результат в виде “отказа в обслуживании” реального сервера (парнями был использован для презентации один из веб-серверов Defcon’а) не был получен, хотя задумка в теории действительно должна была отлично работать. К такой заминке могло привести либо недостаточно эффективное осуществление Application Flood, либо недостаточное количество атакующих серверов. В разработке скрипта SlowPost.pl основной качественной характеристикой являлось эффективное осуществление Application Flood. В итоге, скрипт позволяет создать и поддерживать одновременно более 900 подключений к атакуемому веб-серверу с одной атакующий машины. Такие характеристики позволяют с помощью всего одной атакующей машины обеспечить атаку на “отказ в обслуживании” для большинства веб-серверов, работающих под управлением веб-сервера Apache. Ведь директива MaxClients по умолчанию равна 256: веб-сервер обеспечивает возможность работы только с 256 пользователям одновременно. Веб-сервер IIS (Windows 2003 Server), в отличие от Apache, использует значение по умолчанию, равное приблизительно 20 000.
Разработка системы распределенного нагрузочного тестирования была проведена в соответствии с возможностями сервиса IaaS от провайдера Amazon. Выбор пал на данного провайдера не случайно. Во-первых, Amazon — достаточно быстро развивающийся крупный проект, позволяющий своим пользователям одними из первых получать доступ к новым “фичам” функционала облачных вычислений. Во-вторых, после проведения сравнения бюджета на реализацию атак на отказ в обслуживании, который приведен ниже в таблице 3, оказалось, что сервис от Amazon наиболее демократичен и гибок.
Технические характеристики запускаемого Instance, выступающего в роли атакующего звена, представляют собой следующее:
- система x86/x64 (1 CPU);
- 613 Мб ОЗУ;
- 10 Гб HDD.
Технические характеристики Instance были выбраны минимальными в силу того, что для реализации атаки на “отказ в обслуживании” приоритет отдается количеству атакующих машин, а не их вычислительным характеристикам. Каждый Instance снабжен каналом с пропускной способностью 100 Mb/s, поэтому проблем в скорости передачи данных до атакуемого сервера теоретически быть не должно.
В первую очередь было очень интересно увидеть реальную мощность предполагаемого “ботнета” на облачных технологиях. Для теста был выбран сценарий упомянутого Брайена Андерсона, представляющий из себя реализацию атаки на “отказ в обслуживании” для HTTP-сервера.
Как было выяснено, связка 1 “Instance” + скрипт SlowPost.pl позволяет эмулировать более чем 900 клиентов веб-сервера. Таким образом, этой связки достаточно, чтобы вывести из строя любой веб-сервер, поддерживающий максимальное число подключений менее чем 900. Бюджет, необходимый для реализации такой атаки сводится к минимуму за счет потребления лишь компьютерного времени, а не ресурсов и трафика. Себестоимость атаки для таких веб-серверов — меньше 7 рублей в час! (см. таблицу 4)
При тестировании в реальных условиях мишенью выступал веб-сайт, обслуживаемый сервером IIS. Балансировка нагрузки была разделена на два IP-адреса. Таким образом, чтобы положить этот сервер, потребовалось создать более чем 20 000 подключений к каждому из IP-адресов. Настройки атакуемого веб-сервера были установлены по умолчанию. В итоге, для обеспечения всех условий для удачной атаки “отказ в обслуживании” было запущено 46 “Instance”, каждый из которых эмулировал одновременную работу 900 пользователей. Кстати, обычным пользователям Amazon позволяется работать одновременно только с 20 “Instance”. Чтобы полностью пройти путь плохого парня, задумавшего DDoS-атаку, мы просто зарегистрировали три различных аккаунта. Кроме этого, для регистрации нам понадобилось три сим-карты. Естественно, были куплены анонимные карты с балансами 300 рублей — причем абсолютно легально. К каждой сим-карте была приобретена карта оплаты (Prepaid Card For Internet Shopping) с балансами $5 — карта необходима при регистрации на площадке Amazon и верификации. В итоге, бюджет для атаки “отказ в обслуживании” на веб-сайт достаточно крупной компании составил всего 1150 рублей. Детальная стоимость представлена в таблице 5.
Атака проводилась в отношении веб-сервера на протяжении двух часов, чего вполне достаточно для ощутимых потерь в сфере интернет-бизнеса.
Трояны в Instance
Удобство облачных сервисов заключается также в гибкости выбора ОС и ее компонентов через приятный веб-интерфейс. Пользователь может использовать как стандартные решения, предоставленные провайдером, так и образы ОС, созданные пользователями провайдера. Например, сервис от Амазон очень активно использует данную систему. Именно в ней и кроится опасность — провайдер не гарантирует того, что образы систем, предоставленные пользователями для общего использования, не выполняют никаких скрытых действий: например, не ведут логи, не копируют личную информацию, не становятся частью ботнета, не распространяют вредоносное ПО. Проведенные тесты показали, что многие пользователи действительно не следят за такими вещами.
Для проведения теста потребовалось:
- создать образ популярной ОС в формате AMI и выложить его в открытый доступ в интерфейс Амазона;
- составить хорошее описание настроенной системы (установленный софт, полезные “плюшки” и т.д.);
Кроме этого мелким шрифтом в описании программы было написано, что при старте этого образа ОС в автоматическом режиме происходит HTTP-GET-отстук на сервер, собирающий статистику. Хотя об этом можно было и не говорить в описании образа, мелкий текст не испортил картины. Как результат — более 1000 отстуков за месяц! Представь, какой хороший и бесплатный ботнет можно собрать. Размещаешь протрояненный образ с красивым описанием — пользователи устанавливают его, а ты анонимно пользуешься их серверами за их же деньги.
Abuse-практика
Теоретически, оперативное реагирование на жалобы должно быть правилом для любого провайдера. В реальности же все обстоит несколько иначе. Проведя небольшое исследование, было выявлено, что даже серьезные провайдеры облачных сервисов (например, Amazon), не спешат реагировать на abuse и расследовать инциденты. Фактически, дело не заходит дальше учета сообщений об инцидентах. Во-первых, чтобы инцидент был рассмотрен провайдером, необходимо предоставить, помимо IP-адреса атакующего, точную дату и время атаки. После предоставления необходимой информации о злоумышленнике, переписка с провайдером будет продолжаться. Но это будет односторонняя переписка: провайдер с радостью выслушает ответы на интересующие его вопросы, но вот на твои — не ответит, за редким исключением, любезно игнорируя.
Что делать в случаях атак
При первом обращении к провайдеру, служба безопасности просит предоставить следующую информацию:
- IP-адрес атакующего;
- IP-адрес жертвы;
- атакуемый порт и протокол, по которому происходила атака;
- точную дату, время и временную зону жертвы;
- логи с машины жертвы, подтверждающие факт атаки (не более 4 Кб);
- контактные данные.
Крайне важны точное время атаки и временная зона атакуемой машины. Это связано с тем, что IP-адрес атакующего может менять владельца более одного раза за сутки, что усложняет идентификацию злоумышленника. Кроме этого следует точно идентифицировать вид атаки и создать слепок лог-файлов атакуемого сервиса для предоставления службе безопасности провайдера.
Заключение
Облачные технологии, предоставив пользователям доступ к огромным вычислительным возможностям, также дали возможность плохим парням использовать свои мощности в корыстных целях. Панацеи от этого не существует. Но, зная возможные векторы атаки с использованием облачных вычислений, можно защитить свои информационные ресурсы от возможных инцидентов.