AI助手GitLab Duo存在漏洞,恐被用于挟持AI回应、泄露程式原始码

生成式AI广泛受到开发者运用,一旦这类应用程式出现弱点,就有可能遭到利用,借此影响软体开发安全。

根据资安业者Legit Security的研究,的功能,让用户能透过自然语言进行互动。此助理能提供开发人员程式码建议、审查程式码安全、分析合并请求(Merge Request,MR)等工作。

而Legit Security在这款人工智慧助理当中,发现远端提示注入漏洞,攻击者只要透过Duo Chat,就能从私人专案窃取原始码、窜改程式码建议并显示给其他用户,甚至还可以泄露机密资讯,或是零时差漏洞。

研究人员也对于攻击者如何利用漏洞提出说明,首先,攻击者可在GitLab专案当中,于合并请求的叙述及注解、提交的讯息、问题(Issue)的叙述及注解,或是原始码等处埋入提示内容。

为了避免这些提示被资安系统察觉意图,研究人员透过Unicode挟带(Unicode Smuggling)、Base16演算法、KaTeX渲染手法来达到目的。而这么做还能让使用者无法在网站上看到相关提示,但Duo却会在生成建议的时候存取。

而这些提示的内容,包含了操纵Duo程式码建议(例如下达指示于输出结果纳入恶意JavaScript套件)、在Duo回应加入恶意URL,以诱骗开发人员存取假的登入网页,或是说服Duo恶意合并请求其实是安全的,从而误导审查人员。

一旦使用者向Duo提出问题,此AI助理就会运用攻击者埋藏的提示,从而导致原始码泄露。研究人员指出,由于Duo取得的权限与受害者相同,而能够存取受害者的私人程式码,若攻击者再要求Duo进行特定的合并请求,Duo 就可能根据攻击者提示的内容,此时Duo Chat输出就会存在弱点,而能用于HTML注入。