Pisanie własnych reguł – część I

Każdy admin w końcu dochodzi do tego puntu życia: fajnie by się nauczyć pisać reguły w SA. Mam nadzieje, że ten poradnik pomoże zacząć tworzyć samodzielnie własne reguły. Jeśli ktoś już to robi tez może mu się przyda.

Jak zacząć?

Aby rozpocząć tworzenie własnych reguł należy:

  1. Pamiętać o tym, że nie wszystko złoto co się świeci:)
  2. Znać przynajmniej podstawy wyrażeń regularnych w Perlu
  3. Znać możliwości i składnie Spamassassina
  4. Umieć logicznie myśleć i być spostrzegawczym

Reguła 0: nie wszystko złoto co się świeci.

Dziwna nazwa może ale oddaje najważniejszą rzecz. Nie można się skupić tylko na tym co charakteryzuje spam ale trzeba ale również czy te cech mają dobre maile. Niech przykładem będzie reguła wychwytująca kolor niebieski. Dużo spamu łapie się na ta regułę. Niestety ona jest mało użyteczna bo również dużo dobrej poczty się na nią łapie. Czym dana cecha częściej występuje w spamie ma małe znaczenie liczy się czy mało występuje w prawidłowych mailach. Czym bardziej ogólna reguła tym większe szanse, że tak może być. Szczegółowe reguły pod jeden rodzaj spamu nie mają tego problemu.Według mnie zawsze trzeba pamiętać po odkryciu ‚super reguły’ aby sprawdzić z dobrymi mailami. Oczywiście takie nawet reguły można nisko punktować  np 0.001 i jeśli znajdziemy kilka takich w jednym mailu, dać dodadtowe punkty (wzmocnić).

Dziś piątek więc mniejsza ilość wiedzy, od poniedziałku będzie ostrzej i zapraszam do czytania.

