КАСКАДНЫЙ КЛАССИФИКАТОР ДЛЯ ПРИЛОЖЕНИЙ КОМПЬЮТЕРНОЙ БЕЗОПАСНОСТИ
CASCADE CLASSIFIER FOR THE COMPUTER SECURITY APPLICATIONS

Уровень техники
[0001] Изобретение относится к системам и способам обучения автоматизированного классификатора приложений компьютерной безопасности, например для обнаружения вредоносных программ.
[0002] Вредоносное программное обеспечение, также известное как вредоносные программы, поражает большое количество компьютерных систем по всему миру. Во множестве своих форм, таких как компьютерные вирусы, вирусы-черви, троянские программы и руткиты, вредоносные программы представляют собой серьезный риск для миллионов компьютерных пользователей, подвергая их, среди прочего, опасности потери данных, хищения личных данных и потери производительности. Частота и изощренность кибератак резко возросли в последние годы. Вредоносные программы могут поражать практически каждую компьютерную платформу и операционную систему, причем каждый день обнаруживаются и идентифицируются новые вредоносные агенты.
[0003] Для защиты пользователей и данных от таких угроз может использоваться программное обеспечение компьютерной безопасности, например, для обнаружения вредоносных агентов, их нейтрализации и/или для предупреждения пользователя или системного администратора. Программное обеспечение компьютерной безопасности обычно использует автоматические классификаторы, чтобы определить, является ли неизвестный объект безвредным или вредоносным, в соответствии с набором характерных признаков соответствующего объекта. Такие признаки могут быть структурными и/или поведенческими. Автоматизированные классификаторы могут быть обучены для идентификации вредоносных программ с использованием различных алгоритмов машинного обучения.
[0004] Общая проблема автоматизированных классификаторов заключается в том, что повышение скорости обнаружения обычно сопровождается увеличением числа ошибок классификации (ложных позитивных и/или ложных отрицательных срабатываний). Ложные позитивные срабатывания, то есть, когда легитимные объекты ложно идентифицируют как вредоносные, являются особенно нежелательными, поскольку такое помечание может привести к потере данных или к потере производительности для пользователя. Другая трудность, возникающая в процессе обучения автоматизированных классификаторов, заключается в существенных вычислительных затратах, необходимых для обработки большого обучающего массива, который в случае приложений компьютерной безопасности может состоять из нескольких миллионов записей.
[0005] Существует значительный интерес к разработке новых классификаторов и способов обучения, которые обеспечили бы возможность быстрой обработки больших объемов обучающих данных, обеспечивая при этом минимальный процент ложных позитивных срабатываний.
Раскрытие сущности изобретения
[0006] Согласно одному из аспектов, компьютерная система содержит аппаратный процессор и запоминающее устройство. Аппаратный процессор сконфигурирован применять обученный каскад классификаторов для определения того, представляет ли целевой объект угрозу компьютерной безопасности. Каскад классификаторов обучен на обучающем массиве записей, при этом обучающий массив предварительно классифицирован по меньшей мере на первый класс и второй класс записей. Обучение каскада включает в себя обучение первого классификатора каскада для разделения обучающего массива на первое множество групп записей в соответствии с заданным первым порогом так, что первая часть записей первой группы первого множества групп записей принадлежит первому классу, причем первая часть выбрана так, чтобы превышать первый порог. Обучение каскада дополнительно включает в себя обучение второго классификатора каскада для разделения обучающего массива, включающего первую группу, на второе множество групп записей в соответствии с заданным вторым порогом так, что вторая часть записей второй группы второго множества групп записей принадлежит второму классу, причем вторая часть выбрана так, чтобы превышать второй порог. Обучение каскада дополнительно включает в себя, в ответ на обучение первого и второго классификаторов, удаление набора записей из обучающего массива для создания сокращенного обучающего массива, при этом набор записей выбран из первой и второй групп. Обучение каскада дополнительно включает в себя, в ответ на удаление набора записей, обучение третьего классификатора каскада для разделения сокращенного обучающего массива на третье множество групп записей в соответствии с заданным третьим порогом так, что третья часть записей третьей группы третьего множества групп записей принадлежит первому классу, при этом третья часть выбрана так, чтобы превышать третий порог. Обучение каскада дополнительно включает в себя, в ответ на удаление набора записей, обучение четвертого классификатора каскада для разделения сокращенного обучающего массива, включающего третью группу, на четвертое множество групп записей в соответствии с заданным четвертым порогом так, что четвертая часть записей четвертой группы четвертого множества групп записей принадлежит второму классу, при этом четвертая часть выбрана так, чтобы превышать четвертый порог.
[0007] Согласно другому аспекту, компьютерная система содержит аппаратный процессор и запоминающее устройство. Аппаратный процессор сконфигурирован обучать каскада классификаторов для использования при обнаружении угроз компьютерной безопасности. Каскад классификаторов обучен на обучающем множестве записей, при этом обучающий массив предварительно классифицирован по меньшей мере на первый класс и второй класс записей. Обучение каскада включает в себя обучение первого классификатора каскада для разделения обучающего массива на первое множество групп записей в соответствии с заданным первым порогом так, что первая часть записей первой группы первого множества групп записей принадлежит первому классу, причем первая часть выбрана так, чтобы превышать первый порог. Обучение каскада дополнительно включает в себя обучение второго классификатора каскада для разделения обучающего массива, включающего первую группу, на второе множество групп записей в соответствии с заданным вторым порогом так, что вторая часть записей второй группы второго множества групп записей принадлежит второму классу, причем вторая часть выбрана так, чтобы превышать второй порог. Обучение каскада дополнительно включает в себя, в ответ на обучение первого и второго классификаторов, удаление набора записей из обучающего массива для создания сокращенного обучающего массива, при этом набор записей выбран из первой и второй групп. Обучение каскада дополнительно включает в себя, в ответ на удаление набора записей, обучение третьего классификатора каскада для разделения сокращенного обучающего массива на третье множество групп записей в соответствии с заданным третьим порогом так, что третья часть записей третьей группы третьего множества групп записей принадлежит первому классу, при этом третья часть выбрана так, чтобы превышать третий порог. Обучение каскада дополнительно включает в себя, в ответ на удаление набора записей, обучение четвертого классификатора каскада для разделения сокращенного обучающего массива, включающего третью группу, на четвертое множество групп записей в соответствии с заданным четвертым порогом так, что четвертая часть записей четвертой группы четвертого множества групп записей принадлежит второму классу, при этом четвертая часть выбрана так, чтобы превышать четвертый порог.
[0008] Согласно другому аспекту, долговременный машиночитаемый носитель хранит команды, которые при их исполнении по меньшей мере одним аппаратным процессором компьютерной системы обеспечивают то, что компьютерная система применяет обученный каскад классификаторов для определения, представляет ли целевой объект угрозу компьютерной безопасности. Каскад классификаторов обучен на обучающем массиве записей, при этом обучающий массив предварительно классифицирован по меньшей мере на первый класс и второй класс записей. Обучение каскада включает в себя обучение первого классификатора каскада для разделения обучающего массива на первое множество групп записей в соответствии с заданным первым порогом так, что первая часть записей первой группы первого множества групп записей принадлежит первому классу, причем первая часть выбрана так, чтобы превышать первый порог. Обучение каскада дополнительно включает в себя обучение второго классификатора каскада для разделения обучающего массива, включающего первую группу, на второе множество групп записей в соответствии с заданным вторым порогом так, что вторая часть записей второй группы второго множества групп записей принадлежит второму классу, причем вторая часть выбрана так, чтобы превышать второй порог. Обучение каскада дополнительно включает в себя, в ответ на обучение первого и второго классификаторов, удаление набора записей из обучающего массива для создания сокращенного обучающего массива, при этом набор записей выбран из первой и второй групп. Обучение каскада дополнительно включает в себя, в ответ на удаление набора записей, обучение третьего классификатора каскада для разделения сокращенного обучающего массива на третье множество групп записей в соответствии с заданным третьим порогом так, что третья часть записей третьей группы третьего множества групп записей принадлежит первому классу, при этом третья часть выбрана так, чтобы превышать третий порог. Обучение каскада дополнительно включает в себя, в ответ на удаление набора записей, обучение четвертого классификатора каскада для разделения сокращенного обучающего массива, включающего третью группу, на четвертое множество групп записей в соответствии с заданным четвертым порогом так, что четвертая часть записей четвертой группы четвертого множества групп записей принадлежит второму классу, при этом четвертая часть выбрана так, чтобы превышать четвертый порог.
Краткое описание чертежей
[0009] Вышеупомянутые аспекты и преимущества настоящего изобретения будут более понятны из нижеследующего подробного описания, сопровожденного ссылками на чертежи, где:
[0010] На фиг. 1 показан пример системы компьютерной безопасности согласно некоторым вариантам осуществления настоящего изобретения.
[0011] На фиг. 2 показан пример аппаратной конфигурации клиентской системы согласно некоторым вариантам осуществления настоящего изобретения.
[0012] На фиг. 3 показан пример аппаратной конфигурации системы обучения классификаторов согласно некоторым вариантам осуществления настоящего изобретения.
[0013] На фиг. 4 показан тренер, исполняемый в системе обучения классификаторов по фиг. 1 и сконфигурированный обучать каскад классификаторов согласно некоторым вариантам осуществления настоящего изобретения.
[0014] На фиг. 5-А показано пространство признаков, разделенное на две отдельные области с помощью первого классификатора каскада согласно некоторым вариантам осуществления настоящего изобретения.
[0015] На фиг. 5-В показан другой набор областей пространства признаков, причем эти области разделены вторым классификатором каскада согласно некоторым вариантам осуществления настоящего изобретения.
[0016] На фиг. 5-С показан еще один другой набор областей пространства признаков, причем эти области разделены третьим обученным классификатором каскада согласно некоторым вариантам осуществления настоящего изобретения.
[0017] На фиг. 6 показан пример последовательности этапов, выполняемых тренером с фиг. 4, согласно некоторым вариантам осуществления настоящего изобретения.
[0018] На фиг. 7-А показан пример передачи данных между клиентской системой и системой обучения классификаторов согласно варианту осуществления настоящего изобретения, в котором сканирование осуществляется на стороне клиента.
[0019] На фиг. 7-В показан пример передачи данных между клиентской системой, сервером безопасности и системой обучения классификаторов согласно варианту осуществления настоящего изобретения, в котором сканирование осуществляется в облаке.
[0020] На фиг. 8 показан пример приложения безопасности, исполняющегося на клиентской системе, согласно некоторым вариантам осуществления настоящего изобретения.
[0021] На фиг. 9 проиллюстрирована классификация неизвестного целевого объекта согласно некоторым вариантам осуществления настоящего изобретения.
[0022] На фиг. 10 показан пример последовательности этапов, выполняемых приложением безопасности с фиг. 8 для классификации неизвестного целевого объекта согласно некоторым вариантам осуществления настоящего изобретения.
[0023] На фиг. 11-А проиллюстрировано обучение первого уровня каскада классификаторов на примере обучающего массива согласно варианту осуществления настоящего изобретения, причем каждый уровень каскада содержит множество классификаторов.
[0024] На фиг. 11-В проиллюстрировано обучение второго уровня каскада классификаторов, имеющего множество классификаторов для каждого уровня.
[0025] На фиг. 12 показан пример последовательности этапов, выполняемых для обучения каскада, содержащего множество классификаторов для каждого уровня, согласно некоторым вариантам осуществления настоящего изобретения.
[0026] На фиг. 13 показан пример последовательности этапов, выполняемых для классификации неизвестного целевого объекта согласно варианту осуществления настоящего изобретения, в котором для каждого уровня используется множество классификаторов.
Осуществление изобретения
[0027] Следует понимать, что в нижеследующем описании все упоминаемые соединения между структурами могут представлять собой непосредственные функциональные соединения или косвенные функциональные соединения посредством промежуточных структур. Набор элементов содержит один или более элементов. Любое упоминание элемента следует понимать понимается как относящееся к по меньшей мере одному элементу. Множество элементов содержит по меньшей мере два элемента. Если не требуется иное, любые описанные этапы способа не обязательно должны выполняться в конкретном показанном порядке. Первый элемент (например, данные), полученный из второго элемента, включает в себя первый элемент, эквивалентный второму элементу, а также первый элемент, генерированный посредством обработки второго элемента и, опционально, другие данные. Выполнение определения или решения в соответствии с параметром включает в себя выполнение определения или решения в соответствии с этим параметром и, опционально, в соответствии с другими данными. Если не указано иное, индикатор некоторой величины/данных может представлять собой саму величину/данные, или индикатор, отличный от самой величины/данных. Первое число превышает второе число, когда первое число больше второго числа или, по меньшей мере, равно второму числу. Компьютерная безопасность включает в себя защиту пользователей и оборудования от непреднамеренного или несанкционированного доступа к данным и/или аппаратному оборудованию, от непреднамеренной или несанкционированной модификации данных и/или аппаратного оборудования, а также от повреждения данных и/или аппаратного оборудования. Компьютерная программа представляет собой последовательность процессорных команд, обеспечивающих выполнение задачи. Компьютерные программы, описанные в некоторых вариантах осуществления настоящего изобретения, могут представлять собой автономные программные объекты или подобъекты (например, подпрограммами, объектами кода) других компьютерных программ. Если не указано иное, процесс представляет собой экземпляр компьютерной программы, такой как приложение или часть операционной системы, при этом он характеризуется наличием, по меньшей мере, потока исполнения и пространства виртуальной памяти, назначенного ему, причем содержимое соответствующего пространства виртуальной памяти включает в себя исполняемый код. Если не указано иное, классификатор полностью классифицирует массив записей (причем каждая запись содержит метку класса), когда соответствующий классификатор разделяет массив на отдельные группы записей так, что все записи каждой группы имеют идентичные метки класса. Машиночитаемые носители включают в себя долговременные носители, такие как магнитные, оптические и полупроводниковые носители (например, жесткие диски, оптические диски, флэш-память, DRAM), а также линии коммуникаций, такие как токопроводящие кабели и волоконно-оптические линии. Согласно некоторым вариантам осуществления, настоящее изобретение обеспечивает, в частности, компьютерные системы, содержащие аппаратное оборудование, программированное для выполнения способов, описанных в настоящем документе, и машиночитаемые носители, кодирующие команды для выполнения способов, описанных в настоящем документе.
[0028] Нижеследующее описание раскрывает варианты осуществления изобретения посредством примера и не обязательно посредством ограничения.
[0029] На фиг. 1 показан пример системы 10 компьютерной безопасности согласно некоторым вариантам осуществления настоящего изобретения. Система 10 компьютерной безопасности содержит систему 20 обучения классификаторов, набор клиентских систем 30а-b и сервер 14 безопасности, которые все соединены между собой посредством сети 12. Сеть 12 может включать в себя локальную вычислительную сеть (LAN), такую как корпоративная сеть, а также глобальную вычислительную сеть, такую как Интернет. В некоторых вариантах осуществления клиентские системы 30а-b могут представлять собой компьютеры конечного пользователя, каждый из которых имеет процессор, запоминающее устройство и хранилище, и на каждом из которых установлена операционная система, такая как Windows, MacOS или Linux, и так далее. Другие примеры клиентских систем 30а-b включают в себя мобильные вычислительные устройства (например, ноутбуки, планшетные ПК), телекоммуникационные устройства (например, смартфоны), цифровые развлекательные устройства (телевизоры, игровые консоли и так далее), носимые вычислительные устройства (например, умные часы) или любое другое электронное устройство, имеющее процессор и запоминающее устройство, и способное подключаться к сети 12. Клиентские системы 30а-b могут представлять собой отдельных абонентов, или несколько клиентских систем могут принадлежать одному и тому же абоненту.
[0030] Система 10 может защищать клиентские системы 30а-b, а также пользователей клиентских систем 30а-b, от множества угроз компьютерной безопасности, таких как вредоносное программное обеспечение (вредоносные программы, нежелательные сообщения, спам и электронное мошенничество (например, фишинг, «нигерийские письма» и так далее), среди прочего. Клиентские системы 30а-b могут обнаруживать такие угрозы компьютерной безопасности, используя каскад классификаторов, обучаемых в системе 20 обучения классификаторов, как подробно раскрыто ниже.
[0031] В одном из сценариев варианта использования клиентская система может представлять собой сервер электронной почты, в этом случае некоторые варианты осуществления настоящего изобретения позволяют соответствующему серверу электронной почты обнаруживать спам и/или вредоносные программы, прикрепленные к электронным сообщениям, и принимать защитные меры, например удаление или помещение в карантин вредоносных объектов до доставки соответствующих сообщений предполагаемым получателям. В другом сценарии варианта использования, каждая клиентская система 30а-b может включать в себя приложение безопасности, сконфигурированное сканировать соответствующую клиентскую систему для обнаружения вредоносного программного обеспечения. В еще одном другом сценарии варианта использования, предназначенном для обнаружения мошенничества, каждая клиентская система 30а-b может включать в себя приложение безопасности, сконфигурированное обнаруживать намерения пользователя получить доступ к удаленному ресурсу (например, веб-сайту). Приложение безопасности может отправить индикатор ресурса, такой как URL-адрес, в сервер 14 безопасности и получить обратно метку, указывающую, является ли ресурс мошенническим. В таких вариантах осуществления сервер 14 безопасности может определять соответствующую метку с использованием каскада классификаторов, полученных из системы 20 обучения классификаторов, как подробно раскрыто ниже.
[0032] На фиг. 2 показан пример аппаратной конфигурации клиентской системы 30, например клиентских систем 30а-b с фиг. 1. Хотя показанная клиентская система 30 представляет собой компьютерную систему, для специалиста в данной области техники очевидно, что настоящее изобретение может быть адаптировано к другим клиентским системам, таким как планшетные ПК, мобильные телефоны и так далее. Клиентская система 30 содержит набор физических устройств, включающий аппаратный процессор 24, блок 26 запоминающего устройства, набор устройств 28 ввода, набор устройств 32 вывода, набор устройств 34 хранения и набор сетевых адаптеров 36, при этом все они соединены посредством контроллера-концентратора 38.
[0033] В некоторых вариантах осуществления процессор 24 содержит физическое устройство (например, микропроцессор, многоядерную интегральную схему, выполненную на полупроводниковой подложке), сконфигурированное исполнять вычислительные и/или логические операция с набором сигналов и/или данных. В некоторых вариантах осуществления такие логические операции передаются процессору 24 из блока 26 запоминающего устройства в виде последовательности команд процессора (например, машинного кода или программного обеспечения другого типа). Блок 26 запоминающего устройства может содержать долговременные машиночитаемые носители (например, оперативное запоминающее устройство RAM), хранящие данные/сигналы, к которым, соответственно, осуществляет доступ процессор 24 или которые генерируются этим процессором в ходе выполнения операций. Устройства 28 ввода могут включать в себя, среди прочего, компьютерные клавиатуры, мыши и микрофоны, включая соответствующие аппаратные интерфейсы и/или адаптеры, позволяющие пользователю вводить данные и/или команды в клиентскую систему 30. Устройства 32 вывода могут включать в себя, среди прочего, устройства отображения, такие как мониторы и динамики, а также аппаратные интерфейсы/адаптеры, такие как графические карты, позволяющие клиентской системе 30 передавать данные пользователю. В некоторых вариантах осуществления устройства 28 ввода и устройства 32 вывода могут использовать общий элемент аппаратного обеспечения, как в случае устройств с сенсорным экраном. Устройства 34 хранения включают в себя машиночитаемые носители, обеспечивающие возможность долговременного хранения, чтения и записи команд процессора и/или данных. Примеры устройств 34 хранения включают в себя магнитные и оптические диски, устройства флэш-памяти, а также съемные носители, такие как CD- и/или DVD-диски и дисководы. Набор сетевых адаптеров 36 позволяет клиентской системе 30 подключаться к сети 12 и/или другим к устройствам/компьютерным системам. Контроллер-концентратор 38 в целом представляет собой множество системных, периферийных шин и/или шин набора микросхем и/или все другие схемы, обеспечивающие возможность коммуникации между процессором 24 и устройствами 26, 28, 32, 34, 36. Например, контроллер-концентратор 38 может содержать северный мост, соединяющий процессор 24 с запоминающим устройством 26, и/или южный мост, соединяющий процессор 24 с устройствами 28, 32, 34, 36.
[0034] На фиг. 3 показан пример аппаратной конфигурации системы 20 обучения классификаторов согласно некоторым вариантам осуществления настоящего изобретения. Система 20 обучения в целом представляет собой набор компьютерных систем; на фиг. 3 для ясности изображена только одна машина. Множество таких машин могут быть соединены между собой посредством сети 12 (например, в группе серверов). В некоторых вариантах осуществления система 20 обучения содержит процессор 124 тренера, блок 126 запоминающего устройства тренера, набор устройств 134 хранения тренера и набор сетевых адаптеров 136 тренера, соединенные с помощью контроллера-концентратора 138 тренера. Хотя некоторые детали аппаратной конфигурации могут отличаться между системой 20 обучения и клиентской системой 30, работа устройств 124, 126, 134, 136, 138 может быть сходна с работой описанных выше устройств 24, 26, 34, 36, 38, соответственно. Например, процессор 124 тренера может включать в себя аппаратный микропроцессор, сконфигурированный выполнять логические и/или математические операции с сигналами/данными, полученными из блока 126 запоминающего устройства тренера, и записывать результата таких операций в блок 126.
1
2
n
[0035] На фиг. 4 проиллюстрирован тренер 42, исполняемый в системе 20 обучения и сконфигурированный обучать каскад классификаторов согласно некоторым вариантам осуществления настоящего изобретения. Каскад содержит множество классификаторов C, С, … C, сконфигурированных использоваться в заданном порядке. В некоторых вариантах осуществления каждый классификатор каскада обеспечивает различие между несколькими отдельными группами объектов, например, между «чистыми» объектами и вредоносными программами, между легитимным электронным сообщением и спамом, или между различными категориями вредоносных программ. Такие классификаторы могут включать в себя адаптации различных автоматизированных классификаторов, известных в данной области техники, например, среди прочего, наивных байесовских классификаторов, искусственных нейронных сетей (ANN), машины опорных векторов (SVM), классификаторов ближайших k соседей (KNN), классификаторов кластеризации (например, с использованием алгоритма k средних), классификаторов многомерных адаптивных регрессионных сплайнов (MARS) и классификаторов дерева решений.
[0036] Адаптация такого стандартного классификатора для использования в варианте осуществления настоящего изобретения может включать в себя, например, модификацию функции издержек или штрафа, используемой в алгоритме обучения, чтобы стимулировать конфигурации, в которых большинство записей в группе принадлежат одному и тому же классу (см. описание ниже). Пример модификации перцептрона создает односторонний перцептрон, разделяющий массив записей на две группы так, что все записи внутри группы имеют одну и ту же метку класса.
[0037] Выбор типа классификатора может быть выполнен в соответствии с особенностями обучающих данных (например, имеют ли данные существенный шум, являются ли данные линейно разделяемыми и так далее) или в соответствии с областью приложения (например, обнаружение вредоносных программ, обнаружение мошенничества, обнаружение спама и так далее). Не все классификаторы каскада должны быть одного и того же типа.
1
2
n
[0038] Обучение каскада классификаторов продолжается в соответствии с описанными ниже критериями эффективности и способами. В некоторых вариантах осуществления выводные данные тренера 42 (фиг. 4) содержат множество наборов 46а-с параметров классификатора, при этом каждый такой набор параметров используется для создания экземпляра C, С, … C каскада. В одном примере классификатора искусственной нейронной сети (например, перцептрон) параметры 46а-с могут включать в себя количество слоев и набор синаптических весов. В случае машин опорных векторов (SVMs) параметры 46а-с могут включать в себя индикатор выбора функции ядра и/или набор коэффициентов гиперповерхности, разделяющей две различные группы объектов в пространстве признаков. В случае классификатора кластеризации параметры 46а-с могут включать в себя координаты набора центров кластеров и набор диаметров кластеров. В некоторых вариантах осуществления каждый набор 46а-с параметров включает в себя индикатор типа классификатора.
[0039] Обучение каскада классификаторов включает в себя обработку обучающего массива 40 (фиг. 4). В некоторых вариантах осуществления массив 40 содержит большую коллекцию записей (например, несколько миллионов записей). В зависимости от области применения настоящего изобретения каждая такая запись может представлять собой программный объект (например, файл или компьютерный процесс), электронное сообщение, URL-адрес и так далее. Обучающий массив 40 предварительно классифицируется на несколько классов, например, «чистый» и вредоносный, или спам и легитимный. Такая предварительная классификация может включать в себя, например, каждую запись массива 40, несущую метку, указывающую класс, к которому принадлежит соответствующая запись, при этом метка определена до обучения каскада классификаторов.
[0040] В некоторых вариантах осуществления каждая запись обучающего массива 40 представлена в виде вектора признаков, то есть, в виде набора координат в гиперпространстве признаков, причем каждая координата представляет собой значение конкретного признака соответствующей записи. Такие признаки могут зависеть от области применения настоящего изобретения и могут включать в себя числовые и/или логические признаки. Примеры признаков записи включают в себя статические атрибуты и поведенческие атрибуты. В случае обнаружения вредоносных программ, например, примеры статических атрибутов записи, могут включать в себя, среди прочего, имя файла, размер файла, адрес запоминающего устройства, индикатор того, упакована ли запись, идентификатор упаковщика, используемого для упаковки соответствующей записи, индикатор типа записи (например, исполняемый файл, библиотека динамических связей и так далее), индикатор компилятора, используемого для компиляции записи (например, С++, .Net, Visual Basic), количество библиотек, загружаемых записью, и показатель энтропии записи. Поведенческие атрибуты могут указывать, следует ли объект (например, процесс) определенному поведению во время исполнения. Примеры поведенческих атрибутов включают в себя, среди прочего, индикатор того, выполняет ли соответствующий объект запись на диск, индикатор того, пытается ли соответствующий объект подключиться к Интернету, индикатор того, пытается ли соответствующий объект загрузить данные из удаленных мест, и индикатор того, внедряет ли соответствующий объект код в другие объекты при исполнении. В случае обнаружения мошенничества примеры признаков записи включают в себя, среди прочего, индикатор того, содержит ли веб-страница определенные ключевые слова, указывающие на мошенничество, и индикатор того, предоставляет ли веб-страница форму HTTP. В случае обнаружения спама примеры признаков записи могут включать в себя наличие определенных ключевых слов, указывающих на спам, индикатор того, содержит ли сообщение гиперссылки, и индикатор того, содержит ли соответствующее сообщение какие-либо вложения. Другие примеры признаков записи включают в себя некоторые признаки форматирования сообщений, указывающие на спам.
[0041] Фиг. 5-А-В-С иллюстрируют обучение набора примеров классификаторов каскада согласно некоторым вариантам осуществления настоящего изобретения. На фиг. 5-А-В-С могут быть изображены, например, последовательные этапы обучения каскада классификаторов, как описано ниже. Без ограничения общности показанный массив записей содержит два класса (например, кружки могут представлять вредоносные объекты, тогда как крестики могут представлять безопасные объекты). Каждая запись представлена в виде вектора признаков в двумерном пространстве признаков, образованном признаками f1 и f2. Специалисту в данной области техники понятно, что описанные системы и способы могут быть распространены на массив, имеющий более двух классов записей и/или на пространства признаков с большими размерностями.
[0042] В некоторых вариантах осуществления настоящего изобретения каждый классификатор каскада обучается разделять текущий массив записей на по меньшей мере две различные группы так, что существенная часть записей в одной из групп имеет идентичные метки класса, то есть, принадлежит к одному и тому же классу. Записи, имеющие идентичные метки классов, составляют существенную долю, когда часть таких записей в соответствующей группе превышает заданный порог. Примеры порогов, соответствующих существенной доле, включают в себя, среди прочего, 50%, 90% и 99%. В некоторых вариантах осуществления все записи в одной группе должны иметь одну и ту же метку класса; такая ситуация будет соответствовать порогу в 100%. Более высокий порог может создать классификатор, являющийся более затратным для обучения, который однако дает более низкий уровень некорректной классификации. Значение порога может быть различным среди классификаторов каскада.
[0043] Работа и/или обучение классификаторов может быть понято лучше с использованием представлений пространства признаков на фиг. 5-А-В-С. На фиг. 5-А классификатор обучается различать между двумя группами записей посредством создания границы 44а, разделяющей пространство признаков на две области так, что каждая отдельная группа записей находится в отдельной области пространства признаков (например, снаружи и внутри границы 44а). Без ограничения общности примерная граница 44а представляет собой эллипс. Такая форма границы может быть получена, например, с помощью классификатора кластеризации; при другом выборе классификатора может быть создана граница другой формы. Специалисту в данной области техники понятно, что при некоторых выборов классификатора (например, в случае дерева решений) такая граница может не существовать или может быть невозможно выполнить ее на чертеже. Таким образом, чертежи на фиг. 5А-В-С показаны лишь для упрощения настоящего описания и не предназначены для ограничения объема настоящего изобретения.
1
1
1
2
3
1
[0044] В некоторых вариантах осуществления обучение классификатора C включает в себя корректировку параметров границы 44а до тех пор, пока не будут выполнены условия классификации. Параметры границы, такие как центр и/или диаметры эллипса, могут быть экспортированы в виде параметров 46а классификатора (фиг. 4). Существенная часть записей (все записи) внутри границы 44а принадлежит одному классу (обозначенному кругами). Область пространства признаков, в которой находится группа записей, имеющих идентичные метки, считается предпочтительной областью 45а классификатора С. Предпочтительные области классификаторов C, С и С соответственно показаны в виде заштрихованных областей на фиг. 5А-В-С. Класс записей, лежащих внутри предпочтительной области каждого классификатора, считается предпочтительным классом соответствующего классификатора. В примере, показанном на фиг. 5-А, предпочтительный класс классификатора C показан кружками (например, вредоносные программы).
2
2
2
[0045] На фиг. 5-В показан другой набор областей, разделенных в пространстве признаков посредством другой границы 44b, который представляет собой второй пример обученного классификатора С каскада. В показанном примере граница 44b также является эллипсом; ее параметры могут быть представлены, например, набором параметров 46b С фиг. 4. Фиг. 5-В дополнительно показывает предпочтительную область 45b классификатора С, причем эта предпочтительная область содержит в основном записи, имеющие идентичные метки. В примере на фиг. 5-В предпочтительный класс классификатора С обозначен крестиками (например, «чистый», невредоносный).
3
3
3
[0046] На фиг. 5-С показан еще один другой набор областей, разделенных в пространстве признаков другой границей 44с, и другая предпочтительная область 45с третьего примера обученного классификатора С каскада. Показанный классификатор С может быть, например, перцептроном. Предпочтительная область 45с содержит только кружки, то есть предпочтительный класс классификатора С представляет собой кружки. В некоторых вариантах осуществления, как показано на фиг. 5-А-В-С, набор записей удаляется из обучающего массива 40 между последовательными этапами обучения, например, между обучением последовательных классификаторов каскада. Набор записей, удаляемых из массива, выбирается из предпочтительной области каждого обученного классификатора.
i
[0047] На фиг. 6 показан пример последовательности этапов, выполняемых тренером 42 (фиг. 4), для обучения каскада классификаторов согласно некоторым вариантам осуществления настоящего изобретения. После ввода обучающего массива 40 (этап 200) последовательность этапов 202-220 повторяется в цикле, при этом один такой цикл исполняется для каждого последовательного классификатора C каскада.
[0048] На этапе 202 выбирается тип классификатора для обучения из набора доступных типов (например, SVM, классификатора кластеризации, перцептрона и так далее). Выбор классификатора может быть выполнен в соответствии с требованиями к производительности (скорость обучения, точность классификации и так далее) и/или в соответствии с особенностями текущего обучающего массива. Например, когда текущий обучающий массив может быть разделен приблизительно линейно, на этапе 202 может быть выбран перцептрон. Когда текущий обучающий массив имеет концентрированные участки записей, может быть предпочтительным классификатор кластеризации. В некоторых вариантах осуществления все классификаторы каскада имеют один и тот же тип.
[0049] Возможны и другие сценарии выбора классификатора. Например, на каждом этапе каскада в некоторых вариантах осуществления могут быть испробованы различные типы классификаторов, при этом может быть выбран тот тип классификатора, который лучше работает в соответствии с набором критериев. Такие критерии могут включать в себя, среди прочего, количество записей в предпочтительной области, точность классификации и количество ошибочно классифицированных записей. В некоторых вариантах осуществления может применяться испытание перекрестной проверки для выбора наилучшего типа классификатора. В еще одном сценарии тип классификатора изменяется с одного этапа каскада на следующий (например, чередующимся образом). Побудительные причины для такого сценария состоят в том, что при сокращении обучающего массива с одного этапа каскада на следующий путем исключения набора записей, возможно, что характер массива изменяется от преимущественно линейно разделяемого массива до преимущественно замкнутого массива (или наоборот) от одного этапа каскада к другому. Таким образом, тот же тип классификатора (например, перцептрон) может не работать также на последующих этапах каскада. В таких сценариях каскад может чередоваться, например, между перцептроном и классификатором кластеризации или между перцептроном и деревом решений.
[0050] Последовательность этапов 204-206-208 обеспечивает эффективное обучение текущего классификатора каскада для классификации текущего обучающего массива. В некоторых вариантах осуществления обучение текущего классификатора включает в себя корректировку параметров текущего классификатора (этап 204) до тех пор, пока не будет выполнен набор критериев обучения. Скорректированный набор параметров классификатора может указывать границу, такую как гиперповерхность, разделяющую друг от друга множество областей пространства признаков (см., например, фиг. 5-А-В-С).
1
3
5
2
4
6
[0051] Один из критериев обучения (применяемый на этапе 206) требует, чтобы существенная часть записей текущего обучающего массива, лежащего в одной из указанных областей, имела одну и ту же метку, то есть принадлежала одному классу. В некоторых вариантах осуществления соответствующий предпочтительный класс должен быть тем же самым для всех классификаторов каскада. Такие каскады классификаторов могут быть использованы в качестве фильтров для записей соответствующего предпочтительного класса. В альтернативном варианте осуществления предпочтительный класс выбирается так, что он циклически проходит через классы обучающего массива. Например, в массиве с двумя классами (например, вредоносные программы и «чистый») предпочтительным классом классификаторов C, С, С, … могут быть вредоносные программы, тогда как предпочтительный класс классификаторов С, С, С, … может быть «чистым». В других вариантах осуществления предпочтительный класс может варьироваться произвольно от одного классификатора каскада к другому или может варьироваться в зависимости от особенностей текущего обучающего массива.
[0052] Этап 206 может включать в себя вычисление части (доли) записей внутри одной группы, отличающихся текущим классификатором, при этом соответствующие записи принадлежат предпочтительному классу текущего классификатора, и проверку, превышает ли эта фракция заданный порог. Если фракция не превышает этого порога, исполнение может вернуться к этапу 204. Такое обучение может быть достигнуто с использованием специальных алгоритмов классификации или известных алгоритмов машинного обучения в сочетании с механизмом обратной связи, который штрафует конфигурации, причем граница лежит так, что каждая область содержит смешанные записи из нескольких классов.
[0053] В некоторых вариантах осуществления на этапе 208 проверяется, выполняются ли другие критерии обучения. Такие критерии могут быть специфическими для каждого типа классификатора. Примерные критерии могут относиться к качеству классификации и, например, могут гарантировать то, что отдельные классы текущего обучающего массива оптимально разделены в пространстве признаков. Другие примерные критерии могут относиться к скорости и/или эффективности обучения, например, они могут налагать максимальное время обучения и/или максимальное количество итераций для алгоритмов обучения. Другой примерный критерий обучения может потребовать, чтобы граница была скорректирована таким образом, что количество записей, имеющих одинаковые метки и лежащих внутри одной из областей, является максимальным. Другие критерии обучения могут включать в себя испытание на признаки подгонки и оценку скорости, с которой алгоритм обучения сходится к решению.
[0054] Если критерии обучения удовлетворяются для текущего классификатора, на этапе 210 тренер 42 сохраняет параметры текущего классификатора (например, пункты 46а-с на фиг. 4). На следующем этапе 214 сохраняется предпочтительный класс текущего классификатора.
[0055] В некоторых вариантах осуществления на этапе 216 определяется, полностью ли классифицирует текущий классификатор текущий массив, то есть, разделяет ли текущий классификатор текущий массив на отдельные группы, так что все записи внутри каждой отдельной группы имеют идентичные метки (см., например, фиг. 5-С). Если да, то обучение прекращается. Если нет, на последовательности этапов 218-220 выбирается набор записей и удаляется указанный набор из текущего обучающего массива. В некоторых вариантах осуществления набор записей, выбранных для удаления, выбирается из предпочтительной области текущего классификатора. В одном из таких примеров на этапе 220 удаляются все записи текущего массива, лежащие внутри предпочтительной области текущего классификатора (см. фиг. 5-А-В-С).
[0056] В некоторых вариантах осуществления, работающих, как показано на фиг. 6, фактическое количество классификаторов в каскаде становится известно только в конце процедуры обучения, когда все записи текущего массива полностью классифицированы. В альтернативном варианте осуществления каскад может содержать фиксированное заданное количество классификаторов, при этом обучение может продолжаться до тех пор, пока не будут обучены все классификаторы, независимо от того, полностью или не полностью классифицирован оставшийся обучающий массив.
[0057] После завершения фазы обучения каскад классификаторов, обученных как описано выше, может быть использован для классификации неизвестного целевого объекта 50. В примере противовредоносном приложении согласно настоящему изобретению такая классификация может определять, например, является ли целевой объект 50 «чистым» или зловредным. В других приложениях такая классификация может определять, например, является ли целевой объект легитимным или спамом и так далее Классификация целевого объекта 50 может выполняться на разных машинах и в различных конфигурациях, например, в сочетании с другими операциями безопасности.
[0058] В некоторых вариантах осуществления классификация выполняется в клиентской системе 30 (сканирование на стороне клиента) или на сервере 14 безопасности (сканирование в облаке). На фиг. 7-А проиллюстрирован пример передачи данных, где вычисленные параметры 46а-с классификатора отправляются из системы 20 обучения классификаторов в клиентскую систему 30 для сканирования на стороне клиента. В отличие от фиг. 7-А, на фиг. 7-В показана конфигурация сканирования в облаке, когда параметры 46а-с отправляются в сервер 14 безопасности. В таких конфигурациях клиентская система 30 может отправить в сервер 14 безопасности индикатор 51 целевого объекта, указывающий целевой объект 50, и в ответ получить от сервера 14 целевую метку 60, указывающую принадлежность классу целевого объекта 50. Индикатор 51 может содержать сам целевой объект или подмножество данных, характеризующих целевой объект 50. В некоторых вариантах осуществления, индикатор 51 целевого объекта содержит вектор признаков целевого объекта 50.
[0059] Для ясности на фиг. 8-10 описано только сканирование на стороне клиента (то есть в соответствии с конфигурацией на фиг. 7-А), однако специалисту в области техники понятно, что описанный способ также может быть применен к сканированию в облаке. Кроме того, последующее описание сосредоточено только на антивирусных приложениях. Однако эти иллюстрированные системы и способы могут быть расширены с минимальными модификациями на другие приложения безопасности, такие как антиспамовые, антимошенничесские и так далее, а также на более общие приложения, такие как классификация документов, интеллектуальный анализ данных и так далее.
1
n
[0060] На фиг. 8 показан пример приложения 52 безопасности, исполняющегося на клиентской системе 30, согласно некоторым вариантам осуществления настоящего изобретения. Клиентская система 30 может включать в себя приложение 52 безопасности, которое, в свою очередь, содержит каскад классификаторов C, … C, созданных с использованием параметров 46а-с. Приложение 52 безопасности сконфигурировано получать целевой объект 50 и генерировать целевую метку 60, указывающую, среди прочего, принадлежность классу целевого объекта 50 (например, «чистый» или вредоносный). Приложение 52 может быть реализовано различными способами, например, в виде компонента инструмента компьютерной безопасности, в виде плагина браузера, в виде компонента приложения для обмена сообщениями (например, программа электронной почты) и так далее.
1
n
1
2
1
n
[0061] В некоторых вариантах осуществления каскад классификаторов C, … C представляет собой экземпляр каскада, обученного как описано выше применительно к фиг. 6. Например, классификатор C представляет собой первый обученный классификатор каскада (созданный с параметрами 46а), классификатор С представляет собой второй обученный классификатор каскада (созданный с параметрами 46b) и так далее. В некоторых вариантах осуществления приложение 52 сконфигурировано применять классификаторы C, … C в заданном порядке (например, порядок, в котором соответствующие классификаторы были обучены), чтобы обнаружить отнесение к классу целевого объекта 50, как показано более подробно ниже.
[0062] На фиг. 9-10 показан пример классификации целевого объекта 50 согласно некоторым вариантам осуществления настоящего изобретения. На фиг. 9 показаны предпочтительные области классификаторов, изображенных на фиг. 5-А-В-С, с вектором признаков, представляющим целевой объект 50, лежащий внутри предпочтительной области второго классификатора.
[0063] На фиг. 10 показан пример последовательности этапов, выполняемых приложением 52 безопасности, согласно некоторым вариантам осуществления настоящего изобретения. На этапе 300 целевой объект 50 выбирается в качестве ввода для приложения 52 безопасности. В варианте осуществления, относящемся к защите от вредоносных программ, примеры целевых объектов 50 могут включать в себя, среди прочего, исполняемый файл, библиотеку динамических связей (DLL) и содержание секции запоминающего устройства клиентской системы 30. Например, для клиентской системы, на которой установлена Microsoft Windows, целевые объекты 50 могут включать в себя, среди прочего, исполняемые файлы из папки WINDIR, исполняемые файлы из папки WINDIR/system32, исполняемые файлы выполняющихся в текущий момент процессов, библиотеки DLL, импортированные выполняющимися в текущий момент процессами, и исполняемые файлы установленных системных служб. Сходные списки целевых объектов могут быть скомпилированы для клиентских систем 30, на которых установлены другие операционные системы, такие как Linux. Целевой объект 50 может находиться на машиночитаемом носителе, используемом или коммуникативно связанном с клиентской системой 30 (например, жесткие диски, оптические диски, DRAM, а также съемные носители, такие как запоминающее устройства на основе флэш-памяти, CD- и/или DVD-диски и дисководы). Этап 300 может дополнительно включать в себя вычисление вектора признаков целевого объекта 50, причем вектор признаков представляет объект 50 в пространстве признаков.
1
1
1
1
1
1
[0064] На этапе 302 приложение 52 безопасности применяет классификатор C для классификации целевого объекта 50. В некоторых вариантах осуществления этап 302 содержит определение границы в пространстве признаков, например, согласно параметрам 46а классификатора С, и определение, на какой стороне соответствующей границы (то есть, в какой области классификации) лежит вектор признаков целевого объекта 50. На этапе 304 приложение 52 безопасности определяет, помещает ли классификатор целевой объект в предпочтительный класс С. В некоторых вариантах осуществления этап 304 может включать в себя определение, находится ли вектор признаков целевого объекта 50 внутри предпочтительной области C классификатора. Если нет, то работа приложения переходит к этапу 308, описанному ниже. Если да, то на этапе 306 целевой объект 50 помечается как принадлежащий предпочтительному классу классификатора С. В примере конфигурации, показанном на фиг. 9, целевой объект 50 не находится внутри предпочтительной области классификатора С.
2
2
2
2
2
[0065] На этапе 308 приложение 52 безопасности применяет второй классификатор С каскада для классификации целевого объекта 50. На этапе 310 определяется, помещает ли классификатор С целевой объект в предпочтительный класс С (например, находится ли вектор признаков целевого объекта 50 внутри предпочтительной области классификатора С). Если да, на этапе 312 целевой объект 50 назначается предпочтительному классу классификатора С. Эта ситуация показана на фиг. 9.
i
n
[0066] Приложение 52 безопасности последовательно применяет классификаторы C каскада, пока целевой объект не будет назначен предпочтительному классу одного из классификаторов. Если ни один классификатор каскада не распознает целевой объект как принадлежащий их соответствующему предпочтительному классу, на этапе 320 целевой объект 50 назначается классу, отличному от предпочтительного класса последнего классификатора C каскада. Например, в варианте осуществления с двумя классами, если предпочтительный класс последнего классификатора является "чистым", целевой объект 50 может быть назначен классу "зловредный" и наоборот.
i
i
(А)
(В)
[0067] Приведенное выше описание относится к вариантам осуществления настоящего изобретения, в которых каскад содержит единый классификатор для каждого уровня каскада. Другие варианты осуществления каскада, подробно описанные ниже, могут включать в себя несколько классификаторов для каждого уровня. Для простоты в последующем описании принято, что обучающий массив предварительно классифицировано на два разных класса А и В (например, зловредный и безвредный), которые показаны на чертежах соответственно в виде кружков и крестиков. Пример каскада классификаторов, обученных на таком массиве, может содержать два разных классификатора: C и C для каждого уровня i=1, 2, …, n каскада. Специалисту в данной области понятно, как можно адаптировать изобретение к каскадам и/или обучающим массивам других типов. Например, каскад может содержать на каждом уровне по меньшей мере один классификатор для каждого класса записей обучающего массива. В другом примере каждый уровень каскада может содержать два классификатора, каждый из которых обучен предпочтительно идентифицировать записи отдельного класса, независимо от количества классов обучающего массива. В еще одном примере количество классификаторов может отличаться от одного уровня каскада к другому.
1
1
1
1
1
1
1
1
(A)
(A)
(А)
(В)
(A)
(B)
(В)
(B)
[0068] На фиг. 11-А показаны обучающий массив с двумя классами и два классификатора, обученных на соответствующем массиве, согласно некоторым вариантам осуществления настоящего изобретения. Например, фиг. 11-А может иллюстрировать обучение первого уровня (i=1) каскада. Классификатор C обучается разделять текущий массив на две группы, так что существенная часть записей в одной из групп (в данном случае считающаяся предпочтительной группой классификатора C) принадлежит классу А. В примере на фиг. 11-А обучение классификатора С включает в себя корректировку параметров границы 44d, так что существенная часть записей в предпочтительной области 45d пространства признаков принадлежит классу А (кружки). Классификатор С обучается на том же массиве, что и все другие классификаторы соответствующего уровня каскада, то есть на том же массиве, что и используемый для обучения C. Классификатор C обучается разделять текущий массив на другую пару групп записей, так что существенная часть записей в предпочтительной группе классификатора С принадлежит классу В. Обучение классификатора C может содержать корректировку параметров границы 44е, так что существенная часть записей в предпочтительной области 45е пространства признаков принадлежит классу В (крестики).
2
2
1
1
2
2
1
1
1
1
2
2
2
2
(А)
(B)
(А)
(В)
(А)
(В)
(А)
(B)
(А)
(B)
(А)
(B)
(А)
(В)
[0069] На фиг. 11-В проиллюстрировано обучение последующего уровня каскада (например, i=2). Классификаторы С и С второго уровня обучаются на сокращенном обучающем массиве. В показанном примере все записи в предпочтительных группах классификаторов С и С были исключены из обучающего массива при подготовке к обучению классификаторов С и С. В общем случае подмножество предпочтительных групп классификаторов С и C может быть исключено из массива, используемого для обучения С и C. Классификатор С обучается идентифицировать предпочтительную группу записей, существенная часть которых принадлежит классу А. Другой классификатор соответствующего уровня каскада, С, обучается идентифицировать предпочтительную группу записей, существенная часть которых принадлежит классу В. На фиг. 11-В предпочтительные группы классификаторов С и С лежат соответственно внутри областей 45f-g пространства признаков.
[0070] На фиг. 12 показан пример последовательности этапов, выполняемых тренером 42 (фиг. 4) для обучения каскада классификаторов, содержащего множество классификаторов для каждого уровня, согласно некоторым вариантам осуществления настоящего изобретения. После ввода обучающего массива (этап 332) последовательность этапов 334-360 повторяется в цикле, причем каждый цикл выполняется для обучения отдельного уровня каскада. Опять же, изображенный пример показывает обучение двух классификаторов для одного уровня, однако данное описание может быть легко адаптировано к другим конфигурациям без выхода за рамки объема изобретения.
i
i
i
(А)
(А)
(А)
[0071] После выбора типа классификатора C (этап 336), на последовательности этапов 338-340-342, тренер 42 обучает классификатор C различать предпочтительную группу записей, существенная часть которых (например, более 99%) принадлежит классу А. Кроме того, обученный классификатор может потребоваться для удовлетворения некоторых критериев качества. Для примеров таких критериев см. выше в связи с фиг. 6. Если критерии обучения удовлетворяются, этап 344 сохраняет параметры классификатора C.
i
i
i
i
(B)
(В)
(А)
(В)
[0072] Последовательность этапов 346-354 выполняет сходное обучение классификатора C, за исключением того, что классификатор C обучается различать предпочтительную группу записей, существенная часть которых (например, более 99%) принадлежит классу В. На этапе 356 тренер 42 проверяет, классифицируют ли полностью классификаторы текущего уровня каскада текущий обучающий массив. В случае множества классификаторов для каждого уровня полная классификация может соответствовать ситуации, в которой все записи текущего обучающего массива, принадлежащего классу А, находятся в предпочтительной группе классификатора C и все записи текущего обучающего массива, принадлежащего классу В, находятся в предпочтительной группе классификатора C. Если да, то обучение прекращается.
i
i
(А)
(В)
[0073] Если текущий уровень каскада не достигает полной классификации, на последовательности этапов 358-360, тренер 42 может выбрать набор записей из предпочтительных групп классификаторов C и C и может удалить такие записи из обучающего массива, прежде чем перейти на следующий уровень каскада.
[0074] На фиг. 13 показан пример последовательности этапов, выполняемых приложением 52 безопасности, для использования обученного каскада для классификации неизвестного целевого объекта в варианте осуществления настоящего изобретения, в котором каскад содержит множество обучаемых классификаторов для каждого уровня. На этапе 372 выбирается целевой объект (см. также обсуждение выше, в отношении фиг. 10). Последовательность этапов 374-394 повторяется в цикле до достижения успешной классификации целевого объекта, причем каждый экземпляр цикла соответствует последовательному уровню каскада. Таким образом, в некоторых вариантах осуществления классификаторы каскада используются для обнаружения в том же порядке, в котором они были обучены, то есть с соблюдением порядка их соответствующих уровней в каскаде.
i
i
i
i
(А)
(А)
(В)
(В)
[0075] На этапе 376 классификатор C применяется к целевому объекту. Если Cпомещает целевой объект в его предпочтительный класс (класс А), на этапе 382 целевой объект помечается как принадлежащий классу А перед переходом к этапу 348. На этапе 384 к целевому объекту применяется другой классификатор уровня i, то есть классификатор C. Если классификатор C помещает целевой объект в его предпочтительный класс (класс В), на этапе 388 целевой объект помечается как принадлежащий классу В. Если нет, на этапе 392 проверяется, успешно ли классифицировали классификаторы текущего уровня каскада целевой объект, например, как принадлежащий к классу А или В. Если да, классификация прекращается. Если ни один классификатор текущего уровня каскада не классифицировал успешно целевой объект, приложение 52 безопасности переходит к следующему уровню каскада (этап 374). Если каскад не содержит дополнительных уровней, на этапе 394 приложение 52 может отметить целевой объект как безвредный, чтобы избежать ложной положительной классификации целевого объекта. В альтернативном варианте осуществления этап 394 может отметить целевой объект как неизвестный.
[0076] Этап 390 определяет, поместили ли более одного классификатора текущего уровня каскада целевой объект в его предпочтительном классе (например, на фиг. 13, если оба этапа 380 и 386 вернули ДА). Если нет, приложение 52 безопасности переходит к этапу 392, описанному выше. Когда да, целевой объект может быть помечен как безвредный или неизвестный, чтобы избежать ложной положительной классификации
[0077] Примеры систем и способов, описанные выше, позволяют системе компьютерной безопасности автоматически классифицировать целевые объекты с использованием каскада обученных классификаторов для приложений, включающих в себя, среди прочего, обнаружение вредоносных программ, обнаружение спама и обнаружение мошенничества. Каскад может включать в себя множество типов классификаторов, таких как, среди прочего, искусственные нейронные сети (ANN), машины опорных векторов (SVM), классификаторы кластеризации и классификаторы дерева решений. Для обучения классификаторов используется предварительно классифицированный обучающий массив, возможно состоящий из большого количества записей (например, несколько миллионов). В некоторых вариантах осуществления отдельные классификаторы каскада обучаются в заданном порядке. На фазе классификации классификаторы каскада могут быть применены в том же порядке, в котором они были обучены.
[0078] Каждый классификатор каскада может быть сконфигурирован для разделения текущего массива записей на по меньшей мере две группы, так что существенная часть записей (например, все) в одной из групп имеет идентичные метки, то есть принадлежат к одному и тому же классу. В некоторых вариантах осуществления перед обучением классификатора из следующего уровня каскада, подмножество записей в соответствующей группе исключается из обучающего массива.
[0079] Трудности, связанные с обучением классификаторов на больших наборах данных высокой размерности, хорошо описаны в данной области техники. Такое обучение является затратным с точки зрения вычислений и обычно создает подмножество ошибочно классифицированных записей. В приложениях компьютерной безопасности ложные срабатывания (безвредные записи, ложно идентифицированные как представляющие угрозу) особенно нежелательны, поскольку они могут привести к потере производительности и/или потере данных для пользователя. Например, приложение компьютерной безопасности может ограничить доступ пользователя к безвредному файлу, неправильно классифицированному как вредоносный, или даже удалить его. Одной из обычных стратегий уменьшения ошибочных классификаций является повышение сложности обученных классификаторов и/или усложнение существующих алгоритмов обучения, например, путем внедрения сложных функций затрат, которые штрафуют такие ошибочные классификации.
[0080] Напротив, некоторые варианты осуществления настоящего изобретения позволяют использовать базовые классификаторы, такие как перцептрон, которые относительно быстро обучаются даже на больших наборах данных. Скорость обучения может быть особенно значимой в приложениях компьютерной безопасности, которым приходится ежедневно обрабатывать большие объемы данных (например, миллионы новых образцов) из-за быстрых темпов развития вредоносного программного обеспечения. Кроме того, вместо использования одного сложного классификатора, в некоторых вариантах осуществления используется множество классификаторов, организованных в виде каскада (то есть сконфигурированных использоваться в заданном порядке) для уменьшения ошибочных классификаций. Каждый обученный классификатор каскада может надежно корректным образом помечать записи, лежащие в определенной области пространства признаков, причем эта область характерна для соответствующего классификатора.
2
[0081] В некоторых вариантах осуществления обучение дополнительно ускоряется путем исключения набора записей из обучающего массива между последовательными уровнями обучения каскада. В данной области техники хорошо известно, что затраты на обучение некоторых типов классификаторов сильно зависит от количества записей массива (например, пропорционально NlogN или N, где N - количество записей). Эта проблема в частности остро стоит в приложениях компьютерной безопасности, в которых обычно требуются очень большие обучающие массивы. Постепенное уменьшение размера обучающего массива согласно некоторым вариантам осуществления настоящего изобретения может значительно снизить вычислительные затраты на обучение классификаторов для компьютерной безопасности. Использование более чем одного классификатора для каждого уровня каскада может позволить еще более эффективную обрезку обучающего массива.
[0082] Некоторые обычные стратегии обучения, обычно известные как форсирование, также уменьшают размер обучающего массива. В одном таком примере, известном в данной области техники, набор записей, повторно ошибочно классифицированных классификатором при обучении, исключается из обучающего массива для улучшения производительности соответствующего классификатора. В отличие от таких обычных способов, некоторые варианты осуществления настоящего изобретения удаляют из обучающего массива набор записей, корректно классифицированных классификатором при обучении.
[0083] Специалисту в данной области техники понятно, что вышеприведенные варианты осуществления изобретения могут быть изменены различными способами без выхода за рамки объема изобретения. Соответственно, объем изобретения должен определяться нижеследующей формулой изобретения и ее законными эквивалентами.