代码泄漏无感知?代码安全审计构筑企业核心资产安全防线

目录

一个不眠之夜

源代码托管:最容易被从内部攻破的堡垒

审计事件,构建源代码安全防护的“最后一道防线”

源代码托管审计事件三要素

源代码托管审计事件的价值

极狐GitLab 审计事件功能

极狐GitLab 审计事件功能特点

极狐GitLab 审计事件功能使用

源代码托管的金丝雀:极狐GitLab 审计事件流


一个不眠之夜

“叮叮叮,叮叮叮”,一阵急促的微信消息声将正在熟睡中的小安吵醒,小安下意识的拿起枕边的手机一看,凌晨三点半,手机屏幕上满满的都是源代码托管服务器发来的告警,他赶紧查看告警详情,内容都是:用户:小蓝,IP:192.168.0.100,正在克隆xx仓库。

多条告警显示,小蓝正在大量克隆公司内部项目仓库。起初,小安以为是源代码仓库遭到了恶意攻击,但是仔细一看用户信息,明显是公司内部人员,而且只克隆与公司近期研发的 AI 医疗相关的仓库,其他产品线的并未克隆,小安认为公司内部人员不会在半夜三更还进行产品研发。

来不及多想,为了保证公司代码安全,小安将 IP 和用户名纳入了代码仓库管理的黑名单中,告警戛然而止,代码托管服务器日志也没有其他异常。小安悬着的心终于落地了,带着疑惑小安又眯了一会儿,等待上班。

第二天上班,小安将昨晚的事情告诉了 SRE 团队的其他成员,顺便说起了那个用户 ID,结果其中一位同事说,那个 ID 是一个核心研发的,他一直在负责公司创新项目 AI 医疗的研发工作,听说前段时间,有一家初创企业给了难以拒绝的待遇,所以近期已经在办理离职了。小安觉得事情不简单,于是立马将此情况向安全合规经理进行了汇报。安全合规经理非常重视这件事,立马和研发负责人进行沟通。

事后得知,小蓝即将加入一家初创公司,他想把自己曾经编写的一些算法代码带过去,而这也是他高薪待遇的一个条件,于是小蓝在晚上大家都进入梦乡的时候,用自己尚有权限的账号将过往的代码克隆下来,没想到克隆刚开始不久突然账号就被封锁,无法执行任何操作。

在月度安全合规复盘的时候,小安因为敏锐的安全感和及时采取的止损措施受到了安全合规经理的表扬,小安有些腼腆地说:都是源代码托管平台的安全审计帮了忙。

源代码托管:最容易被从内部攻破的堡垒

上面小安公司遇到的情况就是软件研发领域非常常见的源代码泄漏事件。现如今随着企业数字化转型的逐步深入,软件已经成为支撑企业数字化转型的重要支点,而作为软件原材料的源代码自然也成为了企业的核心资产,源代码的泄漏或者受损也就意味着企业核心资产的受损。

然而,企业源代码泄漏的事件却频繁发生,比如 2018 年,某国际知名电子产品消费厂商发生了源代码泄漏事件,起因是一名实习生在离职的时候带走了部分源代码,然后将其分享给了做安全研究的朋友,随后朋友将代码上传到了 GitHub 仓库上面,最终导致源代码泄漏,影响了大量使用该公司电子产品的用户;再比如 2022 年,某国际知名汽车厂商发生了严重的数据泄漏事故,多达 300,000 万的客户数据被泄漏,里面包含大量的个人敏感信息,事后分析得知,数据泄漏的原因是分包商不小心将代码上传到了公共仓库,而这些代码包含了重要的敏感信息,从而影响了 2017 - 2022 年间注册了厂商某 App 的所有客户。

源代码的安全防护是一个重要话题,需要采取多种手段来构建立体的防护机制,比如用户登陆认证授权(事前)、用户访问权限控制(事中)以及安全审计(事后)等。针对上面的几个代码泄漏事件,如果用好源代码托管的审计事件功能,是可以进行规避的。

审计事件,构建源代码安全防护的“最后一道防线”

所谓审计事件是对重要事件进行追踪,通过对事件操作行为的分析来及时阻止不合规的操作,最终保障事务主体的安全性

对于源代码托管来讲,审计事件主要是对于源代码托管平台的操作进行追踪,诸如用户增删、代码仓库权限及访问等,以便及时发现不合规的操作,避免源代码遭遇泄漏。

源代码托管审计事件三要素

源代码托管的审计事件的关键要素是三个“W”:

  • Who:事件的操作主体。主要指对源代码进行操作的用户;

  • When:事件发生的时间。主要指用户对源代码托管平台执行某些操作时的具体时间;

  • What:操作主体做了什么具体操作。主要指对代码仓库的一些具体操作,诸如代码克隆、推送及拉取,仓库的可见性变更及用户添加和删除等。

