СИСТЕМА И СПОСОБЫ ОБНАРУЖЕНИЯ СПАМА С ПОМОЩЬЮ ЧАСТОТНЫХ СПЕКТРОВ СТРОК СИМВОЛОВ
SYSTEM AND METHODS FOR SPAM DETECTION USING FREQUENCY SPECTRA OF CHARACTER STRINGS

Уровень техники
[0001] Изобретение относится к способам и системам для классификации электронных сообщений, в частности к системам и способам для фильтрации незапрашиваемых коммерческих электронных сообщений (спама).
[0002] Незапрашиваемые коммерческие электронные сообщения, известные также как спам, составляют значительную часть трафика коммуникационных линий во всем мире, что оказывает воздействие на службы по обмену сообщениями посредством компьютеров и телефонов. Спам может принимать многие формы, от незапрашиваемых сообщений электронной почты до спамовых сообщений, замаскированных под комментарии пользователей на различных Интернет-сайтах, например на сайтах блогов и социальных сетей. Спам отнимает ценные аппаратные ресурсы и оказывает воздействие на производительность, при этом он воспринимается многими пользователями коммуникационных услуг и/или Интернета как раздражающий и назойливый.
[0003] В случае спама в электронной почте можно использовать программное обеспечение, выполняемое на компьютерной системе пользователя или провайдера услуг электронной почты, для классификации сообщений электронной почты как спам или как не спам и даже для проведения разграничений между разными видами спамовых сообщений (например, предложения продуктов, контент для взрослых, аферы, организуемые по электронной почте). Затем спамовые сообщения могут направляться в специальные папки или удаляться.
[0004] Подобным образом можно использовать программное обеспечение, выполняемое на компьютерных системах провайдера контента, для перехватывания мошеннических сообщений, отправленных на Интернет-сайт, и для предотвращения отображения соответствующих сообщений или для отображения предупреждений пользователям веб-сайта о том, что соответствующие сообщения могут представлять собой спам.
[0005] Для идентификации спамовых сообщений было предложено несколько подходов, включая сопоставление исходного адреса сообщения со списками известных адресов нарушителей или доверенных адресов (получивших специальное название «черный список» и «белый список» соответственно), поиск определенных слов или моделей слов (например, рефинансирование, Viagra, акции) и анализ служебных заголовков сообщений. Способы выделения/сопоставления признаков часто используются в сочетании с методами автоматической классификации данных (например, с байесовской фильтрацией, нейронными сетями).
[0006] Спам часто поступает в виде быстрой последовательности групп сходных сообщений, известных также как волны спама. Форма и содержание спама может меняться существенным образом от одной волны спама к другой, поэтому успешности обнаружения будут способствовать способы и системы, способные быстро распознавать и реагировать на новые волны спама.
Раскрытие изобретения
[0007] Согласно одному аспекту способ включает в себя: использование компьютерной системы для получения целевой строки, которая образует часть электронного сообщения; преобразование целевой строки в целевой сигнал, содержащий последовательность чисел, причем каждый символ целевой строки преобразуется в число указанной последовательности чисел; определение критерия пригодности строки согласно целевой строке и предварительную фильтрацию совокупности ссылочных строк по критерию пригодности строки для формирования группы строк-кандидатов. В ответ на отбор строк-кандидатов компьютерную систему затем используют для выполнения сравнения частотного спектра целевого сигнала и частотного спектра, определенного для строки-кандидата из группы строк-кандидатов, и определения по результату этого сравнения, является или не является электронное сообщение спамом.
[0008] Согласно другому аспекту компьютерная система включает в себя по меньшей мере процессор, запрограммированный так, чтобы: получить целевую строку, которая образует часть электронного сообщения; преобразовать целевую строку в целевой сигнал, содержащий последовательность чисел, причем каждый символ целевой строки преобразуется в число указанной последовательности чисел; в ответ на получение целевой строки - определить критерий пригодности строки согласно целевой строке; и выполнить предварительную фильтрацию совокупности ссылочных строк по критерию пригодности строки для формирования группы строк-кандидатов. Кроме того, процессор запрограммирован так, чтобы выполнить сравнение частотного спектра целевого сигнала и частотного спектра, определенного для строки-кандидата из группы строк-кандидатов, и определить по результату этого сравнения, является или не является электронное сообщение спамом.
[0009] Согласно еще одному аспекту способ включает в себя: использование компьютерной системы для получения электронного сообщения; извлечение целевой строки из электронного сообщения; передачу целевой строки антиспам-серверу и получение целевой метки, указывающей на то, является или не является электронное сообщение спамом, причем целевую метку определяют на антиспам-сервере. Определение целевой метки включает в себя: использование антиспам-сервера для преобразования целевой строки символов в целевой сигнал, содержащий последовательность чисел, причем каждый символ целевой строки преобразуется в число указанной последовательности чисел; определение критерия пригодности согласно целевой строке; предварительную фильтрацию совокупности ссылочных строк по критерию пригодности для формирования группы строк-кандидатов; в ответ на отбор строк-кандидатов - выполнение сравнения частотного спектра целевого сигнала и частотного спектра, определенного для строки-кандидата из группы строк-кандидатов; определение по результату этого сравнения, является или не является электронное сообщение спамом.
[0010] Согласно одному из аспектов способ включает в себя: использование компьютерной системы для получения целевой строки, которая образует часть электронного сообщения; преобразование целевой строки в целевой сигнал, содержащий последовательность чисел, причем каждый символ целевой строки преобразуется в число указанной последовательности чисел; определение критерия пригодности строки согласно целевой строке и предварительную фильтрацию совокупности ссылочных строк по критерию пригодности строки для формирования группы строк-кандидатов. В ответ на отбор строк-кандидатов компьютерную систему затем используют для определения межстрочного расстояния, отделяющего целевую строку от строки-кандидата из группы строк-кандидатов, при этом межстрочное расстояние определяют по первой амплитуде частотного спектра целевого сигнала и по второй амплитуде частотного спектра, определенного для строки-кандидата, и для определения по результату этого сравнения, является или не является электронное сообщение спамом.
[0011] Согласно еще одному аспекту способ включает в себя: использование компьютерной системы для получения целевой строки, которая образует часть электронного сообщения; преобразование целевой строки в целевой сигнал, содержащий последовательность чисел, причем каждый символ целевой строки преобразуется в число указанной последовательности чисел; определение частотного спектра целевого сигнала. Способ дополнительно включает в себя выполнение сравнения частотного спектра целевого сигнала и частотного спектра, определенного для ссылочной строки, выбранной из множества ссылочных строк, и определение по результату этого сравнения, является или не является целевое сообщение спамом.
Краткое описание чертежей
[0012] Изложенные выше аспекты и преимущества настоящего изобретения будут более понятными при прочтении следующего подробного описания со ссылками на чертежи, на которых:
[0013] на фиг. 1 изображена иллюстративная антиспам-система согласно некоторым вариантам осуществления настоящего изобретения;
[0014] на фиг. 2 изображена иллюстративная конфигурация аппаратного обеспечения серверной компьютерной системы согласно некоторым вариантам осуществления настоящего изобретения;
[0015] на фиг. 3-А изображена иллюстративная транзакция по обнаружению спама, осуществляемая между клиентским компьютером и антиспам-сервером, согласно некоторым вариантам осуществления настоящего изобретения;
[0016] на фиг. 3-В изображена иллюстративная транзакция по обнаружению спама, осуществляемая между контент-сервером и антиспам-сервером, согласно некоторым вариантам осуществления настоящего изобретения;
[0017] на фиг. 4 изображен иллюстративный целевой индикатор целевого сообщения, при этом индикатор включает в себя целевую строку и дополнительные данные для идентификации спама, согласно некоторым вариантам осуществления настоящего изобретения;
[0018] на фиг. 5 изображена схема иллюстративного множества приложений, выполняемых на антиспам-сервере, согласно некоторым вариантам осуществления настоящего изобретения;
[0019] на фиг. 6 изображен иллюстративный целевой сигнал и иллюстративный целевой спектр, связанные с целевой строкой, согласно некоторым вариантам осуществления настоящего изобретения;
[0020] на фиг. 7 изображено иллюстративное приложение-детектор спама, работающее на антиспам-сервере, показанном фиг. 1, согласно некоторым вариантам осуществления настоящего изобретения;
[0021] на фиг. 8 изображена группа кластеров, представленных в гиперпространстве признаков, где каждый кластер включает в себя коллекцию подобных элементов, согласно некоторым вариантам осуществления настоящего изобретения;
[0022] на фиг. 9 изображена иллюстративная последовательность этапов, выполняемых детектором спама, показанном на фиг. 7, согласно некоторым вариантам осуществления настоящего изобретения;
[0023] на фиг. 10-А изображен результат эксперимента на компьютере, включающего в себя определение времени вычислений, необходимого для преобразования целевой строки в целевые сигналы, в виде функции от длины строки тестовых строк;
[0024] на фиг. 10-B-C-D изображены результаты эксперимента на компьютере, включающего в себя определение времени вычислений, необходимого для генерации целевых спектров для коллекции целевых строк, в виде функции от длины строки тестовых строк;
[0025] на фиг. 10-Е изображен результат эксперимента на компьютере, включающего в себя определение времени вычислений, необходимого для выполнения присваивания кластеров в коллекции тестовых строк, как функции от количества разных символов в тестовых строках;
[0026] на фиг. 11 изображен график зависимости длины строки от индикатора временной отметки для коллекции реальных комментариев в блогах, включающих в себя как спам, так и не спам;
[0027] на фиг. 12 изображен график зависимости количества различных символов от индикатора временной отметки для коллекции реальных комментариев в блогах, включающих в себя как спам, так и не спам.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
При ознакомлении со приведенным ниже описанием необходимо иметь в виду, что все упоминаемые соединения между конструкциями могут представлять собой прямые рабочие соединения или опосредованные рабочие соединения, осуществляемые через промежуточные конструкции. Множество элементов включает в себя один или более элементов. Любое упоминание элемента следует понимать как относящееся по меньшей мере к одному элементу. Группа элементов включает в себя по меньшей мере два элемента. Если это не оговаривается отдельно, этапы любого описываемого способа не обязательно должны выполняться точно в описанном порядке. Первый элемент (например, данные), полученный из второго элемента, охватывает первый элемент, равный второму элементу, а также первый элемент, сгенерированный в результате обработки второго-элемента и, возможно, другие данные. Определение или принятие решения по параметру охватывает определение или принятие решения по указанному параметру и, возможно, по другим данным. Если не указано иное, индикатором некоторой величины/данных может быть сама эта величина или сами эти данные, или же некоторый индикатор, отличный от этой величины/данных. Компьютерные программы, описанные в некоторых вариантах осуществления настоящего изобретения, могут быть автономными программными сущностями или же частями (например, подпрограммами, объектами кода) других компьютерных программ. Если не указано иное, термин «спам» не ограничивается спамом в электронной почте и охватывает также такие электронные сообщения, как, например, ненадежный или незапрашиваемый коммерческий контент, генерируемый пользователями, в том числе, в виде комментариев в блогах, обсуждения на форумах, статей на вики-сайтах, откликов покупателей, сообщений на сайтах социальных сетей, мгновенных сообщений, а также телефонных SMS- и MMS-сообщений. Машиночитаемые носители охватывают постоянные носители информации, например магнитные, оптические и полупроводниковые носители (например, жесткие диски, оптические диски, устройства флэш-памяти, динамические запоминающие устройства с произвольной выборкой), а также линии связи, например электропроводные кабели и каналы волоконно-оптической связи. Согласно некоторым вариантам осуществления настоящее изобретение включает в себя, помимо прочего, компьютерные системы, содержащие аппаратные средства, запрограммированные для выполнения описанных в этом документе способов, а также машиночитаемые носители, на которых закодированы команды для выполнения способов, описанных в этом документе.
[0028] Приведенное ниже описание иллюстрирует варианты осуществления изобретения путем примера и не имеет ограничительного смысла.
[0029] На фиг. 1 изображена иллюстративная антиспам-система согласно некоторым вариантам осуществления настоящего изобретения. Система 10 включает в себя группу контент-серверов 12а-b, антиспам-сервер 16 и группу клиентских систем 14а-b. Контент-серверы 12а-b могут представлять собой веб-серверы, на которых размещают и/или которые доставляют онлайн-контент, например, среди прочих, личные и корпоративные веб-сайты, блоги, сайты социальных сетей, сайты онлайн-развлечений. Другие контент-серверы 12a-b могут представлять собой серверы электронной почты, обеспечивающие доставку электронных отправлений клиентским системам 14а-b. Клиентские системы 14а-b могут представлять собой компьютеры конечных пользователей, каждый из которых имеет процессор, память и накопитель и работает в операционной системе, например Windows, MacOS или Linux. Некоторые клиентские компьютерные системы 14а-b могут представлять собой мобильные вычислительные и/или коммуникационные устройства, например планшетные компьютеры, мобильные телефоны или карманные персональные компьютеры. В некоторых вариантах осуществления клиентские системы 14а-b могут представлять отдельных пользователей или же несколько клиентских систем могут принадлежать одному и тому же пользователю. Антиспам-сервер 16 может включать в себя одну или более компьютерных систем. Контент-серверы 12а-b, клиентские системы 14а-b и антиспам-сервер 16 соединены сетью 18. Сеть 18 может быть территориально распределенной сетью, как, например, Интернет, при этом части сети 18 могут также включать в себя локальную вычислительную сеть.
[0030] На фиг. 2 изображена иллюстративная конфигурация аппаратного обеспечения серверной компьютерной системы, например антиспам-сервера 16. В некоторых вариантах осуществления сервер 16 включает в себя процессор 20, блок 22 памяти, множество устройств 24 хранения и контроллер 26 коммуникационного интерфейса, соединенные между собой множеством шин 28.
[0031] В некоторых вариантах осуществления процессор 20 включает в себя физическое устройство (например, многоядерную интегральную схему), конфигурированное для выполнения вычислительных и/или логических операций с множеством сигналов и/или данных. В некоторых вариантах осуществления такие логические операции передают процессору 20 в форме последовательности команд процессора (например, в машинном коде или в другом виде программного обеспечения). Блок 22 памяти может включать в себя машиночитаемый носитель (например, запоминающее устройство с произвольной выборкой), в котором хранятся данные/сигналы, полученные или сгенерированные процессором 20 в ходе выполнения команд. Устройства 24 хранения включают в себя машиночитаемые носители, обеспечивающие энергонезависимое хранение, чтение и запись команд программного обеспечения и/или данных. Иллюстративные устройства 24 хранения включают в себя магнитные и оптические диски, полупроводниковые (например, флэш-память) устройства памяти, а также съемные носители, например диски CD и/или DVD и накопители. Контроллер 26 коммуникационного интерфейса обеспечивает возможность соединения системы сервера 16 с сетью 18 и/или с другими машинами/компьютерными системами. В типичном случае контроллеры 26 коммуникационного интерфейса включают в себя сетевые адаптеры. Шины 28 в совокупности представляют собой группу системных и периферийных шин, шин микропроцессорных наборов и/или всех прочих схем, обеспечивающих взаимосвязь устройств 20-26 системы сервера 16. Например, шины 28 могут включать, среди прочих, «северный мост», соединяющий процессор 20 с памятью 22, и/или «южный мост», соединяющий процессор 20 с устройствами 24-26.
[0032] В некоторых вариантах осуществления каждая клиентская система 14а-b включает в себя приложение для чтения документов (например, веб-браузер, программу для чтения электронной почты, медиа-проигрыватель), которое может представлять собой компьютерную программу, используемую для дистанционного доступа к данным, хранящимся на контент-серверах 12а-b. Когда пользователь обращается к онлайн-документу, например к веб-странице, или получает электронное сообщение, например сообщение электронной почты, данные, связанные с документом/сообщением, передаются через части сети 18, находящиеся между соответствующим контент-сервером и клиентской системой 14. В некоторых вариантах осуществления приложение для чтения получает данные документа, преобразует их в визуальную форму и показывает их пользователю. Некоторые варианты осуществления приложения для чтения могут также дать пользователю возможность взаимодействовать с отображаемым контентом. В случае электронной почты клиентская система 14а-b может включать в себя специализированное программное обеспечение, конфигурированное для классифицирования входящей электронной почты по отдельным категориям из группы категорий (например, спам, надежные сообщения, другие разнообразные классы и подклассы).
[0033] В некоторых вариантах осуществления контент-серверы 12а-b конфигурированы для получения контента, сгенерированного пользователем (например, статей, записей в блогах, загрузок медиафайлов, комментариев и т.д.) из группы пользователей, и для организации, форматирования и доставки такого контента третьим лицам по сети 18. Часть сгенерированных пользователем данных, полученных серверами 12а-b, может содержать электронные сообщения, которые могут включать в себя незапрашиваемые сообщения (спам). Примерами таких электронных сообщений (называемых далее «целевые сообщения» или «целевые отправления») являются, среди прочего, сообщения электронной почты, комментарии в блогах, сообщения на сайтах социальных сетей и комментарии, отправленные на веб-сайты развлечений и/или новостей.
[0034] В некоторых вариантах осуществления контент-серверы 12а-b могут включать в себя компоненты программного обеспечения, конфигурированные для обработки целевых сообщений, полученных от пользователей, с целью обнаружения спама. При обнаружении спамовые сообщения (например, мошеннические комментарии в блогах и т.п.), могут блокироваться и/или может предотвращаться их отображение на соответствующем веб-сайте. Программное обеспечение для обработки спама может выполняться на контент-серверах 12а-b в виде сценариев, выполняемых со стороны сервера. Такие сценарии могут быть интегрированы в виде подключаемых модулей в более крупные, пакеты сценариев, например в виде подключаемого модуля (модулей) для таких платформ для онлайн-публикации, как Wordpress или Drupal. В некоторых вариантах осуществления в целях обнаружения спама серверы 12а-b могут быть конфигурированы для выполнения совместной транзакции по обнаружению спама с антиспам-сервером 16, как подробно описано ниже.
[0035] В некоторых вариантах осуществления антиспам-сервер 16 конфигурирован для выполнения совместной транзакции по обнаружению спама с контент-серверами 12а-b и/или клиентскими системами 14а-b. На фиг. 3-А изображен иллюстративный обмен данными между сервером 16 и клиентской системой 14 в варианте осуществления, конфигурированном для обнаружения спама в электронной почте. Клиентская система 14 может получать сообщения электронной почты от почтового сервера по сети 18. После получения сообщения электронной почты клиентская система 14 может отправить целевой индикатор 40, который включает в себя данные для идентификации спама, связанные с сообщением электронной почты, на антиспам-сервер 16 и может получить в ответ целевую метку 50, указывающую на то, является ли соответствующее сообщение электронной почты спамом. Клиентская система 14 затем может поместить сообщение в подходящую категорию сообщений (например, спам или надежное сообщение электронной почты).
[0036] На фиг. 3-В изображен иллюстративный обмен данными между антиспам-сервером 16 и контент-сервером 12 в варианте осуществления, конфигурированном для обнаружения спама, сгенерированного пользователем и полученного сервером 12, например, среди прочих, спама в блоге или спама, опубликованного на сайте социальной сети. После получения целевого сообщения, например, в результате отправки пользователем комментария на веб-сайт, размещенный на сервере 12, сервер 12 может отправить целевой индикатор 40, который включает в себя данные для идентификации спама, извлеченные из целевого сообщения, на антиспам-сервер 16 и получить в ответ целевую метку 50, указывающую на то, является ли целевое сообщение спамом.
[0037] На фиг. 4 изображен иллюстративный целевой индикатор целевого сообщения согласно некоторым вариантам осуществления настоящего изобретения. Целевой индикатор 40 включает в себя идентификатор 41 объекта (например, ярлык, хеш-код), уникально идентифицирующий целевое сообщение, и целевую строку 42, которая включает в себя текстовую часть целевого сообщения, например текстовую часть комментария в блоге. В некоторых вариантах осуществления целевая строка 42 включает по существу весь текст целевого сообщения. Если целевое сообщение включает в себя несколько текстовых частей, то целевая строка 42 может включать в себя конкатенацию текстовых частей; в альтернативном варианте для каждой текстовой части может быть получена отдельная целевая строка 42. В некоторых вариантах осуществления целевая строка 42 включает в себя отрезок текстовой части целевого сообщения, отрезок, имеющий предварительно заданную длину строки (например, 128 последовательных символов).
[0038] Некоторые варианты осуществления целевого индикатора 40 помимо целевой строки 42 могут включать в себя другие данные для идентификации спама, соответствующие целевому сообщению. В примере на фиг. 4 целевой индикатор 40 включает в себя индикатор 44 имени пользователя, указывающий на имя (например, личное имя, псевдоним, никнейм, логин, имя аватара, маркер имени и т.п.), предоставленное отправителем целевого сообщения, индикатор 46 адреса, указывающий место отправки (например, исходный IP адрес) целевого сообщения, и временную отметку 48, указывающую на момент в реальном времени (например, дату и время), когда целевое сообщение было отправлено.
[0039] В некоторых вариантах осуществления целевая метка 50 может включать в себя идентификатор объекта, например идентификатор 41, и индикатор статуса наличия спама в целевом сообщении. Целевая метка 50 эффективно указывает на то, является ли целевое сообщение спамом, в соответствии с оценкой, выполненной антиспам-сервером 16, как подробно описано ниже.
[0040] На фиг. 5 изображена схема иллюстративного множества приложений, выполняемых на антиспам-сервере 16, согласно некоторым вариантам осуществления настоящего изобретения. Приложения включают в себя детектор 32 спама и программу 34 связи, связанную с детектором 32 спама. Приложения 32 и 34 могут представлять собой автономные компьютерные программы или же быть частями более крупных пакетов программного обеспечения, реализующих, например, такие услуги в области компьютерной безопасности, как обнаружения вредоносных программ. В некоторых вариантах осуществления на антиспам-сервере 16 размещают также базу 30 данных (БД) антиспама. В альтернативном варианте база данных антиспама может находиться на компьютерной системе, отличной от сервера 16, но связанной с сервером 16 через сеть 18, или же на машиночитаемом носителе, связанном с сервером 16.
[0041] База 30 данных антиспама включает в себя хранилище информации, относящейся к сетевому спаму. В некоторых вариантах осуществления база 30 данных включает в себя совокупность ссылочных спектров, при этом каждый спектр рассчитан для некоторого электронного сообщения так, как описано ниже. База 30 данных может включать в себя данные по электронным сообщениям, как являющимся, так и не являющимся спамом, например по комментариям в блогах, комментариям, опубликованным на сайтах социальных сетей и т.д. Помимо данных о спектрах каждая запись, хранящаяся в базе 30 данных, может включать в себя дополнительную информацию, например строку 42 из соответствующего сообщения, индикатор времени, например временную отметку 48, и индикаторы длины строки, количество различных символов и спектральный показатель строки 42; иллюстративные применения таких величин описаны ниже. В некоторых вариантах осуществления для каждого спектра в базе 30 данных может храниться индикатор присваивания кластера, указывающий на кластер сообщений, к которому соответствующая строка присвоена в данный момент. В базе 30 данных может также храниться структура данных, включающая в себя группу идентификаторов, например идентификатор 41 объекта, при этом каждый идентификатор объекта уникальным образом связан с электронным сообщением, а также преобразование, связывающее каждый спектр с электронным сообщением, для которого он был рассчитан, что позволяет детектору 32 спама выборочно подбирать ссылочные спектры в базе 30 данных, как показано ниже.
[0042] На фиг. 6 изображены иллюстративный целевой сигнал и иллюстративный целевой спектр, вычисленные для целевой строки 42, согласно некоторым вариантам осуществления настоящего изобретения. Целевой сигнал 52 включает в себя последовательность чисел, при этом каждое число указывает на символ строки 42. Чтобы сформировать целевой сигнал 52, может использоваться соответствие один-к-одному (т.е. биективная функция), преображающее символы в числа. В некоторых вариантах осуществления для каждого символа строки 42 целевой сигнал 52 включает код ASCII для соответствующего символа.
[0043] Целевой спектр 60 включает в себя последовательность чисел, при этом последовательность имеет вид представления целевого сигнала 52 в форме частотного интервала (например, преобразования Фурье). В некоторых вариантах осуществления положение выбранного числа в последовательности указывает на частоту f, тогда как само число A(f) может указывать на амплитуду или интенсивность соответствующего частотного компонента сигнала 52. В некоторых вариантах осуществления для вычисления целевого спектра 60 по целевому сигналу 52 используют алгоритм дискретного преобразования Фурье, например быстрое преобразование Фурье.
[0044] В некоторых вариантах осуществления программа 34 связи конфигурирована для управления связью с клиентскими системами 14а-b и/или контент-серверами 12a-b. Например, программа 34 может устанавливать соединения по сети 18, отправлять и получать такие данные, как целевые индикаторы и целевые метки в клиентские системы 14а-b и контент-серверы 12а-b и от них.
[0045] На фиг. 7 изображена схема иллюстративного детектора спама, работающего на антиспам-сервере 16, согласно некоторым вариантам осуществления настоящего изобретения. Детектор 32 спама включает в себя программу 36 управления спектрами и средство 38 кластеризации, связанное с программой 36 управления спектрами. Детектор 32 спама может получать целевой индикатор 40 целевого сообщения от программы 34 связи (см. фиг. 5 и 3а-b) и ссылочный спектр 64 из базы 30 данных антиспама, при этом указанный детектор, в свою очередь, выводит целевую метку 50 в программу 34 связи для ее отправки клиентской системе 14 или контент-серверу 12, которые инициировали соответствующую транзакцию по обнаружению спама.
[0046] В некоторых вариантах осуществления программа 36 управления спектрами конфигурирована для получения целевого индикатора 40 от программы 34 связи, вычисления целевого спектра 60 по данным целевого индикатора 40, выполнения процесса предварительной фильтрации для определения множества пригодных ссылочных спектров 64, для выборочного извлечения ссылочных спектров 64 из базы 30 данных антиспама и передачи спектров 60 и 64 средству 38 кластеризации для сравнения спектров и присваивания кластера. Действие программы 36 управления спектрами описано подробно ниже со ссылкой на фиг. 9.
[0047] В некоторых вариантах осуществления анализ целевого отправления выполняют в гиперпространстве признаков путем анализа расстояний между вектором признаков, соответствующим целевому сообщению, и множеством представительных векторов, при этом каждый представительный вектор определяет прототип отдельной коллекции (кластера) целевых строк. На фиг. 8 изображены три иллюстративных кластера 70а-с, сформированных соответственно векторами 74а-с признаков, в простом двухмерном пространстве признаков с двумя осями d1 и d2. В некоторых вариантах осуществления настоящего изобретения оси d1 и d2 соответствуют различным признакам целевой строки, например двум различным частотам целевого спектра. В некоторых вариантах осуществления каждый кластер 70 содержит целевые строки, которые занимают по существу небольшую область гиперпространства признаков, что означает, что все элементы кластера имеют сходные векторы признаков, например сходные частотные спектры.
[0048] В некоторых вариантах осуществления средство 38 кластеризации конфигурировано для поддержания коллекции кластеров 70, которая представляет собой совокупность электронных сообщений, полученных антиспам-сервером 16 на протяжении истории накопления данных. Сообщения группируют в кластеры по принципу подобия, при этом в идеальном случае кластер содержит идентичные или почти идентичные сообщения. Некоторые кластеры 70 могут представлять собой отдельные волны спама, каждая из которых включает в себя копии или варианты одного и того же спамового сообщения, отправленного множеству клиентов и/или опубликованного на множестве веб-сайтов. Средство 38 кластеризации конфигурировано также для получения целевого спектра 60 и присваивания целевого сообщения, представленного спектром 60, кластеру, на который оно больше всего похоже по принципу подобия спектров. Чтобы выполнить присваивание кластера, средство 38 кластеризации получает от программы 36 управления спектрами множество ссылочных спектров 64, при этом каждый спектр 64 является представителем кластера, и сравнивает спектры 60 и 64, чтобы определить, какой кластер сообщений лучше всего подходит для целевого спектра 60. Более подробно действие средства 38 кластеризации описано ниже со ссылкой на фиг. 9.
[0049] На фиг. 9 изображена иллюстративная последовательность этапов, выполняемых детектором 32 спама (фиг. 7) в рамках транзакции по обнаружению спама, согласно некоторым вариантам осуществления настоящего изобретения. На этапе 102 детектор 32 спама получает целевой индикатор 40 от клиентской системы 14 или контент-сервера 12 через программу 34 связи. Далее на этапе 104 детектор 32 спама извлекает целевую строку 42 в соответствии с целевым индикатором 40 и вычисляет целевой сигнал 52, например, составляя последовательность кодов ASCII для целевой строки 42.
[0050] На этапе 106 определяют частотный спектр 60 целевого сигнала 52 (см. фиг. 6). Этап 106 может также включать в себя вычисление нескольких параметров целевой строки 42, например длины строки и/или количества различных символов, которые будут использованы для предварительной фильтрации коллекции кластеров сообщения на этапе 108. В некоторых вариантах осуществления целевой сигнал 52 дополняют нулями до длины, равной следующей степени числа 2 (например, если целевая строка имеет длину 243, целевой сигнал будет дополнен до длины 256). В некоторых вариантах осуществления детектор 32 спама применяет к целевому сигналу 52 также цифровой фильтр. Иллюстративные цифровые фильтры включают в себя фильтры пропускания низких и/или высоких частот.
[0051] В некоторых вариантах осуществления на этапе 108 детектор 32 спама выполняет операцию предварительной фильтрации, чтобы выбрать в соответствии с множеством критериев предварительной фильтрации подмножество кластеров-кандидатов из полной коллекции, поддержание которой осуществляется средством 38 кластеризации. Благодаря отбору лишь (небольшого) подмножества кластеров для выполнения сравнения спектров детектор 32 спама может эффективно уменьшить вычислительные затраты.
[0052] В некоторых вариантах осуществления детектор 32 спама может использовать при отборе кластера-кандидата в качестве критерия предварительной фильтрации длину строки. Длину строки для целевой строки 42 сравнивают с длиной строки представителя каждого кластера (или со средней длиной строки для элементов соответствующего кластера). Кластер может быть выбран в качестве кандидата для сравнения спектров в том случае, если типичная для него длина строки заключена в пределах предварительно заданного порога по отношению к длине строки для целевой строки 42.
[0053] Альтернативным критерием предварительной фильтрации является количество различных символов. Например, строка «Mississippi» имеет 4 различных символа: М, i, s и р. Для каждого кластера количество различных символов целевой строки 42 сравнивают с количеством различных символов элемента, представляющего соответствующий кластер, или со средним количеством различных символов элементов кластера, при этом кластеры, имеющие сходное с целевой строкой 42 количество различных символов, выбирают в качестве кандидатов для сравнения спектров.
[0054] В некоторых вариантах осуществления критерий предварительной фильтрации включает в себя расчет спектрального показателя в виде следующей функции:
i
где индекс i обозначает номер частоты, а A обозначает амплитуду (или мощность) в спектре Фурье соответствующей строки для частоты с индексом i. Для каждого кластера спектральный показатель [1] целевой строки 42 сравнивают со спектральным показателем элемента, представляющего соответствующий кластер, или со средним показателем для строк кластера, при этом кластеры, имеющие сходные с целевой строкой 42 спектральные показатели, выбирают в качестве кандидатов для сравнения спектров.
[0055] В некоторых вариантах осуществления критерии предварительной фильтрации могут быть объединены. Например, может быть выбрано первое подмножество кластеров, в котором каждый кластер имеет сходную с целевой строкой 42 длину строки. Далее из первого подмножества кластеров выбирают второе подмножество по принципу подобия спектральных показателей.
[0056] Выбрав множество кандидатов для сравнения спектров, для каждого выбранного кластера детектор 32 спама может передать программе 36 управления спектрами команду на выборочный подбор ссылочного спектра 64 в базе 30 данных антиспама, который соответствует сообщению, представляющему соответствующий кластер. Далее для каждого выбранного кластера выполняют циклическую последовательность этапов 110-118. На этапе 110 детектор 32 спама может проверить, были ли уже рассмотрены в процессе сравнения все выбранные кластеры. Если да, то детектор 32 спама переходит к этапу 120, описанному ниже. Если нет, то на этапе 112 оценивают следующий кластер. На этапе 114 целевой спектр 60 сравнивают с ссылочным спектром 64, который представляет соответствующий кластер.
[0057] Этап 114 включает в себя выполнение сравнения целевого спектра 60 и ссылочного спектра 64. В некоторых вариантах сравнение включает в себя расчет межстрочного расстояния путем сравнения амплитуд соответствующих спектров на выбранном множестве частот. Например,
<mrow><msubsup><mi>A</mi><mi>i</mi><mi>T</mi></msubsup></mrow>
<mrow><msubsup><mi>A</mi><mi>i</mi><mi>R</mi></msubsup></mrow>
где индекс i обозначает номер частоты,
обозначает амплитуду целевого спектра для частоты i,
обозначает амплитуду ссылочного спектра для частоты i и α - положительная постоянная (например, α - 1). В некоторых вариантах осуществления все частотные спектры, соответствующие элементам одного и того же кластера, имеют одну и ту же шкалу частот, то есть формула [2] действительно сравнивает частотные компоненты Т и R, вычисленные для одной частоты i. В некоторых вариантах осуществления, если сравниваемые строки не имеют в точности одинаковую длину строки (что ведет к тому, что два соответствующих спектра имеют различные шкалы частот), то сигналы, связанные с соответствующими строками, могут дополняться нулями до длины строки, равной следующей степени числа 2.
<mrow><mtext>S</mtext><mo>=</mo><msubsup><mrow><mtext>{i|A</mtext></mrow><mtext>i</mtext><mtext>T</mtext></msubsup><mo>=</mo><msubsup><mtext>A</mtext><mrow><mtext>max</mtext></mrow><mtext>T</mtext></msubsup><mtext>}</mtext></mrow>
<mrow><msubsup><mtext>A</mtext><mrow><mtext>max</mtext></mrow><mtext>T</mtext></msubsup></mrow>
[0058] Множество S обозначает подмножество частот спектра. В некоторых вариантах осуществления S содержит только одну частоту. Например, когда S={i|f=0}, формула [2] сравнивает только те амплитуды двух спектров, которые соответствуют нулевой частоте. В другом примере
, т.е. формула [2] сравнивает только те амплитуды двух спектров, которые соответствуют частоте, имеющей максимальную амплитуду
в целевом спектре. В некоторых вариантах осуществления S обозначает множество всех частот спектра.
[0059] На этапе 116 (фиг. 9) определяют, соответствует ли целевой спектр 60 спектру 64. В некоторых вариантах осуществления при сопоставлении спектров требуется, чтобы межстрочное расстояние было меньше предварительно заданного порога: D (Т, R)<t. Пороговые величины t могут быть независимыми от сравниваемых строк или же могут изменяться в соответствии с длиной строки и/или с количеством различных символов целевой строки 42. В некоторых вариантах осуществления используются более высокие пороговые величины в случае сравнительно более длинных строк или строк со сравнительно большим количеством различных символов.
[0060] Когда соответствие между спектрами 60 и 64 обнаружено, детектор 32 спама переходит к этапу 118, на котором соответствующий кластер сообщения отмечают как пригодный для принятия целевой строки 42. Если спектры не соответствуют друг другу, то детектор 32 спама возвращается на этап 110. Когда все кластеры сообщения, выбранные на этапе 106, будут оценены путем сравнения спектров, на этапе 120 определяют, пригодны ли какие-либо кластеры для принятия целевой строки 42. Если да, то на этапе 124 детектор 32 спама может вычислить для каждого пригодного кластера индикатор подобия строки и кластера, указывающий на то, насколько целевая строка 42 подобна всем элементам соответствующего кластера. Иллюстративный индикатор подобия строки и кластера для каждого пригодного кластера включает в себя набор тех элементов кластера, у которых ссылочные спектры 64 соответствуют целевому спектру 60.
[0061] Далее на этапе 126 выполняют собственно присваивание целевой строки 42 тому кластеру сообщений, с которым она наиболее сходна. В некоторых вариантах осуществления целевую строку 42 присваивают кластеру с самым высоким индикатором подобия строки и кластера, определенным на этапе 124. Средство 38 кластеризации может обновить данные о присваивании у кластеров, чтобы отразить добавление нового элемента кластера, при этом запись с целевой строкой 42 может быть внесена в базу 30 данных антиспама. В некоторых вариантах осуществления этап 126 включает также определение множества параметров идентификации спама, связанных с кластером, который принимает целевое отправление. Например, в некоторых вариантах осуществления могут вычисляться промежутки времени, проходящие между последовательными временными отметками в рамках одного и того же кластера. Такие параметры могут быть сохранены относительно каждого кластера и могут использоваться, чтобы автоматически определять (без контроля со стороны человека-оператора), включает ли в себя конкретный кластер спам или законные сообщения и можно ли полагать, что конкретный кластер представляет волну спама.
[0062] Если ни один из кластеров не был признан пригодным для принятия целевой строки (этап 120), что указывает на то, что целевая строка 42, вероятно, отличается от любой из уже хранящихся в базе данных антиспама, то на этапе 122 средство 38 кластеризации может создать новый кластер, единственным элементом которого будет целевая строка, и может сохранить запись с целевой строкой в базе 30 данных антиспама.
[0063] На этапе 128 детектор 32 спама может определить целевую метку 50, идентифицируя целевое сообщение как спам или как надежное. В некоторых вариантах осуществления решение, является ли целевое сообщение спамом, принимается в соответствии с присваиванием кластера целевой строке 42. Если строка 42 присваивается кластеру, содержащему преимущественно спамовые сообщения, то целевое отправление также может получить метку «спам».
[0064] В некоторых вариантах осуществления метку 50 определяют в соответствии с определенными признаками для идентификации спама у элементов кластера, которому было присвоено целевое отправление. Одним таким признаком для идентификации спама являются временные отметки 48. Присваивание многочисленных новых элементов за короткий промежуток времени может служить признаком того, что соответствующий кластер содержит волну спамовых сообщений. В некоторых вариантах осуществления детектор 32 спама может определять промежуток времени, проходящий между группой временных отметок, связанных с элементами кластера, например самый короткий промежуток времени, в пределах которого данному кластеру было присвоено 6 элементов, и когда этот промежуток времени опускается ниже предварительно заданного порога, соответствующий кластер помечают как спам.
[0065] Иллюстративные системы и способы, описанные выше, позволяют антиспам-системе обнаруживать незапрашиваемые сообщение в виде сгенерированного пользователем контента в Интернете в форме комментариев в блогах, комментариев, опубликованных на сайтах социальных сетей и т.д., а также в форме сообщений электронной почты, мгновенных сообщений и телефонных SMS- и MMS-сообщений.
[0066] В некоторых вариантах осуществления компьютерная система извлекает целевую строку символов из электронного сообщения, например из комментария в блоге, передает ее на антиспам-сервер и получает от антиспам-сервера индикатор того, является или не является соответствующее электронное сообщение спамом. Если электронное сообщение является спамом, то компьютерная система может блокировать, отправлять в карантин, удалять или любым иным способом ограничивать отображение электронного сообщения и/или может выводить предупреждение пользователю.
[0067] Антиспам-сервер определяет, является или не является электронное сообщение спамом по частотному представлению целевой строки символов, извлеченной из электронного сообщения. Целевую строку преобразуют в сигнал, например последовательность чисел, вычисляют целевой спектр сигнала и сравнивают его с совокупностью ссылочных спектров, чтобы найти соответствие для целевого спектра. В некоторых вариантах осуществления настоящего изобретения используется то наблюдение, что две сходных строки всегда имеют сходные частотные спектры. Поэтому нахождение соответствия между спектром целевой строки и другим спектром, вычисленным для ссылочной строки, может быть признаком того, что целевая строка сходна со ссылочной строкой. В этом случае антиспам-сервер может затем определить, является ли электронное сообщение спамом в зависимости от того, указывает ли ссылочная строка на спам, например принадлежит ли ссылочная строка кластеру электронных сообщений, помеченных как спам.
[0068] Однако существует множество ситуаций, в которых очень сходные спектры принадлежат двум различным строкам. Чтобы избежать ложной положительной идентификации при принятии решения, являются ли две строки сходными, могут рассматриваться другие признаки целевой строки, например временная отметка.
[0069] Сравнение спектров не может считаться надежным способом идентификации сходства строк, когда длина строки превышает определенный порог. В предельном случае очень длинных строк все строки имеют сходные спектры, которые напоминают спектр белого шума. Поэтому системы и способы, описанные здесь, в наибольшей степени подходят для анализа коротких строк, появляющихся в таких электронных сообщениях, как сообщения в блогах и комментарии на сайтах социальных сетей, например Facebook и Twitter.
[0070] Дополнительной проблемой для обнаружения спама путем сравнения строк является намеренное запутывание, когда спамеры могут заменять определенные символы в сообщении другими символами (например, Vi4gra), чтобы избежать обнаружения. Запутывание строки можно преодолевать, применяя к целевому сигналу цифровой фильтр, характеризующийся пропусканием высоких или низких частот. Подвергнутые запутыванию символы могут рассматриваться как «шум»; межстрочное расстояние между двумя версиями одной и той же строки, полученными запутыванием, может быть уменьшено фильтрацией, которая приводит обе эти строки к более сходному виду.
[0071] В некоторых вариантах осуществления настоящего изобретения совокупность организована в виде группы кластеров, при этом каждый кластер записей содержит сходные строки. Вместо выполнения сравнения спектров по всем записям совокупности кластеризация обеспечивает возможность сравнивать с помощью способов и систем, описанных в данном документе, целевую строку только с одной целевой строкой, представляющей кластер, что значительно уменьшает вычислительные затраты.
[0072] Кластеризация может также облегчить автоматическое (неконтролируемое) обнаружение спама. В отличие от обычных способов кластеризации, в которых классификация сообщений в целом осуществляется в процессе контролируемого обучения, например, на обучающей совокупности, предварительно рассортированной на группу заданных классов сообщений, в некоторых вариантах осуществления настоящего изобретения выполняется динамическая кластеризация, когда статус наличия спама неизвестен заранее (т.е. спам или не спам) в кластерах или сообщениях. Кластер может быть автоматически идентифицирован как представляющий спам, если в нем накапливается определенное число элементов за короткий промежуток времени.
[0073] В эксперименте на компьютере совокупность из 22000 комментариев в блогах была классифицирована по кластерам согласно некоторым вариантам осуществления настоящего изобретения. Вычисления выполнялись на компьютерной системе, оборудованной процессором Pentium 4 (3 ГГц) и 1,5 Гб оперативной памяти, в среде Ubuntu OS 10.04. Классификация потребовала приблизительно 9 минут 30 секунд, при этом было получено 1652 кластеров сообщений, имеющих более одного элемента кластера (в среднем 4,59 комментариев на кластер). Для сравнения обычная система кластеризации, в которой используется алгоритм сопоставления, основанный на хешировании и выполняемый на той же аппаратной платформе, создала 1617 кластеров, имеющих более одного элемента, за 7 минут 07 секунд времени вычислений при среднем количестве 4,26 комментария в кластере.
[0074] На фиг. 10А-Е показаны результаты еще одного эксперимента на компьютере, выполненного с коллекцией тестовых строк, у которых длина строки варьировалась от 25 до 3000 символов. Использовалась та же аппаратная конфигурация. На фиг. 10-А показано время, затраченное для преобразования строк в сигналы, представленное как функция от длины строки у тестовых строк. Время вычислений для каждого сигнала варьировалось от нескольких микросекунд до приблизительно половины миллисекунды, при этом наблюдалась приблизительно линейная корреляция между длиной строки и временем.
[0075] На фиг. 10-B-C-D показано время, затраченное для вычисления частотных спектров тестовых строк для некоторых диапазонов длин строк. На фиг. 10-Е показано время, затраченное для вычисления межстрочного расстояния согласно со сравнением спектров (например, по формуле [2]), в зависимости от длины строки у тестовых строк. Время вычислений варьировалось от нескольких микросекунд приблизительно до 500 микросекунд.
[0076] На фиг. 11 изображен график зависимости длины строки от индикатора временной отметки для коллекции из 8676 реальных комментариев в блогах, включающих в себя как спам, так и не спам. На фиг. 12 изображен график зависимости количества различных символов от индикатора временной отметки для другой коллекции из 5351 реальных комментариев в блогах, включающих в себя как спам, так и не спам. Как на фиг. 11, так и на фиг. 12 показана кластеризация спамовых сообщений в соответствии с временными отметками, обеспечивающая автоматическую идентификацию спама, как описано выше.
[0077] Специалисту в данной области техники понятно, что описанные выше варианты осуществления могут быть изменены различными способами без выхода за рамки объема правовой охраны настоящего изобретения. Соответственно объем правовой охраны изобретения определяется пунктами приведенной ниже формулы изобретения и их юридическими эквивалентами.