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

SAST静态分析工具所支持的规则

    综合国内外SAST工具支持的规则,这些规则包括了国际标准、国内标准、行业标准等,这里我罗列了一下,这些规则对应的标准集合。 评估一款SAST工具时,支持规则集的多少,且每个规则集是否为全集,或者接近全集,表明了一款工具的检测能力,而且是否能够对这些规则进行优化,提升检出率,减少误报,漏报。

        对于每一标准中的每一条不管是强制类型、还是建议类型,都至少需要被一条SAST规则所覆盖,如果工具做的简单,就是可能需要多条规则覆盖一条标准项,如果做的更专业一点,则是把需要多条规则映射到一条标准,在检测结果展示中,看到是对每一条标准的覆盖,例如像Coverity出的Misra合规性报告,则是这种映射关系。而国军标GJB  8114、GJB 5369制定后,但是却没有要求出合规性报告,所以执行层面很灵活。而CNAS的代码审计依据的标准GB/T 34943、GB/T 34944、GB/T 34946是偏安全漏洞方面,更没有合规性报告的说法,在执行层面上每家测评中心执行情况也不同,我还记得当初作为CNAS技术负责人申请CNAS测评实验室认证时采用实验室间比对方法,大家对CNAS理解上的歧义。不管大家怎么理解,作为一款工具,支持这些标准才是王者。

        下面我就罗列一下。

标类

序号

名称

全集数

国际行业标准

1

OWASP TOP10 2021         

当前最新基于WEB应用安全的行业标准,大部分工具具备

A1-A10,每一类通过多个CWE缺陷实现

2

OWASP TOP10 2017

相对过时WEB应用安全行业标准,部分老旧工具具备

A1-A10,每一类通过多个CWE缺陷实现

3

OWASP MOBILE TOP10 2016

面向手机终端安全行业标准,大部分工具不支持

M1-M0,每一类通过多个CWE缺陷实现

4

CWE/SANS TOP25 2023

MITRA每年发布一次,25类最常见的缺陷,其中部分与WEB应用安全相关,部分是运行时缺陷。大多数工具支持部分

25类CWE 编号缺陷

5

SEI CERT Oracle Coding Standard for Java

CERT Java检测集   Java语言安全漏洞编码规则,没有包括Java Android和建议条项

185

6

SEI CERT C Coding Standard

CERT C语言编码标准

122

7

SEI CERT C++ Coding Standard

CERT C++编码标准

82

国际标准

8

ISO 17961-2013,Cor 1 2016  C语言安全漏洞编码规则

94

国际金融行业

9

PCI-DSS V4.0 ,金融支付卡行业PCIDSS)数据安全标准

6.5.1-6.5.10主要列举了10类安全漏洞,但是覆盖整个标准需要更多

10

国际航空业

10

联合打击战斗机项目系统研制与验证阶段航空器C++编程规范

29大类223条

11

JPL(航空业)编码标准

33

国际

汽车制造行业

12

MISRA C 2004: 1st Ed 2004.10,2nd Ed with Tech Cor 1 2008.07  工业标准的C语言嵌入式可靠性编程规范

143

13

MISRA C ++  2008: 2008.06  工业标准的C++语言嵌入式可靠性编程规范

175

14

MISRA C 2012: 1st Ed 2013.03,Amendment 1 2016.04,Tech Cor 1 2017.06,Amendment 2 2020.02 工业标准的C语言嵌入式可靠性编程规范

175

15

AUTOSAR C++14, 车辆制造行业标准,只对应C/C++语言

397

国家推荐标准

16

GB/T 39412-2020   代码安全审计规范

95

17

GB/T 38674-2020   应用软件安全编程指南

22大类上百小类

国内行业标准

18

YD/T 3464-2019    联网软件安全编程规范

19

SJ/T 11682-2017   C/C++语言源代码缺陷控制与测试规范

7大类88个小类

20

SJ/T 11681-2017 C#语言源代码缺陷控制与测试指南

