Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.09.07;
Скачать: [xml.tar.bz2];

Вниз

Написание спам фильтра   Найти похожие ветки 

 
dreamse   (2008-07-16 08:07) [0]

Доброе утро. В целях самообучения возникла идея написать спам фильтр.

Вопрос такой: Каким образом можно перехватить порты 110 и 25 чтобы вся кореспонденция шла через них?

Основная идея в том чтобы пользователю не нужно было ничего настраивать в почтовых программах. Чтобы программа могла автоматически перенаправлять весь трафик почтовых агентов через себя.

Пока приходиться в настройках The Bat (например) указывать порт программы для получения писем т.е например 557 а программа уже коннектиться к 110 и получает письма.

Буду благодарен если подкинете пару ссылок на тему написания плагинов на Delphi для Outlook и The Bat (хотя конечно идея с перенаправлением портов интересует больше)


 
Сергей М. ©   (2008-07-16 08:23) [1]


> чтобы пользователю не нужно было ничего настраивать в почтовых
> программах


У них, у программ этих, телепатор встроенный что ли ?

Кто-то же хотя бы один раз должен указать им координаты хотя бы одного почтового сервиса) ..


> идея с перенаправлением портов интересует больше


А смысл ? Трафик-то уже будет "съеден" ..


 
dreamse   (2008-07-16 08:37) [2]

> Сергей М. ©   (16.07.08 08:23) [1]

> У них, у программ этих, телепатор встроенный что ли ?

Телепортатора нет :) Есть стандартные 2 порта 110 и 25
Я знаю прекрасно что порты могут быть другими, но вот когда они будут другими (например в офисе) тогда и будет доп настройка.

А обычного домашнего пользователя хочеться избавить от каких либо настроек.

> А смысл ? Трафик-то уже будет "съеден" ..

В наше время когда почти везде безлемит ... этот вопрос отпадает сам собой. А вот если пользователь при установке программы увидит что её еще нужно зачем то настраивать то ...

юзабилити знаете ли.

p.s я сам знаю что лучше ком строки ничего нет :) но вы это обычному пользователю объясните сначало


 
Byzantine fault ©   (2008-07-16 08:42) [3]

> В наше время когда почти везде безлемит

Это безлимит-то везде? Не смеши. У меня и то не безлимит. Мне выгоднее в месяц на тарифицируемом тарифе 1 мбит/с (сорри, тавтология) просидеть, чем на безлимитном и со скоростью 128 кбит/с. Да и по объёму скачанной информации мне безлимит всё равно не нужен, всё равно с моим тарифом выходит на меньшую сумму

А трафик люди экономят. Даже блокираторы ставят

> юзабилити знаете ли.

Не дай бог наши жизненные пути с этой программой пересекутся

> я сам знаю что лучше ком строки ничего нет

Лучше командной строки только её команды. В частности Формат Цэ


 
Palladin ©   (2008-07-16 08:47) [4]


> В наше время когда почти везде безлемит ...

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


 
@!!ex ©   (2008-07-16 08:57) [5]

Сейчас в школах пределы не проходят.
Производные объясняют по принципу: потому что вот так.


 
@!!ex ©   (2008-07-16 08:58) [6]

<offtop>
Это можно отнести к минусам ЕГЭ.
Потому что время, которое раньше тратили на выведение производных, логарифмов и проч. Сейчас тратят на зазубривание тестов.
А понятия объясняют за один академический час.
</offtop>


 
Сергей М. ©   (2008-07-16 08:59) [7]


> Есть стандартные 2 порта 110 и 25


Координаты сервиса включают не только и не столько номер порта - еще и имя/адрес хоста требуется. Он откуда в почтовой программе изначально возьмется ? Все равно ж ручками придется указывать ..

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

Если речь идет именно о плагинах, то подозреваю, что никакие заморочки с портами и их "перехватом"/перенаправлением нафих не нужны - подобного рода почтовые программы предоставляют готовый программный интерфейс, с пом.которого можно контролировать инф.потоки, не заморачиваясь TCP/IP-уровнем.


> если пользователь при установке программы увидит что её
> еще нужно зачем то настраивать то ..


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


 
Anatoly Podgoretsky ©   (2008-07-16 09:02) [8]

