URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 91068
[ Назад ]

Исходное сообщение
"Борьба со спамом. P0F"

Отправлено fen , 02-Мрт-11 21:49 
Здравствуйте.

Тут поковырял инет по поводу средств борьбы со спамом. Среди всяких антиспамеров и настроек самих почтовых серверов нашел упоминание об утилите p0f - http://lcamtuf.coredump.cx/p0f.shtml
Как я понял, из встречившихся в инете упоминаний, эта утилита перехватывает пакеты в момент соединения удаленной машинки и определяет тип операционной системы, причем ее можно интегрировать с тем же амавистом. Соответственно, результаты ее работы можно прицепить к спамассасину и амависту для начисления дополнительных баллов к письмам, которые были отправлены, например, с виндовой операционки (которые чаще всего и используются как спам-боты).
В общем узнав о ней я уже готов был ее прикрутить к серверу и попробовать, но у меня возникло 2 вопроса:
1. Как я понял, win xp эта приблуда точно определяет. А вот определяет ли она win vista, win 7 и серверные операицонки виндюков?
2. Может кто-нибудь ее уже пробовал юзать и сложилось какое-нибудь мнение об ее работе?


Содержание

Сообщения в этом обсуждении
"Борьба со спамом. P0F"
Отправлено Aleksey , 03-Мрт-11 01:45 
Работает исправно, рекомендуется к использованию.

"Борьба со спамом. P0F"
Отправлено DeadLoco , 03-Мрт-11 04:40 
> Может кто-нибудь ее уже пробовал юзать и сложилось какое-нибудь мнение об ее работе?

Начислять за использование винды доп.баллы при детекции спама - плохая идея. Слишком слаба корреляция. У нас пока не только подавляющее большинство ботов, но и значительная доля легальных клиентов находится на винде. Все еще. Пока.

Использование p0f потенциально ведет к увеличению количества фальш-позитивов, которые юзеры переносят существенно хуже, чем фальш-негативы. Не советую, съедят.


"Борьба со спамом. P0F"
Отправлено asser , 03-Мрт-11 09:20 
Ну собственно зависит от веса оценки. Никто не заставляет ставить запредельные баллы. Я использую в качестве параметра meta правил. Т.е. это просто хороший инструмент для определения откуда пришло письмо, а как вы его будете использовать - это уже другое дело.



"Борьба со спамом. P0F"
Отправлено DeadLoco , 03-Мрт-11 11:49 
> Ну собственно зависит от веса оценки. Никто не заставляет ставить запредельные баллы.

Попробую объяснить на примере. Предположим, вы обеспечиваете секурность банка, и заметили, что многие грабители попадают в банк через главные двери. И теперь каждого, кто входит через главные двери, кладут мордой вниз на пол и подвергают тщательному обыску. И грабителей, и законопослушных граждан.

Да, критерий "тот, кто прошел через главные двери" включает в себя и грабителей тоже. Но он же создаст массу неудобств добропорядочным клиентам. Да, это поможет скрутить грабителя до того, как он вытащит волыну и потребует кассу, но еще раньше в ваш банк просто перестанут ходить клиенты.

Критерий проверки должен иметь сильную корреляцию со спамовостью. Чем сильнее корреляция - тем лучше. На тысячу клиентов, пихающих свое хело раньше приветствия СМТП сервера, легальных будет один-два. На ту же тысячу будет 1-2 легальных клиента с кривым хело или ненастроеным резолвом - из-за криворукости админов. Но вот легально пришедших с винды на тысячу будет уже несколько сотен. Критерий недостаточно релевантен по сравнению с уже имеющимися. Добавив его в набор проверок, мы не улучшим, а ухудшим фильтрацию - как это ни парадоксально.

Добавление такого правила с некоторым весом увеличит количество фальш-позитивов. Просто потому, что общая строгость проверки возросла. Чтобы снизить количество ф/п до исходного значения, вам придется уменьшить веса старых правил, а это, как нетрудно догадаться, приведет к росту количества фальш-негативов. Т.е. - к ухудшению качества фильтрации.

Отнимать весА у правил с высокой корреляцией можно, но только в пользу правил с еще более высокой корреляцией. Чем выше корреляция, тем выше вес. Если добавляемое правило имеет корреляцию меньшую, чем средняя по текущему набору, его добавление вредно и бессмысленно.


> Т.е. это просто хороший  инструмент для определения откуда пришло письмо,
> а как вы его будете использовать - это уже другое дело.

Я не спорю, инструмент отличный. Но это микроскоп, а мы тут все больше гвозди забиваем.


"Борьба со спамом. P0F"
Отправлено fen , 03-Мрт-11 12:10 
> Я не спорю, инструмент отличный. Но это микроскоп, а мы тут все
> больше гвозди забиваем.

Я могу ошибаться, так что извиняйте, если я не прав. Я так понимаю, что ваш метод - исключительно байсовский анализ (ес-но правильная настройка сервера прежде всего)? Т.е. предлагаете обучать, обучать и еще раз обучать? Но ведь спам очень разнообразен, кому-то из пользователей идут письма по одной тематике, кому-то по другой, кому-то по третей и т.д. В итоге это приводит к тому, что в байесовской базе, как мне кажется, творится полный бардак и со времен кол-во спама только увеличивается, приходится грохать базу и начинать заново.


