
▌作者:Chris Brook
▌翻译:360代码卫士团队
Git仓库管理器GitLab最近修复了一个可导致用户遭受会话劫持攻击的漏洞。
Imperva公司的安全研究员Daniel Svartman在5月份发现了这个问题但直到GitLab修复完成后才将其公之于众。
攻击者能够利用这个漏洞执行一系列恶意活动。Svartman指出,“如果攻击者成功地暴力攻破某账户,那么就能管理该账户、转储并更新代码、并且窃取潜在的敏感信息如尚未公开的新版软件等。另外,在其它场景下,通过更新代码,攻击者能在其中嵌入任何类型的恶意代码。”
发现漏洞的经过
Svartman曾在披露该漏洞时指出,当时他在URL中看到了自己的会话令牌。他所需要做的就是将这个令牌复制粘贴来保证访问GitLab控制面板、账户信息、个人项目甚至是网站代码权限的安全。
虽然在URL中公开可见会话令牌已足够让人担心了,但更让人不安的是Svartman的第二个发现:GitLab使用永远不会过期的持续性私有会话令牌。如果攻击者保护了访问永远不会过期的用户会话令牌,那么他们就能窃取令牌并在几周或几个月后实施攻击,而受害者对此毫无察觉。而且令牌的长度只有20个字符,从而导致它易于遭受暴力攻击。令牌的这种持续性特征以及所拥有的管理员级别的访问权限,构成了真正的安全问题。
目前尚不知晓该漏洞在修复前已存在多久的时间,不过Svartman指出他并非第一个将问题告知GitLab的人;他曾在GitLab的支持论坛上看到有人提到过。
未发现遭利用迹象个人访问令牌将取代私有令牌
GitLab回应称目前尚未发现漏洞已遭利用的迹象。
GitLab的安全主管Brian Neel指出,GitLab使用私有令牌本身并非是一个问题。他认为攻击者并不能直接利用这个漏洞。只有跟跨站脚本或其它漏洞结合使用它才会成为问题。一般来讲,跟不存在私有令牌的账户相比,并非拥有私有令牌的账户更易遭攻击,除非攻击者使用另外一个漏洞窃取该令牌。多数网络服务都支持私有令牌这个理念,比如AWS、GitHub、Digital Ocean等都设有私有令牌。而这些组织机构跟GitLab私有令牌真正的区别在于,它们仅限于API且一般都是加密的;而GitLab通过个人访问令牌支持的选择更多。GitLab目前正在逐步淘汰私有令牌,取而代之的是个人访问令牌。
GitLab还指出,已从使用私有令牌获取RSS内容转变为使用只读RSS令牌,这样如果令牌被攻陷,那么只有RSS内容数据遭暴露。GitLab强调称将弃用私有令牌但质疑私有令牌是漏洞的说法。
GitLab曾在去年11月份修复了一个类似的命令执行漏洞。这个漏洞本可导致验证用户获取访问敏感应用文件、令牌或机密的权限。HackerOne的联合创始人Jobert Abma在去年10月份将漏洞告知GitLab,后者于1周后发布补丁。
本文由360代码卫士编译,不代表360观点,转载请注明“转自360代码卫士www.codesafe.cn”。

