静态代码分析工具介绍——Fortify SCA

今天为大家介绍的是静态代码分析工具,静态代码测试是很重要的,做应用安全最佳的切入点就是在开发阶段做代码的静态应用安全测试分析。这里给大家主要推荐的是Fortify,这是业界做应用安全测试最早的产品,甚至可以称之为应用安全测试工具的“鼻祖”,这款工具在应用安全领域一直是处于引领地位的。

我们推荐这个工具的首要原因是,它覆盖的语言多,因为我们的企业级应用可能会用到很多的开发语言。现在开发语言的种类越来越多,常见的是Java类的,还有一些其他的小众语言,也在逐渐被普遍应用。

像现在比较流行的Go语言、Kotlin,以及一些脚本语言。我们前面也谈到了,移动应用现在发展得很迅猛,像苹果的开发语言Objective C、Swift。这么多的新兴开发语言就需要我们的自动化工具涵盖更多的开发语言。

除了语言覆盖广,更关键的还是要检测到更全面的安全漏洞和代码缺陷。还有就是漏报率和误报率,也很重要。这几个维度都是很重要的。

最后才是效率,虽然效率也很重要,但是比起精准性来说,我认为精准性更为重要,因为安全不能够有漏报。误报可以解决,但是漏报没有发现,没有办法解决,这个危害就很大。

测完之后你并不知道有些漏洞还没有被发现,还隐藏在你的程序里面,一旦被利用,后果不堪设想。所以我们追求的理念是零漏报,当然是非常难做到的,我们之后尽量地减少漏报。

误报我们可以通过一些手段去解决,去调优规则库、调优规则和策略,来减少误报。大家在选择产品的时候,一定要选择规则库更为全面的产品。

应用安全测试最关键的一点就是修复,发现问题可以精准的定位,能够迅速修复掉,这是最关键的。

首先漏洞的定位是很重要的,一定要准确,可以准确地告诉你是这里有问题,什么问题?怎么改?级别高不高?作为一个自动化工具来说,这些要素是缺一不可的。

我们要了解漏洞的严重程度有多高,中低风险的我们可以暂不修改,因为我们的精力有限,所以需要要将精力放在风险最高的问题上,所以我们需要一个非常清晰的风险级别的划分。

还有就是定位一定要准确,最后是需要一个非常详细的修改建议,照着这个修改建议去修改是最安全的、最标准的。如果工具给到我们的建议很模糊、不够明确,我们的开发人员可能还是不知道应该怎么修改这个问题,因为他们可能并不是那么了解安全编码。

