Google Ads存在漏洞,使恶意人士可截取任意YouTube用户私人视频内容

白帽黑客David Schütz公开了他在2019年所发现的Google漏洞,该漏洞可让恶意攻击者通过Google Ads,一个影格一个影格地偷走YouTube私人视频的图片内容。Google已经确认该漏洞存在,并且已经完成修复,还通过漏洞奖励计划发送5,000美元的奖励给David Schütz。

YouTube服务本身并不会直接泄露私人视频内容,而是必需要通过Google Ads。Google Ads是一个广告服务,可以让用户制作广告,在YouTube等Google服务中播放,包括在YouTube视频前的广告视频,都可以在Google Ads中制作。而在Google Ads中,有一个称为Moments的功能,可让广告商可以指定视频时间,标记像是企业商标出现的时间戳。

Moments便是泄露私人视频内容的主角,David Schütz提到,当用户标记一个指定时刻,则Moments功能便会向/GetThumbnails端点发出POST请求,请求消息会包括视频的ID和以毫秒为单位的视频时间,而取得的回应则是Base64编码图片,以用于Google Ads的缩略图。而Moments的漏洞,使得请求消息中的视频ID,可以使用非用户所有的私人视频,也就是说,这是一个不安全直接对象参照(Insecure Direct Object Reference,IDOR)漏洞,可让恶意人士任意访问私人视频中的任意影格。

David Schütz实例了这个IDOR漏洞的概念性验证,只要计算好每影格在屏幕上停留的时间,就能重复动作截取不同影格,并且串联在一起还原成为视频,这个Moments漏洞提供攻击者,下载任何用户YouTube私人视频的能力。

不过,这个漏洞仍有其限制,在实际应用上,攻击者必需要知道目标私人视频的ID,因此攻击者要大量取得视频ID仍有其障碍,再来是,恶意攻击者取得的内容是图片,因此不会有声音信号,私人视频声音内容不会遭到泄露。另外,取得的Base64编码图片分辨率很低,但是仍为足以识别视频内容的程度。

David Schütz在2019年12月向Google回应了这个漏洞,Google也迅速地确认该漏洞,并且暂时禁用Moments功能,在2020年1月,Google就发出漏洞奖励奖金5,000美元。David Schütz表示,两个不同后台沟通的环节,通常是值得关注的地方,因为两个产品团队可能只了解各自的系统,并在使用其他产品时,遗漏重要细节,因此容易出现安全性漏洞。