源代码托管审计事件的价值

审计事件是构建源代码托管平台安全防护网的重要一环,完整的审计事件具备以下价值:

  • 防患于未然,及时止损:通过分析用户的行为,及时发现不合规的操作,比如短时间内大量克隆代码仓库、将私有仓库改为公共仓库等,然后采取对应的措施来阻止不合规操作对应源代码的进一步操作,避免造成源代码泄漏或受损;

  • 找事件真因,快速定位:如果发生了源代码泄漏或者受损的状态,可以借助审计事件进行事故回溯,在过往的审计事件中找到可疑的人员、可疑的操作,再通过快速排查来找到事故发生的真正原因;

  • 立安全警钟,避免后患:完整的安全审计流程可以告诉内部人员,任何不合规操作都会被发现,如果触碰公司安全合规红线,就会受到公司的相应处罚,让所有公司人员形成安全合规意识,共同保护公司核心资产安全。

极狐GitLab 审计事件功能

极狐GitLab 作为一体化的 DevSecOps 平台,具备完整的审计事件体系,包含从实例级到群组级再到项目级,而且覆盖用户管理、认证授权、项目管理、代码写作、CI/CD 等方面。截止到 16.2 版本,极狐GitLab 共有 132 项审计事件,而且还有部分审计事件在积极开发中。

图片

极狐GitLab 审计事件功能特点

极狐GitLab 审计事件功能是极狐GitLab 安全合规能力的重点功能之一,是付费功能(仅在专业及以上版本中可用),具备以下特点:

  • 开箱即用:极狐GitLab 审计事件功能开箱即用,用户无需进行额外配置,只需要导入付费版许可证即可开启使用,在对应的路径下即可查看针对实例、群组及项目相关的审计事件;

  • 事件丰富:极狐GitLab 审计事件涵盖的范围广,包含的审计事件类型丰富,如上图所示,截止 16.2 版,已有 132 项可用的审计事件,能够建立起一个很完善的审计防护体系;

  • 迭代更新:极狐GitLab 采取月度发版机制,能够对审计事件功能进行持续地迭代更新,据统计,在最近一年的发版(12 个版本)中,大约有 13+ 个与审计事件相关的重大改进发布,进一步改进了审计事件的功能;

极狐GitLab 审计事件功能使用

针对实例级别的审计事件,可以通过管理中心 → 监控 → 审计事件来查看。比如可以在实例级别的审计事件中看到 SSH key 添加、个人访问令牌创建、群组/项目创建、删除等事件。

图片

审计事件会明确记录事件的操作主体(Author)、操作内容(Action)、操作时间(Date)及操作源 IP 地址等信息。

同样地,可以通过群组 → 安全 → 审计事件查看与群组操作有关的事件:

图片

由于极狐GitLab 群组可以进行嵌套,因此可以用同样的方法查看子群组的审计事件信息。

通过项目 → 安全 → 审计事件查看与项目操作有关的事件:

图片

此外,还可以将审计事件报告进行导出,然后发送给审计人员,审计人员可以在报告中通过过滤去查看对应的审计事件详情。

图片

关于极狐GitLab 审计事件的所有类型(实例级、群组级、项目级、其他)可以查阅极狐GitLab 审计事件官方文档。

审计事件能够记录用户对于源代码托管平台的各种操作,但是不具备异常行为(可配置)的告警功能,以便在异常行为发生时,快速操作,及时止损。为此,极狐GitLab 提供安全审计事件流功能,将审计事件发送到第三方,配合第三方的事件分析 + 告警功能来实现异常行为的告警。

审计事件流(audit events streaming)为旗舰版功能。

源代码托管的金丝雀:极狐GitLab 审计事件流

极狐GitLab 审计事件流功能可以将审计事件流发送到外部的流数据系统(可以接受并处理 JSON 格式的数据),然后再由流数据系统对数据进行分析、存储、可视化及告警等操作

图片

可以为极狐GitLab 实例、群组、子群组设置外部流数据系统。针对实例、群组/子群组及项目的操作事件就会以事件流的方式发送到配置好的外部流数据系统。审计事件流中除了上述的审计事件外,还包括对于 Git 操作的信息,比如对于代码的克隆(SSH 或 HTTPS)/推送、仓库的 Fork、MR 的创建等,而且审计事件流的功能会跟随版本的更新而持续迭代。

图片

更多关于极狐GitLab 审计事件流的内容可以查看极狐GitLab 官方文档。

极狐GitLab 审计事件流的使用需要首先配置外部流数据系统,以实例级别的配置来讲,可以通过管理中心 → 监控 → 审计事件 → 事件流 → 添加流目的地来完成:

图片

