安全公司AT& T Alien Labs披露了一种使用协作通信软件Slack的Webhooks,来对用户进行钓鱼攻击的手法,而Slack也主动搜索泄露的URL使其无效,并呼吁管理者妥善保管Webhook URL。
Incoming Webhooks是一种将应用程序的消息发送进Slack的方法,其提供一个唯一的URL,应用程序可以利用该URL以JSON作为载体,发送文本消息以及选项,但安全人员却发现,攻击者利用这个可让开发者从外部发送资料到Slack的简单方式,对用户进行钓鱼攻击。
问题发生在频道复写功能,这个功能让JSON载体只要增加频道键值,就能快速地覆盖先前指定的Webhook目标频道,在部分情况中,这个方法可以被用来复写先前的配置。安全研究人员在GitHub中的公开程序代码中,找到了130,989份存在Webhook URL的程序代码,大部分这些程序代码都包含了唯一的Webhook值,使用这些公开的URL,就能利用Slack应用程序进行钓鱼攻击。
攻击者可以构建一个Slack应用程序,并让这个应用程序可公开访问,接着对泄露的Webhook URL发送恶意消息,攻击者就能够关注安装恶意应用程序的工做空间,并利用该应用程序从工做空间窃取资料,而攻击者可以访问资料的范围,取决于应用程序当初请求的访问权限。
AT&T Alien Labs研究人员提到,Slack管理者可以采取一些措施,降低可能出现的攻击风险,但是部分措施只有Slack才能进行。Incoming Webhooks应仅能给予最低的权限,像是默认仅能在定义的频道中运行,多频道Webhooks以及复写功能,应该作为独立的应用程序或是选择性激活,研究人员表示,现在复写功能藏在配置说明面板底下,用户需要特别进行操作才会显示,因此许多用户并不了解这项功能,另外,也应该确定除非Webhooks具有明确定义,否则Webhooks都不应该能被发布到公告或是管理员频道。
研究人员也提到,Webhooks配置页面没有任何文本告诉用户Webhook URL的重要性,加上用户对复写功能不熟悉,就会让用户暴露在可能遭受钓鱼攻击的风险中。而对此Slack也回应,Webhooks是凭证工具,能够用来访问工做空间的发布功能,因此对于已经泄露的Webhook URL,管理员应该主动让这些URL失效后,产生新的URL。
Slack也主动到GitHub上搜索了所有已经对外泄露的Webhooks,并使这些URL失效,Slack提到,只要能够妥善保管Webhook URL,那Webhooks就会是安全的,因为URL本身无法被猜测,管理者应该使用最佳实践来存储这些凭证。