前言
本文根据英文原文“Hazard Integrated: Understanding Security Risks in App Extensions to Team Chat Systems”整理撰写,作者为查明明、王基策、南雨宏等。原文发表在NDSS 2022。本文较原文有所删减,详细内容可参考原文 。
01介绍
互联网技术的发展催生了远程办公新模式,人们的工作空间已不在局限于线下物理空间,而扩展至网络虚拟空间。在此背景下,市场上涌现出一类团队协作平台(也称为团队聊天平台、远程办公平台,简称为TACT平台)应用,它们提供了群组通信、音视频会议、文档协作、任务管理等丰富功能帮助团队实现远程项目协作。其中典型的团队协作平台软件包括Zoom、Slack、Facebook Teams、Webex Teams等。团队协作平台也支持集成各种第三方小程序(又名第三方插件、机器人、应用扩展,简称为TA)扩展其自身功能。例如,在Slack应用市场上,存在着超过2000个公开的第三方小程序,包括Zoom、Teams、Dropbox、Gmail、safesforce等。然而,这样的小程序集成功能也为团队协作平台带来了复杂性,也可能引入潜在的安全风险。本工作首次对12个流行的TACT平台(即Slack、Microsoft Teams、Webex Teams、Facebook Workplace、Discord、MatterMost、Bitrix24等)进行了深入的安全性分析,涵盖了TA生命周期的关键过程,包括安装、配置和运行过程,并揭示了各过程中存在的安全漏洞及风险。
02背景
1.团队协作平台及第三方小程序简介
TACT平台提供了一个模拟线下办公场景的虚拟平台,通过即时通信、音视频会议、文档协作等丰富的办公功能帮助团队协作,它们与即时通信平台(例如:Facebook Messenger,Kakao talk,Wechat)相比,具有两大突出特点:
(1)TACT平台更关注于群组沟通,而不是一对一的直接消息传递。在TACT平台上,来自同一家公司的用户通常是同一“工作空间”(一些平台也称为团队)的成员,而在工作空间中,团队成员可以根据不同的话题或项目加入不同的聊天频道。这些频道可分为两种类型:公共频道和私人频道。公共频道向团队中所有成员开放,团队中的任何人都有访问的权限。私人频道的私密性好,安全级别高,只有得到相应权限的成员才可以访问此类频道。
(2)TACT平台的设计支持项目协作,例如,群组视频/音频聊天、屏幕/文件共享和项目管理。这些功能通常通过使用第三方小程序(简称为 TA)集成其他协作工具来支持公共/私人频道的可用性以及增强同频道内用户的交互。此外,任何团队成员都可以为所在的工作空间创建专属小程序,并可以选择是否上传到小程序市场。此外,根据TACT平台设置,小程序可以由用户自己直接安装,也可以由工作空间管理员批准和安装。小程序通过API访问TACT平台资源,通常为 REST-API[2],提供读取、写入和更新TACT平台系统资源(例如,消息历史记录、文件和会议呼叫)等功能。平台的服务器端处理由小程序发出的 API 请求,随即返回响应,响应内容包括数据(通常为 JSON 格式)或者状态码。
图 1 Slack 聊天窗口启动 Zoom 通话示例
2.威胁模型
本研究假设攻击者是工作空间中的恶意用户,其能够在工作空间上安装TA,并且TA可以执行平台允许的全部功能。此外,假设攻击者在不接触受害者系统和软件的情况下远程执行所有攻击。注意,本研究讨论的恶意TA不是应用市场上公开发布的TA,而是由普通用户或管理员开发并安装在工作空间中的私有TA。
03TA安装、更新和配置风险
研究发现TA在安装、更新和配置过程中存在安全风险和安全漏洞,下面主要介绍两类TA配置功能的设计存在访问控制漏洞。
Slash Command命令劫持:许多平台配置了“Slash Command”斜杠启动命令[3](一些平台称为“Command”),团队成员可以在聊天窗口键入斜杠启动命令启动相应的TA。例如,Slack上的Zoom小程序配置了斜杠启动命令——“/zoom”,如果团队成员想要发起Zoom会议,只需在聊天窗口中输入命令“/zoom”,然后Zoom小程序会立即响应并将Zoom会议链接发布在聊天窗口中。
本研究发现在Slack、Rocket.Chat、Cliq等平台上,恶意TA可以配置与合法TA相同的Slash Command,使得恶意TA可以劫持合法TA。更严重的是,在Slack平台上,由于管理员不会对安装TA进行审查,使得任何用户都可安装恶意TA,并且恶意TA可以劫持任意已安装的合法TA的Slash Command。
通过URL预览监听消息:很多平台允许TA配置URL预览功能,只要用户在平台输入特定URL,配置了该URL预览功能的TA就会收到来在平台通知的完整URL链接。例如,如果TA将“docs.google.com”注册为URL预览链接,则TA服务端会收到所有以此开头的URL,之后便可将google doc预览发布至聊天窗口。
恶意成员可以利用该功能监听所有频道中发出的以注册URL开头的完整链接,甚至包括私有频道。例如,如果TA注册监听“docs.google.com”,则其可以监听所有频道中任何成员发出的google doc共享链接。通过对12个TACT平台人工分析发现,其中Slack平台和Facebook Workplace平台存在该漏洞。
04TA运行时风险
违反访问控制策略:在违反访问控制策略的API中,Slack的通话API允许TA集成第三方通话服务(例如Zoom或Webex会议)或直接使用Slack平台自身通话服务[5]。研究发现频道成员可利用上述API在未经原通话参与者授权的情况下窃听或者阻止其私人通话。例如,攻击者使用API“calls.update”可以偷偷地将频道成员发出通话邀请中的链接替换为攻击者提供的通话链接,从而导致窃听攻击。此外,攻击者可以调用“calls.end”API不停地中断其他成员通话,从而导致拒绝服务攻击。
私人消息读取:在4个平台(Microsoft Teams、Facebook workplace、Flock、Discard、Twist)上,研究发现管理员可以利用API访问用户私人消息。另外,我们利用管理员权身份使用了上述平台,均未发现平台应用界面提供该此功能。因此,对于以上发现的四个平台,我们认为TAAPI实际上提供了未授权访问私人消息的秘密渠道,因而认为其存在安全风险。
URL欺骗:我们发现11个TACT平台存在URL欺骗风险。只有Discord设计了保护机制防御此类风险,其会在检测到显示文本和跳转URL不一致时弹出警报窗口。
(本文只选取原文中部分章节,更多精彩内容敬请期待后续出版的《网络安全研究进展》)
作者简介
查明明,印第安纳大学伯明顿分校(Indiana University Bloomington)博士研究生,师从王晓峰教授,研究方向为系统安全。博士在读期间,主要研究领域有漏洞挖掘,5G安全等。博士期间已发表多篇网络安全顶会论文,包括IEEE S&P,USENIX SECURITY,CCS,NDSS等。
王基策于2022年6月在中国科学院大学信息安全专业获得博士学位。现任北京计算机技术及应用研究所工程师。研究领域为网络攻击与防御、安全漏洞挖掘与利用,在包括网络安全国际顶级会议USENIX Security、NDSS的会议和期刊上发表过多篇研究论文。
南雨宏,博士毕业于复旦大学,现任中山大学副教授,中山大学软件安全及隐私保护课题组(GoSec-SYSU)负责人。曾任美国普渡大学博士后研究员,普渡CERIAS访问学者。主要研究内容为系统软件安全及隐私保护。研究成果曾获得USENIX WOOT 2020最佳论文奖,CSAW Best Applied Securiy Reserarch Finalist、ACM SIGSAC China优秀博士论文奖等荣誉。所发现安全问题多次获得包括Apple、Google、Facebook等厂商的确认及致谢。