开发者请注意:复制代码时需提高警惕
一种新型攻击媒介正在传播扩散,各类开发者都应对此保持关注。许多IT从业者可能认为,凭借自身在网络领域的经验,能够抵御恶意软件、钓鱼攻击及其他安全入侵,但这种新方法直接针对开发者群体——并且通过开发者工具箱中的一项常用功能发起攻击:复制粘贴的代码片段.
Web开发者在网上搜索代码片段并复制到项目中是非常普遍的做法。这种方式能够节省时间,也能减少常用代码编写出错的可能。这种做法应用极为广泛,甚至有专门的网站用于分享标准代码,还做了特殊格式优化,方便开发者取用所需的代码片段。但遗憾的是,恶意攻击者已经找到了方法,让这种快捷操作给开发者带来风险。
攻击原理
这种攻击的核心是隐藏在页面文本下方的嵌入式JavaScript。恶意攻击者会在网站的底层代码中插入JavaScript命令,当用户选中并复制文本时,页面显示一切正常,但实际复制到剪贴板的内容并非用户在网站上看到的文本。
很多人可能遇到过类似的情况,只是后果没有这么严重。新闻网站和博客有时会在用户复制并粘贴到其他位置的文本中添加来源标注,方便读者了解信息出处。上述两种情况——无论是添加来源标注还是这种攻击手段——用户都只有在将内容粘贴到其他位置时,才会发现内容已经被篡改。而这正是危险所在。
和新闻媒体的信息不同,复制的代码是会被执行的。这正是黑客所利用的点。被篡改的代码可能包含任意命令,在最糟糕的情况下,会触发远程加载执行,在当前活跃会话中下载shell脚本。部分恶意代码甚至包含执行指令,意味着代码一旦被粘贴到命令行就会立即运行,这会给所有复制粘贴代码的人带来极大的安全隐患。
应当信任谁
那么,随着这种攻击手段被公开,开发者是否还能找到可以信任的、提供干净代码片段的来源?简单来说,没有。即便是由熟人托管维护的网站也可能存在风险,因为恶意攻击者可以入侵已有网站,篡改可信来源的代码。网站发布者甚至可能完全没有意识到存在问题,因为他们需要排查源代码才能发现异常。在供应链攻击场景下,这是一个尤为严重且持续增长的问题。根据欧洲网络安全局的研究,66%的攻击针对供应商代码.
尽管这个结论令人不安,但开发者唯一能信任的代码,只有自己编写的,或是粘贴到文字处理器中亲自核验过的代码。跳过这一步确实很省事,但后果可能是毁灭性的。想要保护自身数据安全的开发者,应当避免执行未经本人亲自检查的代码。
要了解更多关于这种潜在攻击媒介的信息,可收听《根本原因》, 第200期《为何不要从网页复制粘贴命令》