极狐GitLab 审计事件流服务会将审计事件信息推送到配置好的服务里面,以克隆仓库来讲,如果授权用户克隆了某个仓库,那么外部流数据系统会收到如下的 JSON 信息:

{"id": "5e194963-79bc-43ce-99f3-4190ff105b23","author_id": 1,"entity_id": 6,"entity_type": "Project","details": {"author_name": "Administrator","author_class": "User","target_id": 6,"target_type": "Project","target_details": "jh-gitlab-audit-events","custom_message": {"protocol": "ssh","action": "git-upload-pack"},"ip_address": "127.0.0.1","entity_path": "xiaomage/jh-gitlab-audit-events"},"ip_address": "127.0.0.1","author_name": "Administrator","entity_path": "xiaomage/jh-gitlab-audit-events","target_details": "jh-gitlab-audit-events","created_at": "2023-08-24T02:38:24.945Z","target_type": "Project","target_id": 6,"event_type": "repository_git_operation"
}

上面信息表明了操作人员信息(author_name)、执行动作(details.action)、操作仓库(details.entity_path 或 target_details)还有操作日期(created_at)、IP(details.ip_address 或 ip_address)等信息。可以将上述信息进行存储、分析、可视化及告警来事件审计事件闭环。下面以 EFK(elasticsearch、filebeat、kibana)为例来演示整个过程。

图片

将 filebeat 配置外部的流数据系统,直接接受来自极狐GitLab 的审计事件流信息,然后 filebeat 将数据处理之后存储到 elasticsearch 中,再利用 kibana 的可视化能力实现对于审计事件信息的可视化处理,最后借助 kibana 的 alert 功能实现对异常操作的告警(发送邮件、slack 消息或推送到其他系统)。

可以在 kibana 中看到的审计事件信息,诸如密码变更、仓库可见性变更(从公开到私有或者相反)、项目删除等:

图片

如果配置对应的 alert,当某项操作发生或者超过一定阈值时就触发告警,通知相关人员做进一步的处理。诸如当一个项目在一定时间内被某一个人频繁克隆,则可以触发告警,发送告警邮件到指定邮箱:

图片

或者发送到钉钉等 IM 系统上:

图片

源代码作为企业的核心资产,应该受到重视,需要打造全方位的安全防护体系,而安全审计是作为保障代码核心资产外泄的一个重要手段。极狐GitLab 审计事件和审计事件流能够形成代码安全审计的闭环,可以让用户对源代码仓库的操作都“活在阳光下”,及时发现违规、异常的操作来避免企业核心资产受损。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/70897.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Support for password authentication was removed on August 13, 2021 解决方案

打开你的github,Setting 点击Developer settings。 点击generate new token 按照需要选择scope 生成token,以后复制下来。 给git设置token样式的remote url git remote set-url origin https://你的tokengithub.com/你的git用户名/仓库名称.git然后就可…

Docker 搭建Redis 集群之路

前言 搞技术就是动手,动手再动手,实践出真知,毕竟最终是要解决问题的呢,废话不多讲,开搞,主要是为了记录一下,毕竟过程还是有点艰辛呢需求(target) Windows 电脑 装一个…

python 笔记(1)——基础和常用部分

目录 1、print 输出不换行 2、格式化输出字符串 3、浮点数的处理 4、进制转换和ASCII与字符间的转换 5、随机数 6、字符串截取和内置方法 6-1)字符串截取 6-2)字符串内置方法 7、元组、列表,及其遍历方式 7-1)列表常用内…

为什么5G 要分离 CU 和DU?(4G分离RRU 和BBU)

在 Blog 一文中,5G--BBU RRU 如何演化到 CU DU?_5g rru_qq_38480311的博客-CSDN博客 解释了4G的RRU BBU 以及 5G CU DU AAU,主要是讲了它们分别是什么。但是没有讲清楚 为什么,此篇主要回答why。 4G 为什么分离基站为 RRU 和 BBU…

Windows下搜索文件内容的关键字用什么命令

Windows下搜索文件内容的关键字用什么命令 findstr /s /n /i "keyword" file_path其中,/s 表示递归检索子文件夹,/n 表示显示搜索结果所在行号,/i 表示忽略大小写,“keyword” 是要搜索的关键字,file_path 是…

【LeetCode-中等题】17. 电话号码的字母组合

文章目录 题目方法一:递归回溯 题目 方法一:递归回溯 参考讲解:还得用回溯算法!| LeetCode:17.电话号码的字母组合 首先可以画出树图: 先将数字对应的字符集合 加入到一个map集合 这里需要一个index来控…

PPT怎么转换为PDF格式,收藏这两个在线工具。

