Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
технический перевод En>Ru

Активная инфильтрация в ботнет при помощи автоматического обратного

Добавлено 18 сен 2018 в 09:49
Активная инфильтрация в ботнет при помощи автоматического обратного инжиниринга командного протокола


АННОТАЦИЯ

Автоматический обратный инжиниринг протокола важен для многих приложений в сфере IT-безопасности, в том числе, для анализа ботнетов и борьбы с ними. Понимание командного протокола, используемого ботнетом, критически важно, как для противодействия его вредоносной деятельности, так и для активной инфильтрации в него. Зачастую аналитикам необходимо переписать сообщения, полученные или отправленные ботом для того чтобы воспрепятствовать вредоносной деятельности, а у ботмастера создать иллюзию, что его бот успешно выполнил задание. Для того чтобы такое переписывание сообщений было возможно, нам требуется подробная информация о назначении и структуре сообщений, следующих в обоих направлениях несмотря на тот факт, что обычно в нашем распоряжении имеется реализация только одной стороны диалога, а именно исполняемый двоичный файл бота. Существующие техники не дают возможности переписывать сообщения таким образом. В этой публикации мы предлагаем техники для воссоздания формата сообщений протокола, отправленных приложением. Техники эти позволяют воссоздать спецификацию протокола и сделать выводы о семантике полей для сообщений, как отправленных, так и полученных приложением. Наши техники делают возможным переписывание сообщений командного протокола с целью активной инфильтрации в ботнет. Мы реализовали наши техники в Dispatcher, инструментальном средстве для воссоздания формата и семантики полей, как полученных, так и отправленных сообщений. Мы используем Dispatcher для анализа ботнета MegaD, широко распространенного спамового ботнета, использующего собственный недокументированный командный протокол, и показываем, что извлеченная при помощи Dispatcher информация позволяет переписывать сообщения командного протокола этого ботнета. *Этот материал основан на работе, частично поддерживаемой Национальным Научным Фондом по грантам No. 0311808, No. 0448452, No. 0627511, и CCF-0424422, Офисом ВВС по научным исследованиям, по гранту MURI Grant No. 22178970-4170, Офисом Исследований Армии, по гранту Cyber-TA Research Grant No. W911NF-06-1-0316, и программой CyLab в университете Карнеги Меллон по гранту DAAD19-02-1-0389 от офиса исследований Армии. Любые мнения, данные и выводы или рекомендации в этом материале относятся к авторам и необязательно отражают точку зрения Национального Научного Фонда, Офиса ВВС по научным исследованиям или Офиса Исследований Армии. Разрешение делать цифровые или твердые копии этого документа целиком или частями для личного или коллективного использования предоставляется бесплатно при условии, что копии не используются для получения коммерческой прибыли и что данное примечание на них присутствует без сокращений на первой странице. Для копирования на других условиях, для републикации или рассылки требуется предварительное разрешение и/или оплата. CCS'09, 9-13 ноября 2009, Чикаго, Иллинойс, США. Copyright 2009 ACM 978-1-60558-352-5/09/11 ...$10.00.
Категории и тематические дескрипторы C.2.2 [Организация компьютерных систем]: Сетевые протоколы; D.4.6 [Операционные системы]: Безопасность и защита Общие термины Безопасность Ключевые слова Обратный инжиниринг протокола, инфильтрация в ботнет, двоичный анализ