19 thoughts on “Pisanie własnych reguł – część I

  1. A ja poza innymi mam kłopot z wyłapaniem (mam wysyp) maili z tematem invoice (i dalej cyferki lub inne ciągi, kropka doc). W mailu jest załącznik o podobnej lun identycznej nazwie. Ale nie mogę wyłapać ani jednego ani drugiego. Temat zakodowany utf-8.
    A z kolei samego załącznika nie umiem wykryć ani przez „body” ani przez badanie jakiegoś nagłówka.

    Proszę o pomoc. Poniżej kawałek przykładowego maila:

    From: Brock Jordan
    To: ******
    Subject: =?UTF-8?B?SW52b2ljZQ==?=
    X-Id_client: 82360672
    X-Mailer: MIME::Lite 3.027 (F2.77; T1.30; A2.06; B3.08; Q3.08)
    X-AV-Checked: clean on av10
    Message-Id:

    This is a multi-part message in MIME format.

    –_———-=_886555474227044138864
    Content-Disposition: inline
    Content-Transfer-Encoding: 8bit
    Content-Type: text/plain; charset=”UTF-8″

    Dear Sir/Madam,

    I trust this email finds you well,

    Please see attached file regarding clients recent bill. Should you need further assistances lease feel free to email us.

    Best Regards,

    Brock Jordan
    The Priceline Group Inc. http://www.pricelinegroup.com

    –_———-=_886555474227044138864
    Content-Disposition: attachment; filename=”Invoice04863023.doc”
    Content-Transfer-Encoding: base64
    Content-Type: application/msword; name=”Invoice04863023.doc”

    IA0KICANCiAgICAgICAgICAgICAgICAgICANCgkgDQoJICANCgkgICANCgkgICANCgkgICAg
    DQoJCSANCgkJICANCgkgDQogICAgICAgICAgICAgICAgICAgICANCiANCiAgICAgICAgICAg
    IA0KICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICANCiAgICAgICAgICAgICAg
    ICAgICAgICAgIA0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICANCiAgICAgICAg

    1. z 1 go to nie wymyslimy 🙂
      moze nie skupiaj sie na zalaczniku – ale za posiadanie zalacznika „invoice*.doc” jakies punkty naliczac, ale na istniejacych URI i/lub tresci
      ponadto mozliwe punkty za roznice w czasie ? – tego akurat nie zacytowales
      Gdyby wszystkie byly z tego zrodla to w body wyszukac pricelinegroup.com i gotowe, ale to pewnie rozne sa ?

      1. a przegladnalem swoje logi i mam troche maili z invoice,,,,,,.doc, jednak sa wylapywane troche punktow do nich jest BAYES_99 oraz z URIBL
        ten osotatni u mnie jest z parametru w init.pre

        loadplugin Mail::SpamAssassin::Plugin::URIDNSBL

        masz to w configu ?

    2. No to temat jest invocie i to bedzie pierwsze. Drugei widze X-Mailer : MIME:Lite a trzecie bedzie bedzie w body Invoice…..doc.Z tym, ze aby znalezc zalacznik trzeba będzie rpzeszukiwac chyba rawbody wiec wydajnosc niska może być. Całość będzie jakość tak
      header __EXP_ADAMTT_1_1 X-Mailer=~/MIME::Lite /
      header __EXP_ADAMTT_1_2 Subject=~/invoice[a-z]+\.doc/
      meta EXP_ADAMTT_1 __EXP_ADAMTT_1_1 && __EXP_ADAMTT_1_2
      describe EXP_ADAMTT_1 Na regule z invoice
      score EXP_ADAMTT_1 0.01
      niska punktacja bo trzeba sprawdzic czy dziala. Czy invoice w temacie z wielkiej czy małej litery? Czy te znaczni sa malymi lterami czy wielkimi? Trzeba uszczegółowić

  2. No pewnie, że zmieniają i samą nazwę załącznika i nadawcę.
    Na razie spróbuję w body wyłapać taką linię:
    Content-Disposition: attachment; filename=”Invoice04863023.doc”
    z pomocą np. /filename.{2}invoice\d{8}\.doc/i
    Regułka dobra, tylko czy ten fragment tojest akurat body czy nagłówek to nie wiem 🙂

    Druga rzecz to spróbuję w temacie wyłapać SW52b2lj albo aW52b2lj, bo te znaczki odpowiadają zakodowanym w UTF-8 słówkom Invoice i invoice

  3. BAYESY 99 i 999 punktują te maile i jeszcze kilka innych „zaszytych” reguł.

    Ale URIBL akurat chyba nie mam. Jeśli pytasz o config /etc/spamassassin/local.cf to nie widzęwnim takich wpisów jak podałeś. A do innych konfigów nie mam dostępu 🙂

  4. Za reg na invoice dziekuje – wstawilem do testu, a poniwaz dzisiaj dostalem 3 invoice w tym dwa ! wprost do mnie no to sie wnerwilem :-)) bo przeszly z ujemna punktacja
    a przy okazji czy zapis

    /invoice[a-z]+\.doc/

    nie jest bledny ? a-z obejmuje cyfry ?

    1. Bledny nie jest, jest niedzialajacy:)
      /invoice[a-z]+\.doc/ jesli tam tylko male litery
      /invoice[a-z0-9]+\.doc/ jesli male litery i cyfry
      /invoice[a-z0-9A-Z]+\.doc/ jesli znaki male litery duze i cyfry albo prosciej
      /invoice\w+\.doc/ czyli alfanumeryczne i _
      wybierz co tam pasuje

  5. tak patrze czemu to nie dziala
    no bo szuka w subject a powinien w body

    header __EXP_ADAMTT_1_2 Subject=~/invoice[a-z]+\.doc/

    1. a nie wiem czemu zrozumialem ze temat jest taki bo tam zakodowane.
      Nie no jasne ze w body. A dziala juz i punktuje?

  6. robilem
    header __EXP_ADAMTT_1_2 /invoice[a-z0-9A-Z]+\.doc/
    body __EXP_ADAMTT_1_2 /invoice[a-z0-9A-Z]+\.doc/
    rawbody __EXP_ADAMTT_1_2 /invoice[a-z0-9A-Z]+\.doc/
    a nawet uri 🙂
    zadna z powyzszych nie wylapala obecnisci zalaczonego pliku invoice842842784.doc

    1. Też mi nie działa.
      Na czas testów olej te cyferki i literki i wyłap po prostu
      /invoice.*\.doc/i
      taki zapis wg mnie powinien pasować do invoice.doc czy invoicedowolnyciąg.doc
      a „i” na końcu znaczy ignoruj duże/małe literki
      Ale mi nie działało. Aczkolwiek nie spróbowałem rawbody.
      A teraz już jakbym nie dostawał tych „rachunków” i będzie trudniej testować.

      1. probowalem na rozne sposoby, az przeczytalem gdzies ze w spamassassinie sie nie da wypalac nazwy zalacznika do badania

        zapis jak podales invoice.*\.doc mozna dac do procmaila, oczywiscie bez punktacji – tylko blokada co niezbyt mi odpowiada

          1. Ha! To działa, ten plugin teoretycznie powinienem mieć defaultowo zainstalowany i okazało się, że praktycznie też, bo testowo wystarczyło dopisać taką regułkę:
            mimeheader ZIPRAR Content-Type =~ /(faktura.*(\.zip|\.rar))/i

            bo takie badziewia mi przenikają ostatnio

          2. No chyba za ostro:) w firmach handlowych plik faktura.zip bylby slabo podejrzany:) Wrecz oczekiwany. Oczywiscie powinno byc z PDFem ale zip tez mozliwy.

          3. Trudno. Najwyżej komuś nie zapłacę. 🙂
            Poza tym w końcu tylko podbijam punktację, a nie eliminuję. Ale może i masz rację – powinienem zrobić meta – wysoko punktuje z maili spoza .pl. Niestety, te faktury i invoice często z 02.pl, oneta czy innych badziewi przychodzą.

            Ale za to chyba amavis działa – „skanuje” archiwa zip i rar i sieka równo z trawą gdy wewnątrz są rozszerzenia .exe i .lnk i jakieś tam jeszcze

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *