世界顶级汽车品牌源代码遭泄露 详解源代码凭据安全解决方案

本文主要是介绍世界顶级汽车品牌源代码遭泄露 详解源代码凭据安全解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  源代码凭据安全,您别忽视  !!!

一、事件回顾

2024年1月29日,RedHunt 实验室的研究员Lohit爆料:某世界顶级的豪华汽车品牌源代码面临泄露风险!人为错误致GitHub令牌事故引发重大安全担忧。

图片

RedHunt Labs在一次互联网扫描时,发现该汽车品牌一名全职员工在他的GitHub存储库中泄露的GitHub令牌。GitHub令牌提供对内部GitHub Enterprise Server托管的整个源代码的“不受限制”和“不受监控”的访问。该事件暴露了包含大量知识产权的敏感存储库,泄露的信息包括数据库连接字符串、云访问密钥、蓝图、设计文档、SSO密码、API密钥和其他关键内部信息【1】。

Lohit认为:泄露的该汽车品牌Github Enterprise Server的GitHub令牌泄漏为潜在对手打开了访问和下载该组织的整个源代码的网关。深入研究此源代码可能会暴露高度敏感的凭据,从而为针对该汽车品牌极其严重的数据泄露创造温床。

无独有偶,2024年1月27日美国科技网站Ars Technica透露,黑客通过获取一个拥有管理员权限的老旧测试帐号的访问权限入侵了微软【2】。微软表示,俄罗斯政府支持的“午夜暴雪”(Midnight Blizzard)黑客组织使用密码喷射技术,利用弱密码凭据登录了一个“传统非生产测试租户帐号”,该帐号并未启用多因素身份验证。然后,他们以某种方式获得了高管以及安全和法务团队成员的电子邮件帐号的访问权限。微软介绍“午夜暴雪”是通过滥用OAuth授权协议,获得对特权电子邮件帐号的持久访问权限。

图片

二、原因分析

不难看出,这两起安全事件基本都是源代码的凭据泄露。世界顶级的豪华汽车品牌GitHub令牌泄露,使得对GitHub托管的整个源代码的“不受限制”和“不受监控”的访问,通常都是Token硬编码导致。午夜暴雪入侵微软Office365,起因也是“利用弱密码凭据” 

其实,源代码安全并不是一个新鲜的话题,一直以来都有。只是大家都是以攻防视角、以传统网络安全视角去审查源代码。基本思路:寻找漏洞,避免遭受网络攻击。如:扫描源代码是否存在安全漏洞、是否存在恶意代码、是否留有后门等,以网络安全的视角在对源代码进行“体检”。

源代码的凭据泄露或窃取,没有真正被有效解决,主要原因正如这次的汽车品牌事件和微软事件一样,没有人从数据安全的视角去审视源代码。源代码编写不规范,导致Password硬编码、Token硬编码、弱加密算法、高熵字符串等硬编码问题,比比皆是,但往往被忽视,并且许多安全厂商还没有相应的技术手段去解决。

三、亚信安全源代码风险解决方案

亚信安全数据安全团队很早就注意到这个问题的严重性,硬编码密码问题在企业代码仓库中日益严重,“黑客盗用 OAuth 令牌,导致个组织数据泄露”安全事件层出不穷。

01 硬编码危害

  • 削弱系统安全性

大量的攻击者常通过公共代码库或反编译分析获得硬编码密码字符串,利用弱密码凭据的可读性,访问敏感数据或获取敏感操作权限。攻击者还可以进一步扩大攻击范围,进行数据勒索、帐户操纵、帐户创建、通过用户数据进行利用等,使得企业和用户都遭受严重损失。

  • 不易于程序维护 ,修复较为困难

硬编码密码的修复较为困难,密码一旦被利用无法轻易被修正。对于正在线上运行的服务或系统,修复硬编码密码问题需要停服重新发布。大型企业的服务流量较大,服务间还存在依赖,则需要灰度发布,修复流程更长,其间可能持续受到攻击者威胁。密码的蔓延也使维护变得困难。

02 产品设计方案

亚信安全数据安全团队立足于对硬编码密码危险性的分析,基于DSOP平台,研发了源代码敏感信息主动扫描功能。通过对代码仓库的跟踪扫测,以扫描报告的形式,提醒程序开发人员,仓库代码工程的硬编码情况,包括硬编码位置、快照以及修改建议,为组织的源代码安全保驾护航。方案还提供代码编辑器扩展插件,实时跟踪检测开发人员在代码编辑过程中可能出现的代码数据安全风险,并在编码界面中直接给出提示与修改建议。

