30 января, 2012
Чёрный ящик.
Задача отфильтровать рекламу и прочий шлак может показаться тривиальной – это ж и ребёнок способен отличить «виагру» от нормального письма! На самом деле всё гораздо сложнее – нам ведь надо создать некое подобие искусственного интеллекта, который мог бы это делать. Причем не просто сделать, а соблюсти кучу всяких требований по эффективности, надёжности, совместимости и т.д. Ну, о ситуации с ИИ вы в курсе – много кто кидает пальцы, но реально никто ещё ничего не сделал. Или сделал, но не рассказал :)
Вообще, защита от спама ничем не менее сложная задача, чем защита от малвары. А может быть даже и сложнее (может потому, что я в вирусах больше понимаю?). В спам-бизнесе крутятся миллиарды долларов и над рассылкой всякой хрени работают десятки тысяч достаточно квалифицированных упырей. А эти черти очень изобретательны в своих лингвистических и не только экзерсисах. Тут расчёт прост – сочинить спам, протестировать на самых популярных анти-спамах и пульнуть в рассылку через ботнет. Гы-гы, заказчики-то не знают, что у такого письма жизненный цикл всего-то полчаса-час. 90% рассылки так и не дойдёт до адресата – застрянет в фильтрах, сработавших по обновлению или по статистическому триггеру.
Вот об этом чёрном ящике, который любезно принимает на себя почтовые грехи, фильтрует спам и содержит ваши инбоксы в чистоте и порядке и пойдёт речь.
Для начала – историческая справка. С 2002 г. в нашем антиспаме (KAS) сменилось 4 поколения движков. Сейчас выкатываем пятое. Так что в одном посте обо всём не расскажешь – за 10 лет KAS оброс десятками всяких рюшечек и фишечек. Одних только методов анализа спама – больше десятка. Поэтому начну с технологии «Мёбиус» — как раз под её дебют в новой версии для Exchange.
Вводные. Одна из главных проблем защиты от спама – скорость доставки обновлений. А их в день мы выпускаем до 200 штук. Математика проста – чем быстрее мы проапдейтим клиентов, тем меньше спама «ляжет» в инбоксы юзеров. При этом спам изменяется и передвигается по сети чаще и быстрее малвары.
Так вот, до «Мёбиуса» среднее время доставки обновления составляло безобразных 22 минуты! Это, на минуточку, очень хороший показатель для индустрии. Правда, сюда входило всё-всё, включая многоуровневое тестирование, закачку на публичные серверы и загрузку оттуда, и всевозможные технологические простои. Как результат – 2-3% различие в уровне детекта у нас в спамлабе и на стороне клиента. Проанализировали ситуацию и поняли, что тут отлично вписывается специальное клиент-серверное соединение с пуш-обновлениями. Отсюда и «Мёбиус» — символ неразрывной связи нашего спамлаба и пользователей во имя синхронизации баз данных :)
Как работает «Мёбиус»?
Это лучше всего показать в сравнении с классическим обновлением антиспам-базы.
Есть сервер и есть клиент. Клиент раз в некоторое заданное время спрашивает сервер «Есть чо?» :) Ну, и если «есть чо», загружает апдейт. Казалось бы, что тут можно оптимизировать?
«Мёбиус» состоит из 3 частей: бэкэнд, фронтэнд и клиент. Бэкэнд получает обновление из спамлаба, проводит автоматическое тестирование и закачивает во фронтэнд. Причём он работает не со всеми обновлениями, а только с критичными по сроку доставки – текстовыми и графическими сигнатурами. Таким образом, мы ускоряем процесс — не ждём «тяжелых» апдейтов и уходим от технологических простоев связанных с бизнес-логикой. Фронтэнд держит специальное соединение с заказчиком и как только появляется апдейт – загружает его в продукт. Со стороны продукта апдейт принимает мёбиус-клиент, который это обновление распаковывает, компилирует и подключает. В результате у нас получились почти real-time обновления – разница между их разработкой в спамлабе и подключением в продукте теперь меньше 1 минуты!!
В общем, да – это аналог облака, но сильно оптимизированный под конкретную задачу. По сравнению с классическим облаком у «Мёбиуса» несколько сильных сторон:
- Доставляет апдейты быстрее (обновления «проталкиваются» в продукт, не дожидаясь коннекта по расписанию)
- Работает шустрее (фильтрация спама идёт на стороне клиента – не нужно считать и передавать в облако хэши неклассифицированных писем и потом ждать реакции)
- Лучше защита (антиспам получает данные в исходном виде, а не сжатые хэш-суммы -> больше возможностей для анализа)
- Производительнее и надёжнее (значительно меньше зависит от флуктуаций трафика у заказчика и от системы доставки обычных обновлений)
Чтобы не было недопонимания – то самое «классическое облако» в антиспам-технологиях у нас тоже присутствует. В общем, и тут у нас самая, что ни на есть гибридная защита. Например, UDS (удалённая категоризация письма по специфическим признакам) UDS2 (развитие UDS с оригинальной реализацией фаззи-хэшей для более эффективного детектирования спама) и Content Reputation (дополнение к UDS2 — автоматическое вычисление спам-репутации для разных контентных характеристик). Но это отдельная тема для докторской диссертации – об этом в следующий раз.
Ну и немного фактуры. «Мёбиус» — часть пятого KAS-движка. Сейчас он заступил на боевое дежурство в нашем продукте для Exchange. В планах – интеграция в другие шлюзово-серверные решения — Mail Gateway, Hosted Security и KAS SDK. Планов вставить его в наши персональные продукты пока нет: во-первых, для домашнего пользователя не столь критична подобная степень актуализации базы данных, а во-вторых, мало кто сможет соответствовать требованию «Мёбиуса» держать специальное соединение с фронтэндом. Да и прямо скажу — сам фронтэнд пока тоже к этому не готов :)