Фільтрація спаму в the bat! версії 3

Фільтрація спаму в The Bat! версії 3.x

Після виходу Бата версії 3.0 всі мої статті, присвячені антіспамним фільтрам в одначасье застаріли. Причина - кажан гілки 3.x поміняла сортувальник, в результаті чого багато старих фільтри перестали працювати. Моє бажання схалтурить і не писати нову статтю наштовхнулося на безперервному струмочок листів від користувачів про те, як пристосувати старі добрі фільтри, які справно працювали на версії 2.x, до нового сортувальника. Тому і назріла необхідність, хоча і з великим запізненням, заповнити цю прогалину, так як за потужністю сортувальника Бат як і раніше не має собі рівних.

Самі схеми фільтрації не зазнала жодних змін.

Її суть можна описати наступним алгоритмом:

Маємо: заспамленності ящик [email protected] (назвемо його основним) на незахищеному і некерованому через web-інтерфейс поштовому сервері провайдера, що не має антіспамной захисту.

Завдання: очистити цей ящик від усякої гидоти без всякого геморою.

На захищеному сервері і відбувається необхідна нам фільтрація. Спамоборона Яндекса або Спамтест Mail.ru відсікає весь спам, а корисні листи залишаються в доп. ящику, звідки ми їх і забираємо Батом.

Спамоборона детектирует спам як масову розсилку. Поодинокі корисні листи не є розсилкою, тому вони і не будуть видалені антіспамной системою поштового сервера і дійдуть до Вас.

В The Bat! на ящику [email protected] потрібно поставити всього 2 фільтра:

Фільтр № 3.1. перенаправлення незнайомих

Фільтр № 3.2. видалення дублікатів

Ось така витончена схема! Її ефективність наближається до 100%.

Якщо бажаєте зменшити потік проходить через доп. ящик спаму, скомбінуйте цю схему зі схемою II. На роботі, де у мене виделенка, я поступив ще радикальніше: між заспамленності ящиком і поштовим клієнтом поставив програму Spampal. Листи, маркуються в темі Spampal'ом прапором ** SPAM ** рубаються відразу після скачування з основного ящика (а це 85-90% всього спаму), інші листи від незнайомих прогоняются через доп. ящик, де Яндекс добиває залишки спаму. Але Spampal може погано працювати на повільних комутованих лініях, де зв'язок з інтернетом постійно рветься, тому для таких випадків найкраще зв'язка "схема III + схема II".

Схема II. Фільтрація пошти на основі полів заголовків листа

М'яка фільтрація заснована на обробці листи по його заголовку. Його ще називають технічним конвертом. В The Bat! заголовок можна побачити, якщо, виділивши лист, натиснути клавішу F9.

Тема листа частково формується поштовою програмою на комп'ютері користувача (поля: From, To, Subject, Date, Message-Id, X-Mailer, Content-Type і ін.). Далі кожен сервер, через який проходить лист, додає до технічного конверту як мінімум одну запис (поля: Received, Delivered і т.д.). Поля заголовка визначаються стандартом RFC-822.

Суть м'якою фільтрації полягає у виявленні нетипових листів, тому що спам-роботи не завжди дотримуються мінімальний набір обов'язкових полів і правил їх заповнення.

КПД "м'яких" фільтрів не дуже високий, тому що спамери намагаються максимально наблизити шаблон спам-повідомлень до звичайних листів. Тому "м'яка схема", як правило, застосовується в комбінації з іншими методами.

Перший фільтр даної схеми видаляє листи, які не відповідають стандартним RFC-822 і не містять одне з обов'язкових полів в заголовку листа (From, To, Subject, Date, Message-ID), а при жорсткому підході і деяких необов'язкових полів (X-Mailer і ін.).

Фільтр № 2.1. Ні полів в заголовку RFC-822

  1. Сортувальник, правило [Вибіркове скачування]
  2. Кнопка [Новий]
  3. Вкладка [Загальне]
  4. Ім'я: "Ні полів в заголовку RFC-822"
  5. Умова: [Поле Тема] [Date] [не відповідає]. кнопка [Додати] OR [Поле Тема] [From] [не відповідає]. кнопка [Додати] OR [Поле Тема] [To] [не відповідає]. кнопка [Додати] OR [Поле Тема] [Subject] [не відповідає].
  6. Вкладка [Дії]
  7. Дія: [+] Видалити Кнопка [Ok]
  8. Кнопка [Ok] - зберігаємо фільтр

Символ точка "." В регулярних виразах означет будь-який символ, крім перекладу рядки

Більш жорстко цей фільтр буде працювати (і більше спаму вб'є на сервері), якщо в нього додати поля "Message-ID:" і "X-Mailer:". Але при цьому потрібно мати на увазі, що він також видалить повідомлення MAILER-DAEMON, у яких немає в заголовку хоча б одного з цих полів.

Поле Message-ID (ідентифікатор листи) обов'язково має бути присутнім в заголовку листа і практично всі поштові програми і поштові web-сервіси дотримуються цього правила. Виняток становлять спец. повідомлення, наприклад, ті ж MAILER-DAEMON деяких поштових серверів.

Поле "X-Mailler:" ставиться практично всіма поштовими клієнтами і відомими мені поштовими web-службами, хоча є необов'язковим з точки зору стандарту RFC-822 (починається з префікса X-). Деякі зарубіжні поштові сервери замість поля X-Mailer пишуть X-Sender або X-SenderIP, тому існує невелика ймовірність блокування корисних листів.

Перш ніж приймати рішення включати чи не включати поля Message-ID і X-Mailer, потрібно вивчити заголовки приходять до Вас листів. Керуватися треба принципами "Не нашкодь", "Сім разів відміряй і один раз відріж", але краще перестрахуватися, ніж втратити хоча б одну корисну лист.

Фільтр № 2.2. без відправника

  1. Сортувальник, правило [Вибіркове скачування]
  2. Кнопка [Новий]
  3. Вкладка [Загальне]
  4. Ім'я: "Без відправника"
  5. Умова: [Поле заголовка] [From] [не відповідає] \ w + [- \ w] * @ \ w + [- \ w] * \.? \ W + [- \ w] * \. \ W
  6. Вкладка [Дії]
  7. Дія: [+] Видалити Кнопка [Ok]
  8. Кнопка [Ok] - зберігаємо фільтр

Фільтр № 2.3. Від мене

  1. Сортувальник, правило [Вибіркове скачування]
  2. Кнопка [Новий]
  3. Вкладка [Загальне]
  4. Ім'я: "Від мене"
  5. Умова: [Поле заголовка] [From] [міститься] [email protected]
  6. Вкладка [Дії]
  7. Дія: [+] Видалити Кнопка [Ok]
  8. Кнопка [Ok] - зберігаємо фільтр

Фільтр № 2.4. Не мені

  1. Сортувальник, правило [Вибіркове скачування]
  2. Кнопка [Новий]
  3. Вкладка [Загальне]
  4. Ім'я: "Не мені"
  5. Умова: [Поле заголовка] [To] [не міститься] [email protected]
  6. Вкладка [Дії]
  7. Дія: [+] Видалити Кнопка [Ok]
  8. Кнопка [Ok] - зберігаємо фільтр

5. Умова: [Поле заголовка] [To] [не міститься] [email protected] кнопка [Додати] OR [Поле заголовка] [To] [не міститься] [email protected] кнопка [Додати] OR [Поле заголовка] [To] [не міститься] [email protected]

У заголовках більшості спам-повідомлень можна помітити такий рядок:

To: pupkin

Чи напише таке ім'я Ваш друг або знайомий? Навряд чи. Швидше за все, він напише так:

To: Вася Пупкін

Рядку виду "pupkin "Відповідає наступне регулярний вираз:

Фільтр № 2.5. "Параноя" якраз для такого випадку:

  1. Сортувальник, правило [Вибіркове скачування]
  2. Кнопка [Новий]
  3. Вкладка [Загальне]
  4. Ім'я: "Параноя"
  5. Умова: [Поле заголовка] [To] [відповідає] ^ pupkin \ s
  6. Вкладка [Дії]
  7. Дія: [+] Видалити Кнопка [Ok]
  8. Кнопка [Ok] - зберігаємо фільтр

Фільтр № 2.6. Додавання в стоп-лист

Фільтр № 2.7. Видалення спаму по стоп-листу

  1. Сортувальник, правило [Вибіркове скачування]
  2. Кнопка [Новий]
  3. Вкладка [Загальне]
  4. Ім'я: "Видалення спаму по стоп-листу"
  5. Умова: [Відправник] [перебуває]
  6. Вкладка [Дії]
  7. Дія [+] Видалити [+] Завантажити сигнальні рядки з файлу: spam.txt
  8. Кнопка [Ok] - зберігаємо фільтр і закриваємо сортувальник

Я провів маленький експеримент, щоб з'ясувати ефективність фільтрації спаму на основі полів заголовка. У мене є ящик-пастка, на який йде тільки спам і нічого більше. На цей ящик я навісив ще безкоштовну антіспамную програму Spampal. щоб потестувати різні комбінації. Ось яка статистика вийшла:

Всього отримано спаму:

З таблиці видно, що фільтрація тільки у заголовках листів дає близько 50%. Ефективність програми Spampal становить близько 88%. А сукупний ефект фільтрів по заголовкам і програми Spampal становить 96%.

Очевидно, що непрацюючі фільтри можна виключити зі схеми, що значно її спрощує (але попередньо краще все ж їх спробувати поганяти).

Розглянемо комбінації схеми III (пересилання через доп. Ящик) з іншими схемами.

Спаму буде вбито на Вашій машині

Спаму пройде через доп. ящик і буде вбито на захищеному сервері

Схема I. Фільтрація пошти методом підтвердження листування
(Жорстка схема)

Найважчі критичні мінуси цього методу фільтрації наступні:

Зваживши всі "за" і "проти" я вирішив не переводити схему I на мову сортувальника кажана версії 3.x. Ті, кому вона буде дуже потрібна, зроблять це без проблем за прикладом наведених в цій статті фільтрів.

Схожі статті