世界顶级汽车品牌源代码遭泄露 详解源代码凭据安全解决方案
源代码凭据安全,您别忽视 !!!
一、事件回顾
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
相关文章:

世界顶级汽车品牌源代码遭泄露 详解源代码凭据安全解决方案
源代码凭据安全,您别忽视 !!! 一、事件回顾 2024年1月29日,RedHunt 实验室的研究员Lohit爆料:某世界顶级的豪华汽车品牌源代码面临泄露风险!人为错误致GitHub令牌事故引发重大安全担忧。 RedHunt Labs在一次互联网扫描时&#x…...
Mysql-备份与恢复
目录 一、备份表 1.无需备份表结构 2.备份表结构 3.mysqldump方式备份表 二、备份库 一、备份表 1.无需备份表结构 CREATE TABLE a_bak as select * from a;#备份表(不包含表结构)TRUNCATE TABLE a;#清空表 INSERT INTO a SELECT * FROM a_bak;#插…...
基于STM32的UART/USART数据传输的错误检测和纠错机制研究
在STM32的UART/USART数据传输过程中,为了确保数据的可靠性,通常需要使用错误检测和纠错机制。常见的错误检测和纠错技术包括奇偶校验、循环冗余校验(CRC)、硬件流控制和重发机制等。本文将重点介绍这些技术在STM32上的应用&#x…...

