On 20/03/11 16:29, Marc Perkel wrote:
Just throwing this out there to see if people like this rule and if you
would like to improve it. Bank phishing usually involves a lot of
phrases to get you to give up your information. This rule looks for 5
matches out of the following list.
Hi Marc,
I get hit with a lot of bank phish and had tried this approach. In the
end I gave up as I found it not very effective.
For me, a far more effective approach was to compile a list of bank and
bank-like domains that bank phish is typically sent from and to score
them at 6 points. Easy, job done.
Seriously, I see very little legitimate mail from banks, and what I do
see is almost never sent from the primary domain (e.g, bank.com) but
always from a subdomain such as *.email.bank.com. Conversely, nearly all
phishing attempts I see are sent from the primary domain (e.g,
bank.com). If you block or score @bank.com you will instantly stop most
bank phish with very few FPs.
Further, those banks that use SPF and/or dkim sign their mail can be
added to whitelist_from_spf and whitelist_from_dkim etc. As it's
difficult to determine information on SPF/DKIM records without examples
of ham this would benefit from a community effort.
So what I would propose is firstly a list of all banking domains and
secondly a list of faked banking-type domains used for phish. A freemail
type plugin for this might be useful (bankmail maybe)? Score those as
you see fit
Then lets keep a whitelist of SPF and dkim for bank domains. Score the
whitelist to counteract the score you just added to mail from a banking
domain.
So by default you now only accept mail from whitelisted banks (by SPF
and/or DKIM).
In the interests of sharing, here are my rules. I'm sure they could be
improved with community input but with these I've never felt the need to
filter on actual content which IMHO is far more troublesome.
header LOCAL_FROM_BANK From:addr =~
/\@(abbey|abbeyinternational|abbeynational|allianceleicester|alliance-leicester|bankofamerica|barclays|cahoot|cbonline|citibank|cooperativebank|co-operativebank|cooperative-bank|egg|eggconnect|firstdirect|halifax|halifax-online|hbos|hsbc|hsbcgroup|lloydstsb|mbna|natwest|nationwide|newegg|new\.egg|northernbank|nwolb|rbs|santander|santandercards|smile|woolwich|ybonline|zenithbank)\.(com|co\.uk)/i
score LOCAL_FROM_BANK 6
describe LOCAL_FROM_BANK From a bank domain
# Domains that are not banks but are used for phishing
# NOTE: some of these domains belong to legitimate companies
header LOCAL_FROM_NOT_BANK From:addr =~
/\@(abbey-online|abbeyonlinebanking|abbeyresourcing|abbeysecure|alliance|business-hsbc|co-operative-bank|eggbank|hsbcbanking|hsbc-?online|leicester|lloyds|lloydstsb-?online|llyodstsb|lloydstsbsecure|natiownide|neweggbank|onlinehsbc|santandergroup)\.(com|co\.uk)/i
score LOCAL_FROM_NOT_BANK 12
describe LOCAL_FROM_NOT_BANK From not-a-bank phishing domain
header LOCAL_FROM_BANK_NET From:addr =~
/\@(abbey|abbeyinternational|abbeynational|abbey-?online|abbeyonlinebanking|abbeyresourcing|abbeysecure|alliance|alliance-?leicester|bankofamerica|barclays|cahoot|cbonline|citibank|co-?operative-?bank|egg|eggbank|eggconnect|firstdirect|halifax|halifax-?online|hbos|hsbc|hsbcbanking|hsbcgroup|hsbc-?online|leicester|lloyds|lloydstsb|lloydstsb-?online|llyodstsb|mbna|natwest|nationwide|newegg|new\.egg|neweggbank|northernbank|nwolb|onlinehsbc|rbs|santander|santandercards|santandergroup|smile|woolwich|ybonline|zenithbank)\.net/i
score LOCAL_FROM_BANK_NET 12
describe LOCAL_FROM_BANK_NET Banks don't usually send from .net
# Starting to see popular banking domains spoofed as secure-hsbc.com etc
header LOCAL_FROM_SECURE_BANK From:addr =~
/\@secure-(abbey|abbeyinternational|abbeynational|abbey-?online|abbeyonlinebanking|abbeyresourcing|abbeysecure|alliance|alliance-?leicester|bankofamerica|barclays|cahoot|cbonline|citibank|co-?operative-?bank|egg|eggbank|eggconnect|firstdirect|halifax|halifax-?online|hbos|hsbc|hsbcbanking|hsbcgroup|hsbc-?online|leicester|lloyds|lloydstsb|lloydstsb-?online|llyodstsb|mbna|natwest|nationwide|newegg|new\.egg|neweggbank|northernbank|nwolb|rbs|santander|santandercards|santandergroup|smile|woolwich|ybonline|zenithbank)\.(com|co\.uk|net)/i
score LOCAL_FROM_SECURE_BANK 12
describe LOCAL_FROM_SECURE_BANK From a secure-bank domain
header LOCAL_FROM_BANK_OBF From:addr =~
/\@(abbey|abbeyinternational|abbeynational|abbey-?online|abbeyonlinebanking|abbeyresourcing|abbeysecure|alliance|alliance-?leicester|bankofamerica|barclays|cahoot|cbonline|citibank|co-?operative-?bank|egg|eggbank|eggconnect|firstdirect|halifax|halifax-?online|hbos|hsbc|hsbcbanking|hsbcgroup|hsbc-?online|leicester|lloydstsb|lloydstsb-?online|llyodstsb|mbna|natwest|nationwide|newegg|new\.egg|neweggbank|northernbank|nwolb|paypal|rbs|santander|santandercards|santandergroup|secure-cahoot|secure-halifax|secure-hsbc|smile|woolwich|ybonline|zenithbank)[-a-zA-Z0-9]{1,4}\.(com|co\.uk|net)/i
score LOCAL_FROM_BANK_OBF 12
describe LOCAL_FROM_BANK_OBF From an obfuscated bank-like domain
header LOCAL_FROM_FIN_INST From:addr =~
/\@(bankofengland|fsa|hmrc)\.(com|co\.uk|gov\.uk|net)/i
score LOCAL_FROM_FIN_INST 3
describe LOCAL_FROM_FIN_INST From other financal institution
And here are some of my SPF/DKIM rules for commonly phished institutions:
whitelist_from_dkim *@paypal.com
whitelist_from_dkim *@*.paypal.com
whitelist_from_dkim *@* paypal.com
whitelist_from_dkim *@paypal.co.uk
whitelist_from_dkim *@*.paypal.co.uk
whitelist_from_dkim *@* paypal.co.uk
# Banks
whitelist_from_dkim *@alert.bankofamerica.com
whitelist_from_dkim *@bankofamerica.com
whitelist_from_dkim *@barclays.com
whitelist_from_dkim *@*.barclays.com
whitelist_from_dkim *@barclays.co.uk
whitelist_from_dkim *@*.barclays.co.uk
whitelist_from_dkim *@lloydstsb.com
whitelist_from_dkim *@*.lloydstsb.com
whitelist_from_spf *@citibank.com
whitelist_from_spf *@*.citibank.com
whitelist_from_spf *@citicorp.com
whitelist_from_spf *@*.citicorp.com
whitelist_from_spf *@citigroup.com
whitelist_from_spf *@*.citigroup.com
whitelist_from_spf *@natwest.com
whitelist_from_spf *@*.natwest.com
# Blacklist examples
# ebay
header __LOCAL_FROM_EBAY Return-Path:addr =~ /\@ebay\.co\.uk/i
meta LOCAL_SPF_EBAY ((SPF_SOFTFAIL || SPF_FAIL) &&
__LOCAL_FROM_EBAY)
score LOCAL_SPF_EBAY 12
describe LOCAL_SPF_EBAY eBay SPF Fail
# egg
header __LOCAL_FROM_EGG Return-Path:addr =~ /\@egg\.co\.uk/i
meta LOCAL_SPF_EGG ((SPF_SOFTFAIL || SPF_FAIL) &&
__LOCAL_FROM_EGG)
score LOCAL_SPF_EGG 12
describe LOCAL_SPF_EGG EGG SPF Fail
# facebook
header __LOCAL_FROM_FBOOK Return-Path:addr =~
/\@facebookmail\.com/i
meta LOCAL_SPF_FBOOK ((SPF_SOFTFAIL || SPF_FAIL) &&
__LOCAL_FROM_FBOOK)
score LOCAL_SPF_FBOOK 12
describe LOCAL_SPF_FBOOK Facebook SPF Fail
# firstdirect
header __LOCAL_FROM_FD Return-Path:addr =~
/\@e?mail.firstdirect.com$/i
meta LOCAL_SPF_FDIRECT ((SPF_SOFTFAIL || SPF_FAIL) &&
__LOCAL_FROM_FD)
score LOCAL_SPF_FDIRECT 12
describe LOCAL_SPF_FDIRECT First Direct SPF Fail
# Let's remove the @ and try for all sub-domains. 21/7/10
# hsbc
header __LOCAL_FROM_HSBC Return-Path:addr =~
/hsbc\.(com|co\.uk)$/i
meta LOCAL_SPF_HSBC ((SPF_SOFTFAIL || SPF_FAIL) &&
__LOCAL_FROM_HSBC)
score LOCAL_SPF_HSBC 12
describe LOCAL_SPF_HSBC HSBC SPF Fail
#natwest
header __LOCAL_FROM_NATWEST Return-Path:addr =~ /natwest\.com$/i
meta LOCAL_SPF_NATWEST ((SPF_SOFTFAIL || SPF_FAIL) &&
__LOCAL_FROM_NATWEST)
score LOCAL_SPF_NATWEST 12
describe LOCAL_SPF_NATWEST Natwest SPF Fail
# paypal
header __LOCAL_FROM_PAYPAL Return-Path:addr =~ /\@paypal\.co\.uk/i
meta LOCAL_SPF_PAYPAL ((SPF_SOFTFAIL || SPF_FAIL) &&
__LOCAL_FROM_PAYPAL)
score LOCAL_SPF_PAYPAL 12
describe LOCAL_SPF_PAYPAL Paypal SPF Fail
# smile
header __LOCAL_FROM_SMILE Return-Path:addr =~ /\@smile\.co\.uk/i
meta LOCAL_SPF_SMILE ((SPF_SOFTFAIL || SPF_FAIL) &&
__LOCAL_FROM_SMILE)
score LOCAL_SPF_SMILE 12
describe LOCAL_SPF_SMILE Smile SPF Fail