СПОСОБ И СИСТЕМА ГЕНЕРАЦИИ СПИСКА ИНДИКАТОРОВ КОМПРОМЕТАЦИИ Российский патент 2021 года по МПК G06F21/56 

Описание патента на изобретение RU2743619C1

ОБЛАСТЬ ТЕХНИКИ

[0001] Настоящее техническое решение относится к области вычислительной техники, а именно к области информационной безопасности, в частности, к способу и системе генерации списка индикаторов компрометации.

УРОВЕНЬ ТЕХНИКИ

[0002] Вредоносное программное обеспечение (ВПО) - собирательный термин, обозначающий вредоносную программу или код, который может причинить ущерб системе. ВПО разрабатывается таким образом, чтобы обеспечить проникновение в компьютерную систему, нанесение урона, частичный перехват контроля над некоторыми процессами или выведение из строя вычислительных устройств, например, компьютеров, серверов, сетевого оборудования, планшетных и мобильных устройств, а также разнообразных устройств, подключенных к "интернету вещей" (IOT). Собственно проникновение ВПО в какую-либо систему в рамках данного описания называется атакой.

[0003] Полнее, атака это комплекс действий, выполняемых заблаговременно подготовленным злоумышленником программным обеспечением, и нацеленный на компрометацию одного или нескольких конечных устройств сетевой инфраструктуры (компьютеров, серверов, маршрутизаторов и т.д.)

[0004] Сложной атакой в рамках данного описания называется разновидность атаки, при которой программа, достигающая конечной цели (основной модуль ВПО), замаскирована и\или зашифрована, а ее запуск является результатом выполнения сложного алгоритма, реализуемого вспомогательными программами, носителями ВПО.

[0005] Носителем ВПО в рамках данного описания называется программа, используемая злоумышленником в ходе сложной атаки на сетевую инфраструктуру в целях компрометации одного или нескольких конечных устройств, объединенных этой сетевой инфраструктурой. Как правило, носитель ВПО имеет многослойную структуру и может содержать или запускать, скачав с указанного веб-сервера, другие носители ВПО. Сложная атака подразумевает поочередное срабатывание нескольких разных программ-носителей ВПО, после чего запускается основной модуль ВПО. Например, сначала срабатывает эксплойт, затем шифратор, затем загрузчик, затем другой шифратор, и наконец, датастилер, который в этом примере является основным модулем ВПО.

[0006] Основным модулем ВПО в рамках данного описания называется финальный эффектор компрометации, та вредоносная программа, ради запуска которой задумана вся атака. Это может быть, например, вышеупомянутый датастилер, похищающий данные пользователей, шифровальщик, лишающий пользователя доступа к его документам или иная вредоносная программа. Основной модуль ВПО, прежде всего, характерен тем, что его функциональность не позволяет использовать его в роли носителя ВПО; напротив, для запуска основного модуля необходимы один или несколько носителей ВПО.

[0007] С целью упорядочения и удобства использования сведений о многочисленных разновидностях ВПО принято объединять разновидности ВПО в семейства. Семейство ВПО - это множество программ, предназначенных для использования в ходе атак, и объединенных одним функциональным назначением (загрузчики, датастилеры и т.д.) и\или общим коллективом разработчиков, а также базовым алгоритмом исполнения. Программы, составляющие одно семейство, отличаются друг от друга разного рода модификациями, в результате чего их общедоступные характеристики, такие как контрольная сумма, объем файла, имя файла, и т.д., различаются. Однако, все программы, входящие в одно семейство, предназначены для одной цели и все они для достижения этой цели совершают одни и те же основные шаги алгоритма.

[0008] Существенно, что может существовать много разных семейств программ одного функционального назначения. Разница между семействами заключается в том, что их представители реализуют одну и ту же функцию разными шагами алгоритма.

[0009] Приведем неисчерпывающий список семейств носителей и основных модулей ВПО, которые в дальнейшем будут использованы в описании в качестве примера:

[0010] Датастиллер (data stealer) - это программа, задача которой заключается в краже персональных данных пользователя. Одно из известных семейств датастилеров называется Pony.

[0011] Загрузчик (downloader) - программа, способная скачать с заданного вебсервера какой-либо файл, как правило, другую программу. Известно, что злоумышленники используют загрузчики семейства Nemucod.

[0012] Шифратор (crypter) - программа, задача которой замаскировать, посредством шифрования, принадлежность другой программы к вредоносным. Известно, например, семейство шифраторов AtilaCrypter.

[0013] Эксплойт (exploit) - это программа, задача которой состоит в эксплуатации известной уязвимости другой, как правило, легитимной программы, например, такой как Microsoft Word. Использование эксплойтов позволяет злоумышленникам применить легитимную программу для атаки. Например, известен эксплойт, эксплуатирующий уязвимость CVE-201711882 и позволяющий за счет этого внедрить в документ Microsoft Word стороннее ВПО.

[0014] Данный список не является исчерпывающим и использован только для иллюстрации описываемого способа; приводимые здесь названия носителей ВПО и основных модулей ВПО могут отличаться от общепринятых. На целях, задачах и принципах реализации описываемого способа это не отражается.

[0015] Стоит отметить, что встречается также многофункциональное ВПО, способное исполнять функции, например, загрузчика, шифратора и датастиллера. При классификации такое ВПО обычно относят к тому семейству, к которому принадлежит наиболее опасная выполняемая им функция.

[0016] Индикаторами компрометации или IOC (Indicator of Compromise) в рамках настоящего описания называются объекты или данные, позволяющие специалисту или специализированной программе обнаружить факт запуска или просто присутствия ВПО в исследуемой среде. Появление любого из индикаторов гарантирует факт компрометации системы. Индикаторами компрометации могут быть, например, папки файловой системы (folders) или ветви системного реестра (registry), расположенные по специфическим адресам, файлы или присутствующие в памяти процессы со специфическими именами, как например, EQNEDT32.exe, нетипичные сетевые сервисы, запущенные на определенных портах, некоторые доменные имена, обнаруженные в трафике, и другие подобные артефакты компьютерного окружения. Очевидно, что информация о том, как именно проявляется конкретный индикатор компрометации, а также списки IOC могут для удобства поиска храниться в виде простого текста (plain text).

[0017] В уровне техники известно большое количество систем информационной безопасности, которые позволяют получать, обрабатывать, хранить и интерпретировать индикаторы компрометации, а также автоматизированно осуществлять на основании результатов обработки этих индикаторов те или иные действия по обезвреживанию угроз и защите сетевой инфраструктуры. В качестве примера может быть названа, например, система Threat Intelligence™.

[0018] Как правило, такие системы также обладают функциями автоматизированного сбора индикаторов компрометации из различных, доступных через интернет и постоянно пополняющихся баз данных. В частности, один из известных вариантов реализации подобной функции раскрыт в российском патенте RU 2702269 C1, "СИСТЕМА ИНТЕЛЛЕКТУАЛЬНОГО УПРАВЛЕНИЯ КИБЕРУГРОЗАМИ".

[0019] Однако, первичный сбор индикаторов компрометации, необходимость в котором возникает немедленно, как только становится известно о сложной атаке на сетевую инфраструктуру, как правило, в настоящее время выполняется вручную, специалистами-аналитиками. Притом, поскольку сетевая инфраструктура может быть весьма разветвленной и содержать тысячи хостов, а сложная атака - многоступенчатой, оставляющей в различных местах инфраструктуры большое количество разнородных индикаторов компрометации, задача составления общего списка индикаторов компрометации для конкретной сложной атаки является весьма трудоемкой.

[0020] В уровне техники известен австралийский патентный документ AU 2017203008 B2, "Unstructured security threat information analysis", раскрывающий способ автоматической генерации списка индикаторов компрометации. Однако, в роли исходных данных раскрытый в данном документе способ подразумевает использование массивов неструктурированной текстовой информации, проще говоря, текстов профильной литературы, публицистики и\или новостей. Извлечение сведений об индикаторах компрометации непосредственно из программ (носителей ВПО) указанным способом не раскрывается.

[0021] Известен также американский патент US 10148685 B2, "Event correlation across heterogeneous operations", который раскрывает способ выявления атаки на основании анализа изменений, происходящих в сетевой инфраструктуре. Но в то же время, задача построения списка индикаторов компрометации, оставленных в ходе уже состоявшейся и выявленной атаки на сетевую инфраструктуру, данным документом не раскрывается, как и построение карты сложной атаки, от носителя до основного модуля ВПО.

