当前位置: 首页 > news >正文

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

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

一、事件回顾

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会在右下角进行一个顶层窗口的提示,效果如下: 其实要实现顶层窗口&#xf…...

发布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…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用

一、方案背景​ 在现代生产与生活场景中&#xff0c;如工厂高危作业区、医院手术室、公共场景等&#xff0c;人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式&#xff0c;存在效率低、覆盖面不足、判断主观性强等问题&#xff0c;难以满足对人员打手机行为精…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]

报错信息&#xff1a;libc.so.6: cannot open shared object file: No such file or directory&#xff1a; #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...