许多企业使用GitHub Action Secrets来存储和保护CI/CD工作流程中使用的敏感信息,如凭证、API密钥和Token。这些私有代码库通常被认为是安全且锁定的。
但根据Wiz客户事件响应团队的最新研究,攻击者正在利用这种盲目信任。他们发现威胁行为者正在使用暴露的GitHub个人访问Token(PATs)来访问GitHub Action Secrets,并潜入云环境,然后大肆破坏。
Beauceron Security的David Shipley表示:"根本问题是这些密钥存在于代码库中。云服务提供商的访问密钥是黄金,它们可能有极长的生命周期,这正是攻击者嗅探的目标。"
Wiz估计,73%使用私有GitHub Action Secrets代码库的组织在其中存储云服务提供商(CSP)凭证。当允许开发人员和自动化机器人与GitHub代码库和工作流程交互的PATs被利用时,攻击者可以轻松横向移动到CSP控制平面。
Info-Tech Research Group技术顾问Erik Avakian解释说,PATs可能成为一个"强大的跳板",允许攻击者冒充开发人员并执行各种活动。他说,这就像拥有进入公司云环境的后台通行证。
"一旦他们持有有效的PAT,就可以在GitHub中做各种事情,直接通向公司的AWS、Azure、GCP或其他类型的云服务,因为GitHub将该PAT视为真正的开发人员,"他说。
有了这种访问权限,威胁行为者可以"探索"各种代码库和工作流程,寻找任何暗示云访问、配置项、脚本和隐藏密钥的内容。如果他们获得真正的云凭证,就"拥有了公司AWS存储桶、Azure订阅和其他工作流程的密钥"。
然后他们可以启动云资源、访问数据库、窃取源代码、安装加密货币挖矿机等恶意文件、潜入恶意工作流程,甚至转向其他云服务,同时建立持久化机制,以便随时返回。
Avakian说:"到那时,基本上你在云中能做的任何事情,他们也能做。"
Wiz发现,拥有通过PAT的基本读取权限的威胁行为者可以使用GitHub的API代码搜索来发现直接嵌入在工作流程yaml代码中的密钥名称,通过"${{ secrets.SECRET_NAME }}"访问。
危险在于这种密钥发现方法难以监控,因为搜索API调用不会被记录。此外,GitHub托管的Actions从使用合法共享IP地址的GitHub管理资源运行,这些地址不会被标记为恶意。攻击者可以滥用密钥,冒充工作流程来源以利用信任,如果代码配置错误或在工作流程中的其他地方重用,可能会访问其他资源。他们还可以持续访问系统。
此外,如果被利用的PAT具有写入权限,攻击者可以执行恶意代码并删除工作流程日志和运行记录、拉取请求以及"创建的分支"(开发实验的代码库隔离副本)。由于工作流程日志很少流入安全事件和事件管理(SIEM)平台,攻击者可以轻易逃避检测。
同样值得注意的是,开发人员有权访问GitHub组织的PAT使私有代码库变得脆弱;Wiz研究发现,45%的组织将明文云密钥私密存储,而只有8%存储在公共代码库中。
Shipley指出:"在一些开发人员的想法中,私有代码库等于安全,但显然并不安全。"
为了防范这些威胁,Avakian指出,企业应该像对待任何其他特权凭证一样对待PATs。云基础设施和云开发环境应该被适当锁定,本质上通过微分段和特权用户管理来"零信任化"它们,以包含它们并防止横向转移。
Avakian说:"像任何其他凭证一样,当Token具有合理的过期日期时,它们最为安全。使Token过期、轮换它们,并使用短期凭证将有助于阻止这些类型的风险。"
最小权限原则,只给账户所需的权限,而不是"管理一切"的方法,Avakian建议。更重要的是,将云密钥移出GitHub工作流程,并确保有适当的监控和日志审查流程来标记意外或异常的工作流程或云创建事件。
Beauceron的Shipley同意,企业需要多管齐下的策略、良好的监控、即时响应计划,以及通过"有意义的后果"来强化不合规行为的开发人员培训流程。必须激励开发人员遵循安全编码最佳实践;在开发团队中建立强大的安全文化非常重要。他说:"你不能为问题的这一部分购买一个闪烁的盒子。"
Shipley说:"犯罪分子已经提升了他们的游戏水平。组织别无选择。他们必须在这些领域投资,否则就会付出代价。"
此外,他补充说,停止盲目信任GitHub代码库。"代码库的本质是它们永远存在。如果你不知道代码库中是否有云密钥,你需要去找到它们。如果它们在那里,你需要昨天就更改它们,并且需要停止添加新的。"
如果有好的一面,他指出,企业是"自己成功的受害者",因为他们通过多因素身份验证(MFA)提高了标准。一般安全意识的提高使犯罪分子更难获得访问权限和身份并入侵系统。
Shipley说:"在某种程度上,这是一个好兆头。以一种滑稽的方式,这意味着犯罪分子现在正在进入需要更多努力的更深层次。"
Q&A
Q1:什么是GitHub个人访问Token(PATs),为什么它们成为安全威胁?
A:GitHub个人访问Token是允许开发人员和自动化机器人与GitHub代码库和工作流程交互的凭证。当PATs被暴露或利用时,攻击者可以冒充开发人员,访问GitHub Action Secrets,进而潜入云环境,获得AWS、Azure、GCP等云服务的控制权。
Q2:攻击者通过GitHub PATs可以进行哪些恶意活动?
A:攻击者可以启动云资源、访问数据库、窃取源代码、安装加密货币挖矿机等恶意文件、植入恶意工作流程,甚至转向其他云服务。他们还能建立持久化机制以便随时返回,基本上可以执行用户在云环境中能做的任何操作。
Q3:企业应该如何防范GitHub PATs相关的安全威胁?
A:企业应将PATs视为特权凭证来管理,设置合理的过期时间并定期轮换。实施最小权限原则,将云密钥移出GitHub工作流程,建立适当的监控和日志审查流程。同时加强开发人员安全培训,建立强大的安全文化,停止盲目信任GitHub代码库。
好文章,需要你的鼓励
清华团队开发DKT模型,利用视频扩散AI技术成功解决透明物体深度估计难题。该研究创建了首个透明物体视频数据集TransPhy3D,通过改造预训练视频生成模型,实现了准确的透明物体深度和法向量估计。在机器人抓取实验中,DKT将成功率提升至73%,为智能系统处理复杂视觉场景开辟新路径。
R语言在Tiobe 12月编程语言流行度指数中重返前十,排名第10位,占比1.96%。作为统计计算专用语言,R语言凭借在统计分析和大规模数据可视化方面的优势重新获得关注。尽管传统软件工程师对其语法和扩展性存在质疑,但R语言在大学和研究驱动行业中仍表现出色,在快速实验、统计建模和探索性数据分析领域具有独特优势。
字节跳动研究团队提出了专家-路由器耦合损失方法,解决混合专家模型中路由器无法准确理解专家能力的问题。该方法通过让每个专家对其代表性任务产生最强响应,同时确保代表性任务在对应专家处获得最佳处理,建立了专家与路由器的紧密联系。实验表明该方法显著提升了从30亿到150亿参数模型的性能,训练开销仅增加0.2%-0.8%,为混合专家模型优化提供了高效实用的解决方案。