[0022] Другой известный американский патент, US 10467411 В1, "System and method for generating a malware identifier", раскрывает способ извлечения индикаторов компрометации, основанный на запуске основного модуля ВПО в виртуальной среде ("песочнице") и последующем изучении изменения параметров этой среды. Однако, указанный документ не раскрывает построение карты сложной атаки, от носителя до основного модуля ВПО, а также извлечение информации о похожих сложных атаках, имевших место ранее. Что, в свою очередь, означает, что система, реализующая описанный способ, в случае сложной атаки, осуществляемой при помощи носителей ВПО различных модификаций, не сможет получить полные списки индикаторов компрометации. Соответственно, в сетевой инфраструктуре могут остаться скомпрометированные элементы, факт компрометации которых не обнаружен.

[0023] Предлагаемое решение нацелено на устранение перечисленных недостатков уровня техники, оно отличается от решений, известных из уровня техники, тем, что реализовано за счет раскрытия компьютерно-реализуемого способа генерации списка индикаторов компрометации, автоматически порождаемого при проведении конкретной сложной атаки на сколь угодно разветвленную сетевую инфраструктуру на основании сведений, извлекаемых из конкретного носителя ВПО, посредством которого была реализована данная атака, с учетом сведений о сложных атаках, осуществленных ранее при помощи носителей ВПО различных модификаций, в том числе отличающихся от модификации носителя ВПО, использованного в ходе данной атаки.

СУЩНОСТЬ (РАСКРЫТИЕ) ИЗОБРЕТЕНИЯ

[0024] Задача предлагаемого изобретения заключается в разработке системы и способа автоматической генерации списка индикаторов компрометации.

[0025] Технический результат заявленного изобретения заключается в обеспечении противодействия сложным атакам на сетевую инфраструктуру, реализуемым посредством носителя вредоносного программного обеспечения (ВПО), путем автоматической генерации списка индикаторов компрометации, характерных для данного конкретного носителя ВПО. Это, в свою очередь, позволит оперативно осуществить реагирование на данный инцидент и предотвратить нанесение ущерба как сетевой инфраструктуре, так и бизнес-процессам, выполняющимся с ее помощью.

[0026] Данный технический результат достигается за счет предложенного компьютерно-реализуемого способа генерации списка индикаторов компрометации, причем способ содержит этапы, на которых:

[0027] получают носитель ВПО, предназначенный для подготовки к запуску и/или запуска по меньшей мере одного основного модуля ВПО,

[0028] строят дорожную карту атаки путем обнаружения дополнительных носителей ВПО и/или основного модуля ВПО и определения последовательности их исполнения, предусмотренной алгоритмом исполнения полученного носителя ВПО,

[0029] определяют принадлежность каждого обнаруженного носителя ВПО или основного модуля ВПО к определенному семейству ВПО,

[0030] составляют для каждого обнаруженного носителя ВПО или основного модуля ВПО список индикаторов компрометации,

[0031] находят в базе данных по меньшей мере одну дорожную карту атаки, характеризующейся тем, что последовательность запуска носителей ВПО и/или основных модулей ВПО в этой дорожной карте с заданным уровнем точности совпадает с последовательностью запуска носителей ВПО и/или основных модулей ВПО в полученном носителе ВПО, а сами эти носители ВПО и/или основные модули ВПО относятся к тем же семействам,

[0032] извлекают из базы данных списки индикаторов компрометации для каждого носителя ВПО и/или основного модуля ВПО из по меньшей мере одной найденной дорожной карты атаки,

[0033] генерируют общий список индикаторов компрометации на основе составленных списков индикаторов компрометации и извлеченных из базы данных списков объединенных списков индикаторов компрометации.

[0034] сохраняют составленные списки индикаторов компрометации для каждого обнаруженного носителя ВПО или основного модуля ВПО, а также общий список индикаторов компрометации, в базе данных.

[0035] В одном частном варианте заявленного решения получают носитель ВПО, содержащий по меньшей мере один основной модуль ВПО, либо предназначенный для подготовки к запуску по меньшей мере одного основного модуля ВПО, от внешней системы анализа инцидентов компьютерной безопасности.

[0036] В другом частном варианте заявленного решения подготовка к запуску и запуск по меньшей мере одного основного модуля ВПО подразумевает запуск по меньшей мере одного дополнительного носителя ВПО, приводимого в действие полученным носителем ВПО.

[0037] Еще в одном частном варианте заявленного решения строят дорожную карту атаки, запуская полученный носитель ВПО в изолированной среде и фиксируя последовательность и характер воздействия носителя ВПО на среду.

[0038] Возможен также частный вариант заявленного решения, в котором строят дорожную карту атаки в виде графа, вершинами которого являются носители ВПО и/или основные модули ВПО, запуск которых предусмотрен алгоритмом исполнения полученного носителя ВПО, а ребра указывают на последовательность запуска этих носителей ВПО и/или основных модулей ВПО.

[0039] Еще в одном частном варианте заявленного решения определяют принадлежность каждого обнаруженного носителя ВПО или основного модуля ВПО, запуск которых предусмотрен алгоритмом исполнения полученного носителя ВПО, к какому-либо семейству ВПО, применяя заранее обученный по меньшей мере один классификатор.

[0040] Еще в одном частном варианте заявленного решения составляют список индикаторов компрометации для каждого обнаруженного носителя ВПО или основного модуля ВПО, запуская заранее подготовленную среду, обеспечивающую извлечение индикаторов компрометации из внутренней структуры носителя ВПО и/или основного модуля ВПО, относящегося к определенному семейству ВПО, и сохранение извлеченных индикаторов в виде списка.

[0041] Возможен также вариант заявленного решения, в котором составляют список индикаторов компрометации для каждого обнаруженного носителя ВПО и/или основного модуля ВПО, запуская полученный носитель ВПО в изолированной среде, выполненной с возможностью сохранения списка изменений состояния среды в качестве списка индикаторов компрометации после исполнения каждого носителя ВПО и/или основного модуля ВПО, запущенного полученным носителем ВПО.

[0042] Также возможен вариант заявленного решения, в котором составляют список индикаторов компрометации для каждого обнаруженного носителя ВПО и/или модуля ВПО, дополнительно запуская заранее подготовленную среду, обеспечивающую извлечение индикаторов компрометации из внутренней структуры носителя ВПО и/или основного модуля ВПО, относящегося к определенному семейству ВПО, и добавление извлеченных индикаторов в список, составленный после запуска носителя ВПО и/или основного модуля ВПО в изолированной среде.

[0043] В другом частном варианте заявленного решения для извлечения из базы данных списков индикаторов компрометации для каждого носителя ВПО и/или основного модуля ВПО из по меньшей мере одной найденной дорожной карты атаки используют алгоритмы нечеткого поиска в базе данных.

[0044] Еще в одном частном варианте заявленного решения дополнительно сохраняют в базе данных объединенную дорожную карту атаки, содержащую как построенную дорожную карту атаки, так и по меньшей мере одну найденную дорожную карту атаки.

[0045] Возможен и вариант заявленного решения, в котором используют регулярные выражения для генерации общего списка индикаторов компрометации из составленного списка индикаторов компрометации и извлеченных из базы данных списков индикаторов компрометации.

[0046] Также может быть реализован частный вариант заявленного решения, в котором дополнительно передают общий список индикаторов компрометации во внешнюю систему анализа инцидентов компьютерной безопасности.

[0047] Вышеназванный технический результат также достигается за счет предложенной системы генерации списка индикаторов компрометации, содержащей долговременную память, выполненную с возможностью хранения файлов и данных; устройство связи, выполненное с возможностью получения носителей ВПО и передачи данных, а также вычислительное устройство, выполненное с возможностью выполнения описанного способа генерации списка индикаторов компрометации.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0048] Реализация изобретения будет описана в дальнейшем в соответствии с прилагаемыми чертежами, которые представлены для пояснения сути изобретения и никоим образом не ограничивают область изобретения. К заявке прилагаются следующие чертежи:

[0049] Фиг. 1А-1Б иллюстрируют возможную структуру носителя ВПО и возможный алгоритм сложной атаки.

[0050] Фиг. 2 иллюстрирует общий алгоритм описываемого способа автоматической генерации списка индикаторов компрометации.

[0051] Фиг. 3 иллюстрирует пример одного из возможных алгоритмов построения дорожной карты атаки.

[0052] Фиг. 4А-4Б иллюстрирует пример дорожных карт атаки, с заданным уровнем точности совпадающих с построенной картой атаки.

[0053] Фиг. 5 иллюстрирует пример общей схемы вычислительного устройства, необходимого для выполнения способа генерации списка индикаторов компрометации.

ДЕТАЛЬНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ

[0054] Следующее далее подробное описание представлено, чтобы дать возможность любому специалисту в данной области для осуществления и использования настоящего изобретения. Для целей описания, конкретные детали приводятся, чтобы дать глубокое понимание настоящего изобретения. Однако специалисту в данной области будет ясно, что эти конкретные детали не являются необходимыми для осуществления настоящего изобретения. Описания конкретных применений приводятся только как репрезентативные примеры. Различные модификации предпочтительных вариантов осуществления будут очевидны специалистам в данной области, и общие принципы, определенные в настоящем документе, могут применяться к другим вариантам осуществления и применениям без отклонения от рамок настоящего изобретения.

[0055] Описанное в данном документе решение, как предполагается, не является ограниченным указанными вариантами осуществления, но должно соответствовать самым широким возможным рамкам, совместимым с принципами и признаками, описанными в настоящем документе.

[0056] Настоящее изобретение направлено на обеспечение системы и компьютерно-реализуемого способа генерации списка индикаторов компрометации.

[0057] Способ начинается, когда получают носитель ВПО. Это файл, предназначенный для сложной атаки на сетевую инфраструктуру. Такой файл, как правило, содержит в зашифрованном виде либо собственно основной модуль ВПО, который реализует конечную цель атаки, либо одну или несколько вспомогательных программ-носителей, которые должны загрузить основной модуль ВПО с указанного веб-сервера или иным путем подготовить его к работе (например, расшифровать).

[0058] В качестве неограничивающего иллюстративного примера на Фиг. 1А условно показан один из возможных вариантов структуры носителя ВПО 100. В данном примере носитель ВПО 100 содержит эксплойт 110, внедренный в документ Microsoft Word и эксплуатирующий уязвимость в этой программе, например, это может быть эксплойт, эксплуатирующий уязвимость CVE-201711882.

[0059] После срабатывания, происходящего при открытии зараженного документа, эксплойт, например, сохраняет на диск зашифрованный файл и запускает программу-шифратор 120, например, шифратор семейства AtilaCrypter. Последний расшифровывает зашифрованный файл, в котором содержится загрузчик (downloader) 130, принадлежащий, например, семейству загрузчиков Nemucod. Обращаясь по хранящемуся в его коде адресу, загрузчик 130 загружает с командного сервера злоумышленников еще один зашифрованный файл и запускает для его расшифровки еще один шифратор 140, например, HabibCrypter. После расшифровки загруженного файла запускается основной модуль ВПО 150, например, датастиллер (DataStealer) семейства Pony.

[0060] Таким образом может быть реализована сложная атака, дорожная карта (граф) которой 170 показана на Фиг. 1Б. Из карты следует, что после срабатывания 171 эксплойта ПО происходит запуск 172 шифратора 120, затем запуск 174 загрузчика 130, после чего запускается 176 второй шифратор 140, и наконец, происходит запуск 180 основного модуля ВПО 150.

[0061] Альтернативно, например, в зависимости от состояния отслеживаемых носителями ВПО параметров среды, в которой происходит атака, после запуска 172 шифратора 120 может быть выполнен запуск 173 еще одного шифратора, после чего атака продолжает развиваться в соответствии с описанной ранее дорожной картой. Также возможна, например, загрузка 175 загрузчиком 130 альтернативной версии зашифрованной основного модуля ВПО 150 и ее дополнительная распаковка 177 вторым шифратором 140. В этом случае, как и в предыдущем, развитие атаки завершается запуском 180 основного модуля ВПО 150, однако сам этот основной модуль может быть уже другим, то есть, применительно к приведенному выше примеру, не являться датастилером семейства Pony.

[0062] Следует отметить, что альтернативные пути дорожной карты (графа) атаки 173 и 175-177 могут быть задействованы в ходе одной атаки наряду с основным путем, показанным шагами 172-174-176. При осуществлении подобной атаки на разветвленную сетевую инфраструктуру, содержащую множество элементов (роутеров, компьютеров, серверов, устройств ЮТ и так далее) не исключен вариант, что на каких-то устройствах атака будет развиваться с использованием пути 173, на каких-то других - с использованием пути 175-177, а еще на каких-то - по основному пути графа 172-174-176. Вследствие этого различные элементы сетевой инфраструктуры будут скомпрометированы различными средствами и будут по этой причине содержать различные, не совпадающие полностью наборы индикаторов компрометации.

[0063] Также необходимо указать, что носитель ВПО 100 и дорожная карта развиваемой им атаки 170 для простоты восприятия показаны в сильно упрощенном варианте. В реальных атаках количество шагов, таких как шаги 171, 172, 173 и т.д., может быть значительно больше. Существенно больше может быть и альтернативных путей дорожной карты атаки, таких как альтернативные пути 173 и 175-177.

[0064] Общий алгоритм описываемого способа представлен на Фиг. 2. В соответствии с Фиг. 2, способ 200 начинается на этапе 210 с получения файла носителя ВПО, например, такого как носитель ВПО 100, показанный на Фиг. 1А. Носитель ВПО может быть, например, электронным письмом, которое содержит вредоносное вложение, например, документ Microsoft Word, зараженный эксплойтом, который эксплуатирует уязвимость CVE-2017-11882. Такое письмо может быть отправлено, например, на адрес электронной почты, используемый описываемой системой в качестве "входного".

[0065] Альтернативно, носитель ВПО может представлять собой и какой-то иной файл, например, скрипт или иной исполнимый файл, заблаговременно подготовленный злоумышленниками для сложной атаки на сетевую инфраструктуру. Такой файл может быть помещен в специально выделенную и открытую (share) на запись папку локальной сети, расположенной на сервере, на котором функционирует система, реализующая данный способ. Система, в свою очередь, при этом может с заданной периодичностью, например, раз в минуту, проверять, не появились ли в папке новые файлы, и при их появлении автоматически приступать к их обработке.

[0066] Еще в одном варианте реализации подобный файл может быть загружен посредством веб-формы, расположенной на интернет-сайте, который служит пользовательским интерфейсом системы, реализующей данный способ.

[0067] Носитель ВПО на этапе 210 может быть получен системой, реализующей способ, из какого-либо внешнего источника, например, от одной из многочисленных известных систем анализа инцидентов компьютерной безопасности, например, такой как TDS Polygon™. В другом варианте реализации способа носитель ВПО может быть перечисленными способами прислан или передан системе сотрудником отдела кибербезопасности, занятым расследованием инцидента компрометации компьютерной инфраструктуры.

[0068] На этапе 220 строят дорожную карту атаки, определяя последовательность запуска носителей ВПО и, наконец, основного модуля ВПО, реализуемую полученным носителем ВПО, то есть получают по меньшей мере один путь, соединяющий запуск полученного носителя ВПО (такой, как запуск носителя 171 на Фиг. 1Б) и запуск основного модуля ВПО (такой, как запуск основного модуля 180 на Фиг. 1Б). В то же время, построение дорожной карты атаки подразумевает также такие подэтапы, как

[0069] - определение принадлежности каждого обнаруженного носителя ВПО или основного модуля ВПО к определенному семейству и\или коллективу разработчиков ВПО.

[0070] - извлечение списков индикаторов компрометации для каждого обнаруженного носителя ВПО или основного модуля ВПО.

[0071] Более подробно действия, выполняемые на этапе 220, будут описаны ниже, со ссылкой на Фиг. 3.

[0072] После выполнения этапа 220 способ переходит к этапу 230, на котором, используя построенную дорожную карту атаки, находят в базе данных по меньшей мере одну дорожную карту атаки, с заданным уровнем точности совпадающей с построенной на шаге 220. "Совпадение с заданным уровнем точности" в данном случае означает, что имеет место частичное соответствие. Например, наличие в найденной дорожной карте атаки не менее 3 шагов, таких, например, как шаги 171, 174, 180 на Фиг. 1Б, идентичных шагам дорожной карты атаки, построенной на этапе 220, и выполняемых в такой же последовательности.

[0073] Подробнее один из возможных способов выполнения этапа 230 будет описан ниже, со ссылкой на Фиг. 4А-4Б.

[0074] Затем способ переходит к этапу 240, на котором из базы данных извлекают списки индикаторов компрометации, соответствующие найденной по меньшей мере одной дорожной карте атаки, то есть по меньшей мере одной записи базы данных, содержащей информацию о ранее состоявшейся сложной атаке. Эти списки, каждый из которых соответствует исполнению одного носителя ВПО или основного модуля ВПО, могли быть предварительно сохранены в базе данных в ходе выполнения исследований, аналогичных описанным выше применительно к этапам 210-220.

[0075] Иными словами, для получения базы данных, используемой в данном способе, предварительно проводят подготовительную работу, выполняя исследования различных носителей ВПО, реализующих сложные атаки, и сохраняя полученные дорожные карты атак и списки индикаторов компрометации. Альтернативно или дополнительно, база данных, используемая в данном способе может пополняться данными, автоматически получаемыми из открытых источников, таких как веб-сайты, агрегирующие списки индикаторов компрометации, соответствующие различным семействам ВПО.