PPT是一种常用的演示文稿格式,它可以包含丰富的动画效果和超链接,让你的内容更加生动和有趣。但是,如果你想将PPT分享给别人,或者在不同的设备上查看,你可能会遇到一些问题,比如: PPT文件太大&a…

使用Python实现二维应力云图

要画应力分布云图,可以使用Python中的科学计算和可视化库来实现 import numpy as np import matplotlib.pyplot as plt# 生成示例数据 x np.linspace(0, 10, 100) # X轴数据范围 y np.linspace(0, 5, 50) # Y轴数据范围 X, Y np.meshgrid(x, y) # 生成网…

Linux命令行

目录 CLI GUI 命令行界面 图形界面 命令行提示符 # $ ​编辑 命令一般由三个部分组成 历史命令,使用上下键,或者使用history,ctrlr搜索历史命令 通配符 *,? 切换用户 su 作业管理 &,jobs,bg,fg CLI GUI 命令行界面 …

内网穿透的应用-不再依赖iCloud!利用群晖生态,自己掌控本地SSD的云存储!

文章目录 前言本教程解决的问题是:按照本教程方法操作后,达到的效果是想使用群晖生态软件,就必须要在服务端安装群晖系统,具体如何安装群晖虚拟机请参考: 1. 安装并配置synology drive1.1 安装群辉drive套件1.2 在局域…

STM32 CAN快速配置(HAL库版本)

STM32 CAN快速配置(HAL库版本) 目录 STM32 CAN快速配置(HAL库版本)前言1 软件编程1.1 初始化1.1.1 引脚设置1.1.2 CAN参数设置1.1.3 CAN滤波器设置 1.2 CAN发送1.3 CAN接收 2 运行测试结束语 前言 控制器局域网总线(CA…

fastjson漏洞批量检测工具

JsonExp 简介 版本:1.3.5 1. 根据现有payload,检测目标是否存在fastjson或jackson漏洞(工具仅用于检测漏洞)2. 若存在漏洞,可根据对应payload进行后渗透利用3. 若出现新的漏洞时,可将最新的payload新增至…

深入学习与探索:高级数据结构与复杂算法

文章目录 学习高级数据结构B树:数据库引擎的骨干线段树:高效的区间查询Trie树:高效的字符串检索 探索复杂算法领域图算法:解决复杂网络问题字符串匹配算法:处理文本搜索近似算法:在NP难题上取得近似解 结论…

kubesphere devops使用

一、创建项目 1 创建项目 企业管理员切换到相应企业空间(租户),创建项目,k8s集群会创建一个相同名字的namespace。如下图所示管理员创建一个ipaas-devops项目。 2.创建镜像拉取密钥信息 进入项目如ipaas-devops,选择配置->保密字典->创建&#xf…

“交叉轮”轮融资后,哪吒汽车能否脚踏“风火轮”续写逆袭故事?

2023年的新能源汽车江湖,烟波浩渺的水面下暗潮汹涌。 从特斯拉年初打响降价第一枪,降价潮至今未见尾声。9月刚至,小鹏汽车、零跑汽车又推出了调价政策。 这一背景下,车企内卷加剧是必然。年初,哪吒汽车联合创始人、C…

EOCR-AR电机保护器自动复位的启用条件说明

为适用不同的现场使用需求,施耐德韩国公司推出了带有自动复位功能的模拟型电动机保护器-EOCR-AR。EOCR-AR电机保护器具有过电流、缺相、堵转保护功能,还可根据实际需要设置自动复位时间。 EOCR-AR自动复位的设置方法 如上图,R-TIME旋钮是自动…

巨人互动|Google海外户Google分析的基础概念

Google Analytics(谷歌分析)是最受欢迎的网站分析工具之一。它为网站管理员提供了深入了解其网站访问者的机会,并通过数据分析提供有关网站流量、用户行为和转化率的洞察。 1、跟踪代码(Tracking Code) 跟踪代码是嵌入…

element-ui 修改tooltip样式

1.表格tooltip 统一修改 <el-table:data"tableDatas"tooltip-effect"light" .el-tooltip__popper.is-light {background: #FFF;box-shadow: 0px 0px 8px 1px rgba(0,0,0,0.16);border-radius: 4px;opacity: 1;border: none;&[x-placement^top] .p…

Android相机调用-CameraX【外接摄像头】【USB摄像头】

Android相机调用有原生的Camera和Camera2&#xff0c;我觉得调用代码都太复杂了&#xff0c;CameraX调用代码简洁很多。 说明文档&#xff1a;https://developer.android.com/jetpack/androidx/releases/camera?hlzh-cn 现有查到的调用资料都不够新&#xff0c;对于外接摄像…

基于FPGA的图像sobel边缘提取算法开发,包括tb测试文件以及matlab验证代码

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 vivado2019.2 matlab2022a 3.部分核心程序 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 202…