安全左移DevSecOps开源工具链建设

news2024/11/15 13:50:16

开发安全相关技术和产品受到越来越多的关注。行业共识认为,应用系统上线之后进行软件漏洞修复,其修复成本是需求设计阶段修复成本的几十倍。因此,在开发环节,引入相应的安全工具,能够有效的降低漏洞的修复成本,实现安全的左移。本文会持续研究安全开发相关工具,使用开源工具建设安全开发体系。

静态代码安全检查(SAST)

静态应用程序安全测试(Static Application Security Testing)技术通常在编码阶段分析应用程序的源代码或二进制文件的语法、结构、过程、接口等来发现程序代码存在的安全漏洞。

据统计,超过50%的安全漏洞是由错误的编码产生的,开发人员一般安全开发意识和安全开发技能不足,更加关注业务功能的实现。想从源头上治理漏洞就需要制定代码检测机制,SAST是一种在开发阶段对源代码进行安全测试发现安全漏洞的测试方案。

SAST需要从语义上理解程序的代码、依赖关系、配置文件。优势是代码具有高度可视性,能够检测更丰富的问题,包括漏洞及代码规范等问题。测试对象比DAST丰富,除Web应用程序之外还能够检测APP的漏洞,不需要用户界面,可通过IDE插件形式与集成开发环境(如Eclipse、IntelliJ IDEA)结合,实时检测代码漏洞问题,漏洞发现更及时,修复成本更低

1、CodeQL

自从Github宣布推出CodeQL,越来越多安全人员使用这个项目做代码安全评估工作,目前github超过6100 star。github地址

Github为了解决其托管的海量项目的安全性问题,收购了CodeQL的创业公司,并宣布开源CodeQL的规则部分,这样全世界的安全工程师就可以贡献高效的QL审计规则给Github,帮助它解决托管项目的安全问题。

CodeQL本身包含两部分解析引擎+SDK。在这里插入图片描述
在这里插入图片描述

解析引擎用来解析我们编写的规则,虽然不开源,但是我们可以直接在官网下载二进制文件直接使用。SDK完全开源,里面包含大部分现成的漏洞规则,我们也可以利用其编写自定义规则。检测java靶场java-sec-code、JavaVulnerableLab、WebGoat,漏洞的检测准确率较高。据说log4j最初研究人员使用codeql检测出来,可以查看相关的分析文章。

深入学习codeql使用参考文章

2、SonarQube

SonarQube 是一个开源的代码分析平台, 用来持续分析和评测项目源代码的质量。 通过SonarQube我们可以检测出项目中重复代码, 潜在bug, 代码规范,安全性漏洞等问题, 并通过SonarQube web UI展示出来。sonarqube提供多种插件可以方便集成到研发流水线中。gtihub地址

部署方式使用docker进行部署,进行相关靶场的检测分析。也可使用官方提供的sonarqube在线平台进行代码的快速检测分析。在线sonarqube地址 可使用github账号进行登录。

检测规则原理

Source 获取用户输入的污点数据,HttpServletRequest#getParam("foo")
Sanitizer 从一个或者多个可能受污染的参数查找并且删除恶意内容。DatabaseUtils#sqlEscapeString(String str)
Validator 将一个或多个参数标记为不受恶意内容影响的安全参数。String#matches(String str),验证确定内容中不包含注入攻击
Passthrough  污点数据的传播
Sink  一段可以执行安全敏感任务的代码。数据到达接收器后不应包含任何恶意内容。java.sql.Statement#execute

靶场漏洞检测结果

SonarLint插件使用
SonarLint 是一个免费的开源IDE 扩展,可识别并帮助您在编写代码时解决质量和安全问题。像拼写检查器一样,SonarLint 会显示缺陷并提供实时反馈和清晰的修复指导,以便从一开始就提供干净的代码。

3、Semgrep

semgrep是一款基于Facebook开源SAST工具pfff中的sgrep组件开发的开源SAST工具,目前由安全公司r2c统一开发维护,项目github地址

开源扫描规则丰富,由社区共同开发维护的扫描规则超过1000条

规则设置简单,采用yaml配置文件编写,语法简单

扫描速度极快:官方称扫描速度大约是每条规则20K-100K loc/sec

生态良好:支持嵌入到几乎所有CI工具中

支持本地扫描:官方不仅提供了VSCode、IntelliJ IDEA、Vim的相关插件,还支持通过pre-commit的方式在代码提交前进行自动扫描

缺点是数据流跟踪能力较弱,后续会深入分析工具的实际漏洞检测能力。

交互式安全测试工具(IAST)

IAST交互式应用安全测试技术是最近几年比较火热的应用安全测试新技术,曾被Gartner咨询公司列为网络安全领域的Top 10技术之一。IAST融合了DAST和SAST的优势,漏洞检出率极高、误报率极低,同时可以定位到API接口和代码片段。

1、洞态开源IAST

火线~洞态IAST属于被动式IAST,不需要重放数据包,不产生脏数据;