[0076] После выполнения этапа 240 способ переходит к этапу 250, на котором на основании списков индикаторов компрометации, полученных на этапе 220, а также списков индикаторов компрометации, извлеченных из базы данных на этапе 240, генерируют общий список индикаторов компрометации. В ходе нижеперечисленных операций над списками каждый индикатор компрометации рассматривается как текстовая строка.

[0077] В одной из возможных реализаций описываемого метода генерация общего списка индикаторов компрометации может выполняться путем слияния списка индикаторов компрометации, построенного на этапе 220, со списками индикаторов компрометации, извлеченных из базы данных на этапе 240. Слияние списков выполняется в соответствии с логической процедурой ИЛИ и подразумевает проверку совпадения каждой новой строки из списков индикаторов компрометации, извлеченных из базы данных на этапе 240, со всеми строками списка индикаторов компрометации, построенного на этапе 220. При обнаружении точно повторяющихся строк такие строки игнорируют (не включают в общий список). В тех случаях, когда очередная проверяемая строка не имеет строгого соответствия в списке, построенном на этапе 220, такую строку добавляют в общий список индикаторов компрометации.

[0078] В другой возможной реализации описываемого метода генерация общего списка индикаторов компрометации может выполняться с использованием регулярных выражений. Повторно встречающиеся точно совпадающие строки при этом игнорируют, аналогично предыдущей реализации. Строки, совпадающие более, чем HaN, где N - заранее заданная, экспериментально подобранная величина, например, 78%), объединяют с использованием регулярных выражений.

[0079] Например, если в списках найдены четыре строки, имеющие следующий вид:

[0080] C:\Users\John\123.txt

[0081] C:\Users\Mary\123.txt

[0082] С:\Users\Rosencrantz\123.txt.

[0083] С:\Users\Guildenstern\123.txt

[0084] то в соответствии с описываемым способом в общий список индикаторов компрометации, полученный в результате данного этапа, будет включена одна строка следующего вида:

[0085] C:\\Users\\.*?\\123\.txt.

[0086] На заключительном этапе 260 сохраняют построенную дорожную карту атаки, полученные в ходе этапа 220 списки индикаторов компрометации, а также общий список индикаторов компрометации, сгенерированный на этапе 250, в базе данных. На этом же этапе упомянутый общий список индикаторов компрометации может быть передан во внешнюю систему, например, в систему анализа инцидентов компьютерной безопасности.

[0087] В одном из возможных альтернативных вариантов реализации описываемого способа на этапе 260 также сохраняют объединенный граф сложной атаки 490, описанный ниже применительно к Фиг. 4Б.

[0088] После окончания этапа 260 способ завершается.

[0089] Фиг. 3 иллюстрирует в деталях выполнение этапа 220, на котором, как было упомянуто выше, строят дорожную карту атаки. В соответствии с Фиг. 3, построение дорожной карты атаки 220 начинается на этапе 221, на котором определяют платформу носителя ВПО и запускают носитель ВПО в изолированной среде, соответствующей данной платформе.

[0090] Платформа в данном случае это среда, в которой должно исполняться исследуемое программное обеспечение. Платформа включает в себя как аппаратное обеспечение (например, оперативную память, жесткий диск), так и программное обеспечение (BIOS, операционную систему и т.д). Определение платформы может производиться, например, методом перебора: исследуемый носитель ВПО поочередно запускают в изолированных средах, каждая из которых настроена таким образом, чтобы соответствовать определенной платформе, и сохраняют информацию о том, на какой платформе исследуемый носитель ВПО успешно запустился. Например, таким образом может быть установлено, что исследуемый носитель ВПО предназначен для исполнения на платформе Win32.

[0091] Таким образом, исследуемый носитель ВПО оказывается запущен в изолированной среде, которая соответствует его платформе и имитирует, например, функционирование персонального компьютера.

[0092] Указанную изолированную среду заблаговременно настраивают таким образом, чтобы исполнение останавливалось в момент окончания работы запущенного носителя ВПО и попытки запуска им другого носителя ВПО или основного модуля ВПО, что может быть реализовано любым известным образом.

[0093] Кроме того, поскольку вектор, то есть цель атаки исследуемого носителя ВПО может быть заранее неизвестен, изолированная среда может быть дополнительно настроена таким образом, чтобы имитировать доступные по локальной сети элементы сетевой инфраструктуры, например, маршрутизатор, WiFi-роутер и так далее. Это может быть реализовано любым общеизвестным образом, например, организацией так называемых ханипотов (honey-pot), свойства которых соответствуют имитируемым элементам сетевой инфраструктуры.

[0094] Затем способ переходит к этапу 223, на котором фиксируют изменения параметров изолированной среды, происходящие в ответ на запуск носителя ВПО. Собственно фиксация изменений может производиться любым общеизвестным образом.

[0095] Полученный в результате фиксации изменений параметров изолированной среды список индикаторов компрометации на этапе 225 сохраняется в базе данных.

[0096] Альтернативно или дополнительно к этапу 223 может выполняться этап 224 (не показан на Фиг. 3), на котором из каждого обнаруженного носителя ВПО и/или модуля ВПО извлекают индикаторы компрометации, запуская его в заранее подготовленной среде, обеспечивающей извлечение индикаторов компрометации из внутренней структуры носителя ВПО и/или основного модуля ВПО. Этот способ извлечения основан на том факте, что во внутренней структуре многих носителей ВПО или основных модулей ВПО исходно присутствуют некоторые индикаторы компрометации, например, адреса веб-серверов для загрузки очередного носителя или адреса папок файловой системы, где следует создать файлы. Их извлечение может выполняться заранее подготовленным скриптом, обеспечивающим обращение по заранее известным адресам внутренней структуры носителя ВПО или основного модуля ВПО и извлечение указанных индикаторов компрометации. Извлеченные в ходе этапа 224 индикаторы компрометации добавляют в список, составленный после этапа 223.

[0097] В то же время, параллельно с этапами 221-225 выполняются этапы 222-226. На этапе 222 любым известным методом создают копию исследуемого носителя ВПО (или основного модуля ВПО).

[0098] На этапе 224 устанавливают принадлежность данного носителя или основного модуля ВПО к определенному семейству ВПО или коллективу разработчиков ВПО. Это может выполняться, например, известным способом определения принадлежности программного обеспечения по его машинному коду. В соответствии с этим способом, на подготовительном этапе получают файл, содержащий машинный код ВПО; определяют формат полученного файла; извлекают и сохраняют код функций, присутствующих в полученном файле; удаляют из сохраненного кода функции, которые являются библиотечными; выделяют в каждой функции команды; выделяют в каждой команде пару «действие, аргумент»; преобразуют каждую пару «действие, аргумент» в целое число; сохраняют, отдельно для каждой выделенной функции, полученную последовательность чисел; накапливают заранее заданное количество результатов анализа машинного кода; выявляют в результатах анализа машинного кода повторяющиеся последовательности чисел (паттерны); для каждого выявленного паттерна вычисляют параметр, характеризующий его частотность; сохраняют заданное количество паттернов и на основе вычисленных для каждого паттерна набора параметров обучают по меньшей мере один классификатор определять принадлежность программного обеспечения по последовательности пар «действие, аргумент». Непосредственно в ходе этапа 224 применяют обученный по меньшей мере один классификатор для последующего определения принадлежности программного обеспечения к определенному семейству программ.

[0099] Альтернативно, принадлежность данного носителя или основного модуля ВПО к определенному семейству ВПО или коллективу разработчиков ВПО может быть установлена путем поиска характерных фрагментов кода в коде носителя ВПО или основного модуля ВПО, выполняемого посредством заблаговременно созданным для этого скриптом. Данный скрипт может устанавливать наличие в заранее известных местах кода фрагментов кода, характерных для того или иного семейства ВПО. Такие фрагменты, способные стать "визитной карточкой" определенного семейства ВПО, хорошо известны специалистам в предметной области. Они могут быть заранее, до запуска системы реализующей описываемый метод, собраны, например, в базе данных и использованы для поиска по коду носителя ВПО или основного модуля ВПО.

[0100] Альтернативно, принадлежность данного носителя или основного модуля ВПО к определенному семейству ВПО или коллективу разработчиков ВПО может быть установлена любым другим известным способом.