Эта операция относится к файрволам, а конкретно к файрволам приложений. Ты готов написать файрвол?


 
Byzantine fault ©   (2008-07-16 09:05) [9]

[offtop]
> Сейчас в школах пределы не проходят.
> Производные объясняют по принципу: потому что вот так.

Сын тётки заканчивал школу. Судя по его отзывам, производные им объясняют словами в учебнике: "доказательство данной теоремы выходит за пределы школьного курса"


> Потому что время, которое раньше тратили на выведение производных,
>  логарифмов и проч. Сейчас тратят на зазубривание тестов.

Не заметил, чтобы он что-то там зубрил, больше сидели да решали тонны уравнений с логарифмами, ещё с производными что-то вытворяли.

[/offtop]


 
@!!ex ©   (2008-07-16 09:20) [10]

> [9] Byzantine fault ©   (16.07.08 09:05)

написал сейчас эссе. и стер. уже обсуждалось все.


 
Сергей М. ©   (2008-07-16 09:22) [11]


> dreamse


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

Важней максимально дешевое, эффективное и точное определение принадлежности содержимого почтовой корреспонденции к разряду спама, а не то каким образом эта корреспонденция м.б. получена для соотв.анализа)


 
Anatoly Podgoretsky ©   (2008-07-16 09:44) [12]

> Сергей М.  (16.07.2008 9:22:11)  [11]

Актуально только уголовное и административное наказание спаммера и заказчика.
Остальное не борьба со спамом, а борьба с последствиями.


 
Сергей М. ©   (2008-07-16 09:46) [13]


> Anatoly Podgoretsky ©   (16.07.08 09:44) [12]



> борьба с последствиями


Бесспорно)


 
Anatoly Podgoretsky ©   (2008-07-16 09:51) [14]

> Сергей М.  (16.07.2008 9:46:13)  [13]

Но очень денежно!!!


 
brother ©   (2008-07-16 09:54) [15]

писал подобное для личных нужд...
Скачивал только заголовок письма (экономил трафик), далее по черным и белым спискам: фраза\слово в теме, кому адресовано (бывает что реальный получатель ваще не Вы), ну и от кого ))) В итоге вердикт...


 
Anatoly Podgoretsky ©   (2008-07-16 10:02) [16]

> brother  (16.07.2008 9:54:15)  [15]

Получатель не обязан быть ВЫ, и это никак не является признаком спама.


 
brother ©   (2008-07-16 10:04) [17]

> Получатель не обязан быть ВЫ

странно, а как это объяснить?


 
brother ©   (2008-07-16 10:07) [18]

точнее, если в получателе не мой ящик, то это не обязательно спам? (про переадресацию я не говорю)


 
Сергей М. ©   (2008-07-16 10:07) [19]


> как это объяснить?


Да оч просто - ты получаешь у провайдера всю почту, адресованную твоему домену, а не тебе лично)


 
Anatoly Podgoretsky ©   (2008-07-16 10:10) [20]

> brother  (16.07.2008 10:04:17)  [17]

Например список рассылки и BCC


 
Сергей М. ©   (2008-07-16 10:11) [21]


> если в получателе не мой ящик, то это не обязательно спам?


Конечно)

А вообще антиспам-оборона обязана быть эшелонированной.
Контроль адресата - лишь один из один из многих на переднем крае этой обороны.


 
Anatoly Podgoretsky ©   (2008-07-16 10:20) [22]

> brother  (16.07.2008 10:07:18)  [18]

Поле ТО это просто текст в письме, а настоящая информация в письме не содержится, она находится в процессе общения отправителя и сервера.
Про рассылки я уже написал.
Там в поле кому находится список рассылки, или то, что отправитель укажет, а есть еще и BCC, и также имя отправителя может быть любое включая его отсутствие.
Смотреть или RFC или STD


 
brother ©   (2008-07-16 10:21) [23]

> Смотреть или RFC или STD

уже смотрю...)


 
dreamse   (2008-07-16 11:41) [24]

> Anatoly Podgoretsky ©   (16.07.08 09:02) [8]

Готов например использовать WinpCap для перехвата всех пакетов и фильтрации. Опыт есть.