平台涵盖了源代码的Password硬编码、Token硬编码、弱加密算法、高熵字符串等四大类,26项硬编码风险检测识别能力。可及时提醒客户,加强代码规范建设,帮助客户提升代码安全。并根据问题闭环逻辑,针对每个问题进行复测,直至问题关闭。

03 主要功能介绍

  • 源代码扫描任务

选取代码仓库的项目代码工程对象、扫描策略以及任务执行方式,实施源代码静态扫描。

图片

图片

  • 源代码扫描结果

根据任务编排的扫描对象和扫描策略,按照报表规范,分类展示扫描结果,提供硬编码位置和处置建议,方便研发人员高效处置。

图片

  • 硬编码风险提示

在编码界面中直接给出提示与修改建议,极大方便程序员进行快速处置,避免风险问题难定位、传递衰减,根除不尽等问题发生。

图片

图片

  • 源代码资产清单

源代码,作为企业重要的数据资产的一部分,进入组织的资产盘点序列,与数据库资产、文件资产、API资产一起,进行系统性分类展示。

图片

04 方案总结

亚信安全数据安全之源代码凭据安全解决方案,围绕企业核心数据资产-源代码,以数据安全的视角,通过检测Password硬编码、Token硬编码、弱加密算法、高熵字符串以及其他硬编码问题,对源代码进行深度扫描。帮助企业识别源代码凭据泄露风险,填补组织的防护空缺,提升组织的数据安全防护能力。

参考文献

1.Lohit. https://redhuntlabs.com/blog/mercedes-benz-source-code-at-risk-github-token-mishap-sparks-major-security-concerns/. 2024.1.29

2.DAN GOODIN. https://arstechnica.com/security/2024/01/in-major-gaffe-hacked-microsoft-test-account-was-assigned-admin-privileges/. 2024.1.27

这篇关于世界顶级汽车品牌源代码遭泄露 详解源代码凭据安全解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/675880

相关文章

idea的终端(Terminal)cmd的命令换成linux的命令详解

《idea的终端(Terminal)cmd的命令换成linux的命令详解》本文介绍IDEA配置Git的步骤:安装Git、修改终端设置并重启IDEA,强调顺序,作为个人经验分享,希望提供参考并支持脚本之... 目录一编程、设置前二、前置条件三、android设置四、设置后总结一、php设置前二、前置条件

Java.lang.InterruptedException被中止异常的原因及解决方案

《Java.lang.InterruptedException被中止异常的原因及解决方案》Java.lang.InterruptedException是线程被中断时抛出的异常,用于协作停止执行,常见于... 目录报错问题报错原因解决方法Java.lang.InterruptedException 是 Jav

python中列表应用和扩展性实用详解

《python中列表应用和扩展性实用详解》文章介绍了Python列表的核心特性:有序数据集合,用[]定义,元素类型可不同,支持迭代、循环、切片,可执行增删改查、排序、推导式及嵌套操作,是常用的数据处理... 目录1、列表定义2、格式3、列表是可迭代对象4、列表的常见操作总结1、列表定义是处理一组有序项目的

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

C++11范围for初始化列表auto decltype详解

《C++11范围for初始化列表autodecltype详解》C++11引入auto类型推导、decltype类型推断、统一列表初始化、范围for循环及智能指针,提升代码简洁性、类型安全与资源管理效... 目录C++11新特性1. 自动类型推导auto1.1 基本语法2. decltype3. 列表初始化3

kkFileView在线预览office的常见问题以及解决方案

《kkFileView在线预览office的常见问题以及解决方案》kkFileView在线预览Office常见问题包括base64编码配置、Office组件安装、乱码处理及水印添加,解决方案涉及版本适... 目录kkFileView在线预览office的常见问题1.base642.提示找不到OFFICE组件

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

SQL Server 中的 WITH (NOLOCK) 示例详解

《SQLServer中的WITH(NOLOCK)示例详解》SQLServer中的WITH(NOLOCK)是一种表提示,等同于READUNCOMMITTED隔离级别,允许查询在不获取共享锁的情... 目录SQL Server 中的 WITH (NOLOCK) 详解一、WITH (NOLOCK) 的本质二、工作

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Java Thread中join方法使用举例详解

《JavaThread中join方法使用举例详解》JavaThread中join()方法主要是让调用改方法的thread完成run方法里面的东西后,在执行join()方法后面的代码,这篇文章主要介绍... 目录前言1.join()方法的定义和作用2.join()方法的三个重载版本3.join()方法的工作原