Как проще всего найти угрозу (будь то фишинг или спам) в почте? Мы уже неоднократно писали о разнообразных технических заголовках и прочих косвенных признаках нежелательного сообщения. Но не стоит забывать и о самом очевидном — тексте письма. Казалось бы, это первое, что имеет смысл анализировать, ведь именно при помощи текста злоумышленники или недобросовестные рекламодатели пытаются манипулировать получателем. Но не все так просто — если раньше с задачей справлялся сигнатурный анализ, то сейчас анализировать приходится при помощи алгоритмов машинного обучения. А для того, чтобы нормально обучить модель классифицировать, ей нужно «скормить» значительные объемы писем, что не всегда реально, потому что нарушает приватность. Но мы нашли выход.
Почему сигнатурный анализ больше не эффективен?
Еще десять лет назад только за текст можно было без особых усилий поймать огромную часть спама. Просто потому, что текст спамерских (да и фишинговых) сообщений практически не менялся. Сейчас все стало гораздо сложнее: злоумышленники пытаются повышать эффективность своих рассылок и используют как крючок миллионы разнообразных инфоповодов: выходы новых видеоигр, сериалов или моделей телефонов, политические новости, чрезвычайные ситуации (характерный пример — обилие фишинга и спама на тему Covid-19). В итоге мы имеем огромное разнообразие тем для рассылок, что усложняет процесс детектирования. Более того — чтобы обойти почтовые фильтры, злоумышленники могут варьировать даже текст внутри одной волны рассылки.
Разумеется, сигнатурные подходы продолжают использоваться. Но их суть сводится к отлову текста, который уже был кем-то встречен и классифицирован как нежелательный или вредоносный. Проактивно работать они не могут — каждое изменение текста рассылки позволяет обходить их. Единственный вариант справиться с этой проблемой — машинное обучение.
В чем проблема с обучением?
В последние годы методы машинного обучения показывают высокие результаты в решении многих задач. Благодаря анализу большого количества данных модели учатся принимать решения и находить совершенно нетривиальные общие признаки в потоке информации. Мы уже рассказывали, как используем нейронные сети, обученные на технических заголовках писем, вместе с DMARC для детектирования почтовых угроз. Так почему нельзя сделать то же самое с текстом?
Как я уже упоминал выше, для обучения модели необходимо огромное количество данных. В данном случае писем, причем не только гарантированно вредоносных, но и вполне легитимных. Без этого не получится научить модель отличать атаку от, например, деловой переписки. С вредоносными письмами проблем нет — у нас есть специальные ловушки для сбора нежелательной корреспонденции (именно на основании пойманных в эти ловушки писем создаются сигнатуры). А вот с легитимными дело обстоит сложнее.
Обычно данные собирают на серверах для централизованного обучения. Но когда мы говорим о текстах, возникают дополнительные сложности: письма могут содержать персональные данные, так что их хранение и обработка в исходном виде просто невозможна. Так как же собрать достаточную для нашей задачи коллекцию легитимных писем?
Federated Learning
Как выяснилось, коллекцию легитимных писем собирать и не обязательно. Мы решаем эту проблему иначе — применяем в своих решениях метод federated learning. Он представляет собой децентрализованное обучение моделей. То есть обучение моделей происходит напрямую на почтовых серверах клиента, без необходимости пересылки содержащих конфиденциальную информацию писем на центральный сервер. Туда отправляются не сами тексты, а только обученные веса этих моделей. Далее из них собирается результирующая версия, которая и используется для анализа потока писем.
На самом деле это несколько упрощенная картина. В реальности все чуть сложнее: прежде чем обученная модель будет использована для реальной работы, она проходит несколько итераций дообучения. То есть на почтовом сервере, по сути, одновременно работают две модели: одна в режиме обучения, а вторая — в боевом режиме. Через несколько итераций отправки на центральный сервер дообученная модель заменяет «боевую».
По весам модели нельзя восстановить текст конкретных писем — так мы добиваемся приватности при обработке текста. Тем не менее обучение производится на реальных письмах, что существенно улучшает качество модели детектирования.
В данный момент этот подход уже применяется в тестовом режиме для классификации спама в продукте Kaspersky Security для Microsft Office 365 и показывает отличные результаты. Так что вскоре сфера его применения будет расширена, и он будет использоваться и в других продуктах для выявления как спама, так и других угроз, таких как фишинг, BEC и тому подобные.