СПОСОБ И СИСТЕМА АНАЛИЗА ПРОТОКОЛОВ ВЗАИМОДЕЙСТВИЯ ВРЕДОНОСНЫХ ПРОГРАММ С ЦЕНТРАМИ УПРАВЛЕНИЯ И ВЫЯВЛЕНИЯ КОМПЬЮТЕРНЫХ АТАК
METHOD AND SYSTEM OF PROTOCOLS ANALYSIS OF HARMFUL PROGRAMS INTERACTION WITH CONTROL CENTERS AND DETECTION OF COMPUTER ATTACKS

ОБЛАСТЬ ТЕХНИКИ
[0001] Данное техническое решение относится к системам и способам обнаружения компьютерных атак, а более конкретно к способам и системам анализа протоколов взаимодействия вредоносных программ с центрами (серверами) управления и выявления компьютерных атак.
УРОВЕНЬ ТЕХНИКИ
[0002] В связи с развитием компьютерной техники и компьютерных сетей все большие размеры принимает проблема, связанная с обнаружением компьютерных атак.
[0003] На текущий момент существуют разные технологии по обнаружению компьютерных атак путем анализа файлов, сетевого трафика, поведенческого анализа. Такими технологиями можно достаточно эффективно обнаруживать атаки в защищаемом сегменте сети. Однако возникает необходимость обнаруживать и отлеживать атаки даже там, где нет средств для выявления подобных атак.
[0004] Для выявления сетевых атак на незащищаемые ресурсы можно запускать вредоносные программы, которые могут получать инструкции с удаленных серверов управления, в которых будут указаны атакуемые цели и параметры атаки. Однако у такого подхода существует ряд ограничений и недостатков:
[0005] при запуске вредоносной программы необходимо ждать, пока она обратится к удаленному серверу за инструкцией или начнет атаку. В зависимости от настроек вредоносной программы интервал взаимодействия с удаленным сервером может занимать от нескольких минут до нескольких часов;
[0006] для постоянного анализа команд с определенного сервера управления необходимо постоянно держать включенным компьютер с вредоносной программой;
[0007] инструкции с сервера управления могут приходит в зашифрованном или закодированном виде;
[0008] для анализа инструкций с большого количества серверов управления разных вредоносных программ необходимо поддерживать изолированную среду для запуска каждой вредоносной программы, иначе такие вредоносные программы могут конфликтовать между собой.
[0009] Из уровня техники известно техническое решение, описанное в патентной заявке US 20150007250 A1, заявитель: MITRE Corp, опубликовано: 01.01.2015. Данное техническое решение описывает способ перехвата и применения для вредоносных программ, адаптирующийся к деятельности вредоносных программ на скомпрометированной компьютерной системе. Данное техническое решение анализируют трафик между зараженным компьютером и сервером, что сужает зону покрытия, поскольку становится невозможным исследовать вредоносные ссылки, которые никогда не встречались в защищаемой сети. Еще одной особенностью данного решения является необходимость в ручном реверс-инжиниринге протокола взаимодействия вредоносной программы с сервером, что не позволяет автоматизировать процесс анализа.
СУЩНОСТЬ
[00010] Данное техническое решение направлено на устранение недостатков, присущих существующим решениям в известном уровне техники.
[00011] Технической задачей, решаемой в данном техническом решении, является создание способа и системы анализа протоколов взаимодействия вредоносных программ с серверами управления и выявления компьютерных атак посредством эмуляции сетевой активности вредоносных программ.
[00012] Техническим результатом данного технического решения является повышение эффективности выявления компьютерных атак.
Указанный технический результат достигается благодаря способу анализа протокола взаимодействия вредоносных программ с центрами управления и выявления компьютерных атак, который включает следующие шаги: запускают, по крайней мере, одну вредоносную программу в, по крайней мере, одной виртуальной среде; собирают запросы, отправляемые, по крайней мере, одной вышеупомянутой вредоносной программой в, по крайней мере, один центр управления вредоносными программами; определяют в собранных запросах параметры и их порядок; группируют запросы с одинаковыми наборами параметров; для каждой группы запросов, включающей два и более запроса, формируют регулярное выражение, описывающее параметры данной группы запросов; формируют и отправляют, по крайней мере, один запрос, описываемый полученным на предыдущем шаге регулярным выражением, по крайней мере, одному центру управления вредоносными программами; получают, по крайней мере, один ответ от, по крайней мере, одного центра управления вредоносными программами, при этом, если ответ закодирован и/или зашифрован, то производят его декодирование и/или расшифровку; анализируют, по крайней мере, один вышеупомянутый ответ на наличие сведений, характерных для проведения сетевых атак и сохраняют полученные результаты.
[00013] В некоторых вариантах осуществления при запуске вредоносной программы в виртуальной среде, виртуальная среда создается посредством средств аппаратной или программной виртуализации.
[00014] В некоторых вариантах осуществления при запуске вредоносной программы в виртуальной среде используют виртуализацию на уровне операционной системы.
[00015] В некоторых вариантах осуществления при запуске вредоносной программы в виртуальной среде получают настройки виртуальной среды из внешних источников и применяют к виртуальной среде.
[00016] В некоторых вариантах осуществления собирают запросы, отправляемые вредоносной программой в центр управления по протоколу прикладного уровня передачи данных http, или FTP, или DNS, или IRC.
[00017] В некоторых вариантах осуществления собранные запросы, отправляемые вредоносной программой в центр управления, сохраняют в энергонезависимую память, или энергозависимую память, или хранилище данных.
[00018] В некоторых вариантах осуществления хранилищем данных является файл, или плоский файл, или key-value хранилище, или база данных.
[00019] В некоторых вариантах осуществления при определении в собранных запросах параметров и их порядка выделяют параметры в текстовых протоколах, используя разбиение строки по разделителям.
[00020] В некоторых вариантах осуществления производят группировку запросов по совпадению названий параметров и/или их количеству.
[00021] В некоторых вариантах осуществления при формировании регулярных выражений, описывающих параметры группы запросов, сохраняют их в энергонезависимую память, или энергозависимую память, или хранилище данных.
[00022] В некоторых вариантах осуществления запрос формируется с использованием протокола, который использует для обмена данными с вредоносной программой данный конкретный центр управления.
[00023] В некоторых вариантах осуществления для избежания блокирования запросов центром управления используют различные анонимайзеры.
[00024] В некоторых вариантах осуществления в качестве анонимайзера используют динамические proxy серверы или TOR (The Union Router) или VPN (Virtual Private Network).
[00025] В некоторых вариантах осуществления при декодировании ответа используют декодирование по Base64 или преобразование из Hex формата в строковый.
[00026] В некоторых вариантах осуществления при расшифровке ответа используют ROT13 То Text Converter или HTML Encoder.
[00027] В некоторых вариантах осуществления сохраняют полученные результаты в энергонезависимую память, или энергозависимую память, или хранилище данных.
[00028] Также указанный технический результат достигается благодаря системе анализа протокола взаимодействия вредоносных программ с центрами управления и выявления компьютерных атак, включающей следующие модули, выполняемые(запускаемые) на сервере: агрегатор центров управления, выполненный с возможностью: сбора данных о центрах управления вредоносными программами из открытых источников и анализаторов сетевого трафика (систем обнаружения/предотвращения вторжений), проверки корректности полученных адресов центров управления и их доступности, передачи вышеуказанных данных на эмулятор протоколов вредоносных программ; шаблонизатор сетевого трафика, выполненный с возможностью: получения и сбора фрагментов сетевого трафика, включающего запросы и ответы, генерируемого вредоносными программами после их запуска в виртуальной среде, определения в запросах параметров и их порядка, группирования запросов с одинаковыми наборами параметров и формирования для каждой группы запросов, включающей два и более запроса, регулярных выражений, описывающие параметры группы запросов, передачи сформированных шаблонов на эмулятор протоколов вредоносных программ; эмулятор протоколов вредоносных программ, выполненный с возможностью получения шаблонов запросов от шаблонизатора сетевого трафика и данные о центрах управления от агрегатора центров управления, формирования запросов, описываемых полученными от шаблонизатора сетевого трафика регулярными выражениями, отправки сформированных запросов центрам управления вредоносных программ, полученным от агрегатора серверов управления, получения ответов от центров управления и их декодирования и/или расшифровки в случае, если ответ закодирован и/или зашифрован, анализа полученных от центров управления ответов на наличие сведений, характерных для проведения сетевых атак, передачи данных в хранилище данных; хранилище данных, выполненное с возможностью хранения данных, полученных от эмулятора протоколов вредоносных программ.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[00029] Признаки и преимущества настоящего технического решения станут очевидными из приводимого ниже подробного описания и прилагаемых чертежей, на которых:
[00030] На Фиг. 1 показан пример возможной конфигурации виртуальных сред для запуска вредоносных программ.
[00031] На Фиг. 2 показан пример осуществления варианта технического решения согласно способу анализа протоколов взаимодействия вредоносных программ с центрами управления и выявления компьютерных атак.
[00032] На Фиг. 3 показан пример осуществления варианта технического решения согласно системе анализа протоколов взаимодействия вредоносных программ с центрами управления и выявления компьютерных атак. На всех фигурах линии означают наличие взаимодействия между объектами.
ПОДРОБНОЕ ОПИСАНИЕ
[00033] Данное техническое решение может быть реализовано на сервере или в виде машиночитаемого носителя, содержащего инструкции для выполнения вышеупомянутого способа или содержащего вышеупомянутую систему.
[00034] Техническое решение может быть реализовано в виде распределенной компьютерной системы, включающей два или более сервера, соединенных каналами связи. В данном техническом решении под сервером подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность операций (действий, инструкций), имеющие возможность получать данные, отправлять запросы и принимать ответы от других серверов или устройств через каналы связи.
[00035] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).
[00036] Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройств хранения данных. В роли устройства хранения данных могут выступать, но не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы.
[00037] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.
[00038] Ниже будут описаны понятия и определения, необходимые для подробного раскрытия осуществляемого технического решения.
[00039] Вредоносная программа - любое программное обеспечение, предназначенное для получения несанкционированного доступа к вычислительным ресурсам самой ЭВМ или к информации, хранимой на ЭВМ, с целью несанкционированного использования ресурсов ЭВМ или причинения вреда (нанесения ущерба) владельцу информации, и/или владельцу ЭВМ, и/или владельцу сети ЭВМ путем копирования, искажения, удаления или подмены информации.
[00040] RFC (Request for Comments) - документ из серии пронумерованных информационных документов Интернета, охватывающих технические спецификации и Стандарты, широко используемые во Всемирной сети.
[00041] DoS-атака - хакерская атака на вычислительную систему с целью довести ее до отказа, то есть создание таких условий, при которых легальные пользователи системы не могут получить доступ к предоставляемым системным ресурсам (серверам), либо этот доступ затруднен.
[00042] Регулярные выражения - формальный язык поиска и осуществления манипуляций с подстроками в тексте, основанный на использовании метасимволов. По сути это строка-образец, состоящая из символов и метасимволов и задающая правило поиска.
[00043] Удаленная сетевая атака - информационное разрушающее воздействие на распределенную вычислительную систему (ВС), осуществляемое программно по каналам связи.
[00044] Песочница - специально выделенная среда для безопасного исполнения компьютерных программ. Обычно представляет собой жестко контролируемый набор ресурсов для исполнения гостевой программы, например место на диске или в памяти. Доступ к сети, возможность сообщаться с главной операционной системой или считывать информацию с устройств ввода обычно либо частично эмулируют, либо сильно ограничивают. Песочницы представляют собой пример виртуализации.
[00045] Центр управления - в области компьютерной безопасности включает в себя серверы и другие технические инфраструктуры, используемые для контроля вредоносных программ в целом и в частности ботнетов.
[00046] Ботнет (botnet) - сеть компьютеров, которая состоит из некоторого количества хостов с запущенными ботами - программами, которые устанавливаются на компьютер жертвы без ее ведома и дают злоумышленнику возможность выполнять некие действия с использованием ресурсов зараженного компьютера.
[00047] Виртуальная машина - программная и/или аппаратная система, эмулирующая аппаратное обеспечение некоторой платформы (target - целевая или гостевая платформа) и исполняющая программы для target-платформы на host-платформе (host - хост-платформа, платформа-хозяин) или виртуализирующая некоторую платформу и создающая на ней среды, изолирующие друг от друга программы и даже операционные системы.
[00048] Виртуализация - предоставление набора вычислительных ресурсов или их логического объединения, абстрагированное от аппаратной реализации и обеспечивающее при этом логическую изоляцию друг от друга вычислительных процессов, выполняемых на одном физическом ресурсе.
[00049] Нижерассмотренный пример реализации является иллюстративным и не ограничивает сущность технического решения.
[00050] В одном из вариантов реализации, показанном на Фиг.2, способ анализа протокола взаимодействия вредоносных программ с серверами управления и выявления компьютерных атак, выполняемый на сервере, включает следующие шаги:
[00051] Шаг 201: запускают, по крайней мере, одну вредоносную программу в, по крайней мере, одной виртуальной среде.
[00052] После запуска на сервере (100 или 101) в виртуальной среде (песочнице), вредоносная программа сообщает свой статус и получает инструкции с удаленного сервера, на котором установлен центр управления (103 или 102) для данной вредоносной программы.
[00053] Виртуальная среда создается посредством технологий аппаратной или программной виртуализации, известных из уровня техники. В качестве технологий аппаратной виртуализации могут использоваться Intel VT (VT-x, Intel Virtualization Technology for ×86) или, например, AMD-V. В качестве технологий программной виртуализации могут использоваться динамическая трансляция, паравиртуализация, встроенная виртуализация.
[00054] В некоторых вариантах реализации используют виртуализацию на уровне операционной системы, что позволяет запускать изолированные и безопасные виртуальные машины на одном физическом узле.
[00055] В некоторых вариантах реализации в качестве виртуальной машины (виртуальной среды) используют VirtualBox, или KVM, или VMware Workstation, или XenServer.
[00056] В некоторых вариантах реализации на сервере запускается множество вредоносных программ в отдельных виртуальных средах. Данный подход позволяет ускорить процесс сбора необходимой информации для работы способа. Согласно фиг. 1 на одном сервере (100) может быть запущено несколько виртуальных сред (104, 105, 106), в каждой из которых запущена, по крайней мере, одна вредоносная программа, которая обращается к, по крайней мере, одному центру управления (в качестве иллюстративного примера приведены только два центра управления - 102 и 103). Также может быть конфигурация (101), при которой каждая виртуальная среда запускается на своем сервере. Вместо сервера может использоваться компьютер, планшет, вычислительный кластер или другое вычислительное устройство, позволяющее создать и выполнять виртуальную среду (запустить виртуальную машину) и имеющее возможность обмена данными, отправки запросов и получения ответов от других серверов или устройств.
[00057] Некоторые вредоносные программы, будучи запущенными в виртуальной среде, умеют это определять и менять свое поведение. Для детектирования запуска в виртуальной среде они проверяют настройки драйверов, название устройств, проверяют службы, реестр операционной системы и др. параметры. Для целей решения этой проблемы могут задаваться настройки виртуальной среды, препятствующие обнаружению виртуализации и зависящие от используемых средств виртуализации.
[00058] Некоторые вредоносные программы могут менять свое поведение в зависимости от параметров среды, в которой она запущена. Так, например, если зловредная программа определяет, что установлена русская раскладка клавиатуры, а она предназначена для атак на англоязычных пользователей, то она может прекратить свою работу. Или, например, если у компьютера внешний IP-адрес не соответствует целевому региону, то также может завершить работу без общения с сервером управления. В случае обнаружения аномального поведения программы (отсутствие общения с центром управления или завершение работы после запуска) производят перенастройку чувствительных для зловредных программ параметров среды с целью обеспечить ее нормальную активность.
[00059] В некоторых вариантах реализации настройки виртуальной среды получают из внешних источников и применяют к виртуальной среде.
[00060] В некоторых вариантах реализации в виртуальной среде дополнительно используют анонимайзеры (средства анонимизации).
[00061] В некоторых вариантах реализации в качестве анонимайзера используют динамические proxy серверы, или TOR (The Union Router), или VPN (Virtual Private Network), или другие средства, но не ограничиваясь. Используемые средства анонимизации не влияют на сущность технического решения.
[00062] Шаг 202: собирают запросы, отправляемые, по крайней мере, одной вышеупомянутой вредоносной программой в, по крайней мере, один центр управления вредоносными программами
[00063] Запущенная на сервере (100) в виртуальной среде вредоносная программа посылает запросы через канал связи центру управления вредоносными программам и получает ответы на них. Время, в течение которого программе разрешается быть запущенной в виртуальной среде, может задаваться статически или определяться динамически на основании количества отправленных запросов и полученных ответов от вышеупомянутого центра управления.
[00064] В качестве канала связи могут использоваться как проводные (Ethernet), так и беспроводные каналы связи (Wi-Fi).
[00065] Вредоносная программа может отправлять запросы через каналы связи, используя широко распространенные протоколы прикладного уровня передачи данных HTTP, FTP, DNS, IRC, не ограничиваясь или используя собственный протокол взаимодействия.
[00066] Для отслеживания отправляемых вредоносной программой запросов и получаемых ей ответов могут использоваться различные анализаторы трафика (снифферы) и мониторы сетевой активности, отслеживающие сетевую активность сервера
[00067] Все отправленные вредоносной программой запросы и ответы центра управления на них сохраняются в энергонезависимую или энергозависимую память сервера (100). Сохраняемая информация о запросе может включать, но не ограничиваясь, по крайней мере, метод запроса, протокол, тело запроса. В некоторых вариантах реализации может сохраняться дополнительная информация, включающая метод сжатия, информацию о клиенте, сделавшем запрос (например, user-agent в http).
[00068] В некоторых вариантах реализации запросы, отправленные вредоносной программой, и ответы на них центра управления вредоносных программ сохраняют в хранилище данных, расположенном на сервере (100). В качестве хранилища данных могут выступать файлы, плоские файлы, key-value хранилища, различные базы данных, но не ограничиваясь.
[00069] Шаг 203: определяют в собранных запросах параметры и их порядок.
[00070] Далее сервер (109) по каналу(-ам) связи получает запросы, ответы и информацию о них, полученные на предыдущем шаге сервером (100). В некоторых вариантах реализации серверы (100) и (109) могут быть объединены в один.
[00071] В зависимости от используемого вредоносной программой протокола для общения с центром управления на сервере (109) используют различные методы для выделения (парсинга) параметров в запросе или ответе.
[00072] В случае использования протокола HTTP для определения параметров (парсинга параметров) сервер (109) использует RFC 2068/2616 или другие RFC, описывающие данный конкретный протокол или его более поздние версии.
[00073] При использовании зловредной программой общеизвестных протоколов разбор запросов и ответов (парсинг) осуществляются сервером (109) согласно RFC данного протокола.
[00074] В общем случае, для выделения параметров в текстовых (недвоичных) протоколах сервер (109) использует разбиение строки (содержащейся в запросе или ответе) по разделителям. В качестве разделителей могут использоваться символы ",;&-+_|" (символы-разделители), но не ограничиваясь. В том числе могут использоваться управляющие символы (\n - переход на новую строку, \r - возврат каретки и др.). Полученные фрагменты принимаются за пары, содержащие параметр и его значение. Далее в каждой паре определяют параметр и его значение. Для этого также может использоваться разбиение пары по разделителям "=:", но не ограничиваясь. Символы для разделения фрагмента на параметры и на пары параметр-значения могут получаться из внешних источников.
[00075] Для примера, выделим параметры во фрагменте запроса "id=1819847107&traff=0". Разделим фрагмент на части, используя перечисленные выше разделители. Получим две части "id=1819847107" и "traff=0". Далее разобьем части на пары параметр-значение, используя разделители "=:". В результате получаем два параметра id и traff, имеющие значения 1819847107 и 0 соответственно.
[00076] В некоторых вариантах реализации, если не удалось разобрать запрос стандартными методами, сервер (109) использует дополнительные процедуры разбора, правила, получаемые из внешних источников. Такие правила и процедуры могут формироваться автоматически или вручную на основе информации, полученной путем дизассемблирования или декомпиляции и анализа зловредных программ.
[00077] Все разобранные (распарсенные) запросы, содержащие, по крайней мере, информацию о протоколе, методе и параметрах запроса, сохраняют в оперативной памяти и/или хранилище данных на сервере (109). В некоторых вариантах реализации данные могут сохраняться на отдельном сервере, отличном от (109).
[00078] В качестве хранилища данных могут выступать файлы, плоские файлы, key-value хранилища, различные базы данных, но не ограничиваясь.
[00079] Шаг 204: группируют запросы с одинаковыми наборами параметров.
[00080] На сервере (109) производят группировку запросов по совпадению названий параметров, их количеству. В зависимости от хранилища данных, где хранятся разобранные запросы, могут использоваться различные встроенные в хранилище или внешние способы группировки. Так, например, при использовании реляционных баз данных могут использоваться SQL запросы, содержащие параметр GROUP BY.
[00081] Например, имея следующий пул фрагментов запросов, произведем их группировку:
[00082]
[00083]
[00084]
[00085]
[00086]
[00087] Произведя группировку по совпадению названия параметров, их количеству, образуются 3 группы, включающие следующие элементы: {1,3} (группа 1), {2,5} (группа 2), {4} (группа 3).
[00088] Шаг 205: для каждой группы запросов, включающей два и более запроса, формируют регулярные выражения, описывающие параметры группы запросов.
[00089] После того как произведена группировка, сервер (109) отбирает группы запросов, включающие, по крайней мере, два запроса. Для каждой такой группы сервер (109) формирует регулярные выражения, описывающие значения параметров. Для описания значения параметров определяют количество допустимых символов в параметре и их тип (буква, цифра, буква или цифра, специальные символы).
[00090] Например, для группы 1, указанной выше, регулярным выражением, описывающим данную группу и значения параметров, будет: “id=\d{3}\×26traff=\d", где \d - означает цифру от 0 до 9, ×26 - символ "&", \d{3} - три цифры от 0 до 9 подряд. Регулярные выражения, используемые для описания значений параметров, могут отличаться в различных вариантах реализации и не влияют на сущность технического решения.
[00091] Все сформированные регулярные выражения сохраняются в оперативной памяти и/или хранилище данных на сервере (109). В некоторых вариантах реализации данные могут сохраняться на отдельный сервер, отличный от (109). В качестве хранилища данных могут выступать файлы, плоские файлы, key-value хранилища, различные базы данных, но не ограничиваясь.
[00092] Шаг 206: формируют и отправляют, по крайней мере, один запрос, описываемый полученными на предыдущем шаге регулярными выражениями, по крайней мере, одному центру управления вредоносными программами.
[00093] Используя сформированные на предыдущем шаге регулярные выражения, сервер (109) формирует запросы и отправляет их по каналам связи, по крайней мере, одному центру управления (103, 102). Для каждого параметра сервер (109) случайным образом задает значение согласно регулярному выражению, описывающему параметр. Так, например, для регулярного выражения "id=\d{3}\×26traff=\d" сервером (109) будет сформирован запрос, содержащий в параметре id три случайные цифры от 0 до 9 и содержащий в параметре traff одну случайную цифру от 0 до 9. Запросы формируются с использованием протокола, который использует для обмена данными с вредоносной программой данный конкретный центр управления. Список центров управления вредоносными программами может формироваться путем сбора данных о центрах управления вредоносными программами из открытых источников и анализаторов сетевого трафика (систем обнаружения/предотвращения вторжений) с последующей проверкой корректности полученных адресов и их доступности. В качестве открытых источников таких данных могут источники, где публикуются списки вредоносных ссылок, коммерческие подписки на списки вредоносных ресурсов, данные, получаемые от анализаторов сетевого трафика (систем обнаружения/предотвращения вторжений). Данные могут включать, но не ограничиваясь: адрес центра управления вредоносных программ (ЦУВП), тип вредоносной программы (червь, банковский троян, ddos троян и т.д.), название вредоносной программы.
[00094] После получения данных в некоторых вариантах реализации сервер (109) проверяет, что адрес центра управления (ЦУВП) указан в корректном формате. Если адрес центра управления (ЦУВП) представлен в URL-формате (URI-формате), то сервер (109) производит проверку на основании RFC 1738/1630. Если адрес центра управления представлен в виде IP-адреса (IPv4/IPv6), то сервер (109) производит проверку на основании регулярных выражений. Если адрес центра управления некорректен, то он отбрасывается и не используется при отправке запросов.
[00095] Запросы отправляются сервером (109) с учетом метода запроса и протокола, который понимает центр управления.
[00096] Если по каким-либо причинам центр управления вредоносными программами не доступен, то сервер (109) прекращает отправку запросов. Недоступность центра управления может определяться по кодам состояния 4хх и 5хх для протокола HTTP, по долгому тайм-ауту ответа от сервера и другим признакам и не влияет на сущность технического решения.
[00097] В некоторых вариантах реализации для избежания блокирования запросов центром управления на сервере используют различные анонимайзеры.
[00098] В некоторых вариантах реализации на сервере (109) в качестве анонимайзера используют динамические proxy серверы, или TOR (The Union Router), или VPN (Virtual Private Network), или другие средства, но не ограничиваясь. Выбранное средство анонимизации (анонимайзер) не влияет на сущность технического решения.
[00099] Шаг 207: получают, по крайней мере, один ответ от, по крайней мере, одного центра управления, при этом, если ответ закодирован и/или зашифрован, то производят его декодирование и/или расшифровку.
[000100] После отправки сервером (109) запроса центру управления сервер получает ответ от центра управления на данный запрос. При этом запросы, ответы на которые не получены или на которые центр управления сообщил об ошибке, помечаются как нерелевантные и не обрабатываются дальше.
[000101] Для определения, является ли полученный ответ закодированным или зашифрованным, сервер (109) проводит анализ на наличие в ответе сведений, характерных для проведения сетевых атак, описываемый далее или анализ на наличие url-адреса, или ip-адреса, или домена в ответе.
[000102] В случае если ответ был получен в кодированном или зашифрованном виде, сервер производит его раскодирование и/или дешифровку. Для этого сервер (109) прямым перебором применяет алгоритмы приведения полученных данных в читаемый для человека вид. В качестве таких алгоритмов используется декодирование по Base64, преобразование из Hex формата в строковый, расшифровка данных другими известными из уровня техники способами (ROT13 То Text Converter, HTML Encoder и т.д.). В случае зашифрованных данных на сервере (109) производят их расшифровку, используя перебор наиболее популярных алгоритмов шифрования (используя базу популярных алгоритмов шифрования и процедур расшифровки), применяя для расшифровки ключи, полученные сервером (109) из внешних источников, ip-адрес или домен центра управления или другие данные, используемые зловредными программами в качестве ключей шифрования.
[000103] Шаг 208: анализируют, по крайней мере, один вышеупомянутый ответ на наличие сведений, характерных для проведения сетевых атак
[000104] Для того чтобы зловредная программа могла произвести атаку, в ответе центра управления на запрос, отправленный зловредной программой, должны быть указаны, по крайней мере, цель атаки и параметры атаки, но не ограничиваясь. Для определения сведений, характерных для проведения сетевых атак, сервер (109) может использовать анализ на основе регулярных выражений и/или сигнатур. Так, например, наличие url-адреса, или ip-адреса, или домена в ответе может расцениваться как цель атаки. Помимо цели атаки, в ответе могут присутствовать одна или несколько команд определяющих тип атаки, но не ограничиваясь: ddos, flood, syn, grab, intercept, redirect.
[000105] Регулярные выражения, url-адреса, список команд и сигнатуры, используемые для анализа, могут получаться сервером (109) из внешних источников или формироваться на основе автоматического или ручного анализа зловредных программ.
[000106] Шаг 209: сохраняют полученные результаты.
[000107] Полученную пару запрос - ответ, декодированный и расшифрованный ответ, данные об используемых алгоритмах кодирования, алгоритмах шифрования с ключами расшифровки сохраняют на сервере (109) в энергозависимой памяти, или энергонезависимой памяти, или внешнем хранилище данных. В некоторых вариантах реализации данные могут сохраняться на отдельном сервере, отличном от (109). В качестве хранилища данных могут выступать файлы, плоские файлы, key-value хранилища, различные базы данных, не ограничиваясь.
[000108] Полученные и сохраненные на сервере (109) результаты могут использоваться различными системами для анализа, построения статистики, отображения оператору или другим заинтересованным лицам. В некоторых вариантах реализации полученные данные используются в системах предотвращения атак (например, в системах ddos prevention).
[000109] В некоторых вариантах реализации серверы (100, 101) и другие, выполняющие шаги способа 201-202, на которых происходит запуск виртуальных сред, могут быть объединены в один сервер с сервером (109) и другими, которые выполняют шаги способа 203-209.
[000110] В некоторых вариантах реализации система анализа протокола взаимодействия вредоносных программ с центрами управления и выявления компьютерных атак, выполняемая на сервере, включает:
[000111] агрегатор центров управления, выполненный в виде выполняемого на сервере (300) модуля (310), отвечающего за сбор данных о центрах управления вредоносными программами. В качестве источников таких данных могут быть открытые источники, где публикуются списки вредоносных ссылок, коммерческие подписки на списки вредоносных ресурсов, данные, получаемые от анализаторов сетевого трафика (систем обнаружения/предотвращения вторжений). Данные могут включать, но не ограничиваясь: адрес центра управления вредоносных программ (ЦУВП), тип вредоносной программы (червь, банковский троян, ddos троян и т.д.), название вредоносной программы.
[000112] После получения данных агрегатор проверяет, что адрес центра управления (ЦУВП) указан в корректном формате. Если адрес центра управления (ЦУВП) представлен в URL-формате (URI-формате), то производят проверку на основании RFC 1738/1630. Если адрес центра управления представлен в виде IP-адреса (IPv4/IPv6), то производят проверку на основании регулярных выражений. Если адрес центра управления некорректен, то он отбрасывается и не используется.
[000113] Если адрес указан в правильном формате, то агрегатор производит проверку доступности вредоносного ресурса.
[000114] Если вредоносный ресурс доступен, то данные о центре управления вредоносными программами передаются на эмулятор протоколов вредоносных программ.
[000115] Шаблонизатор сетевого трафика, выполненный в виде выполняемого на сервере (300) модуля (320), обеспечивающего сбор фрагментов сетевого трафика, генерируемого вредоносными программами после их запуска.
[000116] Данный модуль получает фрагменты сетевого трафика из виртуальных сред (104, 105,106, 107), в которых осуществляется запуск вредоносных программ. После запуска на сервере 100 в виртуальной среде (песочнице) вредоносная программа, запущенная в одной из вышеуказанных виртуальных сред, сообщает свой статус и получает инструкции от центра управления (103 или 102) для данной вредоносной программы. Все запросы и ответы собираются сервером (100) и отправляются на шаблонизатор сетевого трафика (320). После получения запросов модуль (320) определяет в запросах полученные параметры и их порядок, группирует запросы с одинаковыми наборами параметров, затем для каждой группы запросов, включающей два и более запроса, формирует регулярное выражение, описывающее параметры данной группы запросов. Данные регулярные выражения и, по крайней мере, информация о методе запроса и протоколе сохраняются модулем для дальнейшего использования. В случае обнаружения идентичного шаблона такой шаблон отбрасывается и повторно не сохраняется.
[000117] В некоторых вариантах реализации регулярные выражения сохраняются в хранилище шаблонов. В качестве хранилища шаблонов могут выступать файлы, плоские файлы, key-value хранилища, различные базы данных, не ограничиваясь.
[000118] Доступ эмулятора протоколов вредоносных программ (330) к сформированным шаблонам может осуществляться через программный интерфейс (API) путем обращения к хранилищу шаблонов.
[000119] Эмулятор протоколов вредоносных программ, выполненный в виде выполняемого на сервере (300) модуля (330), отвечающего за эмуляцию протоколов сетевого взаимодействия вредоносных программ с центрами управления, откуда они получают инструкции. Эмуляция осуществляется путем отправки сетевых запросов по шаблонам центру управления (103, 102) вредоносных программ так же, как это делает вредоносная программа. Модуль получает шаблоны запросов от шаблонизатора сетевого трафика (320) и данные о центрах управления от агрегатора центров управления (310).
[000120] После получения данных эмулятор формирует запросы, описываемые полученными от шаблонизатора сетевого трафика регулярными выражениями, с учетом протокола и метода запроса. Значения параметров запросов, описываемые регулярными выражениями, задаются случайным образом.
[000121] Затем эмулятор отправляет сформированные запросы центрам управления вредоносных программ, полученным от агрегатора центров управления.
[000122] В некоторых вариантах реализации эмулятор протоколов (330) получает данные от шаблонизатора (320) через программный интерфейс (API).
[000123] В некоторых вариантах реализации эмулятор протоколов (330) получает шаблоны, сформированные шаблонизатором (320), обращаясь к хранилищу шаблонов, сформированному модулем (320).
[000124] В некоторых вариантах реализации для избежания блокирования запросов системы центром управления используют различные анонимайзеры.
[000125] В некоторых вариантах реализации в качестве анонимайзера используют динамические proxy серверы, или TOR (The Union Router), или VPN (Virtual Private Network), или другие средства, но не ограничиваясь.
[000126] После отправки запросов модуль получает ответы от центров управления, при этом, если ответ закодирован и/или зашифрован, то производит его декодирование и/или расшифровку и анализирует ответы на наличие сведений, характерных для проведения сетевых атак. В случае обнаружения сведений, характерных для проведения сетевых атак, модуль передает соответствующие данные в хранилище данных (340).
[000127] Хранилище данных, выполненное в виде выполняемого на сервере (300) модуля (340), который осуществляет хранение результатов работы системы, включая, но не ограничиваясь следующими данными: адрес центра управления, шаблоны запросов, на которые получен корректный ответ от центров управления (ЦУВП), дата и время получения ответов, оригинальное и декодированное/расшифрованное содержимое ответов от центра управления, содержащее инструкции для вредоносной программы.
[000128] Модуль (340) выполнен с возможностью хранения различных типов данных для поддержки работы системы. Примеры таких данных включают в себя текстовые данные, бинарные данные, дату и/или время, целые и дробные числа и т.д. Модуль (340) может хранить данные в файлах, плоских файлах, key-value хранилище, различных базах данных, но не ограничиваясь. Физически данные могут быть расположены в энергозависимом запоминающем устройстве, энергонезависимом запоминающем устройстве или их комбинации.
[000129] В некоторых вариантах реализации модули могут располагаться на одном или нескольких серверах. Например, агрегатор серверов управления (310) и шаблонизатор сетевого трафика (320) могут находится на первом сервере, эмулятор протоколов вредоносных программ (330) на втором сервере, а хранилище данных (340) на третьем, при этом все три сервера должны иметь возможность обмена данными друг с другом по каналам связи.
[000130] В некоторых вариантах реализации связь между агрегатором серверов управления (310), шаблонизатором сетевого трафика (320), эмулятором протоколов вредоносных программ (330), хранилищем данных (340) может быть программной на уровне API-интерфейсов (вызовов функций/методов).
[000131] Результаты работы системы анализа протоколов взаимодействия вредоносных программ с центрами управления и выявления компьютерных атак могут использоваться различными системами для анализа, построения статистики, отображения оператору или другим заинтересованным лицам. В некоторых вариантах реализации полученные данные используются в системах предотвращения атак (например, в системах ddos prevention).
[000132] Специалист в данной области техники может легко понять различные варианты реализации настоящего технического решения из рассмотренного описания и уровня техники, раскрытого технического решения. Предполагается, что описание и примеры рассматриваются только как примерные с сущностью и объемом настоящего технического решения, обозначенных формулой.
[000133] Следует принимать во внимание, что настоящее техническое решение не ограничивается точными конструкциями, которые были описаны выше и проиллюстрированы на прилагаемых чертежах, и что различные модификации и изменения могут быть сделаны без отхода от области его применения.