千万小心从右向左覆盖技术 恶意软件经常用这个方法骗用户

美网络安全宣传月系列文章中,DarkReading提到了从右向左覆盖技术(right-to-left override, RLO),这个技术虽然老掉牙,但在网络钓鱼中非常好用。本文就是帮大家来复习什么是从右到左覆写。

从右到左覆写是什么

Unicode包含若干个特殊字符串,允许在正常情况下从左到右的文本中插入从右到左的文字.其中一个右到左覆写字符串就是“U+202E”。

举个例子,我们可以写一个句子,从正常顺序(左到右)突然变成反序(右到左):

这很酷。一旦你的终端、浏览器或操作系统看到这个右到左覆写字符串,就会将其后的每个字符按照从右到左的顺序呈现。这些字符仍被按键入顺序存储,只是被反过来演示。有一幅很棒的《xkcd》漫画,能说明这在现实世界是如何运作的:

攻击者如何使用右到左覆写字符串

多年来,狡猾的攻击者一直在使用Unicode字符来欺骗用户打开恶意文件。大多数情况下,这些攻击会诱骗用户打开一个正常情况下不会打开的文件。诱骗套路就是让恶意软件看起来像一个PDF或者Office文件。

假设我们想让张三打开一个恶意软件,一个文件名包含scr扩展名、与Windows屏保文件关联的Windows便携式可执行(Portable Executable,PE)文件。作为攻击者,我们可以将文件命名为:

"charity_fundraiser_bb\u202Excod.scr"

由于右到左覆写字符串u200E的存在,张三的邮件程序和操作系统会将文件名显示为:

那么,张三很可能会打开这个看起来有意思又安全的DOCX文件。

使用EDR数据来检测潜在的威胁

要检测这些潜在的攻击威胁,请查找包含右到左字符的所有文件名。大多数工具不支持使用转义序列直接搜索特定Unicode字符(即不能直接用\u202E进行搜索),所以你可能需要将该字符串拷贝粘贴到搜索框中(这时这个字符串是看不见的)。如果你最后输入的字符按从右到左的顺序显示,就表明粘贴成功了。

用检测工具检测右到左覆写攻击的备忘单

注意两个星号之间的不可见字符就是右到左覆写字符串。

 

Red Canary

创建目标为下列内容的搜索:

filemod_of?("\u202E")

即:

 

Carbon Black Response

利用进程搜索来查找下列内容:

filemod:*?*

即:

 

Crowdstrike Falcon Insight

利用事件搜索来查找下列内容:

FilePath=*?*

即:

 

SOF-ELK

利用事件搜索来查找下列内容:

file_path.raw:*?*

即:

 

 

sysmon

Sysmon常被配置为默认收集所有命令行。在Splunk或其他工具中,利用下面的查询来查看包含右到左覆写字符的文件:

CommandLine=*?????* | table CommandLine ParentCommandLine

即:

 

 

为扩大范围,还可以查找可能用于进一步掩盖真实文件名的左到右覆写字符串U+202D。

这些检测的准确性部分取决于被监控对象的全球性。如果监控对象通常就使用从右到左排序的语言(例如波斯语和希伯来语),那么你会得到更多的检测结果。这种情况下,你可以进一步添加检测条件,例如文件扩展名、文件类型(可执行文件、PE、ELF等)等,来限定检测结果。

通过使用Red Canary,我们在过去90天内在数十万个终端上发现了约300个检测结果。这个检测的准确性相对合理,既不会给团队带来过高的工作量,也不会导致高误报率。

应对潜在威胁

对检测结果的鉴别和调查可能会很有挑战性。这是因为,你的EDR平台的Web控制台会在读取右到左排序的字符后,按照攻击者的意图将其显示给你。

在很多浏览器中,需要非常小心地识别表示右到左字符的空白。下列截屏显示了Chrome浏览器中Carbon Black Response平台的一个案例。

Chrome浏览器中,右到左字符串操纵Carbon Black Response的案例

 

在鉴别了很多此类文件名之后,我们的安全运营团队正在研究如何在Red Canary平台上标示这些字符串,以便我们的分析师能清楚地看到。对于虔诚的DFIR分析师,能在网页上标示这些字符串的Chrome插件将是一个非常有用的功能。

愉快地猎捕这些攻击吧!

发表评论