СИСТЕМЫ И СПОСОБЫ ИСПОЛЬЗОВАНИЯ СООБЩЕНИЙ DNS ДЛЯ СЕЛЕКТИВНОГО СБОРА КОМПЬЮТЕРНЫХ КРИМИНАЛИСТИЧЕСКИХ ДАННЫХ
SYSTEMS AND METHODS FOR USING DNS MESSAGES FOR SELECTIVE COLLECTION OF COMPUTER FORENSIC DATA

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0001] Изобретение относится к системам и способам борьбы с вредоносным программным обеспечением и, в частности, к селективному сбору выборок сетевого трафика для криминалистического анализа.
[0002] Вредоносное программное обеспечение, также известное как вредоносный код, поражает большое количество компьютерных систем по всему миру. В своих многочисленных формах, таких как компьютерные вирусы, троянские программы, шпионское программное обеспечение и программы-вымогатели, вредоносный код представляет серьезный риск для миллионов пользователей компьютеров, делая их уязвимыми, среди прочего, для потери данных и конфиденциальной информации, хищения идентификационных данных и потери производительности.
[0003] Большое количество устройств, неофициально называемых Интернетом Вещей (IoT), все чаще подключается к коммуникационным сетям и Интернету. Такие устройства включают в себя, среди прочего, смартфоны, умные часы, телевизоры и другие мультимедийные устройства, игровые консоли, бытовые приборы и различные бытовые датчики, такие как термостаты. По мере того, как все больше таких устройств переходят в онлайн, они становятся уязвимыми для угроз безопасности, таких как вредоносный код и вторжение. Следовательно, существует растущая потребность в защите таких устройств от вредоносного кода, а также в защите обмена данными с и от таких устройств. Особая область, к которой был возобновлен интерес с появлением Интернета Вещей, включает в себя приложения контроля доступа, например, родительский контроль, и предотвращение передачи конфиденциальной информации через устройства IoT.
[0004] Вредоносное программное обеспечение постоянно развивается, побуждая поставщиков компьютерной безопасности не отставать от постоянно меняющегося ландшафта угроз. Часть этих усилий направлена на своевременное обнаружение и анализ появляющегося вредоносного кода. Одна конкретная категория способов защиты от вредоносных программ, обычно известная как поведенческое обнаружение, основана на мониторинге активности устройства и/или компонента программного обеспечения в соответствии с набором правил. Некоторые паттерны активности (например, последовательности событий аппаратного обеспечения или программного обеспечения) соответствуют нормальным правомерным использованиям соответствующего устройства, тогда как другие могут указывать на зловредность. Надежная идентификация ненормальных паттернов поведения, указывающих на наличие вредоносного кода, обычно требует достаточного объема криминалистических данных, собранных от зараженных устройств. В случае обнаружения трафика данных, указывающего на наличие вредоносного кода, изучение таких паттернов может потребовать доступа к сетевому трафику к и/или от зараженных устройств IoT. Однако в случае возникновения еще неизвестных угроз устройства злоумышленника нелегко идентифицировать.
[0005] Поэтому существует значительный интерес к разработке систем и способов сбора криминалистических данных от устройств различных типов и, в частности, селективного сбора сетевого трафика к и/или от устройств IoT.
РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[0006] Согласно одному аспекту способ содержит использование по меньшей мере одного аппаратного процессора компьютерной системы, чтобы перехватывать ответное сообщение службы доменных имен (DNS), полученное в компьютерной системе, причем ответное сообщение DNS содержит целевой адрес интернет-протокола (IP), указывающий сетевое расположение удаленного ресурса, при этом ответное сообщение DNS дополнительно содержит флаг активации службы. Способ дополнительно содержит использование по меньшей мере одного аппаратного процессора компьютерной системы, чтобы определять, согласно значению флага активации службы, активна ли служба безопасности, и в ответ, если флаг активации службы указывает, что служба безопасности активна, модифицировать ответное сообщение DNS путем замены целевого IP-адреса фиктивным IP-адресом. Способ дополнительно содержит использование по меньшей мере одного аппаратного процессора компьютерной системы, чтобы перехватывать электронную коммуникацию, направленную на IP-адрес назначения, определять, совпадает ли IP-адрес назначения с фиктивным IP-адресом, и в ответ на определение, совпадает ли IP-адрес назначения с фиктивным IP-адресом, если IP-адрес назначения совпадает с фиктивным IP-адресом, выполнять процедуру компьютерной безопасности согласно электронной коммуникации. Способ дополнительно содержит использование по меньшей мере одного аппаратного процессора компьютерной системы, чтобы, в ответ на определение, совпадает ли IP-адрес назначения с фиктивным IP-адресом, если IP-адрес назначения не совпадает с фиктивным IP-адресом, пересылать электронную коммуникацию на IP-адрес назначения.
[0007] Согласно другому аспекту компьютерная система содержит по меньшей мере один аппаратный процессор, конфигурированный для выполнения прокси службы доменных имен (DNS) и коммуникационного диспетчера. Прокси DNS конфигурирован, чтобы перехватывать ответное сообщение службы доменных имен (DNS), полученное в компьютерной системе, причем ответное сообщение DNS содержит целевой адрес интернет-протокола (IP), указывающий сетевое расположение удаленного ресурса, при этом ответное сообщение DNS дополнительно содержит флаг активации службы. Прокси DNS дополнительно конфигурирован, чтобы определять, согласно значению флага активации службы, активна ли служба безопасности, и в ответ, если флаг активации службы указывает, что служба безопасности активна, модифицировать ответное сообщение DNS путем замены целевого IP-адреса фиктивным IP-адресом. Коммуникационный менеджер конфигурирован, чтобы перехватывать электронную коммуникацию, направленную на IP-адрес назначения, определять, совпадает ли IP-адрес назначения с фиктивным IP-адресом, и в ответ, если IP-адрес назначения совпадает с фиктивным IP-адресом, выполнять процедуру компьютерной безопасности согласно электронной коммуникации. Коммуникационный менеджер дополнительно конфигурирован, чтобы, в ответ на определение, совпадает ли IP-адрес назначения с фиктивным IP-адресом, если IP-адрес назначения не совпадает с фиктивным IP-адресом, пересылать электронную коммуникацию на IP-адрес назначения.
[0008] Согласно другому аспекту невременный машиночитаемый носитель хранит инструкции, побуждающие, при выполнении по меньшей мере одним аппаратным процессором компьютерной системы, компьютерную систему формировать прокси службы доменных имен (DNS) и коммуникационный менеджер. Прокси DNS конфигурирован, чтобы перехватывать ответное сообщение службы доменных имен (DNS), полученное в компьютерной системе, причем ответное сообщение DNS содержит целевой адрес интернет-протокола (IP), указывающий сетевое расположение удаленного ресурса, при этом ответное сообщение DNS дополнительно содержит флаг активации службы. Прокси DNS дополнительно конфигурирован, чтобы определять, согласно значению флага активации службы, активна ли служба безопасности, и в ответ, если флаг активации службы указывает, что служба безопасности активна, модифицировать ответное сообщение DNS путем замены целевого IP-адреса фиктивным IP-адресом. Коммуникационный менеджер конфигурирован, чтобы перехватывать электронную коммуникацию, направленную на IP-адрес назначения, определять, совпадает ли IP-адрес назначения с фиктивным IP-адресом, и в ответ, если IP-адрес назначения совпадает с фиктивным IP-адресом, выполнять процедуру компьютерной безопасности согласно электронной коммуникации. Коммуникационный менеджер дополнительно конфигурирован, чтобы, в ответ на определение, совпадает ли IP-адрес назначения с фиктивным IP-адресом, если IP-адрес назначения не совпадает с фиктивным IP-адресом, пересылать электронную коммуникацию на IP-адрес назначения.
[0009] Согласно другому аспекту серверная компьютерная система участвует в транзакциях службы доменных имен (DNS) с множеством клиентских систем, при этом серверная компьютерная система содержит по меньшей мере один аппаратный процессор, конфигурированный, чтобы, в ответ на получение сообщения запроса DNS от клиентской системы множества клиентских систем, причем сообщение запроса DNS содержит имя целевого домена, идентифицировать клиентскую систему согласно сообщению запроса DNS. По меньшей мере один аппаратный процессор дополнительно конфигурирован, чтобы, в ответ на идентификацию клиентской системы, определять, удовлетворено ли условие выбора клиента согласно доменному имени и, дополнительно, согласно идентификатору клиентской системы. По меньшей мере один аппаратный процессор дополнительно конфигурирован, чтобы, в ответ на определение, удовлетворено ли условие выбора клиента, если условие выбора клиента удовлетворено, передавать ответное сообщение DNS в клиентскую систему, при этом ответное сообщение DNS содержит целевой адрес Интернет-Протокола (IP), связанный с именем целевого домена, причем ответное сообщение DNS дополнительно конфигурировано так, чтобы включать в себя флаг активации службы. По меньшей мере один аппаратный процессор дополнительно конфигурирован, чтобы, в ответ на определение, удовлетворено ли условие выбора клиента, если условие выбора клиента не удовлетворено, передавать другое ответное сообщение DNS в клиентскую систему, причем другое ответное сообщение DNS содержит целевой IP-адрес и дополнительно конфигурировано так, чтобы не включать в себя флаг активации службы. Клиентская система конфигурирована для интерпретации получения флага активации службы как триггер для выполнения процедуры компьютерной безопасности согласно электронной коммуникации, направленной на целевой IP-адрес или входящей от него.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0010] Вышеупомянутые аспекты и преимущества настоящего изобретения станут более понятными после прочтения нижеследующего подробного описания со ссылкой на чертежи, на которых:
[0011] Фиг. 1 показывает примерный набор клиентских устройств, защищенных от угроз компьютерной безопасности, согласно некоторым вариантам осуществления настоящего изобретения.
[0012] Фиг. 2-А показывает типичную транзакцию службы доменных имен (DNS), как известно в уровне техники.
[0013] Фиг. 2-В иллюстрирует модифицированную транзакцию DNS согласно некоторым вариантам осуществления настоящего изобретения.
[0014] Фиг. 3 показывает примерный тегированный запрос DNS согласно некоторым вариантам осуществления настоящего изобретения.
[0015] Фиг. 4 показывает примерный помеченный ответ DNS согласно некоторым вариантам осуществления настоящего изобретения.
[0016] Фиг. 5-А показывает примерный вариант осуществления, в котором клиентское устройство передает криминалистические данные в сервер безопасности, причем криминалистические данные содержат дайджест сетевого трафика между клиентским устройством и контент-сервером.
[0017] Фиг. 5-В показывает альтернативный вариант осуществления, в котором по меньшей мере часть сетевого трафика между клиентским устройством и контент-сервером перемаршрутизирована через сервер безопасности.
[0018] Фиг. 6 иллюстрирует примерное программное обеспечение, исполняемое на клиентском устройстве согласно некоторым вариантам осуществления настоящего изобретения.
[0019] Фиг. 7 показывает примерную последовательность этапов, выполняемых прокси DNS, исполняемым на клиентском устройстве, согласно некоторым вариантам осуществления настоящего изобретения.
[0020] Фиг. 8 показывает примерную последовательность этапов, выполняемых коммуникационным менеджером для обработки исходящих коммуникаций, причем коммуникационный менеджер выполняется на клиентской системе согласно некоторым вариантам осуществления настоящего изобретения.
[0021] Фиг. 9 показывает примерную последовательность этапов, выполняемых коммуникационным менеджером для обработки входящих коммуникаций согласно некоторым вариантам осуществления настоящего изобретения.
[0022] Фиг. 10 показывает примерную последовательность этапов, выполняемых DNS-сервером согласно некоторым вариантам осуществления настоящего изобретения.
[0023] Фиг. 11 иллюстрирует примерную конфигурацию аппаратного обеспечения компьютерной системы, программируемой для выполнения способов и алгоритмов согласно некоторым вариантам осуществления настоящего изобретения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0024] В нижеследующем описании подразумевается, что все упоминаемые соединения между конструкциями могут быть непосредственными рабочими соединениями или опосредованными рабочими соединениями через промежуточные конструкции. Набор элементов включает в себя один или более элементов. Подразумевается, что любое упоминание элемента относится к по меньшей мере одному элементу. Множество элементов включает в себя по меньшей мере два элемента. Если не требуется иное, любые описанные этапы способа не обязательно должны выполняться в конкретном показанном порядке. Первый элемент (например, данные), полученный из второго элемента, включает в себя первый элемент, равный второму элементу, а также первый элемент, генерированный посредством обработки второго элемента и, опционально, других данных. Выполнение определения или решения в соответствии с параметром включает в себя выполнение определения или решения в соответствии с параметром и, опционально, в соответствии с другими данными. Если не указано иное, индикатор некоторого количества/данных может представлять собой само количество/данные или индикатор, отличный от самого количества/данных. Компьютерная программа представляет собой последовательность инструкций процессора, выполняющих задачу. Компьютерные программы, описанные в некоторых вариантах осуществления настоящего изобретения, могут быть автономными программными объектами или подобъектами (например, подпрограммами, библиотеками) других компьютерных программ. Доменное имя представляет собой метку/псевдоним, идентифицирующие сетевой адрес. Термин «база данных» используется в данном документе для обозначения любой организованной коллекции данных. Машиночитаемые носители включают в себя невременные носители, такие как магнитные, оптические и полупроводниковые носители данных (например, жесткие диски, оптические диски, флэш-память, DRAM), а также коммуникационные каналы, такие как проводящие кабели и волоконно-оптические связи. Согласно некоторым вариантам осуществления настоящее изобретение относится, среди прочего, к компьютерным системам, содержащим аппаратное обеспечение (например, один или более процессоров), программированное для выполнения описанных в данном документе способов, а также инструкции кодирования машиночитаемых носителей для выполнения описанных в данном документе способов.
[0025] Нижеследующее описание иллюстрирует варианты осуществления изобретения посредством примера и не обязательно с целью ограничения.
[0026] Фиг. 1 показывает примерный набор клиентских устройств 10a-f, защищенных от угроз компьютерной безопасности, согласно некоторым вариантам осуществления настоящего изобретения. Примерные клиентские системы 10а-f включают в себя персональные компьютерные системы, корпоративные мэйнфреймы, мобильные вычислительные платформы (например, портативные компьютеры, планшеты, мобильные телефоны), развлекательные устройства (например, телевизоры, игровые консоли), носимые устройства (например, умные часы, фитнес-браслеты), бытовые приборы (например, холодильники, стиральные машины) и любое другое электронное устройство, содержащее процессор, память и коммуникационный интерфейс, позволяющий соответствующему устройству коммуницировать с другими
устройствами/компьютерными системами. Примерное клиентское устройство может взаимодействовать с удаленным контент-сервером 18 по коммуникационному каналу для обмена данными, такими как веб-контент, электронные сообщения, различные документы и т.д.
[0027] В примерной конфигурации на фиг. 1 клиентские устройства 10а-е соединены между собой локальной сетью 13, такой как локальная вычислительная сеть (LAN), домашняя сеть, корпоративная сеть и т.д. Устройства 10а-е могут быть дополнительно соединены с расширенной сетью 15, такой как глобальная вычислительная сеть (WAN) и/или Интернет. В некоторых вариантах осуществления по меньшей мере часть сетевого трафика между клиентскими устройствами 10а-е и расширенной сетью 15 проходит через шлюз 12, такой как маршрутизатор или сетевой концентратор. Другое примерное клиентское устройство 1 Of может быть не соединено с локальной сетью 13, но вместо этого соединено с расширенной сетью 15, например, посредством сети мобильной телефонной связи или общедоступной точки доступа Wi-Fi.
[0028] В некоторых вариантах осуществления сервер 14 службы доменных имен (DNS) взаимодействует с сервером 16 безопасности для селективного сбора компьютерных криминалистических данных от клиентских устройств 10а-f, как подробно показано ниже. Такие криминалистические данные могут включать в себя, например, метаданные, описывающие передачу данных между выбранным клиентом и выбранным контент-сервером, и/или фактическую полезную нагрузку соответствующей передачи данных. Метаданные в данном документе обозначают характеристики передачи, отличные от контента передачи или самой полезной нагрузки. Примерные метаданные включают в себя, среди прочего, сетевые адреса отправителя и/или получателя, размер полезной нагрузки и временную метку, указывающую реальное время соответствующей передачи. Термин «криминалистический» используется в данном документе для указания, что соответствующие данные могут быть использованы в целях компьютерной безопасности, например, для определения, заражена ли соответствующая клиентская система вредоносным программным обеспечением, или для проспективной идентификации паттернов сетевого трафика, характеризующих еще неизвестные угрозы компьютерной безопасности. Каждый из серверов 14-16 в целом представляет собой набор коммуникативно связанных компьютеров, которые могут быть или могут не быть близко расположенными друг к другу. Специалисту в данной области известно, что действия, выполняемые серверами 14-16, как описано в данном документе, могут быть разделены между несколькими физическими машинами или процессорами.
[0029] Серверы 14-16 соединены с базой 19 данных профилей клиента и конфигурированы для доступа к базе 19 данных для выполнения селективной вставки данных, извлечения данных и/или других операций управления базой данных. База 19 данных конфигурирована для хранения множества клиентских записей, относящихся к клиентским устройствам 10а-f и/или к пользователям соответствующих клиентских устройств. В некоторых вариантах осуществления каждая клиентская запись соответствует отдельному клиентскому устройству 10а-f. В одном таком примере клиентская запись может хранить набор идентификаторов соответствующего клиентского устройства (например, управление доступом к среде передачи - МАС-адрес, международный идентификатор мобильного оборудования - номер IMEI и т.д.), индикатор типа устройства (например, цифровая камера, термостат, смартфон, планшетный компьютер, маршрутизатор, автомобиль), различные индикаторы конфигурации аппаратного обеспечения соответствующего клиентского устройства (например, имеет ли соответствующее устройство камеру и т.д.), список программных приложений, установленных на соответствующем устройстве, и индикатор географического местоположения соответствующего клиентского устройства. Другая информация, хранящаяся в примерной клиентской записи, содержит данные использования устройства, такие как статистика доступа к сети соответствующим клиентским устройством, например, относительная частота использования различных коммуникационных портов, относительный объем трафика в течение различных временных интервалов и т.д. Другие примерные клиентские записи могут включать в себя метаданные, описывающие сетевой трафик, передаваемый или получаемый соответствующим клиентским устройством. В некоторых вариантах осуществления такие метаданные могут быть организованы в соответствии с форматом, таким как Экспорт (IoT)Информации IP-Потока (IPFIX) от Инженерного Совета Интернета или NetFlow от Cisco, Inc. База 19 данных может быть форматирована и храниться в соответствии с любым стандартом, известным в данной области техники. Примерные форматы баз данных включают в себя, среди прочего, реляционную базу данных, базу данных расширяемого языка разметки (XML), электронную таблицу и хранилище данных типа "ключ-значение".
[0030] В некоторых вариантах осуществления DNS-сервер 14 предоставляет службы доменных имен клиентским устройствам 10а-f, причем соответствующие службы содержат, среди прочего, преобразование доменных имен в сетевые адреса и/или наоборот. Типичная передача данных между клиентским устройством и удаленным контент-сервером содержит несколько этапов. Такая передача требует знания сетевого адреса (например, Интернет-Протокол - IP-адреса) контент-сервера. Часто этот адрес не известен клиенту по разным причинам. Например, может существовать несколько машин зеркальных контент-серверов, и клиент может динамически направляться на наиболее удобный из них в соответствии с текущей нагрузкой каждого зеркального сервера или в соответствии с текущим географическим положением клиентского устройства. Однако клиентское устройство может знать доменное имя, содержащее псевдоним неизвестного сетевого адреса. Для установки соединения с удаленным контент-сервером, программный объект, исполняемый на соответствующем клиентском устройстве, может, таким образом, выдать запрос на доступ к соответствующему доменному имени вместо IP-адреса как такового. В ответ другой программный объект (например, операционная система) клиентского устройства может попытаться преобразовать псевдоним/доменное имя в фактический сетевой адрес и затем передать запрос в корректное сетевое местоположение. Такое преобразование может задействовать поставщика DNS, такого как сервер 14 на фиг. 1. Фиг. 2-А иллюстрирует типичный обмен сообщениями согласно протоколу DNS, как известно в данной области техники. Клиентское устройство 10 передает запрос 22 DNS в DNS-сервер 14, причем запрос 22 содержит кодировку доменного имени. В ответ DNS-сервер 14 может вернуть ответ 24 DNS запрашивающему клиенту, причем ответ 24 включает в себя кодировку сетевого адреса, идентифицированного соответствующим доменным именем/псевдонимом. Примерные кодировки адресов включают в себя, среди прочего, форматы IPv4 и IPv6.
[0031] Фиг. 2-В показывает примерный обмен DNS между клиентским устройством 10 и DNS-сервером 14 согласно некоторым вариантам осуществления настоящего изобретения. В отличие от обычного обмена DNS (фиг. 2-А), в некоторых вариантах осуществления клиентское устройство 10 может передавать тегированный запрос 26 DNS в DNS-сервер 14, причем тегированный запрос содержит идентификатор соответствующего клиентского устройства 10. Примерный тегированный запрос 26 изображен на фиг. 3 и включает в себя кодировку доменного имени 21 и ID 25 клиента. ID 25 клиента может содержать любой элемент, позволяющий отличить клиентское устройство 10 от других клиентских устройств. Примерные ID клиента включают в себя хеш, МАС-адрес, номер IMEI и т.д. В некоторых вариантах осуществления ID 25 клиента может не позволять индивидуально идентифицировать клиентское устройство 10, но, тем не менее, указывает групповую идентифицируемость соответствующего клиентского устройства. Например, ID 25 клиента может селективно указывать группу устройств (например, устройства в определенном отделе корпорации, устройства, расположенные в определенном сетевом субдомене, устройства, принадлежащие определенной домашней сети, устройства, защищенные в соответствии с определенным контрактом на предоставление услуг), тип устройства (например, смартфоны в противоположность настольным ПК в противоположность встроенным) и т.д.
[0032] В альтернативном варианте осуществления ID 25 клиента может содержать дайджест профиля клиентского устройства. Примерная информация профиля устройства может включать в себя, например, кодировки типа устройства, операционной системы, текущего географического местоположения и идентификатора текущего пользователя соответствующего клиентского устройства. Такая информация может использоваться DNS-сервером 14 и/или сервером 16 безопасности для выбора соответствующего клиентского устройства для активации/деактивации служб безопасности, как более подробно показано ниже.
[0033] В ответ на получение тегированного запроса 26 DNS некоторые варианты осуществления DNS-сервера 14 возвращают помеченный ответ 28 DNS, пример которого показан на фиг. 4. Помеченный ответ 28 DNS включает в себя кодировку сетевого адреса 23 и флаг 27 активации службы, указывающий, активна ли конкретная служба безопасности для соответствующего запрашивающего клиентского устройства 10. Примерные службы безопасности, селективно активируемые/деактивируемые флагом 27, включают в себя сбор криминалистических данных, родительский контроль (например, ограничение доступа определенных пользователей к определенным доменам), контроль приложений (например, запрет на запуск определенных приложений, например Facebook, мгновенный обмен сообщениями, игры и т.д.), защита от мошенничества, защита от вредоносных программ, инспекция трафика и т.д.
[0034] В альтернативном варианте осуществления помеченный ответ 28 DNS может включать в себя множество флагов активации службы, например, битовую карту, причем каждый бит представляет собой отдельную службу безопасности (например, родительский контроль, инспекция трафика, сбор криминалистических данных и т.д.), и значение соответствующего бита указывает, разрешена или не разрешена соответствующая служба. В другом примере помеченный ответ 28 DNS может включать в себя набор значений параметров службы вместе с или вместо простого флага активации службы. В еще одном примере отдельные значения флага 27 активации службы могут указывать различные режимы работы целевого клиентского устройства. Например, одно значение может инструктировать клиентское устройство выделить соответствующий трафик (например, интерпретировать ответ 28 DNS как ответ NXDomain), тогда как другое значение может инструктировать клиентское устройство принудительно установить таймаут или перенаправить трафик на другой IP-адрес.
[0035] Элементы данных, такие как ID 25 клиента и ID флага 27 активации службы, могут быть кодированы и включены в запросы клиентов и/или ответные сообщения сервера с использованием любого способа, известного в данной области техники. Многие современные протоколы/форматы данных, используемые в электронной коммуникации, резервируют набор выбранных битов каждого пакета данных для неспецифического использования. Различные варианты осуществления могут использовать такие резервированные биты для кодирования ID 25 клиента и/или флага 27 активации службы. В простейшем примере выбранный бит соответствующего сообщения может действовать как флаг активации службы; значение 1 может указывать, что служба разрешена, тогда как значение 0 может указывать, что служба отключена или что соответствующее сообщение не помечено. Некоторые варианты осуществления используют сообщения DNS, форматированные согласно используемому в настоящее время стандарту, такому как, среди прочего, описанный в Запросе на Комментарии (RFC) 1035 Инженерного Совета Интернета (IETF). В одном таком примере ID 25 клиента и/или флаг 27 активации службы могут быть вставлены как дополнительная запись ресурса или запись псевдоресурса запроса или ответа DNS, например, как содержимое поля RDATA.
[0036] В некоторых вариантах осуществления DNS-сервер 14 может селективно активировать/деактивировать службу безопасности путем соответствующей установки значения флага 27 активации службы только для определенных клиентских устройств и/или пользователей. Решение, разрешить или не разрешить определенную службу, может быть принято сервером 16 безопасности в соответствии с идентификатором клиентского устройства, выдающего соответствующий тегированный запрос DNS, и, кроме того, в соответствии с такими критериями, как текущее географическое положение клиентского устройства, тип устройства, профиль аппаратного обеспечения и/или программного обеспечения соответствующего клиентского устройства. Примеры алгоритмов принятия решений и критериев показываются ниже. Чтобы задействовать такие алгоритмы принятия решения, некоторые варианты осуществления собирают информацию профиля устройства от клиентских устройств и передают такую информацию профиля в сервер 16 безопасности, который может организовывать и хранить ее в базе 19 данных профилей клиента (см. фиг. 2-В).
[0037] Некоторые варианты осуществления используют флаг 27 активации службы для селективного сбора криминалистических данных, как более подробно показано ниже. В ответ на выбор клиентского устройства в качестве цели для сбора данных, DNS-сервер 14 может ответить на запрос DNS, полученный от соответствующего клиентского устройства с помеченным ответом DNS, в котором флаг 27 активации службы установлен для указания, что сбор данных разрешен. В ответ на получение соответствующего помеченного ответа DNS приложение безопасности, исполняемое на выбранном клиентском устройстве, может собирать криминалистическую информацию от выбранного устройства и передавать соответствующую информацию на сервер 16 безопасности для анализа. Сбор криминалистических данных может происходить согласно нескольким сценариям. В одном примере, показанном на фиг. 5-А, программное обеспечение безопасности, исполняемое на клиентском устройстве 10, может определять метаданные и/или фактическую полезную нагрузку коммуникации между клиентским устройством 10 и контент-сервером 18, упаковывать такую информацию как криминалистические данные 30 и добавлять ее в очередь исходящих сообщений для передачи на сервер 16 безопасности. В другом примере, показанном на фиг. 5-В, в ответ на получение помеченного ответа DNS, указывающего, что сбор данных активен, программное обеспечение безопасности, исполняемое на соответствующем клиентском устройстве, может осуществлять перемаршрутизацию, по меньшей мере, части трафика данных между клиентским устройством 10 и контент-сервером 18 через коммуникационный туннель, соединяющий клиентское устройство 10 с сервером 16 безопасности. Примером такого туннеля является соединение виртуальной частной сети (VPN). Другими словами, на фиг. 5-В сбор криминалистических данных содержит маршрутизацию прямых коммуникаций к и/или от выбранных клиентских устройств через сервер 16 безопасности, на котором может анализироваться соответствующий трафик.
[0038] Фиг. 6 показывает примерные компоненты программного обеспечения, исполняемые на клиентском устройстве согласно некоторым вариантам осуществления настоящего изобретения. Такое программное обеспечение может включать в себя операционную систему (OS) 50, которая может быть любой широко доступной операционной системой, например, Microsoft Windows, MacOS, Linux, iOS или Android. OS 50 предоставляет интерфейс между аппаратным обеспечением клиентского устройства 10 и набором приложений, включая клиентское приложение 52 и приложение 54 безопасности. Клиентское приложение 52 в целом представляет собой любую компьютерную программу, такую как, среди прочего, приложение для обработки текста, приложение для работы с электронными таблицами, обработка изображений, игры, электронная коммуникация, просмотр веб-страниц и приложение для социальных сетей. Приложение 54 безопасности предоставляет службы компьютерной безопасности клиентскому устройству 10, например, защиту от вредоносных программ, обнаружение вторжений и управление доступом к сети.
[0039] В некоторых вариантах осуществления приложение безопасности содержит прокси 56 DNS, построитель 57 профилей и коммуникационный менеджер 58. Компоненты 56-57-58 могут исполняться как автономные исполняемые объекты или могут быть встроены в приложение 54 безопасности, например, как динамически загружаемые библиотеки. Специалисту в данной области понятно, что некоторые функции компонентов 56-57-58 могут быть реализованы на сетевом шлюзе 12 (см. фиг. 1) вместо клиентской системы 10.
[0040] В некоторых вариантах осуществления прокси 56 DNS конфигурирован как посредник между клиентским устройством 10 и DNS-сервером 14 в том смысле, что прокси 54 DNS перехватывает и модифицирует поток и/или контент DNS-сообщений, входящих в и/или исходящих из клиентского устройства 10. Некоторые варианты осуществления конфигурируют OS 50 для селективной маршрутизации исходящего трафика на определенные IP-адреса через прокси 56 DNS. Такая функциональность может быть реализована, например, с использованием VPN с разделенным туннелированием. В одном таком примере приложение 54 безопасности может регистрировать IP-адрес (IP-адреса) DNS-сервера 14 с OS 50, тем самым объявляя сервер 14 поставщиком DNS для соответствующей клиентской системы. Приложение 54 может дополнительно конфигурировать интерфейс VPN клиентской системы 10 так, что весь трафик на соответствующие IP-адреса будет проходить через прокси 56 DNS.
[0041] Фиг. 7 показывает примерную последовательность этапов, выполняемых прокси 56 DNS согласно некоторым вариантам осуществления настоящего изобретения. Примерный алгоритм, описанный в данном документе, обеспечивает выборочную обработку запросов доступа к сети, при этом выбор достигается с уровнем детализации одного запроса DNS.
[0042] Последовательность этапов 202-204 перехватывает входящие и исходящие сообщения DNS. На этапе 206 прокси DNS определяет тип перехваченного сообщения. Если сообщение представляет собой запрос DNS (например, запрос клиентского приложения 52 для доступа к определенному доменному имени), в последовательности этапов 208-210 прокси 56 DNS помечает соответствующий запрос DNS с помощью ID клиента соответствующего клиентского устройства для создания тегированного запроса 26 DNS и передает запрос 26 на DNS-сервер 14.
[0043] Если перехваченное сообщение DNS является ответом, этап 220 анализирует сообщение для определения, помечено оно или нет, то есть содержит ли оно флаг активации службы и указывает ли значение флага, что служба безопасности активна для соответствующего клиентского устройства 10. Если нет, этап 222 пересылает соответствующий ответ DNS запрашивающему программному объекту (например, клиентское приложение 52 или OS 50).
[0044] В некоторых вариантах осуществления приложение 54 безопасности поддерживает пул предварительно определенных фиктивных сетевых адресов, зарезервированных в целях безопасности. В данном документе фиктивные адреса используются как замены для фактических сетевых адресов, возвращаемых поставщиками DNS. Фиктивный адрес может указывать и может и не указывать местонахождение реального онлайн-ресурса. Приложение 54 безопасности поддерживает таблицу ассоциации адресов (например, хеш-таблицу), содержащую преобразование между реальными и фиктивными адресами, как показано ниже. В некоторых вариантах осуществления приложение 54 безопасности дополнительно регистрирует фиктивные IP-адреса с помощью интерфейса VPN клиентской системы 10, так что весь трафик к и/или от таких фиктивных адресов будет проходить через приложение 54 безопасности. Это позволяет коммуникационному менеджеру 58 выполнять операции безопасности на таком трафике, например, для перенаправления или инспекции такого трафика, как более подробно описано ниже. Отдельные фиктивные адреса могут использоваться для различных служб, таких как родительский контроль, выборка трафика, контроль доступа и т.д.
[0045] Если перехваченное сообщение DNS представляет собой помеченный ответ, причем значение флага указывает, что службы безопасности активны, то на этапе 224 из пула выбирают доступный фиктивный адрес. Некоторые варианты осуществления выбирают фиктивный адрес дополнительно в соответствии со значением флага 27 активации службы, например, когда различные значения указывают активацию различных служб. Затем прокси 56 DNS может создать ассоциацию между соответствующим фиктивным адресом и фактическим сетевым адресом, содержащимся в ответе DNS (например, запись хеш-таблицы, преобразующая фиктивный адрес в реальный адрес или наоборот). Следующий этап 228 может редактировать помеченный ответ DNS для заменены фактического сетевого адреса выбранным фиктивным адресом. На этапе 228 некоторые варианты осуществления дополнительно удаляют флаг активации службы из соответствующего сообщения DNS, чтобы оно выглядело как стандартный ответ DNS. Такие стратегии обфускации могут помочь скрыть действия программного обеспечения безопасности от потенциального вредоносного кода, исполняемого на клиентском устройстве 10. Следующий этап 230 передает модифицированный ответ DNS запрашивающему программному объекту (например, клиентскому приложению 52 или OS 50).
[0046] В некоторых вариантах осуществления коммуникационный менеджер 58 перехватывает и обрабатывает, по меньшей мере, часть электронных коммуникаций между клиентским устройством 10 и контент-сервером 18. Как показано выше, некоторые варианты осуществления конфигурируют приложение 54 безопасности для перехвата коммуникаций, приходящих от и/или исходящих к предварительно определенному набору IP-адресов. Фиг. 8 показывает примерную последовательность этапов, выполняемых коммуникационным менеджером 58, для обработки исходящих коммуникаций, например, запросов протокола передачи гипертекста (HTTP) к контент-серверу 18. Если такая коммуникация обнаружена (этапы 242-244), этап 246 определяет, совпадает ли IP-адрес назначения соответствующей коммуникации с каким-либо из списка фиктивных IP-адресов, поддерживаемых приложением 54 безопасности. Если нет, коммуникационный менеджер 58 может пересылать коммуникацию на коммуникационный интерфейс клиентской системы 10 для передачи ее предполагаемому получателю.
[0047] Если да, с указанием, что соответствующая коммуникация была выбрана для обработки безопасности, этап 248 выполняет некоторые действия безопасности согласно соответствующей коммуникации. Примерные действия безопасности включают в себя определение набора метаданных, содержащих, например, реальный IP-адрес назначения, связанный с соответствующим фиктивным адресом, коммуникационный порт, размер полезной нагрузки и временную метку коммуникации. Другое действие безопасности может содержать создание копии полезной нагрузки соответствующей коммуникации. Еще одно примерное действие безопасности содержит проверку полезной нагрузки коммуникации для определения, шифрована ли соответствующая полезная нагрузка или нет, или содержит ли соответствующая полезная нагрузка определенный тип данных (например, изображение, исполняемый код и т.д.). В еще одном примере этап 248 содержит сканирование полезной нагрузки соответствующей коммуникации на наличие вредоносного кода. В некоторых вариантах осуществления этап 248 дополнительно содержит размещение информации, извлеченной о/из соответствующей коммуникации, в журнал или очередь для автономной передачи на сервер 16 безопасности. Некоторые варианты осуществления определяют тип действия безопасности в соответствии с фиктивным адресом. Например, некоторые фиктивные адреса могут указывать действие родительского контроля, тогда как другой фиктивный адрес может указывать сканирование вредоносного кода.
[0048] На дополнительном этапе 252 коммуникационный менеджер 58 может просматривать таблицу ассоциации адресов для определения реального IP-адреса, соответствующего фиктивному адресу, указанному в соответствующей коммуникации, и редактировать соответствующую коммуникацию для замены фиктивного адреса реальным IP-адресом. В некоторых вариантах осуществления этап 252 может дополнительно переупаковать исходную коммуникацию, чтобы перемаршрутизировать ее через туннель виртуальной частной сети на сервер 16 безопасности (см. фиг. 5-В). Этап 254 может затем переслать коммуникацию на коммуникационный интерфейс клиентского устройства 10.
[0049] Фиг. 9 показывает примерную последовательность этапов, выполняемых коммуникационным менеджером 58 при обработке входящих коммуникаций. Когда такая коммуникация получена (этапы 262-264), этап 266 может просматривать таблицу ассоциации адресов для определения, совпадает ли исходный IP-адрес коммуникации с фиктивным адресом. Если нет, коммуникационный менеджер 58 может пересылать входящую коммуникацию ее предполагаемому получателю (например, приложению 52).
[0050] Если да, с указанием, что соответствующая коммуникация выбрана для обработки безопасности, этап 268 выполняет набор действий безопасности в соответствии с входящей коммуникацией. Примерные действия безопасности включают в себя определение набора метаданных коммуникации (например, начальный IP-адрес, размер полезной нагрузки, временная отметка и т.д.), копирование полезной нагрузки соответствующей коммуникации, проверку полезной нагрузки для определения набора характеристик (например, шифрована ли соответствующая полезная нагрузка, содержит ли она исполняемый код и т.д.), и сканирование соответствующей полезной нагрузки на наличие вредоносного кода, среди прочего. Некоторые варианты осуществления могут дополнительно передавать такую информацию на сервер 16 безопасности.
[0051] На этапе 272 коммуникационный менеджер 58 может затем редактировать входящую коммуникация для замены исходного IP-адреса на ассоциированный фиктивный IP-адрес. Дополнительный этап 274 может затем пересылать редактированную коммуникацию ее предполагаемому получателю (например, клиентское приложение 52).
[0052] В некоторых вариантах осуществления построитель 57 профилей (фиг. 6) конфигурирован для определения различных характеристик конфигурации аппаратного обеспечения и/или программного обеспечения клиентского устройства 10 и для передачи таких данных в форме индикатора 29 профиля в сервер безопасности 16 (фиг. 2-В). Примерные характеристики аппаратного обеспечения могут включать в себя, например, тип устройства соответствующего клиентского устройства (например, смартфон, ПК, планшетный компьютер, термостат), характеристику идентификации (например, МАС-адрес, IMEI и т.д.), спецификации аппаратного обеспечения различных компонент (например, производитель, модель), индикатор, имеет ли соответствующее клиентское устройство 10 конкретный компонент аппаратного обеспечения (например, камера, микрофон, считыватель отпечатков пальцев, система глобального позиционирования -датчик GPS и т.д.). Другие примерные характеристики аппаратного обеспечения включают в себя объем используемого в данный момент ресурса (например, дросселирование CPU, использование RAM и диска, активное экранное время). Примерные характеристики программного обеспечения включают в себя, среди прочего, тип и версию OS 50, список установленных в данный момент программных приложений и статистические данные, указывающие, насколько каждое приложение используется на соответствующем устройстве. Индикатор 29 профиля может дополнительно включать в себя индикатор текущего географического местоположения клиентского устройства (например, страна, географические координаты и т.д.). В ответ на получение индикатора 29 профиля сервер 16 безопасности может хранить такую информацию в базе 19 данных профилей клиента. В некоторых вариантах осуществления информация профиля клиента используется для выбора клиентского устройства из множества клиентских устройств для служб безопасности, таких как сбор криминалистических данных, как описано ниже. Например, такая информация профиля может предоставлять подсказки, какие устройства могут быть заражены вредоносным программным обеспечением.
[0053] Фиг. 10 показывает примерную последовательность этапов, выполняемых DNS-сервером 14 согласно некоторым вариантам осуществления настоящего изобретения. Последовательность этапов 282-284 перехватывает запросы DNS. В некоторых вариантах осуществления такие запросы помечаются идентификатором клиента (см. описание выше в отношении фиг. 7). Когда запрос получен, этап 286 идентифицирует клиентское устройство, на котором был создан соответствующий запрос, согласно ID 25 клиента (см., например, фиг. З). На дополнительном этапе 288 DNS-сервер 14 может искать профиль клиента соответствующего клиентского устройства в базе 19 данных профилей.
[0054] Этап 290 может дополнительно определять, удовлетворено ли условие активации службы для текущего запроса DNS и соответствующего клиентского устройства. Иначе говоря, на этапе 290 сервер 14 может селективно активировать службу безопасности для некоторых клиентов и/или некоторых доменных имен. Выбор клиента может происходить в соответствии с данными профиля клиента, извлеченными из базы 19 данных. В альтернативном варианте осуществления, в котором прокси 56 DNS отправляет данные профиля клиента, кодированные в тегированном запросе 26 DNS, сервер 14 может выбирать соответствующее клиентское устройство в соответствии с такими данными. В еще одном варианте осуществления этапы 288-290 выполняются сервером 16 безопасности, передающим затем список выбранных клиентских устройств на DNS-сервер 14.
[0055] В примерном варианте осуществления сбора криминалистических данных, DNS-сервер 14 может выбирать клиенты, соответствующие определенному типу устройства (например, смартфоны), клиенты из определенного региона или страны (например, Германия), клиенты, работающие под управлением конкретной операционной системы и/или версии (например, Android, iOS 10) и т.д. Другой примерный критерий выбора клиента включает в себя, запускает ли соответствующее клиентское устройство конкретное приложение, например неизвестное или подозрительное программное обеспечение. В одном таком примере HTTP-запросы на доступ к IP-адресам, связанным с конкретными доменными именами и полученным от устройств, на которых запущено определенное отслеживаемое приложение, могут быть копированы или перенаправлены через VPN на сервер 16 безопасности.
[0056] Другие критерии выбора клиента могут включать в себя подсчет клиентских устройств и/или запросов DNS. Например, DNS-сервер 14 может выбирать предварительно определенное количество клиентских устройств в течение каждого временного интервала (например, не более 100 отличных клиентов в секунду) или предварительно определенное количество запросов DNS (например, не более 50 отличных запросов DNS от одного и того же клиента). В варианте осуществления, изображенном на фиг. 5-В, в котором клиентское устройство может селективно перемаршрутизировать определенные коммуникации на сервер 16 безопасности через VPN-туннель в соответствии со значением флага активации службы, другой примерный критерий выбора включает в себя текущую нагрузку службы VPN, выполняющейся на сервере 16 безопасности. В примерном варианте осуществления родительского контроля другой критерий выбора может включать в себя текущего пользователя соответствующего клиентского устройства (например, активировать правила родительского контроля селективно, только когда дети используют устройство). Индивидуальные критерии выбора могут быть комбинированы в сложные критерии, включающие в себя несколько условий (например, 100 запросов DNS, полученных от различных смартфонов в Бельгии и Нидерландах).
[0057] Если условие выбора удовлетворено для клиентского устройства, выдавшего текущий запрос DNS, этап 294 может формулировать помеченный ответ DNS путем установки флага 27 активации службы для указания, что служба безопасности активна (см., например, фиг. 4). В некоторых вариантах осуществления установка флага 27 на активный эффективно выбирает соответствующее клиентское устройство для конкретной службы безопасности, такой как сбор криминалистических данных, родительский контроль и т.д. Такой выбор активируется здесь по запросу DNS, и может быть отключен для последующих запросов, полученных от этого же клиентского устройства.
[0058] Когда условия выбора не удовлетворены для соответствующего клиентского устройства и текущего запроса DNS, этап 296 может формулировать помеченный ответ DNS путем установки флага 27 активации для указания, что служба безопасности неактивна. В альтернативном варианте осуществления этап 296 может формулировать стандартный ответ DNS, в котором флаг 27 активации службы полностью отсутствует. Следующий этап 298 может передавать ответ DNS, формулированный на этапе 294 или 296, на запрашивающее клиентское устройство.
[0059] Вышеприведенное описание показывает примерные компьютерные программы, выполняющие различные способы согласно некоторым вариантам осуществления настоящего изобретения. Такие компьютерные программы обычно выполняются многоцелевым аппаратным процессором, однако квалифицированному специалисту понятно, что раскрытые в данном документе способы и алгоритмы могут быть реализованы с использованием специализированных компонентов аппаратного обеспечения, таких как специализированная интегральная схема (ASIC) или программируемая пользователем вентильная матрица (FPGA). Фиг. 11 иллюстрирует примерную конфигурацию аппаратного обеспечения компьютерной системы, программируемой для выполнения описанных в данном документе способов и алгоритмов. Фиг. 11 показывает общую компьютерную систему, которая может представлять собой, например, любое из клиентских устройств 10а-f, DNS-сервер 14 и сервер 16 безопасности, среди прочего. Квалифицированному специалисту понятно, что конфигурация аппаратного обеспечения некоторых клиентских систем (например, мобильные телефоны, умные часы) может несколько отличаться от показанной на фиг. 11 конфигурации.
[0060] Изображенная компьютерная система содержит набор физических устройств, включая аппаратный процессор 32 и блок 34 памяти. Процессор 32 содержит физическое устройство (например, микропроцессор, многоядерная интегральная схема, выполненная на полупроводниковой подложке и т.д.), конфигурированное для выполнения вычислительных и/или логических операций с набором сигналов и/или данных. В некоторых вариантах осуществления такие операции доставляются процессору 32 в форме последовательности инструкций процессора (например, машинный код или кодирование другого типа). Блок 34 памяти может содержать энергозависимый машиночитаемый носитель (например, DRAM, SRAM), хранящий инструкции и/или данные, к которым осуществляется доступ или которые генерируются процессором 32.
[0061] Устройства 36 ввода могут включать в себя, среди прочего, компьютерные клавиатуры, мыши и микрофоны, включая соответствующие аппаратные интерфейсы и/или адаптеры, позволяющие пользователю вводить данные и/или инструкции в соответствующую компьютерную систему. Устройства 38 вывода могут включать в себя устройства отображения, такие как мониторы и динамики, среди прочего, а также аппаратные интерфейсы/адаптеры, такие как графические карты, позволяющие изображенной компьютерной системе передавать данные пользователю. В некоторых вариантах осуществления устройства 36 ввода и устройства 38 вывода совместно используют общее аппаратное обеспечение, как в случае устройств с сенсорным экраном. Запоминающие устройства 42 включают в себя машиночитаемые носители, обеспечивающие энергонезависимое хранение, чтение и запись программных инструкций и/или данных. Примеры запоминающих устройств 42 включают в себя магнитные и оптические диски и устройства флэш-памяти, а также съемные носители, такие как диски и приводы CD и/или DVD. Набор сетевых адаптеров 44 вместе со связанным коммуникационным интерфейсом (интерфейсами) позволяет изображенной компьютерной системе подключаться к компьютерной сети и/или к другим устройствам/компьютерным системам. Контроллер-концентратор 40 представляет собой множество системных, периферийных шин и/или шин набора микросхем, и/или всех других схем, обеспечивающих коммуникацию между процессором 32 и устройствами 34, 36, 38, 42 и 44. Например, контроллер-концентратор 40 может включать в себя, среди прочего, контроллер памяти, контроллер ввода/вывода (I/O) и контроллер прерываний. В другом примере контроллер-концентратор 40 может содержать процессор 32 соединения северного моста к памяти 34 и/или процессор 32 соединения южного моста к устройствам 36, 38, 42 и 44.
[0062] Вышеописанные примерные системы и способы позволяют селективно выполнять операции компьютерной безопасности на разнородных клиентах, таких как персональные компьютеры и смартфоны, а также на устройствах Интернета Вещей (IoT), таких как телевизоры, термостаты, холодильники и носимые устройства, среди прочего. Селективность в данном документе обозначает возможность точного целенаправленного выбора устройства из множества клиентских устройств и выполнения некоторой процедуры безопасности на соответствующем устройстве, в отличие от неизбирательного выполнения соответствующей процедуры безопасности на множестве клиентских устройств. В некоторых вариантах осуществления выбор целевых устройств централизован на удаленной серверной компьютерной системе, коммуникативно связанной с множеством клиентских устройств.
[0063] В некоторых вариантах осуществления приложение безопасности исполняется на каждом клиентском устройстве и содержит прокси службы доменных имен (DNS), перехватывающий и обрабатывающий сообщения DNS, которыми обмениваются соответствующее клиентское устройство и удаленный DNS-сервер. Для ясности и простоты в приведенном выше раскрытии используется термин "служба доменных имен" для обозначения обычной DNS, используемой в настоящее время в Интернет-коммуникациях. Однако квалифицированному специалисту понятно, что описанные в данном документе способы и системы могут быть легко адаптированы к любому другому формату и протоколу для преобразования доменного имени в сетевой адрес или наоборот.
[0064] В некоторых вариантах осуществления компонент прокси DNS тегирует исходящие запросы DNS, адресованные DNS-серверу, идентификатором соответствующего клиентского устройства. В ответ DNS-сервер может отвечать помеченным ответом DNS, содержащим флаг активации службы. В некоторых вариантах осуществления DNS-сервер выбирает конкретное клиентское устройство для процедуры безопасности путем установки флага активации службы на предварительно определенное значение при выдаче ответа DNS соответствующему клиенту. В свою очередь, приложение безопасности, исполняемое на клиенте, может интерпретировать некоторые значения флага активации службы как триггер для исполнения соответствующей процедуры безопасности. Различные значения флага могут запускать различные процедуры безопасности. В альтернативном варианте осуществления наличие флага активации службы в ответе DNS может запускать процедуры безопасности, тогда как отсутствие такого флага может указывать приложению безопасности не выполнять соответствующие процедуры.
[0065] Ввиду вышеизложенного, примерные вышеописанные системы и способы обеспечивают достижение селективности клиента на уровне отдельных сообщений DNS. Иначе говоря, процедуры безопасности могут быть разрешены/не разрешены посредством любого отдельного обмена DNS между соответствующим клиентским устройством и DNS-сервером. В некоторых обычных приложениях компьютерной безопасности клиенты выбираются для определенных процедур в соответствии с индивидуальными вариантами клиентской подписки или в соответствии с параметрами конфигурации программного обеспечения. Например, некоторые клиенты могут подписываться на родительский контроль, тогда как другие могут не подписываться. Сходным образом, программное обеспечение безопасности может перенаправлять через VPN-туннель трафик одних клиентов, но не других. Однако такая селективность клиентов обычно предопределена и не изменяется во времени, например, все запросы доступа, поступающие от конкретного клиента, обычно обрабатываются в соответствии с одним и тем же правилом/процедурой. В отличие от таких обычных систем, некоторые варианты осуществления позволяют более гибкий выбор клиента, выполняемый для каждого сообщения DNS. Это позволяет, например, выбрать клиента для конкретной процедуры в соответствии с расписанием, в соответствии с текущей нагрузкой на сервер, в соответствии с доменным именем, к которому клиент пытается получить доступ, в соответствии с текущим географическим положением клиента (например, установка геозон) и др.
[0066] Примерные процедуры безопасности, селективно активизируемые согласно некоторым вариантам осуществления настоящего изобретения, включают в себя, среди прочего, селективный сбор криминалистической информации от клиентов, селективную маршрутизацию трафика через сервер безопасности, родительский контроль (например, селективный мониторинг и/или ограничение доступа определенных клиентов/пользователей к определенному онлайн-контенту), приложение или управления доступом (например, селективный мониторинг и/или ограничение использования клиентом выбранных приложений и/или протоколов коммуникации, таких как Facebook и онлайновый обмен сообщениями).
[0067] Важный класс приложений, обеспечиваемых или поддерживаемых некоторыми вариантами осуществления настоящего изобретения, основан на селективном сборе компьютерных криминалистических данных от клиентов. Такой сбор может быть полезен, например, для своевременного обнаружения возникающих угроз компьютерной безопасности, таких как вредоносный код. Новое вредоносное программное обеспечение появляется постоянно, и при отсутствии информации о его поведении такое программное обеспечение может обходить обычные меры безопасности и быстро распространяться. Устройства 1оТ особенно уязвимы для таких заражений. Поэтому важно собирать как можно больше информации о возникающих заражениях, и в идеале селективно собирать такую информацию от уже зараженных устройств. Некоторый вредоносный код селективно заражает устройства определенного типа (например, мобильные телефоны) и/или устройства, работающие под управлением операционной системы определенного типа (например, AFndroid). Некоторые варианты осуществления обеспечивают возможность такого селективного целенаправленного выбора клиентов и, следовательно, эффективного сбора информации в целях безопасности. В одном таком примере DNS-сервер может выбирать клиентское устройство, соответствующее профилю вероятной цели для конкретного вредоносного кода (например, смартфон из конкретной страны). В ответ, программное обеспечение безопасности, исполняемое на выбранном клиентском устройстве, может делать снимок трафика данных, входящего в/исходящего из соответствующего клиентского устройства. За счет разрешения селективной активации сбора данных для каждого сообщения DNS некоторые варианты осуществления позволяют собирать трафик данных, исходящий к или входящий из определенного представляющего интерес интернет-домена или сетевого адреса (например, подозрительный командно-управляющий сервер).
[0068] Альтернативный вариант сбора данных может перенаправлять на сервер безопасности коммуникацию между выбранным клиентским устройством и подозрительным интернет-доменом или сетевым адресом. Такое перенаправление может быть разрешено, например, с использованием VPN-туннеля. Затем сервер безопасности может анализировать перенаправленный трафик на предмет наличия злонамеренных действий. Перемаршрутизация и инспекция сетевого трафика известны в области компьютерной безопасности. Однако типичные конфигурации осуществляют перемаршрутизацию всего трафика выбранного клиента, обеспечивая тем самым его постоянную защиту от онлайн-угроз. Такая масштабная сеть перемаршрутизации трафика от тысяч защищенных клиентов к небольшому количеству серверов VPN является относительно дорогостоящей с точки зрения затрат на оборудование и вычислительной нагрузки и может негативно влиять на взаимодействие с пользователем на стороне клиента. В отличие от таких обычных систем в некоторых вариантах осуществления настоящего изобретения трафик каждого клиентского устройства может быть селективно перемаршрутизирован через VPN. Например, в варианте осуществления сбора данных только трафик к/от определенных представляющих интерес доменов может быть перенаправлен на серверы VPN. Кроме того, описанные в данном документе системы и способы позволяют производить случайную выборку сетевого трафика от множества клиентских устройств, соответствующих определенному профилю (например, смартфоны и планшетные компьютеры под управлением iOS). Такая случайная выборка может гарантировать, что ни одно конкретное клиентское устройство не будет подвергаться непропорциональному воздействию процедур сбора данных, при этом общее влияние на взаимодействие с пользователем будет значительно меньше, чем в традиционных системах.
[0069] Некоторые варианты осуществления могут использовать помеченный ответ DNS как триггер для сбора других криминалистических данных. В одном таком примере в ответ на помеченный ответ DNS программное обеспечение безопасности может определять параметры текущего состояния соответствующего клиентского устройства (например, получать текущее значение различных переменных OS и/или ключей реестра, делать снимок конкретного раздела памяти и т.д.). Такие данные могут быть переданы на сервер безопасности и использованы в криминалистических расследованиях вместе с данными сетевого трафика.
[0070] Примерный сценарий использования описанных в данном документе систем и способов содержит упреждающее обнаружение шпионского программного обеспечения. В Западной Европе была обнаружена вспышка нового вредоносного кода, поражающего устройства под управлением операционной системы Android. Вредоносный код доставляется через Google Play Store, упакованный как оригинальный инструмент для упорядочивания фотографий. Однако скрытой целью приложения является сбор личных данных пользователя и их отправка на сервер. Технически это считается шпионским программным обеспечением.
Этап I - инициирование подозрения зловредности.
[0071] Клиентские устройства, защищенные согласно некоторым вариантам осуществления настоящего изобретения, отправляют различные запросы DNS и информацию профиля клиента на сервер 14 DNS и/или сервер 16 безопасности (см. фиг. 2-В). Индикатор 29 профиля клиента может включать в себя список приложений, установленных в настоящий момент на устройстве. На основе такой информации обнаруживается установка неизвестного приложения. Кроме того, запись запросов DNS, полученных от этого клиентского устройства, выявляет частые запросы доступа к доменному имени upload application name.serviceprovider.com. Сервер 16 безопасности запускает серию эвристических процедур идентификации вредоносного кода в журналах DNS, обнаруживая, что домен serviceprovider.com зарегистрирован платформой как поставщик служб (PAS) и что запросы DNS для соответствующего домена поступают через относительно регулярные промежутки времени. Эти два факта вызывают подозрение в зловредности, и сервер 16 безопасности решает произвести выборку и/или инспекцию сетевого трафика, которым обмениваются соответствующее клиентское устройство и подозрительный домен.
Этап II - анализ трафика
[0072] Для сбора репрезентативной выборки трафика, сервер 16 безопасности идентифицирует выбранный поднабор клиентских устройств, считающихся репрезентативными для этой угрозы, в соответствии с профилями устройств, хранящимися в базе 19 данных профилей. Например, выбор может быть выполнен в соответствии с текущим местоположением устройств-кандидате в (например, страны Западной Европы) и операционной системой (в данном случае конкретная версия Android). Сервер 16 безопасности может передавать список выбранных устройств на DNS-сервер 14. В ответ DNS-сервер 14 может пометить по меньшей мере некоторые ответы DNS на запросы DNS, содержащие домен serviceprovider.com и полученные от выбранных клиентов, для указания на активацию службы сбора криминалистических данных на соответствующих устройствах. В некоторых вариантах осуществления значение флага 27 активации службы инструктирует программное обеспечение безопасности на принимающем клиентском устройстве перенаправить трафик на serviceprovider.com через VPN на сервер 16 безопасности. DNS-сервер 14 будет отслеживать каждое выбранное клиентское устройство, например, записывать, сколько запросов DNS serviceprovider.com были получены от соответствующего клиентского устройства, и остановит сбор криминалистических данных от соответствующего клиентского устройства, когда будет собрано достаточное количество выборок трафика. Чтобы остановить сбор данных, DNS-сервер 14 может сбросить флаг 27 активации службы для указания, что служба сбора данных неактивна, или может ответить стандартным ответом DNS, в котором вообще отсутствует флаг 27 активации службы.
[0073] В свою очередь, в ответ на получение помеченного ответа DNS, указывающего, что сбор криминалистических данных активен, программное обеспечение безопасности, исполняемое на клиентском устройстве, заменяет реальный IP-адрес, соответствующий serviceprovider.com, на фиктивным IP-адресом. Затем, когда подозреваемый вредоносный код пытается связаться с serviceprovider.com, оно отправит запрос на соединение на фиктивный IP-адрес. Такой запрос может быть перемаршрутизирован через интерфейс VPN клиентского устройства на сервер 16 безопасности. Перемаршрутизация обычно содержит замену фиктивного IP-адреса на соответствующий реальный IP-адрес назначения и переупаковку сетевого трафика в соответствии с протоколом VPN. Некоторые варианты осуществления приложения 54 безопасности дополнительно прикрепляют некоторые метаданные (например, порт назначения, IP-адрес назначения, сетевой протокол, временную метку и т.д.) к перенаправленному трафику.
[0074] В примерном сценарии анализа трафика компонент VPN сервера 16 безопасности регистрирует метаданные, прикрепленные к каждому принятому сетевому пакету, и сохраняет копию полезной нагрузки пакета на диск для последующей проверки. Сам пакет затем пересылается на его истинный IP-адрес назначения. Любой ответный пакет от соответствующего IP-адреса будет перенаправлен обратно на соответствующее клиентское устройство. В некоторых вариантах осуществления компонент VPN сервера 16 безопасности также будет регистрировать входящий трафик, предназначенный для соответствующего клиентского устройства, перехватывая, таким образом, полный обмен между подозреваемым вредоносным программным кодом и его удаленными поставщиками служб.
[0075] Используя некоторые из систем и способов, описанных в данном документе, аналитики компьютерной безопасности смогли собрать следующие типы информации:
- телеметрия для идентификации вспышки нового потенциально вредоносного приложения;
- подозрительный веб-сервис, идентифицированный по подозрительному доменному имени; и
- выборки данных, которыми обмениваются новое неизвестное приложение и подозрительное доменное имя.
[0076] Используя эти данные, аналитическая группа смогла применить эвристические процедуры для определения, что веб-служба в подозрительном домене используется для злонамеренных коммуникаций командно-управляющего типа. Это примерное определение зловредности было выполнено в соответствии со временем и периодичностью обмена пакетами, тем фактом, что сообщения шифрованы, идентификатором владельца ключа шифрования и средним размером полезной нагрузки коммуникации (относительно небольшие пакеты). Другой набор эвристических процедур идентифицировал подозрительный домен как злонамеренный загрузчик (сборщик пользовательских данных) в соответствии с асимметрией обменов (полезная нагрузка пакетов, возникающих на клиентском устройстве, обычно намного больше полезной нагрузки входящих пакетов), и с тем фактом, что такой асимметричный трафик был замечен только на некоторых зараженных клиентах, что предполагает, что соответствующие клиенты каким-то образом были выбраны командно-управляющим сервером как представляющие интерес.
[0077] В данной области техники известны несколько систем и способов использования сообщений DNS для селективного целенаправленного выбора отдельных клиентов для конкретных служб. Однако в обычных системах и способах, как правило, объектом, выполняющим соответствующую службу, является сам DNS-сервер. В примере родительского контроля в ответ на получение запроса DNS, помеченного идентификатором клиента, DNS-сервер может селективно выбирать, возвращать IP-адрес или нет, в соответствии с идентификатором клиента и/или запрошенным доменным именем. В примере балансирования нагрузки DNS-сервер может выбирать среди множества IP-адресов согласно текущему географическому положению запрашивающего клиента.
[0078] В отличие от таких обычных систем, в некоторых вариантах осуществления настоящего изобретения задачи безопасности разделены между программным обеспечением, исполняемым на DNS-сервере, и программным обеспечением, исполняемым на клиентском устройстве. Например, задача выбора клиента для конкретной службы выполняется DNS-сервером, коммуницирующим с запрашивающим клиентским устройством посредством помеченного ответа DNS. В свою очередь, программное обеспечение безопасности, исполняемое на клиенте, фактически выполняет соответствующую службу (например, сбор криминалистических данных, перенаправление трафика на сервер безопасности, родительский контроль и т.д.). У такого разделения задач существует несколько преимуществ. С одной стороны, централизация процесса принятия решений на сервере обеспечивает комплексное управление информацией безопасности и оптимальную скорость реагирования на возникающие угрозы. С другой стороны, выполнение операций безопасности на самом клиенте позволяет повысить точность, сложность и гибкость соответствующих операций. Таким образом, практически любая операция может выполняться на клиенте с использованием при этом преимуществ вышеописанного выбора каждого сообщения DNS. Например, селективное перенаправление сетевого трафика клиента через VPN на сервер безопасности возможно с использованием описанных в данном документе систем и способов, тогда как оно не может быть выполнено одним DNS-сервером, т.е. с использованием обычной модели безопасности, ориентированной на DNS-сервер.
[0079] Хотя приведенное выше описание в основном сосредоточено на вариантах осуществления, в которых программное обеспечение безопасности, такое как прокси 56 DNS и коммуникационный менеджер 58, исполняется на конечном клиентском устройстве (например, смартфон, ПК), в альтернативных вариантах осуществления, по меньшей мере, некоторые из функций прокси 56 DNS и/или менеджера 58 могут быть реализованы на сетевом устройстве, действующем как шлюз к локальной сети, соединяющей несколько клиентских устройств. См., например, шлюз 12 на фиг. 1. В таких конфигурациях шлюз 12 может перехватывать сообщения DNS, входящие в и/или исходящие из локальной сети 13, и может модифицировать их, как показано выше. Когда шлюз 12 предоставляет клиентам адреса локальной сети (например, действуя как DHCP-сервер для локальной сети 13), шлюз 12 различает отдельные клиентские устройства и, следовательно, может тегировать исходящие запросы DNS с помощью соответствующего идентификатора клиента. Кроме того, шлюз 12 находится в удобном положении для перехвата и селективной маршрутизизации других электронных коммуникаций (например, HTTP-запросы) между клиентами в локальной сети и внешними IP-адресами. Следовательно, шлюз 12 может выполнять процедуры безопасности, показанные в данном документе, например, селективно собирать криминалистические данные, выполнять действия родительского контроля и т.д.
[0080] Некоторые варианты осуществления реализуют гибридную конфигурацию, в которой некоторые из клиентских устройств 10а-f исполняют экземпляр приложения 54 безопасности, а другие не исполняют. В одном таком примере шлюз 12 может попытаться автоматически предоставить приложение 54 безопасности всем клиентским устройствам 10а-е, соединенным с локальной сетью 13. Некоторые такие устройства, например термостаты, умные часы и т.д., могут иметь ограниченные аппаратные ресурсы и, следовательно, не могут выполнять полноценный экземпляр приложения 54 безопасности. Некоторые варианты осуществления могут затем использовать программное обеспечение, исполняемое на шлюзе 12, для расширения описанных в данном документе служб безопасности на такие устройства.
[0081] Могут быть получены многочисленные преимущества при выполнении, по меньшей мере, части функциональных возможностей приложения 54 безопасности на шлюзе 12 в отличие от конечных клиентских устройств 10а-f, как показано выше. Одним преимуществом является то, что операции, выполняемые на шлюзе 12 (такие как тегирование запросов DNS, обнаружение флагов активации служб, модифицирование IP-адресов и т.д.), практически не могут быть обнаружены программным обеспечением, исполняемым на клиентских устройствах. Кроме того, вредоносный код, исполняемый на клиентских устройствах, не может мешать или нарушать работу шлюза 12. Другим преимуществом является то, что шлюз 12 может сам по себе эффективно собирать и/или инспектировать трафик данных, т.е. без перенаправления соответствующего трафика на сервер VPN. В одном таком примере шлюз 12 может определять метаданные трафика (например, начальные IP-адреса и IP-адреса назначения, размер пакета, временные метки) и передавать такие метаданные на сервер 16 безопасности для анализа.
[0082] Еще одним преимуществом конфигураций, в которых, по меньшей мере, часть приложения 54 безопасности исполняется на шлюзе 12, является понимание топологии локальной сети. В примере на фиг. 1 DNS-сервер 14 обычно не знает, что клиентские устройства 10а и 10b соединены с одной и той же локальной сетью, но шлюз 12 знает. Следовательно, при перехвате нескольких запросов DNS для одного и того же доменного имени шлюз 12 может информировать сервер 14, исходят ли соответствующие запросы DNS от членов одной и той же сети или нет. Такая информация потенциально имеет отношение к компьютерной безопасности, например, в ситуациях, когда вредоносный код распространяется от одного сетевого узла к другим. В другой примерной ситуации несколько запросов DNS для одного и того же доменного имени, поступающие от устройств разных типов (смартфоны, ПК, телевизоры), соединенных с домашней сетью, могут указывать на законное использование развлекательной онлайновой службы, такой как Spotify или Netflix. В еще одном примере несколько запросов DNS для одного и того же доменного имени, исходящие от устройств, работающих под управлением одной и той же ОС (например, Windows), могут указывать на законную попытку распространения обновления программного обеспечения на несколько устройств в корпоративной сети.
[0083] Однако, выполнение, по меньшей мере, части приложения 54 безопасности на шлюзе 12 в отличие от отдельных клиентских устройств также имеет недостатки. Например, автоматическое обнаружение устройства (т.е. использование программного обеспечения, исполняемого на шлюзе 12 для определения типа устройства каждого клиента 10а-f) может быть ограниченным и затратным с точки зрения вычислений. Хотя некоторая информация о клиенте с указанием типа может быть доступна в форме МАС-адресов и т.д., другие данные, такие как использование ресурсов и установленное программное обеспечение, могут быть полностью недоступны для шлюза 12.
[0084] Специалисту в данной области техники ясно, что вышеупомянутые варианты осуществления могут быть изменены многими способами в пределах объема изобретения. Соответственно, объем изобретения должен определяться нижеследующей формулой изобретения и ее юридическими эквивалентами.