Dużo spamu przedostaje się przez filtr na serwerze pocztowym. Uruchomiłem go stosunkowo prostą sztuczką, zaczynając od kilku wierszy (niewiarygodnie oczywistej) utraty wagi lub innego tekstu oszustwa u góry, a następnie większej części tekstu z dokumentacji programowej - lub, co najgorsze, tekst zeskrobany z Stack Exchange . W najlepszym przypadku Spamassassin uważa to za BAYES_50 i zdarza się, że pozostałe wiadomości są konstruowane na tyle ostrożnie, że nie trafiają w inne wyzwalacze. (Na przykład nagłówki są minimalne i poprawne.) Często dołączone fragmenty są wystarczająco ściśle dopasowane do moich uzasadnionych interesów, że ogólna wiadomość jest oceniana jako BAYES_00, ponieważ bardzo spamowe tokeny są po prostu przytłoczone przez soczyste samorodki rozwiązywania problemów sysadmin.
Górna część jest tak oczywiście spamem (i w rzeczywistości jest bardzo podobna do wcześniej otrzymanych i wyszkolonych jako wiadomości spamowe), że jestem zaskoczony, że się przedostaje - ale najwyraźniej tak jest. Wydaje się, że jest to osobne podanie, które uzyskało 25 (lub więcej) pierwszych linii wiadomości i ważyło, że bardzo rozwiąże problem. Czy jest na to sposób?
Kilka osób sugerowało pisanie niestandardowych wyrażeń regularnych. Nie chcę się w to angażować, ponieważ jest to ciągła przegrana bitwa. Tak postępowali ludzie, zanim bayesowskie sortowanie spamu znalazło szerokie zastosowanie, i ogólnie było okropne. Żaden człowiek nie nadąża . Nie jest to dużo bardziej skuteczne niż naciśnięcie klawisza usuwania dla każdej wiadomości spamowej i dużo więcej pracy z mojej strony.
Bayesowskie filtrowanie spamu działa. Działa nawet w przypadku tego spamu, jeśli podzielę część „ nad fałdą ” i po prostu przeanalizuję tę część, po usunięciu wabika / plew. Pytanie brzmi: jak mogę zmusić Spamassassin do zrobienia tego?
źródło
Odpowiedzi:
Sam jestem (małym) żywym wojownikiem antyspamowym. I z powodu wielu problemów, jakie napotykasz, skończyłem robienie brudnych rzeczy wiele lat temu.
To nie jest odpowiedź na twoje pytanie, ale na twój konkretny problem. Dlatego proszę nie głosuj z tego powodu.
Rozwiązałem ten problem, modyfikując skrypt sa_filter-post.pl, używany przez serwer XMail, który wywołuje spamc w pliku e-mail i robi tam drobne rzeczy, aby przetwarzać nie cały plik, ale określone jego części, w oparciu o kilka szczegółowych zasad (zakodowanych przeze mnie). tak, wyrażenia regularne, ale do tej pory działają dla mnie (mam kilka innych skryptów przed i po tym, aby mogły odegrać pewną rolę)
Na przykład mam wyrażenie regularne, które wyszukuje numery telefonów. Spamer zostawił to w całości, więc od razu zaczyna przetwarzać tylko 400 środkowych znaków pliku (tak naprawdę do 400 trafiłem metodą prób i błędów, zacząłem od 200). Zauważ, że dość trudno jest wybrać środek tego, co widzisz, w porównaniu do tego, co znajduje się w pliku.
Jest jeszcze jeden, który ma taką samą strukturę tabeli html z „produktami”, fikcyjnym nagłówkiem i nieużywaną stopką, więc usuwam je, usuwam kolumnę z komentarzami „produktów”, a następnie przekazuję to do spamc.
I tak dalej, dostajesz zdjęcie.
Ale nie wszystkie reguły są idealne, więc wykonuję trochę magii, przypisując prywatny wynik każdej regule, którą zapisuję na stałe i dostrajam w razie potrzeby, w zależności od tego, jak zachowuje się reguła (i czasami czasami usuwam reguły razem ). Następnie modyfikuję wynik SA o wynik prywatny. Powodem, dla którego to zrobiłem, było to, że z jakiegoś powodu SA dało tylko wyniki takie jak 4. coś do wyraźnego spamowania według zasad, które miałem silne przeczucie, że je dobrze zrozumiałem. Dałem im więc trochę ulepszenia do wersji 5.0, w połączeniu z niektórymi skryptami przetwarzania końcowego, które uwzględniają inne zmienne (źródło wiadomości e-mail, cel wiadomości e-mail, struktura nagłówka itp.), Mniej więcej zabija spam na zewnątrz.
Teraz zdaję sobie sprawę, że nie tego oczekiwałeś, ale w moim przypadku daje mi to ogromną kontrolę nad tym, co zostanie zeskanowane, po prostu muszę skonfigurować rzeczy ręcznie, a następnie co jakiś czas robić mały dotyk - podnosi wartości / wyrażenia regularne.
Ale w twoim przypadku rzeczy są o wiele łatwiejsze, ponieważ wszystko, co musisz zrobić, to użyć prostego skryptu bash, który zostanie wywołany przez MX zamiast spamc, i użyj tego polecenia head, aby uzyskać tylko pierwszą dowolną liczbę bajtów i przekaż ten plik tymczasowy do spamc.
Treść skryptu będzie nieco zależeć od twojego serwera pocztowego, ale nie powinno być trudno to rozgryźć.
(Pamiętaj, że rozmawiałem tylko tyle o mojej konfiguracji, abyś mógł zobaczyć możliwości tej opcji)
PS: Osobiście nigdy nie otrzymałem tego rodzaju spamu (z dodatkami związanymi z programowaniem), więc zastanawiam się, czy nie wkurzyłeś kogoś, a teraz jesteś celem. To by wyjaśniało specjalnie spreparowane e-maile. Powodem, dla którego myślę o tej możliwości, jest to, że lata temu, kiedy byłem bardzo aktywny na różnych forach i grupach IT, wkurzyłem niektórych ludzi i od czasu do czasu otrzymywałem różnego rodzaju ataki na mój serwer, w tym spamowanie e-mailem . Ale wtedy idioci nie byli tacy sprytni :)
źródło