zoukankan      html  css  js  c++  java
  • 代码审计工具消除误报的方法汇总

    转自: https://zhuanlan.zhihu.com/p/360459701

     Fority详细介绍:https://www.cnblogs.com/linwenbin/p/11046188.html 

    Fortify的安装和使用: https://www.cnblogs.com/dearflt/p/13853508.html

    6款自动化应用安全测试工具 : http://www.itcast.cn/news/20200731/11081662871.shtml

    Fortify工具使用下面两种方式消除误报:

    (1)第一种方法使用注解消除误报

    例如代码:
    Public class User
     {
    public finalstatic String PASSWORD_LABEL = "123456";
    privateString userId;privateString userKey;publicvoid printUserData() 
    {
    System.out.println("Fortify[userId=" + userId + ", " + PASSWORD_LABEL + "=" +userKey + "]");
    }
    }

    扫描时会在publicfinal static String PASSWORD_LABEL="123456";报告PasswordManagementHardcoded:Password漏洞。

    使用注解后"123456"不会报出硬编码漏洞。

    @FortifyNotPasswordpublicfinal static String PASSWORD_LABEL = "123456";@FortifyPasswordprivate String userKey;

    (2)通过添加定制规则消除误报

    A. 例如编写了一个函数做净化处理,通过定制规则,让工具不再报出;

    B. 覆盖规则,不再报出,对于password变量,覆盖其规则,则下次password的硬编码不会报出;

    C. 裁剪规则,规则文件后缀为bin,转成xml(有工具可以实现),再裁剪编辑后,转换为bin文件

    尚未找到转换工具,需要自己编写)

    Sonarqube通过注解消除误报,两种方法:

    (1) 在被误判的代码行后面添加注释: //NOSONAR

    (2) 在类或方法上面加上@SuppressWarnings注解

    例如: @SuppressWarning(“squid:S1456”) publicclass Example { } ,squid:S456则是扫描的缺陷规则编号。

    Checkmarx和CoBot消除误报方法:

    通过人工复核,消除误报。也就是通过人工标记缺陷误报,不用报出。所有工具都支持该方法消除误报。

    Wukong工具消除误报方法:

    通过添加定制规则,把某一类缺陷规则,添加对净化函数的判断处理来,来消除误报。导入定制的规则后,既可以实现增加规则,报出缺陷,或减少误报。

  • 相关阅读:
    MySQL锁
    mysql服务性能优化—my.cnf配置说明详解
    springmvc请求参数获取的几种方法
    Linux mysql 添加远程连接
    Linux 操作 mysql
    Linux 安装 mysql 转 http://www.cnblogs.com/fnlingnzb-learner/p/5830622.html
    linux 下 安装nginx
    dubbo 实战总结
    分布式事务的几种方式
    精巧好用的DelayQueue 转
  • 原文地址:https://www.cnblogs.com/zndxall/p/14919571.html
Copyright © 2011-2022 走看看