[0101] Следует отметить, что в ходе этапа 224 возможна ситуация, когда принадлежность носителя ВПО или основного модуля ВПО определить не удается. Такое может быть, например, если злоумышленники использовали при подготовке изучаемой сложной атаки принципиально новое ВПО, не использовавшееся ранее и не имеющее характерных черт какого бы то ни было семейства. В рамках описываемого способа предполагается, что все ВПО, принадлежность которого установить не удалось, относят к "общему семейству" ВПО. Это семейство ВПО объединяет все образцы ВПО, принадлежность которых другим семействам не установлена.

[0102] Наконец, на этапе 226 сведения о принадлежности исследованного носителя или основного модуля ВПО сохраняют базе данных, применительно к дорожной карте атаки. В результате этапов 222-226 к дорожной карте атаки добавляется, применительно к Фиг. 1Б, очередной шаг, такой как шаг 171, шаг 172 или шаг 180.

[0103] В различных альтернативных вариантах реализации описываемого способа (на Фиг. 3 эти варианты не показаны) этапы 222-226 могут выполняться перед началом этапов 221-225, либо после их окончания.

[0104] Также в одном из возможных вариантов реализации способа полученный на этапах 221-225 список индикаторов компрометации д ля исследованного носителя ВПО или основного модуля ВПО сохраняется в базе данных, применительно к дорожной карте атаки в ассоциации с конкретным семейством ВПО или коллективом разработчиков ВПО, принадлежность к которому исследованного носителя или модуля ВПО была определена в ходе выполнения этапов 222-226. Иными словами, полученный список индикаторов компрометации может быть объединен с, или добавлен к имеющимся в базе данных спискам индикаторов компрометации для ВПО данного семейства.

[0105] Благодаря тому, что изолированная среда, в которой выполняются этапы 221-225, заблаговременно настроена так, чтобы исполнение останавливалось в момент окончания работы запущенного носителя ВПО, по окончании работы запущенного носителя ВПО способ автоматически переходит к этапу 227, на котором проверяют, была ли осуществлена попытка запуска запущенным модулем ВПО другого носителя ВПО или основного модуля ВПО.

[0106] Специалистам в предметной области известно, что о попытке запуска некоего нового модуля обычно свидетельствуют определенные, заранее известные изменения в состоянии изолированной среды. Например, применительно к платформе Win32 это определенные последовательности и параметры вызываемых системных API.

[0107] Списки таких последовательностей и параметров могут быть подготовлены заблаговременно, а факт обнаружения одной или нескольких заранее известных последовательностей может быть интерпретирован как факт обнаружения попытки запуска другого носителя ВПО или основного модуля ВПО.

[0108] Поскольку для большинства изолированных сред известны и существуют типовые способы фиксации активности, происходящей в системе, например, логирование (фиксация изменений среды в текстовом виде), хуки (hooks) и так далее, вышеуказанное обнаружение попытки запуска другого носителя ВПО или основного модуля ВПО может быть реализовано этими типовыми средствами любым общеизвестным образом.

[0109] В качестве неограничивающего примера критерия обнаружения для платформы Win32 можно привести CreateRemoteThread, для платформы.net - метод Invoke, и так далее. Соответственно, основанием для останова исполнения в первом случае будет появление последовательности вызовов:

[0010] OpenProcess - GetProcAddress - VirtualAllocEx - WriteProcessMemory -CreateRemote Thread.

[0111] В том случае, если на этапе 227 подобная попытка не обнаружена, что соответствует завершению развития сложной атаки (окончание шага 180 на Фиг. 1Б), то способ переходит к этапу 228, на котором сохраняют построенную дорожную карту атаки, а также списки индикаторов компрометации для каждого обнаруженного носителя ВПО и основного модуля ВПО.

[0112] Очевидно, что применительно к Фиг. 1Б, к данному моменту путем выполнения описанных выше этапов получают (определяют) всю последовательность исполнения носителей ВПО 171, 172, 174, 176 и основного модуля ВПО 180, а также сведения о том, к какому именно семейству ВПО принадлежит каждый из этих носителей и основной модуль. Кроме того, для каждого из названных объектов к данному моменту получен список индикаторов компрометации.

[0113] Таким образом, к моменту завершения этапа 228 получают по меньшей мере одну дорожную карту атаки, то есть граф, вершинами которого являются используемые злоумышленниками носители ВПО и основной модуль ВПО, а ребра отображают последовательность запуска этих носителей и модуля. Притом каждому используемому носителю ВПО и\или основному модулю ВПО поставлен в соответствие список индикаторов компрометации, характерных для его исполнения. Вся перечисленная информация может быть сохранена в базе данных, например, во внутренней базе данных системы, реализующей данный способ.

[0114] Завершение этапа 228 означает завершение построения дорожной карты атаки, и способ, применительно к Фиг. 2, переходит, как было сказано ранее, к этапу 230.

[0115] В том случае, если на этапе 227 обнаружена попытка запуска исследованным на этапах 221-225 носителем ВПО другого носителя ВПО или основного модуля ВПО (что означает, что развитие сложной атаки еще не завершено, и дорожная карта не построена до конца), то способ переходит к этапу 229, на котором восстанавливают очередной носитель ВПО или основной модуль ВПО, который пытался запустить исследованный носитель ВПО.

[0116] Восстановление в данном случае означает компоновку из расположенного в памяти кода и данных программы - программного модуля, например, исполнимого файла, который может быть запущен на соответствующей платформе. Из расположенного в памяти кода и данных очередного носителя ВПО или основного модуля ВПО на этапе 229 восстанавливают этот очередной носитель ВПО или основной модуль ВПО, приводя его к виду, позволяющему запустить его на соответствующей ему платформе.

[0117] Восстановление может выполняться любым известным образом, например, посредством программы Scylla. Подробное описание собственно восстановления не приводится, поскольку подходы и способы его выполнения являются очевидными для любого специалиста в данной предметной области.

[0118] Затем восстановленный очередной носитель ВПО или основной модуль ВПО передают на вход вышеописанному способу 220. Иными словами, начинают исполнение этапов 222 и 221 для нового (восстановленного) носителя ВПО или основного модуля ВПО.

[0119] Притом, если и когда в ходе исполнения исследованного ранее носителя ВПО будет выяснено, например, посредством созданных в изолированной среде ханипотов, что вектор атаки (место предполагаемого исполнения восстановленного носителя ВПО) направлен не на, например, персональный компьютер, имитируемый в данной изолированной среде, а например, на маршрутизатор, то восстановленный носитель ВПО помещают в изолированную среду с такими настройками, которые имитируют маршрутизатор или, более общо, новую выявленную цель атаки.

[0120] Несложно видеть, что вышеописанный этап 220 построения дорожной карты сложной атаки исполняется циклически до тех пор, пока на этапе 227 не будет установлено, что попытки запустить еще один носитель или основной модуль ВПО не было. Это соответствует окончанию развития сложной атаки, то есть, применительно к Фиг. 1Б, завершению всей последовательности исполнения носителей ВПО 171, 172, 174, 176, а также завершению исполнения основного модуля ВПО 180.

[0121] Применительно к ситуации реальной атаки на сетевую инфраструктуру, на вышеописанном этапе 220 система, реализующая описываемый способ, имитирует успешное развитие сложной атаки, то есть последовательное исполнение носителей ВПО, а затем основного модуля ВПО в таком порядке и на тех элементах сетевой инфраструктуры, как это планировали злоумышленники.

[0122] Притом на протяжении всей атаки система, реализующая описываемый способ, обеспечивает сбор индикаторов компрометации для каждого из шагов сложной атаки, а также идентификацию принадлежности вредоносного ПО, исполняющегося на каждом шаге атаки.

[0123] Фиг. 4А-4Б иллюстрируют в деталях выполнение этапа 230, на котором, используя построенную дорожную карту атаки, находят в базе данных по меньшей мере одну дорожную карту атаки, с заданным уровнем точности совпадающей с построенной на шаге 220. В соответствии с Фиг. 4А, выполнение этапа 230 начинается с получения на этапе 231 дорожной карты атаки, построенной на этапе 220.

[0124] Нужно отметить, что построенная дорожная карта атаки, которую получают на данном этапе может, в частности, как это показано на Фиг. 4Б, представлять собой граф 400. Вершинами графа в данном примере являются эксплойт 410, шифратор 420, загрузчик 430, шифратор 440 и датастилер 450, выявленные в ходе этапа 220, описанного выше применительно к Фиг. 2. Ребра данного графа соответствуют очередности запуска и исполнения перечисленных носителей ВПО и основного модуля ВПО.

[0125] Условное обозначение на чертеже эксплойта 410 как С7 в данном примере отражает тот факт, что данный носитель ВПО является седьмым по счету представителем семейства эксплойтов, эксплуатирующий уязвимость CVE-201711882. Аналогично, шифратор 420 обозначен как А5, что означает, что это пятый представитель семейства шифраторов AtilaCrypter, загрузчик 430 - второй представитель семейства Nemucod, шифратор 440 - восьмой представитель семейства HabibCrypter, а основной модуль ВПО, датастилер 450 - третий представитель семейства Pony. Все перечисленные факты принадлежности были выявлены в ходе построения дорожной карты атаки, а именно этапа 224, описанного выше применительно к Фиг. 3.

