2024-06-14 20:08:12
上海辰童科技有限公司
邮件网关,顾名思义,在邮件发送传递过程中,它承担的是“网关”的角色,负责在邮件到达收件人邮箱之前对其进行一些处理过滤,如对邮件进行归档、过滤垃圾/有害邮件、扫描有害附件等。在近几年攻防对抗和钓鱼邮件日益升级的情况下,邮件网关逐渐升级为了邮件安全网关(SEG ),邮件安全网关会使用更加严格的规则和模型来对邮件进行检测,以达到保护收件人不被恶意邮件攻击的目的。长话短说,我们可以将他简单理解为邮件中的WAF。邮件网关是如何检测邮件中的威胁呢?下面我主要从为正文、附件、链接这三个方面给大家分享下一些通用的检测原理:
1. 对于邮件正文,会由内置关键字规则和机器学习结合对正文中出现的文字进行语义分析和权重统计,正文中的文字会被拆分为一小段话或单组的关键字,通过统计关键字在正文中的整体占比判断是否为恶意邮件。
2. 邮件中的附件,邮件网关会对文件特征如md5,hash等进行特征库比对以确认是否恶意。部分高级邮件网关还会通过自带的沙箱对附件进行检测。若附件为压缩包或加密压缩包,则会尝试在邮件正文提取是否有压缩包密码,未提取到则会使用内置密码字典对其进行破解,随后再进行沙箱或特征库恶意检测。
3. 对于正文中包含链接这类情况,则会对提取正文中的链接进行url检测,通过恶意情报、网站信誉或模型检测链接是否为恶意。部分邮件网关还会模拟访问链接地址,对链接网站进行钓鱼模型或恶意模型检测。
NO.2绕过姿势通过上面对邮件网关检测原理的了解,针对邮件网关对邮件不同部分的检测逻辑,邮件网关绕过分为以下几方面:
1. 正文检测绕过刚才我们了解到,邮件网关在检测邮件样本时,会检测邮件正文中的文字,但当邮件正文以html格式编写时,由于html格式的特殊性,邮件网关只会检测其源码,而不是检测其最终渲染结果,这就可以利用一些html标签的特性,达到“眼见不一定为实”的效果,绕过对文本的检测。例如使用foxmail邮件客户端进行发件时,就支持以html格式发送邮件正文。
2. 我们先来使用html格式编辑正文后发送邮件的效果,单从外观上来看,与普通邮件的正文文字无异。但当我们查看邮件正文的html源码时,就能一眼看出来他的异常之处了。
明显能看到在文字中间,插入了一些无关紧要的干扰文字,但是为什么最终呈现的时候却消失了呢?这是因为在使用的span标签中,将font-size(字体尺寸)和opacity(透明度)的参数值都设为0了,尺寸为0,透明度为0,标签内的字体自然就不会最终渲染展示出来了。而网关检测此类正文时,检测的为html的源码内容,经过这样在文字和词中间插入干扰数据的操作,将一些网关可能会认定为敏感可疑的关键字进行拆分伪装,则大概率可绕过对于文本内容的检测。对于正文类的检测,其实还有一些其他”姿势“,给大家一个提示:“图片”,点到为止。2. 附件检测绕过说起附件检测的绕过,很多人第一印象肯定是大名鼎鼎的“免杀马”,免杀马由于其免杀的特性确实能够达到很好的绕过效果,但是成本较高,本着小成本高收益的原则,给大家分享一个小成本又不讲武德的绕过姿势——压缩包绕过。顾名思义,压缩包绕过,肯定就是在压缩包上使用各种花样去躲避检测。网关检测到附件有压缩包后,想要检测压缩包文件,首先肯定要解压压缩包。而如何忽悠让他解不开压缩包,就是绕过的关键点所在。压缩包绕过分两种,一种为多层压缩,利用网关对默认多层压缩包解压层数不同从而绕过解压步骤,例如下图中的测试,将恶意程序进行3层压缩,若网关默认只解压缩2层,即可对其进行绕过。
第二种则是使用加密压缩,刚才我们讲到过,对于加密压缩的附件,网关会首先从正文中提取解压密码,若提取不到则使用默认字典碰撞。那如果使用复杂一点的压缩密码,同时在正文中对其密码提取进行干扰,则大概率会被绕过。如下图中的邮件,可以看到,邮件中有两个附件,一个zip文件和一个png文件,png图片文件打开后为压缩包解压的密码,利用了邮件网关从正文提取压缩密码的特性,转移目标,将压缩包密码以图片的形式放在附件里,用以逃避压缩包密码提取。
接下来我们看另外一种更加取巧的方法,压缩包密码索性直接展示在主题里,也有一定机率达到绕过正文检测提取密码的效果。
最后一种这里卖个关子,刚才上面我们讲到了利用html编码绕过正文检测,那如果html编码和加密压缩联合使用会是什么效果呢?(课后作业来了),感兴趣的同学可以动手试下。3. 链接检测绕过在钓鱼邮件中,除了附件带马,最常见的就是邮件中包含钓鱼链接的钓鱼邮件了,目前对于钓鱼链接的检测和判定机制也已经相对完善了。绕过则需要一些比较”取巧“的办法第一种就是利用二维码进行绕过,此类手法也是近几年来一些黑灰产常用的手法,在邮件中,将钓鱼链接的位置替换为钓鱼链接的二维码绕过对于链接的检测。将点击链接访问的钓鱼方式变为了扫描二维码钓鱼,这种相信大家都不陌生了。
第二种则是利用了短链接这类的网址转化服务,利用短链接将邮件中的真实钓鱼地址进行隐藏躲避来检测,同时短链接服务商一般还提供了网站访问统计的功能,方便其进行数据统计。将需要转换短链接的地址进行转化后,即可获得一个由短链接服务商提供的带有特殊标识的链接,访问即可跳转至预设网站。
从测试邮件中我们可以看到,邮件中的链接为.cn后缀短链接,但当点击访问时真实访问到的网站则为我们刚才预设的baidu.com。用“表里不一”的方法躲避检测。
其实讲到这里大家也能看出来了,网关绕过的本质就是逻辑绕过,以人灵活的脑洞去对抗相对固定的检测规则。以万变应不变。最后再留个彩蛋,上面讲到的几种绕过方式,还可以互相组合。
NO.3如何防御世间万物相生相克,既然有绕过的方法,那就也存在有相对应的防御方法。下面我就抛砖引玉,和大家探讨下如何对其进行针对性防御:1. 对于正文检测的绕过,虽然html编码,图片等方式,让网关无法识别到真正的正文信息,但是万变不离其宗,绕过的最终目的是为了成功将邮件投递到受害者手中,那其最终呈现效果必然是要让受害者能够读懂邮件。接下来有请我们的大杀器——OCR技术登场。OCR即文字提取技术,通过OCR技术我们可以将邮件正文的最终渲染效果进行OCR提取,提取其中的文字、再将提取后的文字进行规则检测,阳光之下,万物显形。在OCR提取之下,html编码,图片的绕过方式将无所遁形。但是OCR技术对于大量邮件的检测较为耗费性能,使用时需要进行预先评估。2. 对于邮件检测的绕过,简单的多重压缩绕过,可将解压缩层数上限提高,或设置规则,若检测到压缩包格式则持续进行解压缩,直至解压缩的文件不为压缩包的格式为止。对于加密压缩解压密码提取的绕过,可以增加解压密码的提取范围,将邮件主题等位置也加入密码提取中,同时若附件中压缩包和图片两种格式同时存在,则对图片进行OCR提取,检测其中是否含有压缩密码。3. 对于链接检测的绕过,也可设置响应规则进行检测,如对正文内容进行检测,若发现正文中包含有二维码,则对二维码内容进行解析,对解析网址进行分析。对于正文中包含短链接的邮件,可在沙箱或云端中对短链接进行预先解析访问,获得其最终指向的地址后再对地址进行恶意判断。