Cybercriminals have been spotted using HTML/CSS and Unicode tricks to bypass tools meant to block malicious emails, marking a new twist in phishing techniques, security researchers report.
Attackers are continuously testing enterprise security systems and exploring new ways to get through. Some rely on hidden text and zero-font attacks, in which they put invisible characters between the letters of an email so it doesn't trigger email defenses with phrases like "password expired" or "Office 365." These malicious emails appear legitimate to any unsuspecting user.
Security firm Inky noticed a new twist on this technique in which attackers use their knowledge of HTML/CSS and Unicode to disguise phishing emails. The company began to investigate when a customer reported a suspicious message disguised as a "password expired" email from Office 365. Researchers loaded the raw text into text editor Emacs and found a few interesting traits.
One of these is the Unicode "soft hyphen," also known as "syllable hyphen." In typesetting, this is used to tell the renderer where to safely break a line and insert a visible hyphen. The soft hyphen normally renders as invisible; however, it will appear as a Unicode character to security software scanning emails for malicious content. To a security tool, it may as well be an "X".
When the Inky team scanned the malicious email for phrases like "change your password," they didn't receive results because the attacker had written such phrases as "c-h-a-n-g-e- -y-o-u-r- -p-a-s-s-w-o-r-d-." To a user they appear as normal; to a scanner they may not raise any flags because its pattern-matching settings aren't configured to look for this type of content.
"The fact that they render invisible is this weird quirk of Unicode," says Dave Baggett, founder and CEO at Inky. "Clearly, the attacker knows a lot about Unicode and is being quite smart in crafting this." He notes there were about 10 Unicode characters included in this email alone.
This wasn't the only new technique seen in this Office 365 phishing email, a type of malicious message Baggett describes as "rampant." When the attacker typed "Office 365," for example, they used the HTML <font> to make it look like logotype. This big red text in the upper left corner is common in Office 365 phishing, he says, and people often register the text as a logo.
Attackers also used the "display:none" setting, an element of CSS that tells a browser to render text as invisible. The phisher made the error of putting text they wanted the user to see within a span element, even though the CSS was written to render spans as hidden. The attacker used the invisible span trick to hide repeating text "40008" between words of the phrase "Password for user[@]example[.]com," a move Baggett says was intended to hide the malicious text from security tools.
"If you're a developer, it's useful to temporarily hide things to test, but here, they're using it to make every span 'display:none,' which is very weird," he notes. "You would never do this on a webpage." He hypothesizes the idea was to fool security tools into thinking the text was visible.
The "40008" text could be another tactic to bypass the pattern-matching in security tools, Baggett adds. If there is a random number generated for every email, there's less of a chance tools will associate them with the same phishing kit.
"This looks like someone took an existing template they'd been using and modified it to use this new trick," he says.
The technique used here is similar to steganography, or the practice of hiding surreptitious messages in text by using invisible or hard-to-see space, Baggett explains. Steganography is another common technique among cybercriminals who want to conceal malicious text. An attacker could also use zero-width Unicode characters to transmit messages in this manner.
A challenge in defending against this technique is there are different kinds of soft hyphens, he points out. It's in the attacker's interest to use several unique Unicode characters to slip past security defenses; however, the more Unicode characters a company adds to its security tool, the slower it will be. Even if you could capture all the many ways an attacker can bypass defenses, it may not necessarily scale well.
"It's in the attacker's best interest to use more characters," Baggett says. "It's in the SEG [Secure Email Gateway]'s interest to have fewer characters in their matching patterns."