7大类34个小类

21

SJ/T 11683-2017   Java语言源代码缺陷控制与测试规范

7大类58个小类

国家标准

(CNAS)

22

GB/T 34944-2017   Java语言源代码漏洞测试规范

43

23

GB/T 34943-2017   C/C++语言源代码漏洞测试规范

32

24

GB/T 34946-2017   C#语言源代码漏洞测试规范

40

国家军用

强制标准

25

GJB 5369-2005  国家军用标准航天型号软件C语言可靠性编程规范

144

26

GJB 8114-2013  国家军用标准C/C++语言可靠性编程规范

204

相关文章:

SAST静态分析工具所支持的规则

综合国内外SAST工具支持的规则,这些规则包括了国际标准、国内标准、行业标准等,这里我罗列了一下,这些规则对应的标准集合。 评估一款SAST工具时,支持规则集的多少,且每个规则集是否为全集,或者接近全集&am…...

torch 的数据加载 Datasets DataLoaders

点赞收藏关注! 如需要转载,请注明出处! torch的模型加载有两种方式: Datasets & DataLoaders torch本身可以提供两数据加载函数: torch.utils.data.DataLoader()和torch.utils.data.Datase…...

【Promise】某个异步方法执行结束后 在执行下面方法

使用Promise ,当 layer.msg(查询成功) 这个方法执行结束后 ,下面代码才会执行 let thas this async function showMessage() {await new Promise(resolve > layer.msg(查询成功, resolve));// 这里的代码将在 layer.msg 执行结束后执行thas.isGuaran…...

任意文件下载漏洞(CVE-2021-44983)

简介 CVE-2021-44983是Taocms内容管理系统中的一个安全漏洞,可以追溯到版本3.0.1。该漏洞主要源于在登录后台后,文件管理栏存在任意文件下载漏洞。简言之,这个漏洞可能让攻击者通过特定的请求下载系统中的任意文件,包括但不限于敏…...

C++(20):通过source_location实现日志函数

C++20中引入了std::source_location,用来描述函数调用的上下文信息。 其主要的成员函数如下: line():获取行号。column():获取列号。file_name():获取文件名。function_name():获取函数域名。#include <iostream> #include <string_view> #include <sour…...

【数据结构】树与二叉树(廿二):树和森林的遍历——后根遍历(递归算法PostOrder、非递归算法NPO)

文章目录 5.1 树的基本概念5.1.1 树的定义5.1.2 森林的定义5.1.3 树的术语 5.2 二叉树5.3 树5.3.1 树的存储结构1. 理论基础2. 典型实例3. Father链接结构4. 儿子链表链接结构5. 左儿子右兄弟链接结构 5.3.2 获取结点的算法5.3.3 树和森林的遍历1. 先根遍历&#xff08;递归、非…...

精通Nginx(17)-安全管控之防暴露、限制访问、防DDos攻击、防爬虫、防非法引用

安全是每个系统都需要考虑的关键因素,Nginx在这方面提供了丰富的功能,使我们可以就实际情形做很精细调整。这些功能包括防信息暴露、客户端访问限制、通讯加密、防DDos攻击、防爬虫、防非法引用及防非法域名请求等。 目录 防信息暴露 关闭版本号 关闭目录列表 客户端访问…...

STM32 Flash

FLASH简介 Flash是常用的用于存储数据的半导体器件&#xff0c;它具有容量大&#xff0c;可重复擦写&#xff0c;按“扇区/块”擦除、掉电后数据可继续保存的特性。 常见的FLASH主要有NOR FLASH和NAND FLASH两种类型。NOR和NAND是两种数字门电路&#xff0c;可以简单地认为FL…...

文件批量重命名技巧:图片文件名太长怎么办?告别手动改名方法

在日常生活中&#xff0c;常常会遇到文件名过长导致的问题。尤其是在处理大量图片文件时&#xff0c;过长的文件名可能会使得文件管理变得混乱不堪。现在来看下云炫文件管理器如何批量重命名&#xff0c;让图片文件名变得更简洁&#xff0c;提高工作效率。 操作1、在云炫文件…...

微信小程序手写滑动tab

微信小程序手写滑动tab index.wxml <view class"tab-bar"> <scroll-view scroll-x class"tab-scroll"> <block wx:for"{{tabs}}" wx:key"index"> <view class"tab-item {{currentIndex index ? acti…...

一文读懂如何安全地存储密码

目录 引言 明文存储 基本哈希存储 加盐哈希存储 适应性哈希算法 密码加密存储 小结 引言 密码是最常用的身份验证手段&#xff0c;既简单又高效。密码安全是网络安全的基石&#xff0c;对保护个人和组织信息的安全具有根本性的作用。然而有关密码泄漏的安全问题一再发生…...

【运维面试100问】(六)buffer和cache的区别

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…...

创建域名邮箱邮件地址的方法与步骤

如何创建域名邮箱邮件地址?使用Zoho Mail创建域名邮箱邮件地址的步骤简单易懂&#xff0c;操作便捷。从其他邮箱迁移到Zoho Mail的过程也相当顺畅&#xff0c;您可以轻松为所有员工创建具有企业邮箱域名的电子邮件地址。 步骤1&#xff1a;添加并验证您的域名 首先&#xff0c…...

Qt框架学习(1)

1.安装Qt官网 安装需注意的是&#xff0c;要安装开源版(有钱当我没说),而安装包都是一样的&#xff0c;主要是在注册账户时选择个人开发&#xff0c;而不要选公司&#xff0c;否则在安装时登录账号后会安装商业版Qt. 2.Qt中的快捷键 快捷键解释F4头文件和实现文件切换ShiftF…...

3D电路板在线渲染案例

从概念上讲,这是有道理的,因为PCB印制电路板上的走线从一个连接到下一个连接的路线基本上是平面的。 然而,我们生活在一个 3 维世界中,能够以这种方式可视化电路以及相应的组件,对于设计过程很有帮助。本文将介绍KiCad中基本的3D查看功能,以及如何使用NSDT 3DConvert在线…...

ResizeObserver loop limit exceeded报错解决方案

前言&#xff1a; 控制台没有报错&#xff0c;但是开发Vue项目过程中一直报ResizeObserver loop limit exceeded 错&#xff0c;找到以下解决方式。在main.js文件中重写 ResizeObserver 方法。 main.js文件 &#xff08;完整版&#xff09; import { createApp } from "v…...

【OpenCV实现图像:使用OpenCV进行图像处理之透视变换】

文章目录 概要计算公式举个栗子实际应用小结 概要 透视变换&#xff08;Perspective Transformation&#xff09;是一种图像处理中常用的变换手段&#xff0c;它用于将图像从一个视角映射到另一个视角&#xff0c;常被称为投影映射。透视变换可以用于矫正图像中的透视畸变&…...

Vue中学习笔记-数据代理

文章目录 前文提要数据代理的概念MVVM模型和Vue中的数据代理M&#xff0c;模型V&#xff0c;视图VM&#xff0c;视图模型 前文提要 本人仅做个人学习记录&#xff0c;如有错误&#xff0c;请多包涵 数据代理的概念 使用一个对象代理对另一个对象中属性的操作。 MVVM模型和Vu…...

IDEA 配置maven结合案例使用篇

1. 项目需求和结构分析 需求案例&#xff1a;搭建一个电商平台项目&#xff0c;该平台包括用户服务、订单服务、通用工具模块等。 项目架构&#xff1a; 用户服务&#xff1a;负责处理用户相关的逻辑&#xff0c;例如用户信息的管理、用户注册、登录等。 spring-context 6.0.…...

基于白鲸算法优化概率神经网络PNN的分类预测 - 附代码

基于白鲸算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于白鲸算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于白鲸优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神经网络的光滑…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...