漏洞知识库也非常重要,大家如果感兴趣可以去登陆(https://vulncat.fortify.com/zh-cn)这个网址,这个是我个人认为业界最强的软件安全漏洞的知识库。这里面涵盖了我们业界关于代码编写缺陷的最完整的内容。

《软件开发七宗罪》这是很多年前非常畅销的一本书,他把软件开发缺陷分了七个大类。安全是比较主要的一个大类,还有其他的,像代码质量、环境问题等等。

这个知识库的分类非常好,可以按照大类去分,也可以按照开发语言去分。fortify现在已经支持28种语言,这个知识库把属于每一种语言的漏洞的种类都列了出来,而且还是全中文分析。
大家如果对安全编码、应用安全漏洞方面感兴趣的话,可以登陆这个网址,去了解我们业界最新的、最权威的、最全面的关于代码开发编写的漏洞知识库。


我们做代码安全编程是希望无感知地实施,我自己作为程序员深有体会,我自己本身并不想做额外的工作。我的目的就是把功能实现,如果还花时间去做安全测试,没有时间,没有精力。

仅仅是实现功能都需要加班,怎么可能还有时间去做安全测试呢。测完了我还要去看问题,还要判断,还要分析,还要去改,需要花费太多的时间了。

这里再给大家推荐一个插件,叫安全小助手,嵌入到开发人员的IDE上,只要他完成了一段代码,或者一行代码,就会马上得到一个风险提示。这个提示是在IDE界面上就直接提示,不需要点任何按钮,也不需要等待。

(本系列文章根据《优品软件培育计划》公益直播内容整理,可以私信我获取直播回放链接。)

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

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

相关文章

c++链表(list)

前言 链表作为一个常见的数据结构,在高频插入删除的场景下有独特的优势,在内存的使用上也极少有浪费可以按需申请。今天我们就来简单的学习一下这种数据结构,链表也有很多不同的实现,我们这里和标准库保持一致,实现带…

CUDA指南-CUDA编程基础

CUDA编程基础是开始利用GPU进行并行计算的起点。以下是一些入门步骤和概念: Hello World:第一个CUDA程序 编写CUDA核函数: 创建一个简单的核函数,例如一个向量加法操作。核函数用 global 修饰,表示它将在GPU上执行。…

React 学习——useMemo

useMemo使用场景&#xff1a;消耗非常大的计算&#xff0c;例如递归 import { useMemo, useState } from react; // 缓存&#xff1a;消耗非常大的计算&#xff0c;例如递归 function fib(n){console.log(fib);if(n < 3)return 1;return fib(n-2) fib(n-1); }const App (…

Linux | 文件系统进阶:Inode与软硬链接艺术剖析

当时共我赏花人&#xff0c;点检如今无一半。 - 《木兰花》(晏殊) 2024.8.24 目录 1. 文件系统的基本概念 1.1 ls -l命令查看目录信息 1.2 stat命令查看具体文件的详细信息 1.3 inode ext2文件系统的主要组成部分&#xff1a; 例子&#xff1a;创建main.c文件 文件的创建步骤&a…

谷歌登录的时候,要求在手机的通知点是,并按数字来验证身份,但是手机通知栏没有收到通知和数字,原因是什么,怎么办?

前两天&#xff0c;有个朋友联系到GG账号服务&#xff0c;说他的一个谷歌账号在新设备登录的时候&#xff0c;提示说要在手机的通知栏点击谷歌发来的通知&#xff0c;点击是确认&#xff0c;并且要点按相应的数字。 但问题是他反复刷新手机的通知栏都没有看到谷歌发来的通知&a…

xml打印模板解析-SAAS本地化及未来之窗行业应用跨平台架构

一、为何要自己设置打印模板系统 1.确保自由知识产权 2.支持跨平台&#xff1a;物联网&#xff0c;自助终端&#xff0c;电脑&#xff0c;web&#xff0c;C#&#xff0c;jsp,android,java,php 等多种语言 二、xml 代码解析 package CyberWinPHP.Cyber_Plus;import java.io.…

区块链浪潮:Web3时代的数字经济新格局

随着科技的迅猛发展&#xff0c;全球经济正迎来一场前所未有的变革&#xff0c;区块链技术正在其中扮演着关键角色。Web3作为下一代互联网的核心&#xff0c;正在通过区块链技术重塑数字经济的格局&#xff0c;为全球市场带来新的机遇和挑战。这场以去中心化为特征的技术革命&a…

进阶岛 - MindSearch(CPU版)部署到github codespace

实践结论写在前面&#xff1a; github codespace很好用&#xff0c;丝滑、快速huggingface的space管理代码也很好用&#xff0c;自动编译、容器打包、发布一气呵成mindsearch很好用&#xff0c;效果超出预想。planner和searcher的交互丝滑、有效率。mindsearch内置搜索可解决很…

JAVA基础面试题总结(十四)——JVM(下)

类文件结构详解 什么是字节码&#xff1f; 在 Java 中&#xff0c;JVM 可以理解的代码就叫做字节码&#xff08;即扩展名为 .class 的文件&#xff09;&#xff0c;它不面向任何特定的处理器&#xff0c;只面向虚拟机。Java 语言通过字节码的方式&#xff0c;在一定程度上解决…

45.5【C语言】typedef

目录&#xff1a; *全称 *格式 一般指针 数组指针 函数指针 *细节 *全称 type define 类型&#xff08;重新&#xff09;定义&#xff08;或命名&#xff09;&#xff0c;可简化输入 *格式 1.非指针类型: typedef 类型 简化名称 typedef signed long long k; signed long …

WPF中的可视化树(VisualTree)和逻辑树(LogicalTree)

可视化树和逻辑树 我们先来理解一下什么是可视化树和逻辑树。 可视化树&#xff1a;包含最初指定的大多数元素&#xff08;在XAML或.cs中&#xff09;以及控件模板中的元素。 通俗点来讲&#xff0c;就是整个元素的构成树&#xff0c;从最上面的结点到最后一个结点&#xff…

SpringCache源码解析(一)

一、springCache如何实现自动装配 SpringBoot 确实是通过 spring.factories 文件实现自动配置的。Spring Cache 也是遵循这一机制来实现自动装配的。 具体来说,Spring Cache 的自动装配是通过 org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration 这个类来…

Maven的使用

Maven 是一个项目管理工具&#xff0c;它基于项目对象模型&#xff08;POM&#xff0c;Project Object Model&#xff09;的概念&#xff0c;通过一小段描述信息&#xff08;pom.xml&#xff09;来管理项目的构建、报告和文档。Maven 提供了一个标准化的方式来构建项目&#xf…

MyBatis-Plus 三、(进阶使用)

一、typeHandler 的使用 1、存储json格式字段 如果字段需要存储为json格式&#xff0c;可以使用JacksonTypeHandler处理器。使用方式非常简单&#xff0c;如下所示&#xff1a; 只需要加上两个注解即可&#xff1a; TableName(autoResultMap true) 表示自动…

第五节:Nodify 节点位置设置

引言 如果你尝试过前几节的代码&#xff0c;会发现节点都是出现在0,0 位置&#xff0c;及编辑器左上角。编辑器作为最外层的交互控件&#xff0c;内部封装了节点容器ItemContrainer&#xff0c;我们通过样式属性对Loaction做绑定。本节将介绍如何配置节点位置。 1、节点位置 …

DHCP DNS 欺骗武器化——实用指南

DHCP 枚举 在我们之前的文章中,我们分享了 DHCP DNS 欺骗背后的理论。实际上,需要几条信息才能有效地执行我们描述的攻击。对于攻击者来说幸运的是,发现DHCP 服务器并了解其配置的能力是 DHCP 协议的一部分,这使得侦察过程变得微不足道。 在以下章节中,我们将描述攻击者…

Git的使用教程及常用语法02

四.将文件添加到仓库 创建仓库 git init查看仓库的状态 git status 添加到暂存区 git add提交 git commitgit status 可以查看当前仓库的状态信息&#xff0c;例如包含哪些分支&#xff0c;有哪些文件以及这些文件当前处在怎样的一个状态。 由于当前没有存储任何的东西&…

基于Python的机器学习系列(7):多元逻辑回归

在本篇博文中&#xff0c;我们将探讨多元逻辑回归&#xff0c;它是一种扩展的逻辑回归方法&#xff0c;适用于分类数量超过两个的场景。与二元逻辑回归不同&#xff0c;多元逻辑回归使用Softmax函数将多个类别的概率输出映射到[0, 1]范围内&#xff0c;并确保所有类别的概率和为…

PMBOK® 第六版 控制范围

目录 读后感—PMBOK第六版 目录 结果固然重要&#xff0c;过程同样不可或缺。过程不仅是通往预期成果的途径&#xff0c;也是个人和团队能力提升与经验积累的关键阶段。过程中的每一步都是学习和成长的机会&#xff0c;每一次尝试都能激发创新&#xff0c;而公正透明的流程更增…

TCP BBR 数学模型完整版

今天顺带加入了 bbr 的所有状态和所有流程&#xff0c;获得以下的方程组&#xff1a; C Bltbw&#xff0c;R RtProp&#xff0c;T_r ProbeRTT 周期&#xff0c;g1 Startup gain&#xff0c;g2 ProbeBW gain。设 x estimated bandwidth&#xff0c;r round trip time&am…