1. ВВЕДЕНИЕ Техника автоматического обратного инжиниринга протокола позволяет получить спецификацию протокола для неизвестных или недокументированных протоколов, имея реализацию протокола на уровне приложения [18,22,25,26,35,36,38,49]. Наличие подробной спецификации протокола может быть полезным в таких приложениях безопасности, как фаззинг (fuzzing) [22], идентификация приложений [17], глубокий анализ пакетов (deep packet inspection) [29] или сигнатурная фильтрация [27]. Одним из важных приложений автоматического обратного инжиниринга протокола является анализ ботнетов и инфильтрация в них. Ботнеты, большие сети инфицированных компьютеров, в наши дни стали одной из серьезнейших угроз в Internet. С их помощью осуществляются многие виды вредоносной или преступной деятельности, такие, как рассылка спама, фишинг, "накрутка" переходов по ссылкам и распределенные DoS-атаки (атаки типа "отказ в обслуживании") [10, 28, 32]. Сердцем ботнета является его командный протокол, при помощи которого боты находят в сети координаты для связи и при помощи которого ботмастер организует и направляет работу своего "стада". Автоматический обратный инжиниринг здесь поможет понять работу командного протокола ботнета и получить много полезных сведений о возможностях ботов и целях ботнета. Вдобавок к пониманию работы командного протокола, аналитик получит возможность напрямую взаимодействовать с ботнетом в исследовательских целях. В исследовании [33] экономическая подоплека ботнета Storm анализировалась при помощи подмены команд, посылаемых ботам. В других случаях аналитику может потребоваться подменить сообщения ботов, отсылаемые ими своему командному центру. Например, аналитику может потребоваться обмануть командный центр относительно возможностей некоторого конкретного бота, заставить ботмастера поверить, что бот в состоянии отсылать сообщения e-mail (притом, что на самом деле все исходящие SMTP-соединения бота заблокированы) или что бот располагает высокоскоростным соединением с Internet (в то время как на самом деле его трафик ограничивается и фильтруется). Для того чтобы успешно подделать сообщение бота, аналитик должен понимать назначение сообщения, структуру его полей и знать смысл каждого поля В то время как старые ботнеты основывали свой командный протокол на сервисах IRC, многие из новых ботнетов реализуют свои собственные недокументированные протоколы. [20,31,43]. Анализ такого командного протокола представляет собой трудную задачу. Обратный инжиниринг, выполняемый вручную, здесь требует много времени и чреват многими ошибками. С другой стороны, имевшиеся ранее техники автоматического обратного инжиниринга страдали различными ограничениями, не позволяющими создавать с их помощью поддельные сообщения. Техники, использующие сетевой трафик в качестве входных данных [25,26,35,36], оказываются бессильны при использовании ботнетом шифрования или специально запутанного текста. У техник, которые основываются на наблюдении за реакциями на входные данные участников обмена (клиента или сервера) [18, 22, 38,49] есть два серьезных ограничения. Во-первых, в реальных условиях они могут наблюдать только за одной стороной диалога, например, видят только полученные сообщения. Для полного понимания протокола им необходимо иметь доступ к обеим сторонам диалога. К сожалению, при изучении ботнета аналитик зачастую имеет в своем распоряжении только бота. То же самое относится и к анализу других, вполне легальных систем, например систем обмена мгновенными сообщениями, когда аналитику доступна только клиентская часть системы. Во-вторых, техники, основывающиеся на анализе потока двоичных данных, никак не учитывают семантического аспекта анализируемого протокола. А семантика сообщения имеет фундаментальное значение для понимания смысла и целей сообщения, что, в свою очередь, необходимо для того чтобы идентифицировать нужную часть диалога, переписать и подменить ее. Семантическая информация необходима для анализа любого типа протоколов, как текстовых, так и двоичных. Хотя в случае текстовых протоколов аналитик может иногда сделать какие-то выводы из контекста, зачастую и это оказывается невозможным. Например, целое число в кодировке ASCII может обозначать, среди прочего, размер данных, номер порта, задержку таймера или контрольную сумму. В этом документе мы представляем новую технику восстановления формата сообщений по сообщениям, отправленным программой. Она позволяет воссоздать формат сообщений протокола, наблюдая только одну из сторон обмена сообщениями. Новые техники нужны нам по той причине, что имеющиеся сейчас техники анализа формата сообщений по полученным сообщениям основываются на том, что «метят» входные данные программы и следят за их дальнейшим движением. Однако при этом большая часть данных в отсылаемых сообщениях не связана с «мечеными» данными в полученных сообщениях. Мы вместо этого используем следующую идею: программы хранят значения полей в буферах в памяти и конструируют сообщение для последующей его отправки, составляя его как, комбинацию буферов. Таким образом, структура буфера сообщения в памяти является инверсией структуры этого сообщения. Мы также представляем новую технику для вывода заключений о значении полей в сообщениях, полученных и отправленных приложением. Наша техника основывается на анализе типов данных и значительно расширяет ту семантическую информацию, которая уже доступна в программе через посредство наблюдения за использованием данных из принятых сообщений в местах, смысл которых уже известен, и за тем, как данные с уже известным смыслом используются для конструирования отправляемых сообщений. Кроме того, мы предлагаем расширения для недавно предложенной техники идентификации буферов, содержащих незашифрованное полученное сообщение [48]. Наши расширения распространяют сферу действия этой техники на случай приложения, где нет четкой границы между дешифрованием и дальнейшей обработкой данных, а также на случай идентификации буфера, содержащего незашифрованное отправленное сообщение. Мы реализовали наши техники в Dispatcher, инструментальном средстве для восстановления формата сообщения и значений его полей по полученным и отправленным сообщениям. Мы применяем Dispatcher для анализа командного протокола, используемого MegaD, одного из самых распространенных спамовых ботнетов, действующих сегодня [7,32]. Насколько нам известно, ботнет MegaD использует собственный, зашифрованный двоичный командный протокол, который нигде еще не был задокументирован, и тем самым представляет собой идеальный образец для испытания нашей системы. Мы покажем, что информация о протоколе, извлеченная при помощи Dispatcher, может использоваться для подделки сообщений командного протокола MegaD. Кроме того, мы используем четыре открытых протокола (HTTP, FTP, ICQ и DNS) для того чтобы сравнить формат сообщений, автоматически восстановленный при помощи Dispatcher с форматом, который восстанавливает Wireshark [12], известный и распространенный в наши дни анализатор протоколов, содержащий написанные вручную грамматики протоколов. В целом, наш вклад состоит в следующем: •Мы предлагаем новую технику для восстановления формата сообщений протокола по сообщениям, отправленным приложением. Ранее это можно было сделать только в отношении принятых сообщений. Наша техника позволяет восстановить полный формат протокола даже в случае, когда доступна только одна из сторон, участвующих в обмене. •Мы представляем технику, позволяющую раскрыть семантику полей сообщения, отправленных или полученных приложением. Наша техника основывается на анализе типов данных и значительно расширяет ту семантическую информацию, которая уже доступна в программе. •Мы разрабатываем и совершенствуем Dispatcher, инструментальное средство, которое реализует наши техники и автоматически воссоздает формат сообщений, и смысл его полей для обеих сторон обмена по протоколу на основе наблюдения только за одной стороной. Мы используем Dispatcher для анализа MegaD, распространенного спамового ботнета, который использует собственный шифрованный двоичный командный протокол, ранее публично не документированный. •Мы показываем, что информация, извлекаемая при помощи Dispatcher, позволяет подделывать сообщения MegaD, делая возможной инфильтрацию в этот ботнет.
A504ffd7f0