「优选算法刷题」:计算布尔二叉树的值
一、题目 给你一棵 完整二叉树 的根,这棵树有以下特征: 叶子节点 要么值为 0 要么值为 1 ,其中 0 表示 False ,1 表示 True 。非叶子节点 要么值为 2 要么值为 3 ,其中 2 表示逻辑或 OR ,3 表示逻辑与 AND…...
A系统数据表同步到B系统数据表
一、 事务操作 (小量数据) 事务操作通常用于确保数据的一致性和完整性。以下是一些常见的应用场景: 银行转账:当从一个账户向另一个账户转账时,需要确保两个操作(从一个账户扣款和向另一个账户存款&#x…...

Qt实现类似ToDesk顶层窗口 不规则按钮
先看效果: 在进行多进程开发时,可能会遇到需要进行全局弹窗的需求。 因为平时会使用ToDesk进行远程桌面控制,在电脑被控时,ToDesk会在右下角进行一个顶层窗口的提示,效果如下: 其实要实现顶层窗口…...

发布4-运行JRT程序
到了本章节,你需要准备好JDK17的环境和idea环境。并且安装好选择的数据库软件。这章将正式开始JRT的程序开发。 首先获取程序,我会给下载地址 下载后解压会得到下图目录的文件结构,DBFile放IRIS和PG的数据库文件,JRTClient放打包…...

利用VPN设备漏洞入侵!新型勒索软件CACTUS攻击手法分析
近期,亚信安全应急响应中心截获了利用VPN设备已知漏洞传播的新型勒索软件CACTUS,该勒索于2023年3月首次被发现,一直保持着活跃状态。CACTUS勒索软件通过Fortinet VPN的已知漏洞进行入侵(黑客首先获取到VPN账号,再通过V…...
第7章 SpringBoot安全管理
学习目标 了解SpringSecurity安全管理的功能 掌握SpringSecurity的安全配置 掌握SpringSecurity自定义用户认证的实现方法 掌握SpringSecurity自定义用户授权管理的实现方法 掌握如何使用SpringSecurity实现页面控制 实际开发中,一些应用通常要考虑到安全性问题。例如,对于一…...

【QT+QGIS跨平台编译】之二十二:【FontConfig+Qt跨平台编译】(一套代码、一套框架,跨平台编译)
文章目录 一、FontConfig介绍二、文件下载三、文件分析四、pro文件五、编译实践 一、FontConfig介绍 FontConfig 是一个用于配置和定制字体的库,广泛应用于基于X Window系统的操作系统中,尤其是在Linux和Unix-like系统中。它为应用程序提供了一种统一的…...

echarts中绘制3D三维地球
简介 echarts中的三维地球,需要用到世界地图json数据,我把json文件放到我的资源中,有需要的自行下载。 安装插件 // 安装echats npm install echarts --save npm install echarts-gl --save 项目中引用 1,引入安装的echarts…...

go grpc高级用法
文章目录 错误处理常规用法进阶用法原理 多路复用元数据负载均衡压缩数据 错误处理 gRPC 一般不在 message 中定义错误。毕竟每个 gRPC 服务本身就带一个 error 的返回值,这是用来传输错误的专用通道。gRPC 中所有的错误返回都应该是 nil 或者 由 status.Status 产…...
Redis实现登录的优化
目录 1 前言 2 实现步骤 2.1 软件环境准备 2.1.1 Redis的安装 2.1.2 在pom.xml中添加依赖 2.1.3 在application.yml中进行相关配置 2.2 StringRedisTemplate的常用方法 2.2.1 获取operations 2.2.2 主要方法 2.3 令牌主动失效机制 2.3.1 登录时将令牌存入Redis 2.…...

ROS方向第二次汇报(5)
文章目录 1.本方向内学习内容:1.1.自定义msg:1.1.1.定义msg文件:1.1.2.编辑配置文件: 1.2.自定义srv:1.2.1.定义srv文件:1.2.2.编辑配置文件: 1.3.服务通信案例实现:1.3.1.服务端实现…...
C# 浅克隆与深克隆
在C#中,浅克隆(Shallow Clone)和深克隆(Deep Clone)是两种常见的对象克隆技术,用于创建对象的新副本。 它们的主要区别在于复制对象的层次和属性的处理方式。 浅克隆(Shallow Copy)…...

Shell 正则表达式及综合案例及文本处理工具
目录 一、常规匹配 二、常用特殊字符 三、匹配手机号 四、案例之归档文件 五、案例之定时归档文件 六、Shell文本处理工具 1. cut工具 2. awk工具 一、常规匹配 一串不包含特殊字符的正则表达式匹配它自己 例子,比如说想要查看密码包含root字符串的&#x…...

React | Center 组件
在 Flutter 中有 Center 组件,效果就是让子组件整体居中,挺好用。 React 中虽然没有对应的组件,但是可以简单封装一个: index.less .container {display: flex;justify-content: center;align-items: center;align-content: ce…...
头歌C++之函数强化练习题
目录 第1关:结构实现复数运算 任务描述 编程要求 第2关:求亲密对数 任务描述 编程要求 第3关:计算一年的第几天 任务描述 编程要求 第4关:正整数求和 任务描述 编程要求 第5关:Pig Latin 任务描述 编程要求 第6关:打印日历 任务描述 编程要求 第1关:结…...

淘宝扭蛋机小程序:开启你的惊喜之旅
随着移动互联网的飞速发展,各种小程序层出不穷,其中,淘宝扭蛋机小程序以其独特的互动性和趣味性,吸引了大量用户。本文将为你详细介绍这款小程序的特色功能、用户体验以及如何使用,助你开启一段惊喜之旅。 一、特色功…...

Jmeter 基于Docker 实现分布式测试
基于Docker 实现分布式测试 制作Jmeter基础镜像制作工作节点镜像启动工作节点启动控制节点遇到的问题 使用Docker 部署Jmeter非常方便,可以省略软件的安装以及配置,比如jdk、jmeter。需要部署多个工作节点可以节省时间。 制作Jmeter基础镜像 下载jmeter…...

【系统架构设计师】绪论-系统架构概述
目录 绪论 系统架构概述 单选题 绪论 系统架构概述 单选题 1、软件方法学是以软件开发方法为研究对象的学科。其中,()是先对最高居次中的问题进行定义、设计、编程和测试,而将其中未解决的问题作为一个子任务放到下一层次中去…...
Wireshark使用教程(含安装包和安装教程)
Wireshark使用入门教程 0.资源下载以及软件安装1.Wireshark中无法显示网卡列表2.Wireshark抓取H264过程 0.资源下载以及软件安装 参考blog: 抓包神器wireshark安装保姆级教程 压缩包下载:Wireshark安装包 1.Wireshark中无法显示网卡列表 Wireshark中无法显示网…...

第六个微信小程序:教师工具集
源于工作需要,下面开始。 安装及使用 | Taro 文档 vscode 代码管理 git 辅助 开发技术如上: 1.开始创建模板 taro4.1.1 $ taro init teachers-tools 2.用vsocde开始吧。 选择 第二个文件夹找一。 (base) PS D:\react\teachers-tools> pnpm…...

LLM 笔记:Speculative Decoding 投机采样
1 基本介绍 投机采样(Speculative Sampling)是一种并行预测多个可能输出,然后快速验证并采纳正确部分的加速策略 在不牺牲输出质量的前提下,减少语言模型生成 token 所需的时间 传统的语言模型生成是 串行 的 必须生成一个&…...

PDF转PPT转换方法总结
你是否遇到过这些场景? 收到客户发来的产品手册PDF,明天就要用它做演示; 公司历史资料只有PDF版,领导突然要求更新为幻灯片。 这时PDF转PPT工具就成了救命稻草。接下来,介绍三种PDF转PPT工具。 1. iLoveOFD在线转换…...
[Harmony]颜色初始化
默认初始化颜色 let color: Color 0xFF00FF 创建一个工具,用十六进制颜色和RGBA初始化颜色 // 颜色工具类 export class ColorUtils {/*** 十六进制颜色初始化(支持透明度)* param hex 支持格式:#RRGGBB、#AARRGGBB、0xRRGGBB、…...

Cursor + Claude 4:微信小程序流量主变现开发实战案例
前言 随着微信小程序生态的日益成熟,越来越多的开发者开始关注如何通过小程序实现流量变现。本文将详细介绍如何使用Cursor编辑器结合Claude 4 AI助手,快速开发一个具备流量主变现功能的微信小程序,并分享实际的开发经验和变现策略。 项目…...

【发布实录】云原生+AI,助力企业全球化业务创新
5 月 22 日,在最新一期阿里云「飞天发布时刻」,阿里云云原生应用平台产品负责人李国强重磅揭晓面向 AI 场景的云原生产品体系升级,通过弹性智能的一体化架构、开箱即用的云原生 AI 能力,为中国企业出海提供新一代技术引擎。 发布会…...

Python_day47
作业:对比不同卷积层热图可视化的结果 一、不同卷积层的特征特性 卷积层类型特征类型特征抽象程度对输入的依赖程度低层卷积层(如第 1 - 3 层)边缘、纹理、颜色、简单形状等基础特征低高,直接与输入像素关联中层卷积层(…...
【华为云学习与认证】以华为云物联网为基座的全栈开发(从物联网iot平台模块到应用展示、数据分析、机器学习、嵌入式开发等)的系统性学习与认证路线
总目标 学习以华为云物联网为基座的全栈开发(从物联网iot平台模块到应用展示、数据分析、机器学习、嵌入式开发等)的系统性学习与认证路线。计划包含阶段学习、技术文档、实操实际操作、开发路径与考证规划,提供职业生涯基础性规划。 注意&…...