找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2888

积分

1

好友

403

主题
发表于 7 小时前 | 查看: 0| 回复: 0

科技感背景配图

近日,安全研究人员披露了一种新的代码存储库攻击手法。攻击者利用 Visual Studio Code 编辑器的 tasks.json 配置文件隐藏恶意代码,并设置其在用户打开项目文件夹时自动执行。由于整个过程符合编辑器预设的工作流,用户可能难以察觉异常。

tasks.json 文件是 VS Code 的一项强大功能,它允许开发者将命令行工具集成到开发环境中。用户可以通过“运行任务”命令手动触发,也可以配置为在打开包含该任务的文件夹时自动运行。通常,项目特定的 tasks.json 文件存放在 .vscode 这个隐藏目录下。

为了防范风险,VS Code 本身设计了两道安全防线。第一道是“允许自动任务”的用户设置,默认是开启的。第二道则是基于信任的机制:VS Code 默认不信任任何文件夹,因此不会在不受信任的文件夹中运行自动任务。当用户打开一个包含自动任务的文件夹时,编辑器会弹出一个警告对话框,提示“创建终端进程需要执行代码”。

然而,这个警告界面的设计可能存在误导。对话框虽然说明了风险,但却高亮显示了“信任文件夹并继续”这个肯定性选项,其视觉引导效果可能强于文本警告本身。此外,VS Code 还提供了一个“信任父文件夹内所有文件夹”的选项,如果用户之前勾选过此项,那么新的子文件夹将默认被信任,警告也不会弹出。

VS Code 文件夹信任警告弹窗
图:VS Code 在打开包含自动运行任务的文件夹时会显示警告对话框,但会突出显示“继续”选项

有观点认为,安全公司有时会夸大其发现的风险。这次事件本身并非 VS Code 的软件漏洞,真正的问题根源在于那些被植入恶意任务的代码库。据 jamf 团队称,这类恶意仓库常以“招聘技术测试”或“开源项目协作”为幌子进行传播。即使没有自动运行的任务,这类受污染的仓库本身就已构成威胁。

不过,VS Code 的这项功能设计也确实引发了关于安全与便利平衡的讨论。一位开发者评论道:“一个文本编辑器仅仅通过打开文件夹就能运行隐藏的代码,这太可怕了……如果用户认为信任某个文件能提高工作效率,他们总是会点击信任按钮。软件设计如此容易出错,我们也不能责怪他们。”

在此次被发现的案例中,tasks.json 文件内包含了一个后门。攻击者能够利用它实现“远程代码执行、系统信息收集和持久的命令与控制通信”。它巧妙地利用了 tasks.json 支持按操作系统运行不同命令的特性,为 macOS、Windows 和 Linux 系统分别编写了恶意指令。真正的恶意负载(一段 JavaScript 代码)则通过 curl 命令从远程服务器获取,实现了代码与仓库的分离。

据悉,这个恶意代码库曾托管在 GitHub 上,现已被平台移除。而用于分发的 JavaScript 恶意代码则托管在 Vercel 这类外部服务上。这种将恶意代码与仓库本身分离的做法,增加了 GitHub 内置安全扫描工具发现的难度。

那么,开发者应如何保护自己?研究人员指出,在将任何代码库标记为可信之前,“仔细审查其内容至关重要”。但对于庞大的项目代码,人工彻底审查几乎不可行。因此,更务实的建议是:“在与任何第三方代码库交互时,务必保持高度谨慎。”

一种有效的防御策略是在隔离环境中进行开发。如果必须在临时或容器化的环境中运行不受信任的代码,即使发生安全问题,其影响范围也能被有效限制。“在容器内进行开发应该成为一种默认的安全工作流。” 另一位开发者补充道。

对于关注此类安全动态的开发者,也可以到 云栈社区安全/渗透/逆向板块,与更多同行交流最新的威胁情报与防御实践。




上一篇:从原理到应用:N沟道与P沟道MOSFET的核心知识全解析
下一篇:产品经理职业发展指南:基于12种行业驱动模型,从P7到CPO的跃迁路径
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-25 19:24 , Processed in 0.362990 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表