前言
在Black Hat 2018大会上,研究人员展示了要突破绕过macOS防火墙是多么容易,期望推动苹果以及第三方安全公司加强保护措施。
Digita Security首席研究官,兼Mac安全公司Objective-See创始人Wardle在Black Hat 2018大会的一次演讲中向观众们展示了简单突破和绕过macOS防火墙的方式。
Wardle指出,macOS内建防火墙功能非常有限,只能阻止和监控入站连接,无法管理出站连接。 这就意味着,如果一个恶意软件以某种方式进入了Mac系统,即使Mac防火墙已经启用,它也无法过滤或阻止该出站连接。这个问题由来已久,而且也有一些第三方macOS防火墙解决方案在市面上销售。但经过Wardle的研究,这些防火墙产品不堪大用。
两种方式
对于顶级第三方macOS防火墙产品的测试结果显示,有些防火墙只是通过进程白名单来保护用户的安全。如果进程被识别并且看起来没什么问题,则防火墙允许连接通过。如此一来,基本上只要将恶意软件的进程名称修改为与白名单里的进程名一致即可畅行无阻,防火墙甚至没有检查路径,只是看了看名字就放行了。
更令人担忧的是,有些防火墙只是检查进程在访问哪些域名。黑客只要将恶意软件托管在iCloud域或者在该域上植入一个C2 Hub就能轻松绕过防火墙,能够很方便地将用户数据发送到其他iDrive系统账户,因为防火墙会目视流量流量的传递而无动于衷。
还有一种绕过的方式其实也不新鲜,就在可信应用程序流量中“加点料”。在信息时代的大背景下,人们的计算机要与各种各样应用、站点进行连接,即使防火墙规则设置得极为严格,总会有一些流量是防火墙默认可以通过,不会引起怀疑。
这样一来,黑客都不用主动去找防火墙的弱点,只要监控一下防火墙允许通过的流量就能从中找到一些蛛丝马迹,然后使用相同的可信协议通过可信流量通道发送数据。
来个小例子
Wardle在Black Hat 2018大会上展示了使用可信的DNS协议攻击DNS隧道的方式。在macOS上,DNS请求由受信任的核心系统进程处理。如果恶意软件(或第三方应用程序)试图解析DNS域名,就要通过该核心进程重定向。
即使有防火墙看着,它也不过是看到该系统核心进程的请求后,就直接放行了。这种绕过防火墙的方式可以很容易地添加到现有的macOS恶意软件,实现不经检测的双向网络通信,装了防火墙也没什么用。
Wardle表示,他并不是想指摘防火墙制造商,而是想表明他们的局限性并打破他们一直以来面向公众的宣传——在防范恶意软件方面,他们的产品是万能的。“用户要清楚地知道任何产品的限制,不能买了一辆小汽车然后期望它能够飞行。”他调侃道。
总结
Wardle在演讲的最后表示,他还不知道有哪些公开的Mac恶意软件具备绕过防火墙的能力,但确信有一些开发者的成果可以轻松突破和绕过防火墙。
在今年早些时候Wardle开源了LuLu防火墙(代码托管在GitHub上),希望它能够作为一个起点,用于鼓励大家开发更好的macOS防火墙。