[0126] В альтернативном способе представления дорожная карта атаки, полученная на этапе 231, может представлять собой список, в котором очередность перечисления семейств ВПО соответствует выявленной очередности запуска носителей ВПО и основного модуля ВПО, а число в скобках соответствует порядковому номеру выявленного носителя или модуля в списке соответствующего семейства ВПО. Пример такого списка, аналогичного по смыслу графу 400, может выглядеть следующим образом:

[0127] CVE-201711882 (7), AtilaCrypter (5), Nemucod (2), HabibCrypter (8), Pony (3)

[0128] Возможны также, без ограничения, любые иные альтернативные способы представления дорожной карты атаки, позволяющие указать очередность запуска носителей и основного модуля, семейство ВПО, к которому принадлежит каждый из них, а также порядковый номер или любой другой идентификатор образца ВПО внутри семейства ВПО, к которому этот образец относится.

[0129] Соответственно, под "поиском дорожной карты" в настоящем описании подразумевается поиск в базе данных графов, строк, векторов, таблиц, матриц, множеств или любых иных, в зависимости от используемого способа представления, записей базы данных, удовлетворяющих заданным условиям поиска.

[0130] Для простоты описания последующих этапов, каждый идентифицированный носитель ВПО или основной модуль ВПО, принадлежащий к определенному семейству и фигурирующий в дорожной карте атаки, продолжая принятый в графе 400 на Фиг. 4Б принцип обозначения, далее называется "вершиной графа А1" или "вершиной А1", где буква А указывает на определенное семейство ВПО, а числовой индекс 1 указывает на некий идентификатор данного образца ВПО внутри этого семейства, например, на его порядковый номер. Так, в соответствии с этим принципом, А1 и А2 - это разные представители одного семейства А, тогда как А2 и В2 - представители различных семейств А и В.

[0131] Обозначение вида Ах используется в значении "любой представитель семейства А".

[0132] Возвращаясь к Фиг. 4Б, затем способ переходит к этапу 232, на котором задают параметры поиска в базе данных, а именно минимальное общее количество различающихся записей базы данных, которое необходимо найти в ходе поиска, Fa, и минимальное количество совпадающих с вершинами полученной дорожной картой атаки вершин Km, которые должны присутствовать в записи, удовлетворяющей условиям поиска. Например, могут быть заданы такие параметры: найти не менее Fa=100 различающихся записей, при этом каждая найденная запись должна содержать не менее Кт=4 совпадающих вершин.

[0133] Под совпадением вершин в рамках описываемого метода подразумевается принадлежность вершин к одному семейству. Например, вершины A1, А4 и А9 совпадают, а вершины А1 и В1 нет.

[0134] В одной из возможных реализаций описываемого метода для поиска задают также следующее условие: вершины в записи, удовлетворяющей условиям поиска, должны следовать в том же порядке, в котором они следуют в полученной дорожной карте атаки. Иными словами, если в полученной на этапе 231 дорожной карте последовательно встречаются вершины Ах, Вх, Сх, то записи, содержащие последовательности Ах, Сх, Вх или Вх, Ах, Сх при поиске не будут отобраны.

[0135] В другой возможной реализации описываемого метода вышеназванное условие для поиска не задают, и отбирают все записи, содержащие вершины Ах, Вх и Сх, вне зависимости от того порядка, в котором эти вершины встречаются в записи.

[0136] Также возможна реализация описываемого метода, при которой дополнительно задают параметр Р, имеющий смысл максимального количества вершин, которые могут находиться между совпадающими вершинами, например, может быть задан Р=2, при котором в ходе поиска, например, вершин Ах и Вх будут отобраны все записи, в которых присутствуют Ах и Вх и в которых между Ах и Вх могут находиться одна или две вершины, относящиеся к любым семействам.

[0137] Альтернативно, параметр Р может быть задан равным бесконечности, и тогда будут отобраны все записи, содержащие Ах и Вх, вне зависимости от того, сколько и каких вершин между ними находится.

[0138] Применительно к описанию этапа 224 ранее упоминалось, что все образцы ВПО, которые не удалось отнести к определенному семейству, относят к некоторому "общему семейству ВПО". В рамках описываемого метода в ходе поиска 230 дорожной карты атаки, с заданным уровнем точности совпадающей с построенной дорожной картой атаки, "общее семейство ВПО" не используют. Иными словами, если в построенной дорожной карте атаки присутствует вершина графа, относящаяся к "общему семейству", в ходе поиска считают, что этой вершины в графе нет, и предшествующая ей вершина напрямую соединена со следующей за ней.

[0139] В альтернативном варианте реализации описываемого метода "общее семейство ВПО" учитывают аналогично остальным известным семействам.

[0140] По окончании этапа 232 способ переходит к этапу 233, на котором, пользуясь заданными параметрами поиска Fa, Km, Р и полученной дорожной картой атаки, генерируют список поисковых запросов.

[0141] Цель генерации в данном случае заключается в получении такого списка запросов, который охватывал бы полный ансамбль всех возможных сочетаний вершин, присутствующих в полученной дорожной карте атаки с учетом заданных на этапе 232 параметров.

[0142] Пусть, например, применительно к Фиг. 4Б для полученной дорожной карты 400 были заданы параметры:

[0143] - минимальное количество записей, которые нужно найти, F=2,

[0144] - количество совпадающих вершин Km=3,

[0145] - количество других вершин, которые могут находиться между совпадающими вершинами, Р равно бесконечности,

[0146] - следование совпадающих вершин в произвольном порядке не допускается.

[0147] Понятно, что для дорожной карты 400, состоящей из последовательности вершин C7-A5-N2-H8-P3 с учетом заданных условий необходимо будет найти все записи, содержащие следующие сочетания и последовательности вершин:

[0148] CxAxNx, СхАхНх, СхАхРх, CxNxHx, CxNxPx, СхНхРх, AxNxHx, AxNxPx, АхНхРх, NxHxPx.

[0149] В одном из возможных вариантов реализации описываемого метода запросы к базе данных могут быть построены в форме регулярных выражений. Тогда для поиска вышеназванных последовательностей и сочетаний вершин используют следующие регулярные выражения:

[0150] .?Cx.?Ax.?Nx.

[0151]. ?Сх.?Ах.?Нх.

[0152]. ?Сх.?Ах.?Рх.

[0153]. ?Сх.?Ых.?Нх.

[0154]. ?Cx.?Nx.?Px.

[0155]. ?Сх.?Нх.?Рх.

[0156]. ?Ax.?Nx.?Hx.

[0157]. ?Ax.?Nx.?Px.

[0158]. ?Ах.?Нх.?Рх.

[0159]. ?Nx.?Hx.?Px.

[0160] Понятно, что в приводимом примере, в силу относительно малой длины дорожной карты атаки, а также величины параметра Km=3, количество возможных комбинаций поисковых запросов оказывается невелико. При других значениях этих величин количество требуемых комбинаций поисковых запросов может оказаться значительно больше, поэтому генерацию списка запросов выполняют автоматически, посредством заранее подготовленного скрипта, получающего на вход последовательность вершин построенной дорожной карты атаки и величины заданных параметров, таких как Km, а на выходе выдающего полный список всех поисковых запросов, возможных при заданной последовательности вершин и заданных параметрах.

[0161] Алгоритм действия такого скрипта может быть любым общеизвестным, здесь он не приводится в силу очевидности возможных способов решения описанной комбинаторной задачи.

[0162] В других возможных вариантах реализации описываемого метода, в зависимости от архитектуры используемой базы данных и способа организации данных в ней, способа описания полученных карт атаки и т.д. могут быть использованы любые другие способы и синтаксис записи поисковых запросов, которые могут быть построены и сформулированы любым общеизвестным способом.

[0163] По окончании этапа 233 способ переходит к циклическому выполнению этапов 234 и 235. На этапе 234 направляют в базу данных очередной запрос из списка запросов, сгенерированного на этапе 233, в ответ на это получают из базы данных некоторое количество записей, соответствующих данному запросу, и сохраняют полученные записи. Понятно, что в одном частном случае в ответ на очередной запрос может быть получено большее единицы количество записей, в другом частном случае одна запись, в третьем частном случае не будет получено ни одной записи. В любом случае, по завершении этапа 234 на этапе 235 проверяют, достигнут ли конец списка запросов, и если нет, то возвращаются к началу выполнения этапа 234.