Я и спрашиваю, можно ли стандартными методами сделать переадресацию (например port mapping ) или нужно делать именно перехват самих пакетов драйвером?

Сейчас у меня реализованно :

1) В почтовике указываеться получатель : Username@mailserver \ Password \ port
2) В поле порт мой порт
3) в программе разбираю и получаю почту после чего отправляю почтовику.

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

p.s доки может кто кинет по написанию плагинов?
Тогда можно будет сделать COM сервер и с ним обмениваться сообщениями о почте. Без настроек портов и пр. лабуды


 
dreamse   (2008-07-16 11:45) [25]

> Byzantine fault ©   (16.07.08 08:42) [3]

Моя программа разбирает спам до получения... Так что трафик экономиться.

Что касаеться безлемита то возможно где нибудь в Узбекистане с этим и проблема. Даже в Казахстане сейчас 256 кб (безлемит) за 35 $ в месяц. ( Мегалайн, AlmaTv) Про города России молчу, там это вообще копейки.


 
Rouse_ ©   (2008-07-16 11:54) [26]


> Моя программа разбирает спам до получения... Так что трафик
> экономиться.

Это как?
Качает себя на POP3 сервер и оттуда тебе вещает, мол "все хорошо хозяин, спама нет", или сугубо телепативными методами сканирует данные из ящика? :)


 
Игорь Шевченко ©   (2008-07-16 11:57) [27]

dreamse   (16.07.08 11:45) [25]

русский не хочешь учить, Ленина не уважаешь, гад


 
Сергей М. ©   (2008-07-16 12:10) [28]


> Моя программа разбирает спам до получения


Это что-то новенькое)

Эвристический телепатор, наверно, изобрел ?)


 
brother ©   (2008-07-16 12:11) [29]

> Это как?

согласен, как?


 
dreamse   (2008-07-16 12:37) [30]

> Rouse_ ©   (16.07.08 11:54) [26]

Например разбирает заголовки писем а не тело письма.
Заголовки если Вы вдруг не знаете можно получить отдельно от тела.
Так же не скачивая тело можно удалить письмо прям с ящика почтового сервера.

В заголоках встречаються до 40 % слов по которым можно отсеять спам.

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

Еще раз повторю вопрос: Перехватывать пакеты нужно на уровне драйвера или есть другие методы? и 2 вопрос: Есть ли статьи о написание плагинов к Outlook и The Bat на Delphi ?


 
dreamse   (2008-07-16 12:38) [31]

> Игорь Шевченко ©   (16.07.08 11:57) [27]

Ленина уважаю :) Гада можно увидеть утром в заркале ... вечерами бывает трудно заметить


 
Сергей М. ©   (2008-07-16 12:43) [32]


> разбирает заголовки писем


А как можно проанализировать заголовок, не получая его с сервера ?)


> В заголоках встречаються до 40 % слов по которым можно отсеять
> спам


Ну и нафих такой фильтр нужен, который обнаруживает менее половины спама ?


 
Empleado ©   (2008-07-16 12:49) [33]


> Игорь Шевченко ©   (16.07.08 11:57) [27]
> dreamse   (16.07.08 11:45) [25]
> русский не хочешь учить, Ленина не уважаешь, гад

Убил бы! ;)

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

Правильный, и наиболее эффективный спам-фильтр должен быть установлен на входе почты в домайн/локальную сеть, и как минимум включать следующие правила контроля:
во время установки соединения, до приема сообщения, проверка на
- Reverse DNС
- HELO correspondence
- МХ record - IP correspondence (одно это правило будет "убивать" около 100% спама)
- SPF test
- IP black/white lists
- Recipient black/white lists
- DNS black/white lists based on external DBs (SpamCop, CBL, Spamhaus ZEN and so on)

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

Все это не на компе клиента. Это - отдельный сервис.
Сделай такой сервис. Сделай его код открытым для всех. Убей спамеров.

Искренне,
Empleado


 
Rouse_ ©   (2008-07-16 12:52) [34]


> Заголовки если Вы вдруг не знаете можно получить отдельно
> от тела.

Нет, мы не знали, но теперь будем знать, но при чем тут это если, цитирую:

> Моя программа разбирает спам до получения...


 
dreamse   (2008-07-16 12:54) [35]

