开发者注意:复制代码时要小心

Web 开发人员通常的做法是在线搜索代码片段并将它们复制到项目中,这样做可以节省时间并限制常用代码中出现错误的可能性。这种做法非常普遍,以至于整个网站都致力于共享标准代码和特殊格式,以便开发人员可以轻松使用他们需要的片段。不幸的是,不良行为者已经找到了一种方法,使这条捷径对开发人员来说是有风险的。

复制代码时,攻击是怎么运行的的?

攻击取决于嵌入表面文本下方的 JavaScript。为了使用这种攻击媒介,不法分子会在网站的底层代码中插入 JavaScript 命令。当用户突出显示并复制文本时,一切看起来都很好——但实际上复制到剪贴板的并不是他们在网站上看到的文本。

许多人以前可能遇到过类似的事情,但结果并不那么令人不安。新闻网站和博客有时会为粘贴在别处的复制文本添加属性,让读者知道信息的来源。在这两种情况下(归因示例和攻击方法),直到用户将文本粘贴到其他地方,他们才能看到它已被更改。这就是危险所在。

与来自新闻媒体的信息不同,复制的代码是用来执行的。这就是黑客所指望的。更改后的代码可以包含任何类型的命令,在最坏的情况下,会导致远程加载执行,在您的活动会话中下载 shell 脚本。有些甚至包括执行指令,这意味着代码将在粘贴到命令行后立即运行。这会给任何复制粘贴代码的人带来巨大的麻烦。

什么样的代码才是值得信任的?

那么,随着这种公开的攻击方法,开发人员是否可以信任任何人来提供干净的代码片段?最简洁的答案是不。即使由他们认识的人托管和维护的网站也可能存在风险,因为不良行为者可以侵入现有网站并更改来自受信任来源的代码。该网站的发布者甚至可能没有意识到存在问题,因为他们需要调查源代码才能找到它。当涉及供应链攻击时,这是一个特别严重且日益严重的问题。根据欧洲网络安全局的研究,66% 的攻击集中在供应商代码上。

听起来可能令人沮丧,开发人员唯一可以信任的代码是他们自己编写或通过粘贴到文字处理器中验证的代码。虽然跳过这一步可能很诱人,但后果可能是毁灭性的。想要保护数据的开发人员最好避免执行未经他们亲自审查的代码。

相关文章