"Борьба со спамом. P0F"
Отправлено DeadLoco , 03-Мрт-11 13:12 
> Я могу ошибаться, так что извиняйте, если я не прав. Я так
> понимаю, что ваш метод - исключительно байсовский анализ (ес-но правильная настройка
> сервера прежде всего)? Т.е. предлагаете обучать, обучать и еще раз обучать?

Нет, конечно. Сначала экзим выполняет серию проверок на стадиях CONN и RCPT. Здесь проверяется невовремя поданное хело, корректность этого хело, корректность резолвинга имени хоста, наличие в имени хоста нехороших слов, структура имени (цифры-точки-тире), количество получателей, принадлежность энвелоп-ту моему домену и так далее. За каждую проваленную проверку начисляются штрафные баллы.

Если баллов набирается больше нуля, за каждый балл отправитель будет ждать одну секунду перед переходом к фазе DATA. Редкий спамбот способен прождать более минуты на этом этапе. Отстреляв все хедеры, он начинает без команды лить тело письма - и на этом палится. Или просто сбрасывает соединение, не выдержав ожидания.

Если баллов набирается более максимума, отправитель прождет положенное время, но вместо фазы DATA получит "552 - Internal Server Error". Если дождется, конечно.

К этому моменту отсеклось уже 90% спама. Без грейлистинга, без ДНСБЛ.
Оставшихся 10% входящих писем уходят на СА/байес. Штатная функция начисления баллов байесом заточена под почтовый поток общего пользования. В случае корпоративной почты с узкой специализацией ее нужно слегка модифицировать - задрать значения BAYES_95 до 90% от порога срабатывания СА и BAYES_99 - до 200% Больше 100% потому, что у СА есть правила с отрицательными весами, и письмо, которое байес однозначно определяет, как спам, по совокупности правил может быть пропущено.

И вот после этого всего начинается автоматическое/ручное дообучение байеса. На специфичной для конторы почте.

> В итоге это приводит к тому, что в байесовской базе, как мне
> кажется, творится полный бардак и со времен кол-во спама только
> увеличивается, приходится грохать базу и начинать заново.

Если налажен фидбек с юзерами, которые могут помечать письма, как "СПАМ" и "НЕ-СПАМ", то этой проблемы не возникнет в принципе. Если в базе байеса появится сигнатура, по которой письмо будет помечено, как "СПАМ", и потом это письмо придет на "sa-learn --ham", то сигнатуре будет снижен вес. В дальнейшем письма по этой сигнатуре реже станут попадать в "СПАМ", а при повторных пометках, как "НЕ СПАМ", вес сигнатуры в базе уменьшится до нуля. А сигнатуры с весом, меньшим порогового, удаляются автоматически.

Во всяком случае, за год на хосте, который в сутки получает 3-4к входящих смтп-соединений, картина получилась такая:

/usr/local/etc/mail/bayes > ls -lU
total 12836
-rw-------  1 spamd  spamd   2625536 Jan 23  2010 awl
-rw-------  1 spamd  spamd    101232 Mar  3 00:06 bayes_journal
-rw-------  1 spamd  spamd  10207232 Jan 23  2010 bayes_seen
-rw-------  1 spamd  spamd   5046272 Feb 26 16:37 bayes_toks


"Борьба со спамом. P0F"
Отправлено desenix , 04-Мрт-11 09:03 
> имени хоста, наличие в имени хоста нехороших слов, структура имени (цифры-точки-тире),
> количество получателей, принадлежность энвелоп-ту моему домену и так далее. За каждую
> проваленную проверку начисляются штрафные баллы.

не подскажите каким почтовиком пользуетесь?
мне в CGP надоели точки тире, он регулярки не умеет, да много чего не умеет проверять как следует.
Поэтому сделал проще, написал скрипт реализующий RBL и в нём проверяю наличие октетов IP адреса в обратной зоне, если более 2 встречается, баню без задней мысли. Остаются редкие провайдеры с левыми зонами, их в чёрный список по зонам.
Вот думаю как бы добавить ещё один механизм в проверку, и стоит ли это делать. Соединятся навстречу но не по адресу отправителя, а к хосту который почту желает отправить, проверять вообще у него 25 порт принимает соединения, если нет, то смело в бан.
В результате в сутки из 100 попыток 1 бывает иногда удачной у спамеров, это если они какой-то сайт или почтовик ломанут, но тогда письмо на abuse пишу.


"Борьба со спамом. P0F"
Отправлено feb , 04-Мрт-11 09:21 
> не подскажите каким почтовиком пользуетесь?

Так там написано было...

>>Сначала экзим выполняет серию проверок на стадиях CONN и RCPT.


"Борьба со спамом. P0F"
Отправлено asser , 03-Мрт-11 09:21 
Опять же не блокировать письма, а просто маркировать как СПАМ, а дальше уже пусть пользователь разбирается.



"Борьба со спамом. P0F"
Отправлено DeadLoco , 03-Мрт-11 12:07 
> Опять же не блокировать письма, а просто маркировать как СПАМ, а дальше
> уже пусть пользователь разбирается.

У меня все, что помечается, как  "Спам", автоматически падает юзеру в "Junk". Рыться в помойке клиент начинает только тогда, когда отправитель звонит и скандалит: я отправил, а вы не отвечаете! Поскольку каждый такой инцидент это нервы, время и, как ни странно - бабки, над задачей отсеять спам стоит сверхзадача - не отсеять легальную почту.

Как по мне, то уж пусть во входящие валится спам, лишь бы фальш-позитивов не было. Заодно юзеры байес-фильтр потренируют :)