> Сергей М. ©   (16.07.08 12:43) [32]

> А как можно проанализировать заголовок, не получая его с сервера ?)

5 кб заголовок или 100 кб тело письма, это к вашему сведенью 2 большие разницы.

> Ну и нафих такой фильтр нужен, который обнаруживает менее половины спама ?

Это только первый уровень проверки который позволяет уже на момент получения отсеять более 40 % спама, остальной спам отсеиваеться после того как все остальная почта будет принята с сервера.

По другому тут трафик не секономить, так как мы говорим не о почтовом сервере на котором можно было этовсе получать, а о программе - шлюзе которая будет стоять на каждом пользовательском комьютере (в частности дома)

Даже взять для примера спам фильтры таких программ как: Все плагины The Bat, DrWeb + антиспам, Касперский интернет секьюрити. Все они проверяют спам в момент получения письма а не на сервере. Эти продукты пишут довольно продвинутые компании, почему же я не могу написать свой продукт по такому же принципу как и ведущие разработчики страны?

Прошу больше не заставлять меня отвечать на ваши тупые вопросы.
Я прошу ответить мне всего лишь на 2 вопроса которые я привел ранее.


 
dreamse   (2008-07-16 12:56) [36]

> Empleado ©   (16.07.08 12:49) [33]

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


 
Сергей М. ©   (2008-07-16 13:34) [37]


> 5 кб заголовок


Так его же тоже надо получить, прежде чем анализировать !


> ваши тупые вопросы


А не ты ли намедни задавал вопрос про TDataset.State ?
Это к слову о "тупости" чьих-то вопросов)


 
Сергей М. ©   (2008-07-16 13:37) [38]


> о программе - шлюзе


Ты бы хоть терминологию соблюдал, прежде чем задавать "острые" вопросы)

Это программа-прокси, а не шлюз. Две разные разницы)
У шлюзов иные задачи, чем у прокси)


 
Сергей М. ©   (2008-07-16 13:45) [39]


> прошу ответить мне всего лишь на 2 вопроса


Ответы тебе уже были даны - ты пытаешься залезть в это огород через забор, в то время как рядом минимум 2 открытых калитки)


 
Сергей М. ©   (2008-07-16 13:53) [40]


> Каким образом можно перехватить порты


Никаким.

Перехвату подлежат не порты, а вызовы тех или иных интересующих функций того или иного API)

Про перехват API-вызовов в Тырнете огромная куча информации, в т.ч. с примерами.


 
dreamse   (2008-07-16 13:57) [41]

> Сергей М. ©   (16.07.08 13:34) [37]

> А не ты ли намедни задавал вопрос про TDataset.State ?

Я. Знаешь ли бывает что человек умеет писать драйвера, а вот таблички в ворде не разу в жизни не составлял ... А когда спросил как же составить таблички ... бухгалтера стали смеяться всем отдело произнося: Вот тупой ... не умеет даже какую то табличку составить ... но человек на них не обижаеться, он знает что драйвер им в этой жизни точно не суждено написать....

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

Ответ дал лишь Анатолий. Остальные лишь рассуждают надо ли это делать или не надо и как обычно советуют не делать ...

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


 
brother ©   (2008-07-16 13:59) [42]

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

зачем спрашиваешь?

> и не вам меня теперь учить

никто и не думал об этом...
зы ну и чувство такта, однако.


 
dreamse   (2008-07-16 13:59) [43]

> Сергей М. ©   (16.07.08 13:53) [40]

Значит все таки драйвер или внедрение в код почтовиков и перехват и замена порта в момент вызова ...

И то и другое несколько сложновато сделать.
Эх .. где бы исходники плагинов взять ...


 
dreamse   (2008-07-16 14:00) [44]

> brother ©   (16.07.08 13:59) [42]

Да не в обиду было сказано.
А зачем спрашиваю? Так хочеться улучшить продукт, переписать немного.


 
brother ©   (2008-07-16 14:01) [45]

> Да не в обиду было сказано.

и в мыслях небыло ;)


 
Сергей М. ©   (2008-07-16 14:29) [46]


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


Ты там от гордости смотри не лопни)