[0164] Если на этапе 235 выяснено, что конец списка запросов достигнут, то способ переходит к этапу 236, на котором подсчитывают общее количество записей, полученных и сохраненных на предыдущих этапах 234-235.

[0165] Если это количество оказывается меньше заранее заданного параметра Fa, то есть в ходе поиска не было получено заданное количество записей, то способ переходит к этапу 238, на котором уменьшают значение параметра Km, задающего количество совпадающих вершин. Уменьшают Km, например, на единицу, и возвращаются к этапу генерации списка поисковых запросов 233.

[0166] Если количество полученных записей оказывается больше или равно заранее заданного параметра Fa, то есть получено достаточное количество записей, способ переходит к этапу 237. В альтернативной реализации описываемого способа, как это будет подробно описано ниже, этап 237 не выполняется и способ 230 при получении достаточного количества записей завершается, переходя к этапу 240 (применительно к Фиг. 2).

[0167] На этапе 237 объединяют все найденные записи, с заданным уровнем точности совпадающие с дорожной картой атаки, построенной на этапе 220. Например, применительно к Фиг. 4Б, в ходе поиска записей базы данных, с заданным уровнем точности совпадающих с графом 400, в результате выполнения этапов 233-236 были найдены графы 460 и 470. Как видно из Фиг. 4Б, графы 460 и 470 также описывают разновидности сложной атаки, начинающиеся с запуска эксплойта, эксплуатирующего уязвимость CVE-201711882. Также видно, что как эксплойт 462, так и эксплойт 472 отличаются от входящего в граф 400 эксплойта 410, хотя и принадлежат к тому же семейству.

[0168] Также видно, что после запуска эксплойта 462 атака, описанная графом 460 на протяжение трех шагов развивается иначе, нежели атака, описанная графом 400: последовательно запускаются носители ВПО 464, 465 и 466, принадлежащие к другим, не использованным в исходной атаке семействам ВПО. И лишь на предпоследнем шаге атаки по графу 460 так же, как и в исходной атаке, запускается шифровальщик 468 семейства HabibCrypter (хотя и отличающийся от представителя этого же семейства 440, использованного в исходной атаке), который расшифровывает и запускает основной модуль ВПО 469, так же, как в исходной атаке представляющий собой датастилер семейства Pony (хотя, опять же, не в точности такой, как датастилер 450, использованный в исходной атаке).

[0169] В то же время, сложная атака, описанная графом 470, после запуска эксплойта 472 на протяжение двух шагов развивается похоже на исходную атаку. Последовательно запускаются шифровальщик 473, как и шифровальщик 420, принадлежащий к семейству AtilaCrypter, затем загрузчик 474, как и загрузчик 430, принадлежащий к семейству Nemucod. Однако, затем последовательность атаки по графу 470 изменяется, загружаемые и запускаемые загрузчиком 474 носители ВПО 475, 477 и основной модуль ВПО 479 принадлежат к иным семействам, нежели ВПО использованное в оригинальной сложной атаке по графу 400.

[0170] В результате объединения найденных в базе данных записей 460, 470, получают дорожную карту сложной атаки 490.

[0171] Несложно видеть, что некоторые шаги полученной дорожной карты сложной атаки 490, такие как шаги 494 или 499 в приведенном примере, могут оказаться неоднозначными, так как в разных записях 460, 470 этим шагам соответствуют представители различных семейств ВПО. Применительно к отображению дорожной карты атаки в форме графа, для вершин графа, соответствующих таким неоднозначным шагам, сохраняют несколько значений, где каждое значение соответствует одному семейству ВПО.

[0172] На этом этап 237 завершается, и способ, применительно к Фиг. 3, переходит к описанному выше этапу 240, на котором из базы данных извлекают списки индикаторов компрометации, соответствующие дорожной карте сложной атаки 490.

[0173] В одном из возможных альтернативных вариантов реализации описываемого метода этап 237 не выполняется и дорожную карту сложной атаки, которой соответствует граф 490, не строят. В этом случае после завершения этапа 236, когда найдено достаточное (превышающее величину Fa) количество записей, способ, применительно к Фиг. 2, переходит к описанному выше этапу 240, на котором из базы данных извлекают списки индикаторов компрометации, соответствующие семействам ВПО, перечисленным в найденных записях.

[0174] На Фиг. 5 далее будет представлена общая схема вычислительного устройства 500, обеспечивающего обработку данных, необходимую для реализации заявленного решения.

[0175] В общем случае устройство 500 содержит такие компоненты, как: один или более процессоров 501, по меньшей мере одну память 502, средство хранения данных 503, интерфейсы ввода/вывода 504, средство В/В 505, средства сетевого взаимодействия 506.

[0176] Процессор 501 устройства выполняет основные вычислительные операции, необходимые для функционирования устройства 500 или функциональности одного или более его компонентов. Процессор 501 исполняет необходимые машиночитаемые команды, содержащиеся в оперативной памяти 502.

[0177] Память 502, как правило, выполнена в виде ОЗУ и содержит необходимую программную логику, обеспечивающую требуемую функциональность.

[0178] Средство хранения данных 503 может выполняться в виде HDD, SSD дисков, рейд массива, сетевого хранилища, флэш-памяти, оптических накопителей информации (CD, DVD, MD, Blue-Ray дисков) и т.п. Средство 503 позволяет выполнять долгосрочное хранение различного вида информации, например, вышеупомянутых документов с наборами данных пользователей, базы данных, содержащих записи измеренных для каждого пользователя временных интервалов, идентификаторов пользователей и т.п.

[0179] Интерфейсы 504 представляют собой стандартные средства для подключения и работы с серверной частью, например, USB, RS232, RJ45, LPT, COM, HDMI, PS/2, Lightning, Fire Wire и т.п.

[0180] Выбор интерфейсов 504 зависит от конкретного исполнения устройства 500, которое может представлять собой персональный компьютер, мейнфрейм, серверный кластер, тонкий клиент, смартфон, ноутбук и т.п.

[0181] В качестве средств В/В данных 505 могут использоваться: клавиатура, джойстик, дисплей (сенсорный дисплей), проектор, тачпад, манипулятор мышь, трекбол, световое перо, динамики, микрофон и т.п.

[0182] Средства сетевого взаимодействия 506 выбираются из устройства, обеспечивающий сетевой прием и передачу данных, например, Ethernet карту, WLAN/Wi-Fi модуль, Bluetooth модуль, BLE модуль, NFC модуль, IrDa, RFID модуль, GSM модем и т.п.С помощью средств 506 обеспечивается организация обмена данными по проводному или беспроводному каналу передачи данных, например, WAN, PAN, ЛВС (LAN), Интранет, Интернет, WLAN, WMAN или GSM.

[0183] Компоненты устройства 500 сопряжены посредством общей шины передачи данных 510.

[0184] В настоящих материалах заявки было представлено предпочтительное раскрытие осуществление заявленного технического решения, которое не должно использоваться как ограничивающее иные, частные воплощения его реализации, которые не выходят за рамки испрашиваемого объема правовой охраны и являются очевидными для специалистов в соответствующей области техники.

Похожие патенты RU2743619C1

название год авторы номер документа
Система и способ внешнего контроля поверхности кибератаки 2021
  • Бобак Тим Джон Оскар
  • Волков Дмитрий Александрович
RU2778635C1
Способ обнаружения несанкционированных и поддельных точек доступа Wi-Fi 2023
  • Буренок Дмитрий Сергеевич
RU2810111C1
Способ выявления угроз информационной безопасности (варианты) 2023
  • Сергеев Виктор Геннадьевич
  • Скаблонский Андрей Вадимович
  • Воронцов Дмитрий Викторович
  • Справцев Юрий Владимирович
RU2802539C1
СПОСОБ И СИСТЕМА ПРЕДОТВРАЩЕНИЯ ПОЛУЧЕНИЯ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА К ОБЪЕКТАМ КОРПОРАТИВНОЙ СЕТИ 2022
  • Балашов Александр Викторович
  • Черепанов Павел
  • Нагорнов Иван Григорьевич
  • Глазунов Никита Сергеевич
  • Соломатин Александр Игоревич
RU2799117C1
СПОСОБ И СИСТЕМА ПРЕДОТВРАЩЕНИЯ КОМПРОМЕТАЦИИ ОБЪЕКТОВ СЕТЕВОЙ ИНФРАСТРУКТУРЫ В СЛУЖБЕ КАТАЛОГОВ FREEIPA 2023
  • Балашов Александр Викторович
  • Черепанов Павел
  • Нагорнов Иван Григорьевич
RU2826430C1
Система и способ активного обнаружения вредоносных сетевых ресурсов 2021
  • Волков Дмитрий Александрович
  • Прудковский Николай Сергеевич
