Spamassasin corpo regex e verificação de cabeçalho não funciona

3

Estamos tentando marcar e-mails de phishing com uma regra simples em Spamassasin como spam. Mas, infelizmente, não conseguimos fazer um checkout de trabalho.

Basicamente, o que estamos tentando alcançar é que, se o remetente do Mail não for não de nosso domínio @ exemplo.org, mas estiver escrevendo com um nome de exibição falsificado .

Aqui está um exemplo:

From: "Firstname Lastname <[email protected]>" <[email protected]>

Então, elaboramos a seguinte regra de SA que não funcionou

header __FRAUD_HEADER From =~ /.*@(?!example\.org)/i 
body __FRAUD_BODY /".*\@example\.org.*"(?!.*\@example\.org.*$)/i 
meta COMPANY_FRAUD (__FRAUD_HEADER && __KFRAUD_BODY) 
describe COMPANY_FRAUD Fake Sender - Phishing Attempt 
score COMPANY_FRAUD 100

Alguma idéia de por que isso não deu certo?

regex101.com nos diz que a expressão regular está correta. Spamassasin também não está reclamando de erros.

EDITAR: Acho que entendi errado como eles falsificaram o remetente. Este é um trecho de como eu acho que eles falsificaram / disfarçaram o endereço do remetente

# telnet mail.example.org 25
Trying 10.20.30.40...
Connected to mail.example.org.
Escape character is '^]'.
220 mail.example.org ESMTP
EHLO a.mailserver.com
250-mail.example.org
250-PIPELINING
250-SIZE
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
MAIL FROM:[email protected]
250 2.1.0 Ok
RCPT TO: [email protected]
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
TO: [email protected]
FROM: "Firstname Lastname" [email protected]
SUBJECT: Something
Spam/Phishing message text goes here
.
250 2.0.0 Ok: queued as 123456789
quit
221 2.0.0 Bye
Connection closed by foreign host.

A solução proposta funcionou!

    
por Daywalker 24.01.2017 / 14:50

1 resposta

4

Suas regras originais:

header __FRAUD_HEADER From =~ /.*@(?!example\.org)/i 
body __FRAUD_BODY /".*\@example\.org.*"(?!.*\@example\.org.*$)/i 
meta COMPANY_FRAUD (__FRAUD_HEADER && __KFRAUD_BODY) 
describe COMPANY_FRAUD Fake Sender - Phishing Attempt 
score COMPANY_FRAUD 100

Algumas críticas:

  • Eu vejo um erro de digitação: sua meta regra depende de __KFRAUD_BODY em vez de __FRAUD_BODY
  • Eles são realmente caros. Tente não usar olhar ao redor, a menos que você tenha que
  • Eu recomendo nomear suas regras para você lembrar que elas são suas
  • Você realmente quer essas aspas duplas no corpo regex? Esse pode ser o problema
  • Isso realmente deveria ser um regex corporal? Você está tentando combinar metadados encaminhados in-line?
  • Uma pontuação de 100 é perigosamente alta, pois seu limite deve estar entre 5-10

Que tal:

header __DW_NONFRAUD_HEADER  From:addr =~ /\bexample\.org$/i 
body   __DW_FRAUD_BODY       /"[^"]{0,99}\@example\.org\b[^"]{0,99}"(?!.{0,99}\@example\.org\b)/i 
meta     DW_COMPANY_FRAUD    (!__DW_NONFRAUD_HEADER && __DW_FRAUD_BODY) 
describe DW_COMPANY_FRAUD    Fake Sender - Phishing Attempt 
score    DW_COMPANY_FRAUD    3

Neguei sua primeira verificação e limitou-a apenas ao endereço no cabeçalho De (consulte a revisão da regra meta ). Eu também coloco marcadores de limite de palavra copiosos ( \b ) para garantir que você não capture "myexample.org" ou "example.org.in" ou outras esquisitices. Intervalos ilimitados são muito caros, então reduzi-os a 0-99 caracteres e assegurei que você não olha muito para frente, impedindo-os de combinar aspas duplas. Eu também removi seu $ porque o SpamAssassin recolhe todo o espaço em branco (os finais de linha podem não estar onde você pensa que estão; é muito melhor usar \b e similares).

Eu considero uma pontuação de 3 muito alta. Qualquer outra coisa e você pode querer considerar os recursos de lista negra da SA.

Realmente, você deve garantir que instalou e configurou corretamente os plug-ins do SpamAssassin para DKIM , SPF e DMARC (que são anti- spoofing tecnologias que implementam muito do que você está tentando fazer). suas DNSBL e URI DNSBL está configurado corretamente e que você está usando (e treinando!) Bayes . Pesquisas difusas de terceiros, como Razor e também pode ajudar a detectar spams perdidos.

Eu digo essas coisas porque essa regra é trabalhosa, cara e não escala (você precisa criar uma por domínio), mas principalmente porque não parece eficaz (a "assinatura" alvo não é terrivelmente e você obterá falsos positivos).

    
por 29.08.2017 / 21:42