被动式IAST具有近实时检测、高检出率、低误报率、低漏报率等特点;理论上可以实现0误报,但是,在复杂场景下,会出现污点链路不准确、误报等情况,尤其是使用了自定义的过滤函数。

洞态IAST可以使用官方提供的SaaS环境进行体验,也可使用官方提供的镜像进行本地快速部署。开源java、python agent源码和服务端检测源码。笔者曾根据开源版本开发出适合企业开发流程的IAST工具,会在后续的文章中详细介绍IAST的实现原理和漏洞检测算法。

2、国外contrast

Contrast Assess是一种革命性的交互式应用程序安全测试(IAST)解决方案,它将安全专业知识融入应用程序本身。Contrast agent使用智能传感器检测应用程序,以便从应用程序内部实时分析代码。Contrast Assess然后使用代理收集的情报来识别和确认代码中的漏洞。这包括已知(CVE)和未知漏洞。

2、商业产品

成熟的商业产品有悬镜灵脉、默安雳鉴IAST

动态应用安全测试工具(DAST)

DAST是一种黑盒测试技术,是目前应用最广泛、使用最简单的一种Web应用安全测试方法,安全工程师常用的工具如AWVS、AppScan等就是基于DAST原理的产品。
成熟的产品有长亭Xray、YaKit、Goby

开源组件成分分析(SCA)

1、DependencyTrack

2、悬镜开源OpenSCA

云安全工具

1、长亭开源veimind

veinmind-tools 是由长亭科技自研,牧云团队孵化,基于 veinmind-sdk 打造的容器安全工具集。veinmind, 中文名为问脉,寓意 容器安全见筋脉,望闻问切治病害。 旨在成为云原生领域的一剂良方。

2、trivy

Trivy 是一款轻量级的开源安全扫描工具,专注于 Docker 镜像的漏洞扫描,帮助用户快速检测镜像中的漏洞并提供修复建议。Trivy 基于漏洞数据库,并且包含了多种 CVE 数据库。它可以从最新版本的漏洞数据库中获取数据,在本地计算机上执行镜像扫描,以检测 Docker 镜像中的漏洞和安全问题。Trivy 使用简单,并与 CI/CD 管道集成非常容易

后续会写系列文章详细介绍上面工具的使用,用工具提供的原子能力建设企业SDL流程。感谢开源工具为安全能力建设提供的帮助,开源漏洞靶场提供的漏洞验证能力。文章中有错误之处欢迎大家指正,如果有优秀的开源工具欢迎评论区留言,共同推动安全开发能力体系建设。

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

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

相关文章

vue+el-select下拉实现:全选、反选、清空功能

问题描述: el-select下拉框要求实现全选功能。具体功能包括: 当选择【全选】时,所有选项全部被勾选;当选择【反选】时,已选择选项变为未选择选项,未选项变为已选项当选择【清空】时,所有选项变…

SpringBoot进阶学习?看这篇就够了

相信从事Java开发的朋友都听说过SSM框架,老点的甚至经历过SSH,说起来有点恐怖,比如我就是经历过SSH那个时代未流。当然无论是SSM还是SSH都不是今天的重点,今天要说的是Spring Boot,一个令人眼前一亮的框架,…

作用域详解

作用域详解 1、概念2、分类2.1 全局作用域2.2 局部作用域2.2.1 函数作用域2.2.2 块级作用域2.2.3 块级作用域与函数声明 1、概念 JavaScript中的作用域是指变量、函数和对象在代码中可访问的范围。作用域规定了代码中的标识符(变量名、函数名等)在何处和…

ansible自动部署zabbix监控平台

目录 ansible端部署 使用ansible配置zabbix-mysql端 使用ansible配置zabbix-server端 使用ansible配置zabbix-agent端 一键部署zabbix Ansible是一款开源的自动化运维工具,可以通过SSH协议远程自动化地执行一些复杂的IT工作,例如程序部署、配置管理、…

Python自动化测试——postman,jmeter接口测试

关于众所postman,jmeter,做自动化测试的我想对这两个词并不陌生。大家都知道postman用来做接口测试很方便,下面我们就用一些例子来演示一下它该如何进行接口测试: 首先我们来介绍一下接口测试的概念: 1、什么是接口测试&#xf…

【裸机开发】内核时钟 PLL1 配置实验(一)—— 寄存器分析篇

本章主要会回答以下问题 ? imx6u 的时钟源来自于哪 ?为什么一个起始时钟源,最终分成了多路?不同的时钟源是如何与外设对应起来的?(时钟树)要配置内核时钟频率 有哪些步骤 ?涉及到哪…

NLP学习笔记十一-word2vec模型

NLP学习笔记十一-word2vec模型 再介绍word2vec模型之前,我们需要先介绍一些背景知识。 我们只知道,NLP这一领域在ward2vec出现之前肯定也是有很大程度发展的,那么想要用将自然语言用计算机进行处理,进行计算,我们必须…

JQuery全部详细笔记-下

JQuery全部详细笔记-下 jQuery 的 DOM 操作 查找节点, 修改属性 查找属性节点: 查找到所需要的元素之后, 可以调用 jQuery 对象的 attr() 方法来获取它的各种属性值 应用实例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UT…

RK3288 Android8.1添加lvds以及gt9触摸屏(二)

现在先说gt9触摸屏如何配置 首先拿到硬件厂商提供的cfg以及gt9xx文件夹 驱动源码路径&#xff1a;kernel/drivers/input/touchscreen/gtxx 注&#xff1a;可以自己定义最后把gt9xx.h以及gt9xx.c文件放在哪&#xff0c;放在哪就在makefile里指定对应位置 1.touchscreen文件夹…

耗时108天,阿里P8总结了 1000 道 Java 工程师面试题

半年前还在迷茫该学什么&#xff0c;怎样才能走出现在的困境&#xff0c;半年后已经成功上岸阿里&#xff0c;感谢在这期间帮助我的每一个人。 面试中总结了 1000 道经典的 Java 面试题&#xff0c;里面包含面试要回答的知识重点&#xff0c;并且我根据知识类型进行了分类&…

写一个自定义View你都需要注意什么

本文主要是记录一下继承子View&#xff0c;所需要实现的方法&#xff0c;以及对自己的知识做一下梳理和记录&#xff0c;其中不少内容觉得自己应该是会的&#xff0c;但是实际写起来&#xff0c;还是遇到不少阻碍 构造方法 首先构造先了解一下构造方法&#xff0c;一般来说&a…

和悦未来社区:助力共同富裕,三思打造智慧社区新样板

“共同富裕是社会主义的本质要求&#xff0c;是中国式现代化的重要特征&#xff0c;是人民群众的共同期盼。” 2021年5月20日&#xff0c;《中共中央 国务院关于支持浙江高质量发展建设共同富裕示范区的意见》正式发布。 浙江省作为共同富裕先行示范省份&#xff0c;行而不辍…

SpringCloud microservice-student-consumer-80服务消费者项目建立(四)

新建一个服务器提供者module子模块&#xff0c;类似前面建的common公共模块&#xff0c;名称是 microservice-student-consumer-1001 pom.xml修改&#xff1a; <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSc…

01 UML概述

UML概述 (1) 规约系统的制品–UML适用于对所有重要的分析、设 计和实现决策进行详细描述 (2) 构造系统的制品–UML描述的模型可与各种编程语言直接相关联 UML应用范围 (1)可用于对象方法和构件方法&#xff1b; (2)可用于 ●所有应用领域(例如&#xff0c;航空航天、财政、通…

重生之我测阿里云U1实例(通用算力型实例)

官方福利&#xff01;&#xff01;&#xff01;&#xff01;大厂羊毛你确定不薅&#xff1f;&#xff1f;&#xff1f; 参与ECSU实例评测&#xff0c;申请免费体验机会&#xff1a;https://developer.aliyun.com/mission/review/ecsu 参与ECSU实例评测&#xff0c;申请免费体验…

CVPR 2023 | 基于金字塔模型的异常检测方法

来源&#xff1a;投稿 作者&#xff1a;橡皮 编辑&#xff1a;学姐 论文链接&#xff1a;https://arxiv.org/pdf/2211.11317 0.背景&#xff1a; 工业异常检测旨在发现产品的异常区域&#xff0c;在工业质量检测中发挥着重要作用。在工业场景中&#xff0c;很容易获得大量的正…

阿里云RAM凭据插件应用纪实

官方传送 官方文档传送门 官方源码传送门 记录日期 2023-06-13 背景简介 项目中主要使用了OSS&#xff0c;本文记录在OSS SDK中的使用方法 引入依赖 <dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactI…

一波未平一波又起!加密市场静候利率决议!美联储将会如何演绎?

过去一周&#xff0c;加密市场主要根据SECvs币安&Coinbase的诉讼案件做出反应&#xff0c;但本周市场行情或将以宏观事件为主导&#xff0c;市场短期内仍看不到明确的方向。 因通胀意外反弹&#xff0c;曾暂停加息的澳大利亚央行、加拿大央行近期宣布继续加息&#xff0c;让…

企业软文投稿流程是怎样的,投稿有什么要求?

随着互联网的快速发展&#xff0c;传统的线下推广已经不再是企业宣传的唯一选择。越来越多的企业开始关注线上平台&#xff0c;尤其是软文投稿。那么&#xff0c;企业软文投稿流程是怎样的&#xff1f;投稿有什么要求呢&#xff1f;本文伯乐网络传媒将为大家详细介绍。 1.确定投…

GORM---高级查询

文章目录 构建Demo数据模型定义数据表 高级查询子查询选择字段排序数量偏移总数Group & Having连接 Pluck扫描 构建Demo数据 模型定义 type Users struct {Id uint64 gorm:"primary_key;NOT NULL"EmailId uint64 gorm:"foreignKey:email_id;referenc…