RU2769075C1
СИСТЕМА ИНТЕЛЛЕКТУАЛЬНОГО УПРАВЛЕНИЯ КИБЕРУГРОЗАМИ 2019
  • Рюпичев Дмитрий Юрьевич
  • Новиков Евгений Александрович
  • Ничипорчук Максим Михайлович
RU2702269C1
Система и способ обнаружения признаков компьютерной атаки 2017
  • Гордейчик Сергей Владимирович
  • Сапронов Константин Владимирович
  • Паршин Юрий Геннадьевич
  • Хеирхабаров Теймур Самедович
  • Солдатов Сергей Владимирович
RU2661533C1
Способ комбинирования большой языковой модели и агента безопасности 2023
  • Сергеев Виктор Геннадьевич
  • Тушканов Владислав Николаевич
RU2825975C1
Способ применения больших языковых моделей при реагировании на инциденты информационной безопасности 2023
  • Сергеев Виктор Геннадьевич
RU2825972C1

Иллюстрации к изобретению RU 2 743 619 C1

Реферат патента 2021 года СПОСОБ И СИСТЕМА ГЕНЕРАЦИИ СПИСКА ИНДИКАТОРОВ КОМПРОМЕТАЦИИ

Изобретение относится к вычислительной технике. Технический результат заключается в обеспечении противодействия сложным атакам на сетевую инфраструктуру. Компьютерно-реализуемый способ генерации списка индикаторов компрометации, в котором получают носитель ВПО, предназначенный для подготовки к запуску и/или запуска по меньшей мере одного основного модуля ВПО, строят дорожную карту атаки путем обнаружения дополнительных носителей ВПО и/или основного модуля ВПО и определения последовательности их исполнения, предусмотренной алгоритмом исполнения полученного носителя ВПО, находят в базе данных по меньшей мере одну дорожную карту атаки, с заданным уровнем точности совпадающую с построенной дорожной картой, извлекают из базы данных списки индикаторов компрометации для каждого носителя ВПО и/или основного модуля ВПО из по меньшей мере одной найденной дорожной карты атаки, генерируют общий список индикаторов компрометации на основе составленных списков индикаторов компрометации и извлеченных из базы данных списков объединенных списков индикаторов компрометации, сохраняют составленные списки индикаторов компрометации для каждого обнаруженного носителя ВПО или основного модуля ВПО, а также общий список индикаторов компрометации в базе данных. 2 н. и 12 з.п. ф-лы, 7 ил.

Формула изобретения RU 2 743 619 C1

1. Компьютерно-реализуемый способ генерации списка индикаторов компрометации, содержащий шаги, на которых:

• получают носитель ВПО, предназначенный для подготовки к запуску и/или запуска по меньшей мере одного основного модуля ВПО,

• строят дорожную карту атаки путем обнаружения дополнительных носителей ВПО и/или основного модуля ВПО и определения последовательности их исполнения, предусмотренной алгоритмом исполнения полученного носителя ВПО,

• определяют принадлежность каждого обнаруженного носителя ВПО или основного модуля ВПО к определенному семейству ВПО,

• составляют для каждого обнаруженного носителя ВПО или основного модуля ВПО список индикаторов компрометации,

• находят в базе данных по меньшей мере одну дорожную карту атаки, характеризующуюся тем, что последовательность запуска носителей ВПО и/или основных модулей ВПО в этой дорожной карте с заданным уровнем точности совпадает с последовательностью запуска носителей ВПО и/или основных модулей ВПО в полученном носителе ВПО, а сами эти носители ВПО и/или основные модули ВПО относятся к тем же семействам,

• извлекают из базы данных списки индикаторов компрометации для каждого носителя ВПО и/или основного модуля ВПО из по меньшей мере одной найденной дорожной карты атаки,

• генерируют общий список индикаторов компрометации на основе составленных списков индикаторов компрометации и извлеченных из базы данных списков объединенных списков индикаторов компрометации,

• сохраняют составленные списки индикаторов компрометации для каждого обнаруженного носителя ВПО или основного модуля ВПО, а также общий список индикаторов компрометации в базе данных.

2. Способ по п. 1, в котором получают носитель ВПО, содержащий по меньшей мере один основной модуль ВПО либо предназначенный для подготовки к запуску по меньшей мере одного основного модуля ВПО, от внешней системы анализа инцидентов компьютерной безопасности.

3. Способ по п. 1, в котором подготовка к запуску и запуск по меньшей мере одного основного модуля ВПО подразумевает запуск по меньшей мере одного дополнительного носителя ВПО, приводимого в действие полученным носителем ВПО.

4. Способ по п. 1, в котором строят дорожную карту атаки, запуская полученный носитель ВПО в изолированной среде и фиксируя последовательность и характер воздействия носителя ВПО на среду.

5. Способ по п. 4, в котором строят дорожную карту атаки в виде графа, вершинами которого являются носители ВПО и/или основные модули ВПО, запуск которых предусмотрен алгоритмом исполнения полученного носителя ВПО, а ребра указывают на последовательность запуска этих носителей ВПО и/или основных модулей ВПО.

6. Способ по п. 1, в котором определяют принадлежность каждого обнаруженного носителя ВПО или основного модуля ВПО, запуск которых предусмотрен алгоритмом исполнения полученного носителя ВПО, к какому-либо семейству ВПО, применяя заранее обученный по меньшей мере один классификатор.

7. Способ по п. 1, в котором составляют список индикаторов компрометации для каждого обнаруженного носителя ВПО или основного модуля ВПО, запуская заранее подготовленную среду, обеспечивающую извлечение индикаторов компрометации из внутренней структуры или кода носителя ВПО и/или основного модуля ВПО, относящегося к определенному семейству ВПО, и сохранение извлеченных индикаторов в виде списка.

8. Способ по п. 1, в котором составляют список индикаторов компрометации для каждого обнаруженного носителя ВПО и/или основного модуля ВПО, запуская полученный носитель ВПО в изолированной среде, выполненной с возможностью сохранения списка изменений состояния среды в качестве списка индикаторов компрометации после исполнения каждого носителя ВПО и/или основного модуля ВПО, запущенного полученным носителем ВПО.

9. Способ по п. 8, в котором составляют список индикаторов компрометации для каждого обнаруженного носителя ВПО и/или модуля ВПО, дополнительно запуская заранее подготовленную среду, обеспечивающую извлечение индикаторов компрометации из внутренней структуры носителя ВПО и/или основного модуля ВПО, относящегося к определенному семейству ВПО, и добавление извлеченных индикаторов в список, составленный после запуска носителя ВПО и/или основного модуля ВПО в изолированной среде.

10. Способ по п. 1, в котором для извлечения из базы данных списков индикаторов компрометации для каждого носителя ВПО и/или основного модуля ВПО из по меньшей мере одной найденной дорожной карты атаки используют алгоритмы нечеткого поиска в базе данных.

11. Способ по п. 1, в котором дополнительно сохраняют в базе данных объединенную дорожную карту атаки, содержащую как построенную дорожную карту атаки, так и по меньшей мере одну найденную дорожную карту атаки.

12. Способ по п. 1, в котором используют регулярные выражения для генерации общего списка индикаторов компрометации из составленного списка индикаторов компрометации и извлеченных из базы данных списков индикаторов компрометации.

13. Способ по п. 1, в котором дополнительно передают общий список индикаторов компрометации во внешнюю систему анализа инцидентов компьютерной безопасности.

14. Система генерации списка индикаторов компрометации, содержащая:

- долговременную память, выполненную с возможностью хранения файлов и данных;

- устройство связи, выполненное с возможностью получения носителей ВПО и передачи данных,

- вычислительное устройство, выполненное с возможностью выполнения способа генерации списка индикаторов компрометации по любому из пп. 1-13.

Документы, цитированные в отчете о поиске Патент 2021 года RU2743619C1

US 10467411 B1, 05.11.2019
Способ восстановления спиралей из вольфрамовой проволоки для электрических ламп накаливания, наполненных газом 1924
  • Вейнрейх А.С.
  • Гладков К.К.
SU2020A1
Lauren Rudman et al
"Dridex: Analysis of the traffic and automatic generation of IOCs", опубл
Способ изготовления электрических сопротивлений посредством осаждения слоя проводника на поверхности изолятора 1921
  • Андреев Н.Н.
  • Ландсберг Г.С.
SU19A1
Станок для придания концам круглых радиаторных трубок шестигранного сечения 1924
  • Гаркин В.А.
SU2019A1
RU

RU 2 743 619 C1

Авторы

Померанцев Илья Сергеевич

Даты

2021-02-20Публикация

2020-08-06Подача