Система и способ обнаружения приложения удалённого администрирования
SYSTEM AND DETECTING METHOD OF REMOTE ADMINISTRATION APPLICATION

Область техники
Изобретение относится к антивирусным технологиям, а более конкретно к системам и способам обнаружения несанкционированного удаленного администрирования.
Уровень техники
Бурное развитие компьютерных технологий в последнее десятилетие, а также широкое распространение разнообразных вычислительных устройств (персональных компьютеров, ноутбуков, планшетов, смартфонов и т.д.) стали мощным стимулом для использования этих устройств в разнообразных сферах деятельности и для огромного количества задач (от интернет-серфинга до банковских переводов и ведения электронного документооборота). Параллельно с ростом количества вычислительных устройств и программного обеспечения, работающего на этих устройствах, быстрыми темпами росло и количество вредоносных программ.
В настоящий момент существует огромное количество разновидностей вредоносных программ, относящихся к многообразным классам вредоносных программ. Программы из одного класса вредоносных программ крадут с устройств пользователей персональные и конфиденциальные данные (например, логины и пароли, банковские реквизиты, электронные документы). Программы из другого - формируют из устройств пользователей так называемые бот-сети (англ. botnet) для атак, таких как отказ в обслуживании (англ. DDOS) или для перебора паролей методом грубой силы (англ. bruteforce) на другие компьютеры или компьютерные сети. Программы из третьего - предлагают пользователям платный контент через навязчивую рекламу, платные подписки, отправку CMC на платные номера и т.д.
В одну из групп вредоносных программ входят вредоносные программы, осуществляющие удаленное администрирование на зараженных компьютерах пользователей. После того как такая программа устанавливается на компьютер пользователя, она зачастую получает права администратора, что обеспечивает ей доступ к любой конфиденциальной информации пользователя, а также позволяет выполнять любые действия на компьютере пользователя и передавать информацию о результатах своей работы злоумышленникам по компьютерной сети. Например, одна из разновидностей описанной выше программы дублирует на компьютере жертвы действия злоумышленника, выполняемые им на своем компьютере.
Сложность в обнаружении описанных выше программ заключается в том, что зачастую они:
• не выполняют вредоносных действий в явном виде (например, не уничтожают данные, а организуют DDOS атаки и т.д.);
• выполняют активные действия эпизодически и нерегулярно;
• выдают себя за легитимные приложения, используемые администраторами для управления клиентскими компьютерами.
Таким образом, современные антивирусы в действиях, описанных выше программ, не видят вредоносного функционала.
Кроме того, иногда удаленное администрирование выполняется не одной, а несколькими программами, каждая из которых не обладает никаким вредоносным функционалом и не может сама по себе использоваться для выполнения вредоносной деятельности, но совместно с другими такими же программами образует сборное вредоносное приложение. Например, одна программа-компонент получает команды по компьютерной сети и сохраняет их на жестком диске (например, в виде ключа реестра), другая программа-компонент регулярно просматривает жесткий диск на наличие сохраненных команд и передает команды третьей программе-компоненту, которая и будет их выполнять, и т.д. Такие совокупности программ обнаруживаются только по совместному поведению, но зачастую не квалифицируются как вредоносные, поскольку некоторые из программ-компонент могут быть легитимными (чистыми) программами от известных производителей.
Например, в публикации US 8990944 B1 описана технология автоматического обнаружения вредоносных приложений типа Backdoor - приложений, предназначенных для скрытого удаленного управления злоумышленниками пораженных компьютеров.
С этой целью отслеживают сетевые соединения анализируемого приложения, а именно каналы связи, коммуникационные порты, по которым анализируемое приложение может получать команды управления и другие сообщения от внешних вредоносных компьютерных систем или программ. На основании того, входят ли прослушиваемые анализируемым приложением коммуникационные порты в «черный» или «белый» списки коммуникационных портов (т.е. списки портов, которые используют вредоносные и легитимные программы), а также в зависимости от данных (структуры, содержимого и т.п.), передаваемых по прослушиваемым анализируемым приложениям коммуникационным портам, вычисляется вероятность того, что анализируемое приложение является вредоносным.
Хотя описанные выше способы работы хорошо справляются с задачами обнаружения известных вредоносных (как по структуре, так и по поведению) приложений, они не справляются с задачами обнаружения:
• приложений с ранее неизвестным поведением для осуществления удаленного администрирования;
совокупности приложений, реализующих удаленное администрирование лишь совместно, при этом каждое приложение обладает своим, совершенно легитимным функционалом;
кроме того, описанные выше способы работы могут производить ложные обнаружения вредоносных программ в случае, когда удаленное администрирование осуществляется с разрешения пользователя.
Настоящее изобретение позволяет решать задачу обнаружения удаленного администрирования.
Раскрытие изобретения
Изобретение предназначено для антивирусной защиты компьютерных систем.
Технический результат настоящего изобретения заключается в расширении арсенала технических средств, т.е. в реализации указанного назначения.
Данный результат достигается с помощью использования системы обнаружения приложения удаленного администрирования, которая содержит средство анализа активности, предназначенное для: перехвата событий, произошедших в компьютерной системе, где в качестве перехватываемых событий выступают по меньшей мере: вызов приложениями API функций операционной системы; передача данных между процессами приложений с использованием технологии межпроцессного взаимодействия (Inter-Process Communication); передача данных между программными и аппаратными составляющими компьютерной системы; передача приложениями данных по компьютерной сети; передача приложениям данных с периферийных устройств ввода; при этом событие компьютерной системы представляет совокупность действий, выполненных приложением в компьютерной системе; определения параметров каждого перехваченного события, при этом параметр события компьютерной системы представляет собой совокупность разных свойств события компьютерной системы; и передачи определенных параметров перехваченных событий средству выявления зависимостей; средство выявления зависимостей, предназначенное для: выявления среди перехваченных событий события передачи приложением данных по компьютерной сети на основании анализа полученных параметров перехваченных событий; выявления среди перехваченных событий события передачи приложению данных с периферийного устройства ввода на основании анализа полученных параметров перехваченных событий; определения среди перехваченных событий по меньшей мере одного события, зависящего от выявленных событий, при этом зависимость перехваченного события от выявленного события определяется по меньшей мере тем, что: время, прошедшее между регистрацией выделенного события и последующей регистрацией перехваченного события менее заранее установленного временного порога, параметры перехваченного события коррелируют с параметрами выявленного события, зарегистрированного ранее упомянутого перехваченного события; формирования для по меньшей мере одного определенного события правила, которое описывает зависимость параметров определенного события от параметров выявленных событий; и передачи сформированного правила совместно с информаций об определенном событии средству поиска; средство поиска, предназначенное для: определения степени схожести сформированного правила по меньшей мере с одним заранее созданным правилом на основании сравнения упомянутых правил, при этом заранее созданное правило описывает зависимость параметров событий, произошедших в компьютерной системе во время удаленного администрирования; в случае, когда степень схожести, определенная ранее, превышает установленное пороговое значение, определения по меньшей мере одного приложения, создавшего перехваченное средством анализа активности событие, определенные параметры которого были использованы средством выявления зависимостей при формировании полученного правила, определенная степень схожести которого с по меньшей мере одним заранее созданным правилом выше установленного порогового значения; и передачи информации, идентифицирующей по меньшей мере одно определенное приложение, средству анализа; средство анализа, предназначенное для: вынесения вердикта об обнаружении приложения удаленного администрирования.
Данный результат достигается с помощью использования способа обнаружения приложения удаленного администрирования, реализуемого средствами системы обнаружения приложения удаленного администрирования и состоящего из этапов, на которых: перехватывают события, произошедшие в компьютерной системе, где в качестве перехватываемых событий выступают, по меньшей мере: вызов приложениями API функций операционной системы; передача данных между процессами приложений с использованием технологии межпроцессного взаимодействия (Inter-Process Communication); передача данных между программными и аппаратными составляющими компьютерной системы; передача приложениями данных по компьютерной сети; передача приложениям данных с периферийных устройств ввода; при этом событие компьютерной системы представляет совокупность действий, выполненных приложением в компьютерной системе; определяют параметры каждого перехваченного на предыдущем этапе события, при этом параметр события компьютерной системы представляет собой совокупность разных свойств события компьютерной системы; выявляют среди перехваченных на предыдущем этапе событий события передачи приложением данных по компьютерной сети, и события передачи приложению данных с периферийного устройства ввода, на основании анализа определенных на предыдущем этапе параметров перехваченных на предыдущем этапе событий; определяют среди перехваченных на предыдущем этапе событий по меньшей мере одно событие, зависящее от выявленных на предыдущем этапе событий, при этом зависимость перехваченного события от выявленного события определяется по меньшей мере тем, что: время, прошедшее между регистрацией выделенного события и последующей регистрацией перехваченного события менее заранее установленного временного порога, параметры перехваченного события коррелируют с параметрами выявленного события, зарегистрированного ранее упомянутого перехваченного события; формируют по меньшей мере для одного определенного на предыдущем этапе события правило, которое описывает зависимость параметров определенного на предыдущем этапе события от параметров выявленных на предыдущем этапе событий; определяют степень схожести сформированного на предыдущем этапе правила по меньшей мере с одним заранее созданным правилом на основании сравнения упомянутых правил, при этом заранее созданное правило описывает зависимость параметров событий, произошедших в компьютерной системе во время удаленного администрирования; в случае, когда степень схожести, определенная на предыдущем этапе превышает установленное пороговое значение, определяют по меньшей мере одно приложение, создавшее перехваченное на предыдущем этапе событие, определенные на предыдущем этапе параметры упомянутого события были использованы на предыдущем этапе при формирования правила, определенная на предыдущем этапе степень схожести которого с по меньшей мере одним заранее созданным правилом выше установленного порогового значения; выносят вердикт об обнаружении приложения удаленного администрирования.
Краткое описание чертежей
Фиг. 1 представляет структурную схему системы блокировки удаленного администрирования.
Фиг. 2 представляет структурную схему способа блокировки удаленного администрирования.
Фиг. 3 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер.
Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено в приложенной формуле.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
Введем ряд определений и понятий, которые будут использоваться при описании вариантов осуществления изобретения.
Событие компьютерной системы - совокупность действий, выполненных приложением в компьютерной системе.
Параметр события компьютерной системы - совокупность разных свойств события компьютерной системы.
Фиг. 1 представляет структурную схему системы блокировки удаленного администрирования.
Структурная схема системы блокировки удаленного администрирования состоит из средства анализа активности 100, периферийного устройства ввода 101, компьютерной системы 102, компьютерной сети 103, средства выявления закономерностей 110, средства поиска 120, хранилища правил 121 и средства анализа 130.
Средство анализа активности 100 предназначено для:
• перехвата событий, произошедших в компьютерной системе 102, где в качестве перехватываемых событий выступают по меньшей мере:
вызов приложениями API функций операционной системы;
передача данных между процессами приложений с использованием технологии межпроцессного взаимодействия (Inter-Process Communication);
передача данных между программными и аппаратными составляющими компьютерной системы 102;
передача приложениями данных по компьютерной сети 103;
передача приложениям данных с периферийных устройств ввода 101;
• определения параметров каждого перехваченного события;
• и передачи определенных параметров перехваченных событий средству выявления зависимостей 110.
При этом перехват событий осуществляется с помощью драйвера, установленного в компьютерной системе 102.
Например, в качестве API функций операционной системы, вызываемых приложениями, могут выступать API функции работы:
• с файлами, такие как CreateFile, ReadFile, WriteFile и т.д.;
• с компьютерной сетью, такие как socket, connect, recv, send и т.д.;
•с процессами, такие как ReadProcessMemory, WriteProcessMemory и т.д.;
• с событиями Windows, такие как PostMessage, SendMessage и т.д.;
Например, в качестве аппаратной составляющей компьютерной системы 102 могут выступать:
• внешние носители информации, такие как оптические приводы, такие как привод CD-RW, привод DWD-RW или привод BD-RE;
• графический адаптер;
• игровой контроллер.
При этом в качестве периферийного устройства ввода 101 выступает по меньшей мере:
• клавиатура;
• компьютерная мышь;
• сенсорный экран;
• бесконтактный сенсорный контроллер.
Например, в качестве данных, передаваемых приложениям с периферийных устройств ввода 101, могут выступать:
• вводимый с клавиатуры текст;
• координаты выполненного с помощью компьютерной мыши или сенсорного экрана перемещения указателя;
• изображения, получаемые бесконтактным сенсорным контроллером.
При этом в качестве параметров события выступает по меньшей мере:
• тип события;
• идентификатор создавшего событие приложения или процесса (Process Identifier, PID) в операционной системе,
• идентификатор создавшего событие приложения или сервиса (Globally Unique Identifier, GUID) в операционной системе;
• событие, предшествующее упомянутому событию;
• для передаваемых данных:
уникальные идентификаторы источника передачи данных и источника приема данных, в качестве которых могут выступать:
сетевой адрес сервера, участвующего в передаче данных по компьютерной сети 103,
тип аппаратной составляющей компьютерной системы 102,
тип передаваемых данных;
объем передаваемых данных;
непосредственно передаваемые данные.
Например, тип события может представлять собой численное значение, где 0×00 соответствует неизвестному типу события, 0×01 - вызовы приложениями API функций операционной системы, 0×02 - передача данных между процессами приложений, 0×03 - передача приложениям данных с периферийных устройств ввода 101 и т.д.
Тип события может определяться на основании того, какой из установленных в компьютерной системе 102 драйверов перехватил событие. Например, если событие было перехвачено драйвером клавиатуры, то такое событие относится к передаче приложениям данных с периферийных устройств ввода 101, а соответственно тип перехваченного события равен 0×03, если событие было перехвачено драйвером сетевого устройства, предназначенным для передачи данных по компьютерной сети 103, то такое событие относится к передаче приложениями данных по компьютерной сети 103, а соответственно тип перехваченного события равен 0×04 и т.д. Таким образом, одни и те же события компьютерной системы 102 могут быть перехвачены разными драйверами и соответственно иметь сразу несколько типов событий. Например, событие передачи данных от приложения к приложению с помощью IPC может быть и событием вызова приложениями API функций операционной системы (ReadProcessMemory, WriteProcessMemory) и иметь тип события 0×01, и событием передачи данных между процессами приложений с использованием технологии межпроцессного взаимодействия и иметь тип события 0×02.
Например, некоторые события могут следовать одно за другим:
• передача приложению Microsoft Lync текста с клавиатуры 101 (событие #1) и последующая передача этого же текста по локальной компьютерной сети 103 (событие #2);
• вызов приложением RemoteAdmin функции recv (событие #1) и вызов приложением RemoteAdmin функции WriteProcessMemory (событие #2).
Например, в качестве типа передаваемых данных может выступать:
• медиа-данные, например видео-ролики или аудио-записи;
• изображения;
• компоненты интернет-страниц, например html код страницы, листы стилей ess и т.д.;
• базы данных;
• заархивированные данные,
• неструктурированные данные, например row-данные, полученные с периферийных устройств ввода 101.
Средство выявления зависимостей 110 предназначено для:
• выявления среди перехваченных событий по меньшей мере одного события передачи приложением данных по компьютерной сети 103, и события, произошедшего передачи приложению данных с периферийного устройства ввода 101, на основании анализа полученных параметров перехваченных событий;
• определения среди перехваченных событий по меньшей мере одного события, зависящего от выявленных событий, при этом зависимость перехваченного события от выявленного события определяется по меньшей мере тем, что:
время, прошедшее между регистрацией выделенного события и последующей регистрацией перехваченного события, менее заранее установленного временного порога,
параметры перехваченного события коррелируют с параметрами выявленного события, зарегистрированного ранее упомянутого перехваченного события;
• формирования по меньшей мере для одного определенного события правила, которое описывает зависимость параметров определенного события от параметров выявленных событий;
• и передачи сформированного правила совместно с информаций об определенном событие средству поиска 120;
При этом выявление события среди перехваченных событий происходит на основании по меньшей мере:
• типа события;
• уникальный идентификатор приложения или процесса приложения, создавшего событие.
Например, были перехвачены 5 событий: (1) вызов приложением RemoteAdmin API функции recv, (2) вызов приложением Lync API функции send, (3) передача текстовых данных от приложения RemoteAdmin приложению Lync, (4) передача текстовых данных с клавиатуры 101 приложению Lync и (5) передача текстовых данных от приложения RemoteAdmin удаленному серверу по компьютерной сети 103. Среди перехваченных событий были выделены события, связанные с периферийными устройствами ввода 101 и с передачей данных по компьютерной сети 103, а именно (4) передача текстовых данных с клавиатуры 101 приложению Lync и (5) передача текстовых данных от приложения RemoteAdmin удаленному серверу по компьютерной сети 103. Используя выделенные события (4) и (5), определяют событие вызова приложением Lync API функции send (3), у которого параметры передачи данных по компьютерной сети 103, где передача осуществляется при вызове API функции send, такие как тип передаваемых данных (текст), сетевой адрес сервера, на который происходит передача данных, зависят от изменения параметров события (4), таких как тип данных (текст) и события (5), таких как адрес сервера, на который происходит передача данных по компьютерной сети 103.
При этом правило, описывающее зависимость параметров одного события от параметров другого события представляет по меньшей мере:
• прямоугольную матрицу преобразования , такую, что
2
1
Р=Т×Р,
где
- совокупность параметров события #1
- совокупность параметров события #2
2
1
2
n
1
a
a
a
• совокупность коэффициентов  функции Р=ƒ(, , …, , P),
где
1
Р - параметры события #1,
2
Р - параметры события #2.
При этом формирование правила, описывающего зависимость параметров одного события от параметров другого события, заключается в:
• выборе по меньшей мере одного из способов представления формируемого правила:
в матричном виде, где зависимость одного параметра от другого выражается через операции с матрицей,
в векторном виде, где зависимость одного параметра от другого выражается через операции с совокупностью коэффициентов;
• вычислении коэффициентов, используемых для выбранного представления правила, для заданных параметров событий.
Средство поиска 120 предназначено для:
• определения степени схожести полученного правила по меньшей мере с одним заранее созданным правилом из хранилища правил 121 на основании сравнения упомянутых правил, при этом заранее созданное правило описывает зависимость параметров событий, произошедших в компьютерной системе 102 во время удаленного администрирования;
• в случае, когда степень схожести, определенная ранее, превышает установленное пороговое значение, определения по меньшей мере одного приложения, создавшего перехваченное средством анализа активности 100 событие, определенные упомянутым средством параметры которого были использованы средством выявления зависимостей 110 при формирования полученного правила, определенная степень схожести которого с по меньшей мере одним заранее созданным правилом выше установленного порогового значения;
• и передачи информации, идентифицирующей по меньшей мере одно определенное приложение, средству анализа 130;
При этом заранее созданные правила выбирают из хранилища правил 121 на основании коэффициентов правила, полученного от средства выявления зависимостей 110.
При этом заранее созданные правила были созданы так же, как и сформированное средством выявления зависимостей 110 правило, а именно:
а) в компьютерной системе, в которой было заранее установлено известное приложение удаленного администрирования, перехватываются разнообразные события;
б) для перехваченных событий определяются параметры событий;
в) на основании анализа определенных на предыдущем этапе параметров перехваченных на этапе а) событий среди упомянутых событий выявляются события передачи упомянутым приложением удаленного администрирования данных по компьютерной сети, и события передачи упомянутому приложению удаленного администрирования данных с периферийного устройства ввода;
г) среди перехваченных на этапе а) событий определяется по меньшей мере одно событие, зависящее от выявленных на предыдущем этапе событий;
д) создается по меньшей мере для одного, определенного на предыдущем этапе события, правила, которое описывало зависимость параметров определенного на предыдущем этапе события от параметров выявленных на этапе в) событий;
При этом в качестве сравнения правил выступает по меньшей мере сравнение установленного порогового значения со:
• значением, представляющим собой результат свертки функций, описывающих сравниваемые правила:
1
2
g=ƒ*ƒ,
где
1
ƒ - функция, математически выражающая правило #1,
2
ƒ - функция, математически выражающая правило #2;
поскольку правило - предопределенность связи между входными и выходными данными, где предопределенность (детерминированность) означает, что связь определена однозначно, т.е. не допускаются никакие двусмысленности или неопределенности, то правило может быть математически выражено через некоторую функцию связи ƒ между входными и выходными данными правила;
• значением, представляющим собой результат свертки последовательностей, представляющих собой совокупность элементов матриц, описывающих сравниваемые правила:
где
- совокупность элементов матрицы , математически выражающая правило #1,
- совокупность элементов матрицы , математически выражающая правило #2;
поскольку правило - предопределенность связи между входными и выходными данными, то правило может быть математически выражено через некоторую матрицу преобразования А входных данных в выходные данные правила;
При этом степень схожести представляет собой число, определяемое по меньшей мере как:
• скалярное произведение двух векторов, где каждый вектор является совокупностью коэффициентов сравниваемых правил;
• значение параметров определенной ранее свертки.
Например, в случае, когда правило #1 описывается 3 коэффициентами:
a
a
а
1
2
3
=0,10, =0,3, =0,17,
а правило #2 описывается 3 коэффициентами:
1
2
3
b=0,5, b=0,9, b=0,21,
характеризующими функцию изменения объема переданных по компьютерной сети 103 данных от объема полученных по компьютерной сети 103 данных:
1
2
3
2
y=p×x+р×x+р,
где
у - объем переданных по компьютерной сети 103 данных,
x - объем полученных по компьютерной сети 103 данных,
{p} - совокупность коэффициентов.
степень схожести правил #1 и #2 вычисляется как:
а
a
a
1
1
2
2
3
3
w=×b+×b+×b,
порог
что дает в описанном выше случае w=0,0434. В случае, когда w=0,0 правила идентичны, в случае, когда w=1,0, правила полностью отличаются. В качестве критерия схожести правил используется установленное пороговое значение w=0,1. В связи с этим сравниваемые выше правила #1 и #2 похожи.
При этом информация, идентифицирующая по меньшей мере одно определенное средством поиска 120 приложение, представляет собой по меньшей мере:
• уникальный идентификатор приложения или процесса, созданного приложением;
• путь к исполнимому файлу приложения;
• название приложения.
Средство анализа 130 предназначено для:
• анализа приложения, идентифицированного по полученной информации, где во время анализа определяется зависимость параметров события передачи данных упомянутым приложением по компьютерной сети 103, от параметров события передачи данных с периферийного устройства ввода 101;
• вынесения вердикта об обнаружении приложения удаленного администрирования на основании определения наличия зависимости при анализе;
• блокировки упомянутого приложения по результатам вынесенного вердикта об обнаружении приложения удаленного администрирования.
При этом анализ приложения включает по меньшей мере:
• эвристический анализ приложения, во время которого определяется:
какие данные передаются с периферийного устройства ввода 101;
какие действия после этого выполняют в компьютерной системе 102,
какие данные после этого передаются или принимаются по компьютерной сети 103,
зависимость между определенными данными и действиями;
• анализ структуры приложения и поиска кода, отвечающего за:
передачу данных по компьютерной сети 103,
выполнение действий в компьютерной системе 102,
передачу или прием данных по компьютерной сети 103.
Например, производя анализ структуры приложения, ищется исполнимый код, который отвечает за:
• получение или передачу данных по компьютерной сети 103,
• выполнение действий в компьютерной системе 102;
, при этом не связанный:
• с получением данных от периферийных устройств ввода 101;
и описываемый псевдокодом:
Такая организация работы приложения является характерной для приложений удаленного администрирования, которые обмениваются данными с серверами по компьютерной сети 103, выполняют действия в компьютерной системе 102, но никак не обрабатывают данные, получаемые от периферийных устройств ввода 101.
При этом блокировка приложения заключается по меньшей мере в:
• блокировке обмена данными по компьютерной сети с участием приложения;
• удалении приложения из оперативной памяти;
• удалении приложения с носителей информации (таких как жесткие диски и т.п.), входящих в состав компьютерной системы 102.
Например, если приложение RemoteAdmin признается приложением удаленного администрирования, то средство анализа 130 настраивает (т.е. выставляет соответствующие параметры работы) межсетевой экран (firewall) так, чтобы не передавать сетевые пакеты от RemoteAdmin серверам компьютерной сети 103 и от серверов приложению RemoteAdmin. Таким образом, приложение RemoteAdmin сможет функционировать в компьютерной системе 102, но при этом не сможет получать команды и передавать данные по компьютерной сети 103, а значит, станет безопасным.
Рассмотрим работу системы блокировки удаленного администрирования на примере компьютерной системы 102, на которой установлены два приложения удаленного администрирования - легитимное приложение RemoteAdmin и вредоносное приложение Backdoor.Win32.Agent. Приложение RemoteAdmin предназначено для удаленного администрирования компьютера пользователя, при этом и сам пользователь может принимать участие в управлении данным приложением, а также имеет возможность отслеживать его работу. Приложение Backdoor.Win32.Agent также предназначено для удаленного администрирования компьютера пользователя, но в отличие от RemoteAdmin делает это без разрешения пользователя, скрыто, не проявляя себя через демонстрацию элементов интерфейса и не принимая данных от периферических устройств ввода 101.
При работе приложения RemoteAdmin средство анализа активности 100 перехватывает события:
• передачи данных от компьютерной мыши 101 приложению RemoteAdmin, когда пользователь настраивает работу упомянутого приложения;
• вызов функций, связанных с установлением сетевого соединения с сервером, таких как socket, send, recv и т.д.;
• вызов функций, связанных с передачей сообщений приложениям, работающим в компьютерной системе 102, таких как SendMessage, SendDlgItemMessage и т.д.;
• получение данных от сервера по локальной компьютерной сети 103.
Для всех перехваченных событий выделяются параметры событий:
• координаты курсора и идентификаторы нажатых клавиш компьютерной мыши 101;
• сетевой адрес сервера, с которым устанавливается соединение;
• объем получаемых от сервера данных;
• типы сообщений, передаваемых другим приложениям, например:
идентификаторы приложений;
идентификаторы сообщений;
передаваемые в рамках сообщений приложениям данные.
После того как параметры событий были выделены, средство выявления закономерностей 110 выявляет из перехваченных ранее событий приложения RemoteAdmin, события передачи данных по компьютерной сети 103, и события передачи данных от периферийных устройств ввода 101. Таковыми оказываются события передачи и получения данных от сервера, с которым ранее было установлено сетевое соединение и событие передачи данных от компьютерной мыши 101 приложению RemoteAdmin, когда пользователь настраивает работу упомянутого приложения.
Затем средство выявления закономерностей 110 из оставшихся перехваченных событий, определяет события, зависящие от выявленных ранее событий. Таковым оказалось событие вызова функции SendMessage для передачи полученных от сервера данных приложениям, работающим в компьютерной системе 102. Было установлено, что тип сообщений, передаваемых приложениям, зависит от настроек приложения RemoteAdmin, т.е. по сути от действий пользователя, выполненных компьютерной мышью, а данные, переданные приложениям, зависят от данных, полученных от сервера по компьютерной сети 103. Зависимость параметров определенного события от выявленных ранее событий может быть представлена в виде:
где
Т - тип сообщения, передаваемого приложением RemoteAdmin другим приложением, установленным в компьютерной системе 102,
Р - объем данных, передаваемых приложением RemoteAdmin другим приложением, установленным в компьютерной системе 102,
М - параметры перемещения компьютерной мыши 101,
D - объем данных, полученных приложением RemoteAdmin от сервера по компьютерной сети 103,
{k} - совокупность коэффициентов.
На основании полученных зависимостей для события вызова функции SendMessage для передачи полученных от сервера данных приложениям формируют правило, которое описывает определенную выше зависимость, т.е. вычисляют численные значения коэффициентов
1
2
3
4
k=0,85, k=0,19, k=0,21, k=0,47
для описанной выше зависимости
Средство поиска 120 осуществляет выборку из хранилища правил 121 правил, описывающих зависимость тех же параметров, что и сформированное ранее правило, т.е. тип сообщения, передаваемого приложениям, установленным в компьютерной системе 102, и объем данных, передаваемых упомянутым приложениям с помощью сообщений. Таковых обнаруживается два и их коэффициенты соответственно равны:
11
12
13
14
k=0,71, k=0,19, k=0,31, k=0,97
21
22
23
24
k=0,85, k=0,65, k=0,01, k=0,47.
После того как правила были выбраны, средство поиска 120 определяет коэффициент схожести сформированного правила и выбранных правил:
1
2
w=1,1606, w=1,069,
и итоговый коэффициент схожести, представляющий собой усредненное значение определенных выше коэффициентов схожести сформированного правила и выбранных правил:
итог
w=1,1148,
порог
итог
При установленном пороговом значении w=1,5 полученная степень схожести w=1,1148 означает, перехваченные события не относятся к событиям компьютерной системы, удаленно администрируемой, и, следовательно, приложение RemoteAdmin является легитимным.
При работе приложения Backdoor.Win32.Agent средство анализа активности 100 перехватывает события:
• вызов функций, связанных с установлением сетевого соединения с сервером, таких как socket, send, recv и т.д.;
• вызов функций, связанных с передачей сообщений приложениям, работающим в компьютерной системе 102, таких как SendMessage, SendDlgItemMessage и т.д.;
• вызова функций, связанных с получением данных из области памяти, занимаемой другими приложениями, установленными в компьютерной системе 102, такими как OpenProcess, ReadProcessMemory,
• получение данных от сервера по компьютерной сети 103,
• передачи данных серверу по компьютерной сети 103.
Для всех перехваченных событий выделяются параметры событий:
• сетевой адрес сервера, с которым устанавливается соединение;
• объем получаемых от сервера данных;
• объем передаваемых на сервер данных;
• типы сообщений, передаваемых другим приложениям, например:
идентификаторы приложений;
идентификаторы сообщений;
передаваемые в рамках сообщений приложениям данные,
• идентификаторы приложений, занимающих области памяти, откуда производится считывание данных;
• параметры области памяти, откуда производится считывание данных.
После того как параметры событий были выделены, средство выявления закономерностей 110 выявляет из перехваченных ранее событий приложения Backdoor. Win32 Agent, события передачи данных по компьютерной сети 103, и события передачи данных от периферийных устройств ввода 101. Например, таковыми могут оказываться события передачи и получения данных от сервера, с которым ранее было установлено сетевое соединение, при этом ни одного события передачи данных от периферийных устройств ввода 101 выявлено не было. В частности, события могут быть связаны друг с другом в случае, когда одно событие следует за другим не позднее заранее установленного временного порога. Так же события могут быть зависимы, если параметры более позднего события коррелируют с параметрами более раннего события, даже в том случае, когда между событиями проходит время, больше заранее установленного временного порога.
Затем средство выявления закономерностей 110 из оставшихся перехваченных событий определяет события, зависящие от выявленных событий на основании критериев (например, временных - когда событие #2 происходит не позднее заданного времени с момента, когда произошло событие #1):
1) события вызова функции SendMessage для передачи полученных от сервера данных приложениям, работающим в компьютерной системе 102. Для описанного примера установлено, что тип события, передаваемого приложениям, зависит от объема данных, полученных Backdoor.Win32Agent от сервера по компьютерной сети 103. Каждое событие характеризуется своим, зачастую индивидуальным, объемом передаваемых по компьютерной сети данных, т.е. всегда имеет место зависимость вида T~D. Таким образом, зависимость параметров определенного события от выявленных ранее событий может быть представлена в линейном виде:
1
2
Т=k×D+k,
где
Т - тип сообщения, передаваемого приложением Backdoor.Win32Agent другим приложения, установленным в компьютерной системе 102,
D - объем данных, полученных приложением Backdoor.Win32Agent от сервера по компьютерной сети 103,
{k} - совокупность коэффициентов.
На основании полученных зависимостей для события вызова функции SendMessage для передачи полученных от сервера данных приложениям формируют правило, которое описывает определенную выше зависимость, т.е. вычисляют численные значения коэффициентов
1
2
k=0,97, k=0,89,
для описанной выше зависимости
1
2
Т=k×D+k.
2) событие считывания данных из области памяти, занимаемой приложением, установленным в компьютерной системе 102 (посредством вызова функции ReadProcessMemory). Было установлено, что объем считываемых данных зависит от адреса памяти, полученного Backdoor. Win32Agent от сервера по компьютерной сети 103. Например, зависимость параметров определенного события от выявленных ранее событий может быть представлена в виде:
,
где
D - объем считанных данных по адресу памяти А,
А - адрес памяти, по которому хранятся данные, полученные Backdoor. Win32 Agent от сервера по компьютерной сети 103,
{k} - совокупность коэффициентов.
На основании полученных зависимостей для события вызова функции ReadProcessMemory формируют правило, которое описывает определенную выше зависимость, т.е. вычисляют численные значения коэффициентов
1
2
3
k=0,47, k=0,98, k=1,43, для описанной выше зависимости
Средство поиска 120 осуществляет выборку из хранилища правил 121, правил, описывающих зависимость тех же параметров, что и сформированное ранее правило. Таковые обнаруживаются и их коэффициенты соответственно равны:
1
2
k=0,99, k=0,87,
1
2
3
k=0,53, k=0,98, k=1,21.
После того как правила были выбраны, средство поиска 120 определяет коэффициент схожести сформированных правил и выбранного правила:
1
2
w=1,7346, w=2,9398,
и итоговый коэффициент схожести, представляющий собой усредненное значение определенных выше коэффициентов схожести сформированного правила и выбранных правил:
итог
w=2,3372.
порог
итог
При установленном пороговом значении w=1,5 полученная степень схожести w=2,3372 означает, перехваченные события могут относиться к событиям компьютерной системы, удаленно администрируемой.
Стоит понимать, что вышеперечисленные формулы - лишь примеры, частные случаи реализации, и для вычисления коэффициентов схожести правил может быть использована любая формула, эмпирически описывающая полученные параметры перехваченных событий.
Затем средство анализа 130 производит анализ структуры приложения, ищется исполнимый код, ответственный за:
• получение или передачу данных по компьютерной сети 103,
• выполнение действий в компьютерной системе 102.
при этом не связанный:
• с получением данных от периферийных устройств ввода 101.
Поиск исполняемого кода приложения требуемого функционала может осуществляться следующим образом:
1. анализируемый участок кода приложения дизасемблируется, т.е. переводится из машинного кода в набор команд (например, языка программирования Assembler);
2. в полученном наборе команд выискиваются команды, отвечающие за требуемый функционал, например, передача данных ко компьютерной сети выполняется посредством вызова функции API send и т.д;
3. анализируются параметры, передаваемые найденным командам;
4. если параметры удовлетворяют установленным условиям, например, передачи данных заданному серверу, то считается, что анализируемый участок кода ответственен за требуемый функционал.
Такой код находится, его псевдокод и выглядит как
Такая организация работы приложения является характерной для приложений удаленного администрирования, которые обмениваются данными с серверами по компьютерной сети 103, выполняют действия в компьютерной системе 102, но никак не обрабатывают данные, получаемые от периферийных устройств ввода 101.
Таким образом, приложение Backdoor.Win32Agent признается приложением удаленного администрирования и удаляется из компьютерной системе 102.
Фиг. 2 представляет структурную схему способа блокировки удаленного администрирования.
Структурная схема способа блокировки удаленного администрирования состоит из этапа 201, на котором перехватывают события, этапа 202, на котором определяют параметры событий, этапа 203, на котором выявляют события, этапе 204, на котором определяют события, этапа 205, на котором формируют правила, этапа 206, на котором определяют степень схожести, этапа 207, на котором определяют приложения, этапа 208, на котором анализируют приложения, этапа 209, на котором выносят вердикт и этапа 210, на котором блокируют приложения.
На этапе 201 перехватывают события, произошедшие в компьютерной системе 102, где в качестве перехватываемых событий выступают по меньшей мере:
• вызов приложениями API функций операционной системы;
• передача данных между процессами приложений с использованием технологии межпроцессного взаимодействия (Inter-Process Communication);
• передача данных между программными и аппаратными составляющими компьютерной системы;
• передача приложениями данных по компьютерной сети 103;
• передача приложениям данных с периферийных устройств ввода 101.
При этом перехват событий осуществляется с помощью драйвера, установленного в компьютерной системе 102.
При этом в качестве периферийного устройства ввода 101 выступает по меньшей мере:
• клавиатура;
• компьютерная мышь;
• сенсорный экран;
• бесконтактный сенсорный контроллер.
На этапе 202 определяют параметры каждого перехваченного на этапе 201 события.
При этом в качестве параметров события выступает по меньшей мере:
• тип события;
• идентификатор создавшего событие приложения или процесса (Process Identifier, PID) в операционной системе,
• идентификатор создавшего событие приложения или сервиса (Globally Unique Identifier, GUID) в операционной системе;
• событие, предшествующее упомянутому событию;
• для передаваемых данных:
уникальные идентификаторы источника передачи данных и источника приема данных, в качестве которых могут выступать:
сетевой адрес сервера, участвующего в передаче данных по компьютерной сети 103,
тип аппаратной составляющей компьютерной системы 102,
тип передаваемых данных;
объем передаваемых данных;
непосредственно передаваемые данные.
На этапе 203 выявляют среди перехваченных на этапе 201 событий события передачи приложением данных по компьютерной сети 103, и события передачи приложению данных с периферийного устройства ввода 101, на основании анализа определенных на этапе 202 параметров перехваченных на этапе 201 событий.
При этом выявление события среди перехваченных событий происходит на основании по меньшей мере:
• типа события;
• уникальный идентификатор приложения или процесса приложения, создавшего событие.
На этапе 204 определяют среди перехваченных на этапе 201 событий по меньшей мере одно событие, зависящее от выявленных на этапе 203 событий, при этом зависимость перехваченного события от выявленного события определяется по меньшей мере тем, что:
• время, прошедшее между регистрацией выделенного события и последующей регистрацией перехваченного события, менее заранее установленного временного порога,
• параметры перехваченного события коррелируют с параметрами выявленного события, зарегистрированного ранее упомянутого перехваченного события.
На этапе 205 формируют по меньшей мере для одного определенного на этапе 204 события правило, которое описывает зависимость параметров определенного на этапе 204 события от параметров, выявленных на этапе 203 событий.
При этом правило, описывающее зависимость параметров одного события от параметров другого события, представляет по меньшей мере:
• прямоугольную матрицу преобразования , такую, что
2
1
Р=Т×Р,
где
- совокупность параметров события #1
- совокупность параметров события #2
a
a
a
a
i
2
1
2
n
1
• совокупность коэффициентов {} функции Р=ƒ(, , …, , P),
где
1
Р - параметры события #1,
2
Р - параметры события #2.
При этом формирование правила, описывающего зависимость параметров одного события от параметров другого события, заключается в:
• выборе по меньшей мере одного из способов представления формируемого правила:
в матричном виде, где зависимость одного параметра от другого выражается через операции с матрицей,
в векторном виде, где зависимость одного параметра от другого выражается через операции с совокупностью коэффициентов;
• вычислении коэффициентов, используемых для выбранного представления правила, для заданных параметров событий.
На этапе 206 определяют степень схожести сформированного на этапе 205 правила по меньшей мере с одним заранее созданным правилом на основании сравнения упомянутых правил, при этом заранее созданное правило описывает зависимость параметров событий, произошедших в компьютерной системе 102 во время удаленного администрирования.
При этом заранее созданные правила выбирают из хранилища правил 121 на основании коэффициентов правила, полученного от средства выявления зависимостей 110.
При этом заранее созданные правила были созданы так же, как и сформированное средством выявления зависимостей 110 правило, а именно:
а) в компьютерной системе, в которой было заранее установлено известное приложение удаленного администрирования, перехватываются разнообразные события;
б) для перехваченных событий определяются параметры событий;
в) на основании анализа определенных на предыдущем этапе параметров, перехваченных на этапе а) событий среди упомянутых событий, выявляются события передачи упомянутым приложением удаленного администрирования данных по компьютерной сети, и события передачи упомянутому приложению удаленного администрирования данных с периферийного устройства ввода;
г) среди перехваченных на этапе а) событий определяется по меньшей мере одно событие, зависящее от выявленных на предыдущем этапе событий;
д) создается по меньшей мере для одного определенного на предыдущем этапе события правило, которое описывало зависимость параметров определенного на предыдущем этапе события от параметров выявленных на этапе в) событий;
При этом в качестве сравнения правил выступает по меньшей мере:
• определение свертки функций, описывающих сравниваемые правила:
1
2
g=ƒ*ƒ,
где
1
ƒ - функция, математически выражающая правило #1,
2
ƒ - функция, математически выражающая правило #2;
поскольку правило - предопределенность связи между входными и выходными данными, где предопределенность (детерминированность) означает, что связь определена однозначно, т.е. не допускаются никакие двусмысленности или неопределенности, то правило может быть математически выражено через некоторую функцию связи ƒ между входными и выходными данными правила;
• определение свертки последовательностей, представляющих собой совокупность элементов матриц, описывающих сравниваемые правила:
где
а
k
{} - совокупность элементов матрицы , математически выражающая правило #1,
- совокупность элементов матрицы , математически выражающая правило #2;
поскольку правило - предопределенность связи между входными и выходными данными, то правило может быть математически выражено через некоторую матрицу преобразования А входных данных в выходные данные правила;
При этом степень схожести представляет собой число, определяемой по меньшей мере как:
• скалярное произведение двух векторов, где каждый вектор является совокупностью коэффициентов сравниваемых правил;
• значение параметров определенной ранее свертки.
На этапе 207 в случае, когда степень схожести, определенная на этапе 206, превышает установленное пороговое значение, определяют по меньшей мере одно приложение, создавшее перехваченное на этапе 201 событие, определенные на этапе 202 параметры которого были использованы на этапе 205 при формирования правила, определенная на предыдущем этапе степень схожести которого с по меньшей мере одним заранее созданным правилом выше установленного порогового значения.
На этапе 208 анализируют определенное на этапе 207 приложение, где во время анализа определяется зависимость параметров события передачи данных упомянутым приложением по компьютерной сети 103, от параметров события передачи данных с периферийного устройства ввода 101.
При этом анализ приложения включает по меньшей мере:
• эвристический анализ приложения, во время которого определяется:
какие данные передаются с периферийного устройства ввода 101;
какие действия после этого выполняют в компьютерной системе 102,
какие данные после этого передаются или принимаются по компьютерной сети 103,
зависимость между определенными данными и действиями;
• анализ структуры приложения и поиска кода, отвечающего за:
передачу данных по компьютерной сети 103,
выполнение действий в компьютерной системе 102,
передачу или прием данных по компьютерной сети 103.
На этапе 209 выносят вердикт об обнаружении приложения удаленного администрирования на основании определения наличия зависимости при анализе, выполненном на этапе 208.
На этапе 210 блокируют определенное на этапе 207 приложение по результатам вынесенного на этапе 209 вердикта об обнаружении приложения удаленного администрирования.
При этом блокировка приложения заключается по меньшей мере в:
• блокировке обмена данными по компьютерной сети с участием приложения;
• удалении приложения из оперативной памяти;
• удалении приложения с носителей информации (таких как жесткие диски и т.п.), входящих в состав компьютерной системы 102.
Фиг. 3 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.
Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29, и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.
Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш-карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.
Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например, колонками, принтером и т.п.
Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 3. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.