Fortify自定义规则笔记(一)

2023-10-27

一. Fortify SCA 自定义规则介绍

Fortify是一款强大的静态代码扫描分析工具,其发现代码漏洞缺陷的能力十分强悍,主要是将代码经过编译,依托于其强大的内置规则库来发现漏洞的。其次fortify SCA 团队在开发此商业工具时,也提供了自定义规则的接口,只要经过正版授权后,便可以在此基础上自定义规则,来增强Fortify SCA的漏洞识别能力,同时经过自定义规则,也可以降低误报,使得静态分析的准确度和高效性。

默认情况下, Fortify SCA 使用安装的安全编码规则包用来检查源代码,并定义一系列可能出现的问题,如可被攻击者利用的安全漏洞和不良的编码缺陷。
安全编码规则包中的规则分析了受支持语言的核心和扩展的 API 包中的函数,并将分析结果记录在Fortify SCA 中。每一个问题的解释包含了对问题的描述和建议的解决方案,以便更好地解决程序中的漏洞和缺陷。
您可以通过创建自定义规则包来准确地分析特定的应用程序 (其中包含有关源代码元素附加信息的规则),验证专门的安全规则,以及细化 Fortify SCA 所报告的问题。

二. 编写自定义规则原理

要编写有效的自定义规则,就必须熟悉已知的安全漏洞类别和通常与它们相关的函数类型。深入理解各类经常出现在特定类型漏洞的函数,有利于在编写自定义规则过程中能够准确地找到与安全相关的函数。相对来说寻找与安全相关的函数往往是比较困难的,因为任何一门语言,都有其庞大的开源框架和lib库。所以自定义规则,就需要即精通安全漏洞原理,又要熟练掌握一门或几门开发语言。一般自定义规则用的比较多的语言有  java、C/C++、PHP等。

其次必须识别与安全相关的函数,并熟悉这些函数的特性(通过检查源代码,或借助 API 文档)以此来确定能够体现各个函数具体行为和与之相关的漏洞类别的正确规则形式。一旦确定好了这种联系,使用自定义规则编辑器来创建规则就相对简单了。

三. 自定义规则

1). 在fortify SCA安装的bin目录下找到打开自定义规则编辑器,CustomRulesEditor.cmd,如下图所示:

2). 打开编辑器后,选择File ——>Generate Rule,弹出规则向导框。

3). 自定义规则模板可以按照漏洞类型(Category)和规则类型(Rule Type)进行分类,不管是何种方式分类,这些模板大体上分为,数据污染源tainted规则,数据控制流规则,数据传递规则,以及漏洞缺陷爆发的sink规则。只要理解了这些规则模板,和开发语言的函数特征,建立规则就简单了。

3) .选择规则包语言,点击next,然后填写报名,类名,函数名

4). 点击next,设置sink点

5). 点击保存即可

四. 运行自定义规则

需要将编写好的自定义规则包放在Fortify SCA指定的文件夹下方可生效。默认一般是在${FortifyInstall}/Core/config/customrules/目录下

你可以在${FortifyInstall}/Core/config/fortify-sca.properties进行配置自定义路径

希望做源代码审计或安全测试的同学,多多关注,多多交流 ( ^∀^)( ^∀^)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Fortify自定义规则笔记(一) 的相关文章

  • Abort message: ‘FORTIFY: FD_SET: file descriptor 1070 >= FD_SETSIZE 128‘

    问题现象 压力测试骁龙相机 xff0c 发现camera provicer 进程崩溃 无法正常打开相机 xff0c 只有重新启动设备 相关的log xff1a 03 23 08 17 08 592 15634 15634 F DEBUG s
  • markdown-it 介绍,以及使用,自定义规则

    markdown it markdown it 是前端的一个 markdown 解析库 xff0c 将 markdown 解析成 Token 流 网上都有很多详细的 token 流解析过程 xff0c 请先简单看一遍 markdown it
  • 部分Fortify代码扫描高风险解决方案

    部分Fortify代码扫描高风险解决方案 一 Category Access Control Database 问题描述 xff1a Database access control 错误在以下情况下发生 xff1a 1 数据从一个不可信赖的
  • 静态分析简介

    一 程序静态分析简介 Program Static Analysis 程序静态分析简介 Program Static Analysis 是指在不运行代码的方式下 通过词法分析 语法分析 控制流 数据流分析等技术对程序代码进行扫描 验证代码是
  • lecture1 Introduction-笔记

    本文参考了该作者的一些图解和见解 https zhuanlan zhihu com p 128156349 由于疫情原因 偶然间学习了南大的软件分析 Static Analysis 课程 后面会用SA来替代Static Analysis 因
  • CWE-通用弱点枚举简介

    对于软件来说 安全是航空 航天 军工 电力 金融等关键行业极为重视的特性之一 因此 保证软件尽量安全是软件研发人员的重要责任 可以说 软件安全漏洞是软件研发者的一大死敌 古语有云 知彼知己 百战不殆 要想取得战争的胜利 就要尽可能充分认识软
  • Gimpel Software推出C和C ++的首选静态分析工具 PC-lint Plus,不再维护PC-lint/FlexeLint。

    Gimpel Software已不再维护PC lint FlexeLint版本9 最终更新是2014年发布的版本9 00L Gimpel Software在2018年底之前为PC lint FlexeLint提供技术支持 Gimpel So
  • 【软件分析/静态分析】学习笔记01——Introduction

    课程链接 李樾老师和谭天老师的 南京大学 软件分析 课程01 Introduction 哔哩哔哩 bilibili 目录 一 静态程序分析介绍 1 1 PL and Static Analysis 程序语言和静态分析 1 2 为什么要学 S
  • fortify 漏洞扫描的几种解决方式

    1 关于Log的问题 Log Forging 整个系统中 对于Log的问题最多 可以采用以下方式进行解决 解决方案如下 1 只输出必要的日志 功能上线前屏蔽大多数的调试日志 2 过滤掉非法字符 2 关于创建File Path Manipul
  • 如何查看 Fortify 安全编码规则的所有规则?

    我想查看 Fortify 安全编码规则的具体规则 Fortify 默认使用的规则 因为我想编写一份有关 Fortify 使用的所有规则的报告 我试图看到他们C Program Files Fortify Software HP Fortif
  • HP Fortify——注释方法参数

    我正在尝试消除 Java 应用程序的 HP Fortify 扫描中的误报 此方法会导致 侵犯隐私 问题 PrintWriter 是 servlet 响应 private void writeOutput String passwordRul
  • 如何纠正 fortify 给出的路径操作错误?

    我需要读取保存在 user home 文件夹中的属性文件 PropsFile System getProperty user home System getProperty file separator x properties Forti
  • 将字段设置为 null 时 Java Null Dereference - Fortify

    当我将字段设置为 null 时 Fortify 抱怨 Null 取消引用 String sortName null if lastName null lastName length gt 0 sortName lastName sortOp
  • ASP.NET 不良实践:会话中存储不可序列化的对象

    我有一个类似的代码 Session key value 但根据 Fortify SCA 由于 会话中存储了不可序列化的对象 这被认为是一种不好的做法 Screenshot as below 解决这个问题的最佳方法是什么 如何使字符串 val
  • 如何使用Fortify Scan 16.11通过project.Json扫描dotnet core

    我创建了一个默认的 Net Core 1 0 1 类库 并更改了 project json 中的 buildOptions 以包含 debugType Full 我使用 16 11 的集成 VS 2015 Fortify Scan 并收到以
  • EnableHeaderChecking=true 是否足以防止 Http 标头注入攻击?

    拥有 就足够了吗 System Web Configuration HttpRuntimeSection EnableHeaderChecking http msdn microsoft com en us library system w
  • 如何强制 cmake 使用没有完整路径的 cl.exe?

    我正在构建一个使用 CMake 的开源项目 kst v2 0 8 我使用 CMake v2 8 12 2 和 MSVC 2008 作为编译器 并生成 NMake makefile 以在命令行上构建它 我可以通过此设置成功构建它 这些版本是强
  • HP Fortify 路径操作验证规则

    我正在通过 Hp Fortify 运行代码 并有一些路径操纵的发现 我了解它的背景并试图解决 我没有遍历从数据库查询某些路径值来存储输出文件 日志 导出数据等 的所有位置 而是尝试将其集中化 因此 我不想让 File WriteAllTex
  • 如何生成包含所有问题的报告?

    我有一个在 AWB 中打开的 Fortify FPR 扫描文件 我想生成一份报告 其中包含发现问题的所有实例 当我生成报告时 它会生成按类型及其计数列出问题的报告 并且在类型下方我还会获得以下名称和代码片段some发现问题的文件 我想生成一
  • 无法解决原木锻造强化问题

    我在修复 Fortify 中的日志锻造问题时遇到问题 getLongFromTimestamp 方法中的两个日志记录调用都引发了 将未经验证的用户输入写入日志 的问题 public long getLongFromTimestamp fin

随机推荐

  • 【python+selenium】UI自动化测试环境搭建及使用(建议收藏)

    一 什么是Selenium Selenium 是一个浏览器自动化测试框架 它主要用于web应用程序的自动化测试 其主要特点如下 开源 免费 多平台 浏览器 多语言支持 对web页面有良好的支持 API简单灵活易于使用 支持分布式测试用例执行
  • python基础笔记

    https www bilibili com video BV1qW4y1a7fU p 12 spm id from pageDriver vd source db3d134c564b091aeb95550baf2fa5b0 第一阶段 01
  • linux和windows的对比

    Windows下可以运行绝大部分的游戏 硬件厂商近乎100 的支持 linux下可直接运行的软件数量 和win比起来就是1和99的区别 选择linux的人基本不会考虑玩游戏 同时linux正期待更多硬件厂商的支持 linux安全性高 win
  • Ubuntu 20.04下docker安装和添加阿里云服务器镜像和加速镜像

    官方的docker安装文档 https docs docker com engine install ubuntu 先卸载旧版的docker sudo apt get remove docker docker engine docker i
  • C/C++程序员何去何从

    滚滚长江东逝水 浪花淘尽英雄 虽说是个人英雄的时代已经成为过去 但我们仍然不能对这样的榜样们有所忘怀 他们是WPS求伯君 CCDOS严援朝 2 13吴晓军 四通利方王志东 CCED朱崇君 UCDOS鲍岳桥等 因为他们不仅是成名的优秀程序员
  • element组件:点击侧边栏,切换右侧内容

    侧边栏 远程加载了页面的头部
  • pip工具使用之版本变更及恢复

    1 版本变更 降低版本 pycharm安装第三方库 Try to run this command from the system terminal Make sure that you use the问题 亲测已解决 爱编程的小新的博客
  • STL-String容器

    string本质上是一个类 string 类内部封装了很多成员方法 例如 查找find 拷贝copy 删除delete 替换replace 插入insert string管理char 所分配的内存 不用担心复制越界和取值越界等 由类内部进行
  • Android通用的筛选栏实现

    最近事情比较多 不管是生活还是工作 感觉节奏都在赶着走 对于之前相对比较喜欢自由的我 也要慢慢适应之后的节奏了 不管怎样 生活还在继续 加油 今天来写一个通用的筛选栏的实现 也是因为之前项目中要好多地方用到筛选栏这么个东西 所以为了之后用起
  • C++基础知识 - 类模板函数写在类的外部

    1 所有的类模板函数写在类的外部 在一个cpp中 include
  • Could not initialize class sun.awt.X11GraphicsEnvironment

    当你的代码出现这一段你不慌吗 其实解决方法很简单 这一段代码很重要 用了它就能在linux环境下没有桌面的情况下运行验证码 在静态代码块中添加这一段表示启用headless模式就不用下载桌面环境了 static System setProp
  • 2014年2月21日星期五(DEMO7-6战区漫步)

    这是本章最后一个例子 与上个例子不同的是 1 加载的物体是2个 2 用了欧拉相机 视野120度 这个DEMO是个综合 应该没有新的函数了 稍微简单些 首先设定个宇宙空间 以及 各物体参数 define UNIVERSE RADIUS 400
  • 集成 Redis & 异步任务-SpringBoot 2.7 .2实战基础

    学SpringBoot 2 7 2实战基础 09 集成 Redis 异步任务 1 集成Redis docker 安装 MySQL 和 Redis 一文已介绍如何在 Docker 中安装 Redis 本文就看看 SpringBoot 如何整合
  • warning: #1295-D: Deprecated declaration lcd_init - give arg types

    将void lcd init 改为void lcd init void 即可
  • FFMPEG视音频编解码学习笔记

    文章转载自 http www jianshu com p 5c7bec29fdbd 一直对音视频这块比较感兴趣 但是一直不知道从何下手 终于找到了比较好的资料 希望通过接下来的时间好好研究一下FFMPEG相关的知识 这里感谢一下雷霄骅大神
  • 2022年软件测试面试题分享

    一 上来必然是自我介绍 自我介绍是任何一个面试过程中必不可少的环节 并且可以说是最重要的环节 因为每个面试官都需要用最短的时间去了解你这个人 以前干过什么 有过几年经验 做过哪些项目 可以说 通过一个简短的自我介绍 面试官心里已经有50 的
  • UE4状态机

    1 准备一套带动作的模型 并导入UE4 2 新建一个动画蓝图 右键 gt Animation gt AnimationBlueprint 选择继承AnimationInstance 并选择相应的骨骼 命名HeroAnimation 3 双击
  • 【网络编程】【UDP】UDP协议介绍

    一 UDP介绍 UDP和TCP相比是截然不同的 是一个简单的传输协议 全称是用户数据包协议 User Datagram Protocol 是一个无连接协议 UDP不保证UDP数据报会到达其最终目的地 不保证各个数据报的先后顺序跨网络后保持不
  • 操作复杂对象结构——访问者模式(四)

    26 4 访问者模式与组合模式联用 在访问者模式中 包含一个用于存储元素对象集合的对象结构 我们通常可以使用迭代器来遍历对象结构 同时具体元素之间可以存在整体与部分关系 有些元素作为容器对象 有些元素作为成员对象 可以使用组合模式来组织元素
  • Fortify自定义规则笔记(一)

    一 Fortify SCA 自定义规则介绍 Fortify是一款强大的静态代码扫描分析工具 其发现代码漏洞缺陷的能力十分强悍 主要是将代码经过编译 依托于其强大的内置规则库来发现漏洞的 其次fortify SCA 团队在开发此商业工具时 也