This type of spoofing is commonly seen when used on employees that are close to the VIPs of the company. Its purpose is to make recipients believe that the mail has been sent from a trusted source based on the sender’s name. To the untrained eye, the incoming email will look legitimate and they will and may completely disregard the sending email address displayed in their email client.
This is what spammers are aiming for, they are looking for people who are not aware of this type of spoofing. They want recipients to believe that the display name in Outlook for example is actually the mailbox that sent the mail even though the email used is clearly not from the VIP user.
Bad Spoof Sample:
In this spoof example we assume John Smith is the Vip user, the CEO of yourdomain.com:X-Env-Sender: [email protected]
or X-Env-Sender: [email protected]
…
From: John Smith <[email protected]>
…
To: <[email protected]>
NOTE/TIP:
This policy follows the same logical structure base as shown in the article that helps with domain spoofing. In this article, we create a policy to tackle domain spoof in general. If you’ve followed the previous article, the Capture Header Information list already exists, as such you don’t need to duplicate it, use the same list as created before, use the search feature to find it. If, on the other hand, this is the first time you're here, create the list as stated below:
We will be using regular expressions in this policy. In Symantec.cloud, the Data Protection regular expression engine supports Java 7 based expressions.
Important: While writing regular expressions, do test your expressions to ensure that they work as you intend. Use the following pages to test your regular expressions:
\p{Punct}
, if you need the equivalent to it in PCRE is [[:punct:]]
.Symantec recommends checking the Oracle Summary of Regex Constructs for instructions on syntax. Ensure that you check the case insensitive option.
Syntax: | |||
---|---|---|---|
. (dot) a a|b [abx-z] a+ a{4,8} \w \b |
Any character except newline The character a a or b One character of: a, b, or the range x-z One or more a's Between (inclusive) 4 and 8 a's A word character (same as [_a-zA-Z0-9]) Word boundary |
\ ab a* a? a{4} a{9,} \d |
Escapes a special character The string ab 0 or more a's Zero or one a's Exactly 4 a's 9 or more a's A digit (same as [0-9]) |
Rule 1:
Control VipName
Condition 1:
Content Regular Expression List
- VipName Checker
AND
Rule 2:
Header Information conditions
Condition 1:
Content Regular Expression List
- Capture Header Information
AND
Rule 3:
Exceptions
Condition 1:
Content Regular Expression List
- Valid Spoof IP sources Vips
(AND)
- Valid Spoof Msg-ID sources Vips
Additional/Optional Conditions
Condition 2:
Sender Group
- Personal emails Exceptions
Condition 3:
Content Regular Expression List
- Valid Spoof IP sources
(AND)
- Valid Spoof Msg-ID sources
In short, the policy will be true, that is, trigger if the incoming email contains one of the Vip Names being monitored, and the source IP and source Message-ID aren't known. Then, it affects the email, saving in the process information of the Body From, HELO/EHLO, IP, and/or Message-ID used. The final report will also contain the Env-sender address, as well as the subject of the email.
^(from:.*?((\bFname_vip\b.*?\bLname_vip\b|\bLname_vip\b.*?\bFname_vip\b).*?<|<(Fname_vip\p{Punct}{0,3}Lname_vip|Lname_vip\p{Punct}{0,3}Fname_vip)@).*)
^(from:.*?((\bJohn\b.*?\bSmith\b|\bSmith\b.*?\bJohn\b).*?<|<(John\p{Punct}{0,3}Smith|Smith\p{Punct}{0,3}John)@).*)
(\bFname_vip\b.*?\bLname_vip\b|\bLname_vip\b.*?\bFname_vip\b)
(Fname_vip\p{Punct}{0,3}Lname_vip|Lname_vip\p{Punct}{0,3}Fname_vip)
(Fname_vip\p{Punct}{0,3}Lname_vip|Lname_vip\p{Punct}{0,3}Fname_vip|FLetter\p{Punct}{0,3}Lname_vip)
^(from:.*?((\bJohn\b.*?\bSmith\b|\bSmith\b.*?\bJohn\b).*?<|<(John\p{Punct}{0,3}Smith|Smith\p{Punct}{0,3}John|J\p{Punct}{0,3}Smith)@).*)
=IF(A2="","","^(from:.*?((\b"&A2&"\b.*?\b"&B2&"\b|\b"&B2&"\b.*?\b"&A2&"\b).*?<|<("&A2&"\p{Punct}{0,3}"&B2&"|"&B2&"\p{Punct}{0,3}"&A2&")@).*)")
(?:1)?\(((?:HE|EH)LO(?!=)\n?.*?)\)[\s]{1,2}?.*?\n?.*?messagelabs\.com
(?:2)?\(((?:\d{1,3}\.){3}\d{1,3})\).*?\n?.*?messagelabs\.com
(?:3)?^(Message-ID:.+)$
(?:4)?^(Reply-to:.+)$
READ ME:
The approved sources rule serves to list the IPs and/or Message-IDs of valid senders that use the VIP names, like business partners, personal emails, etc. This information will be provided by the reports you’ll be running every few days. Steps for the below:
From the report you’ll review the listed entries and decide how to approve a given valid source. The idea here is to pick the option that delivers that same result while requiring less effort to do. So if you have a source that has dozens of IPs, but follows a particular pattern with regards to the Message-ID, it's probably easier to approve the Message-ID format. On the other hand, you may have a source with few IPs, but quite different format of Message-IDs every time, it's easier to approve the IPs in this case, or IP range.
^195\.168\.(0\.([1-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5]))|(([0-1])\.([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5])))|1\.([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-4])))$
\b195\.168\.(0\.([1-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5]))|(([0-1])\.([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5])))|1\.([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-4])))\b
\b195\.168\.(0\.([1-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5]))|(([0-1])\.([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5])))|1\.([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-4])))\b(?:IP Range from partner ABC)?
^(Message-ID:(?:.*?)@dummy\.domain\.symantec\.cloud>)$
^(Message-ID:.*?@[a-z0-9]{3}pr[0-9]{2,4}mb[0-9]{3,4}\.[a-z]{3}prd[0-9]{2}\.prod\.outlook\.com>)$
Report |
|
||||||||||||||||||||||||||||||||||||||||||||
Reports Location: Access the ClientNet portal > Reports > Report Requests Requirements Before we can create the report, you’ll need to ensure you’re using the local main account or a secondary user with the role/permission of “View Sensitive statistics” assigned to it. Secondly, we need to ensure the following options in Data Protection is activated. For those that have a partner, or you’re a partner creating this policies/reports on behalf of your client, your partner account won’t work to create this report, again it needs to be a local user to the account with the correct role. Access the Clientnet portal and go to Services > Data Protection > Settings On the settings, window scroll down and tick both options in Reporting > Save. Reporting Tick > Show matched content on reports Tick > Show surrounding text on reports Report for policy Anti-spoof Control
|
|||||||||||||||||||||||||||||||||||||||||||||
Example of how a report would look like in excel, with non-relevant columns hidden:
|
Final Steps |
|
With everything set in motion, the work will now be focused on analyzing the report every couple of days, work out the valid spoof sources and approve them in the Exceptions condition. This process may take several weeks depending on the email flow and number of individual valid sources. The recommendation is to only change the action of the Anti-spoof Domain Control policy once you can accept the reduced risk of false positives, which after several weeks and a good deal of approvals later should be minimal.
|