Я в курсе и про твоё "драйверотворчество" - ветку ту читал, и там напрашивалась все та же ассоциация с огородом (см. выше)


> где бы исходники плагинов взять


А зачем ? SDK подобного рода плагинов как правило доступен и открыт..

Ах да, я и забыл - у тебя ж F1 не работает !
Вот ведь беда)


> И то и другое несколько сложновато сделать


Чтой-то вдруг ?


 
dreamse   (2008-07-16 15:10) [47]

> Сергей М. ©   (16.07.08 14:29) [46]

> Я в курсе и про твоё "драйверотворчество" - ветку ту читал, и там напрашивалась все та же ассоциация с огородом (см. выше)

C чего ты вообще взял что я драйверами занимаюсь ? :)
Драйверы для меня сложно пока, да и нет надобности. Вышепреведеный пример решил инжектом кода и перехватом Create Process

Когда отдалено что то сравнивают не принимай за чистую монету :)

> Ты там от гордости смотри не лопни)

А я не гордый :) Был бы гордым не интересовался бы у Вас у Мастеров как и что правельно сделать.

Вот только к сожалению последнее время Вам интересней потрепаться только о том правельно это или неправельно ... а вот помочь ...
Лядно я не гордый разберусь сам :)

Спасибо всем.
Удачи


 
Rouse_ ©   (2008-07-16 15:13) [48]


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

А ты уже научился? :)


 
dreamse   (2008-07-16 15:16) [49]

> Rouse_ ©   (16.07.08 15:13) [48]

Да. а драйвер пока нет :) так как С со всеми его плючами предпочитаю пользоваться Delphi


 
Сергей М. ©   (2008-07-16 15:22) [50]


> C чего ты вообще взял что я драйверами занимаюсь ?


см.
http://delphimaster.net/view/15-1215534864/

Тебе же там тоже сказали про огород, а ты не вник и теперь в другой полез, и опять через плетень, а не через калитку)


 
Сергей М. ©   (2008-07-16 15:27) [51]


> dreamse   (16.07.08 15:16) [49]


А его и писать не надо было, на wasm.ru лежит готовый sys-модуль с абсолютно идентичной функциональностью. Просто некий народный умелец извратился и портировал текст демо-драйвера в Делфи)


 
dreamse   (2008-07-16 15:38) [52]

> Сергей М. ©   (16.07.08 15:22) [50]

> Тебе же там тоже сказали про огород, а ты не вник

См. dreamse   (16.07.08 15:10) [47]

> Вышепреведеный пример решил инжектом кода и перехватом Create Process


 
Сергей М. ©   (2008-07-16 15:43) [53]


> dreamse   (16.07.08 15:38) [52]


Ладно, продолжай париться, если не внемлешь)

Вот тебе в помощь:

http://www.benziegler.com/TrustFilter/
http://spambayes.sourceforge.net/

Учись, студент, самостоятельно искать и анализировать информацию !)
А то так и будешь всю жизнь "ключи подавать")
И к F1 отнесись с должной серьезностью)


 
dreamse   (2008-07-16 15:58) [54]

> Сергей М. ©   (16.07.08 15:43) [53]

> Вот тебе в помощь:

Благодарю. То что нужно было.


 
Anatoly Podgoretsky ©   (2008-07-16 20:10) [55]

> dreamse  (16.07.2008 12:54:35)  [35]

> По другому тут трафик не секономить, так как мы говорим не о почтовом сервере на котором можно было этовсе получать, а о программе - шлюзе которая будет стоять на каждом пользовательском комьютере (в частности дома)

Такая программа уже написана и используется дома - это gmail.com/mail.ru



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2008.09.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.69 MB
Время: 0.008 c
15-1216034230
oldman
2008-07-14 15:17
2008.09.07
Как в ХР увидеть содержимое корневого каталога С?


2-1216942391
Ruzzz
2008-07-25 03:33
2008.09.07
Доступ к данным с разных потоков


2-1217352003
werty
2008-07-29 21:20
2008.09.07
определение границ ланных в Excel


2-1217350317
Сергей
2008-07-29 20:51
2008.09.07
Как добавить unit из другой программы?


11-1190975644
Trible
2007-09-28 14:34
2008.09.07
Пример OnDrawCell





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский