• 代码审计工具消除误报的方法汇总


    转自: 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工具消除误报方法:

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

  • 相关阅读:
    洛谷 P1005 矩阵取数游戏 (区间dp+高精度)
    洛谷 P1026 统计单词个数 (分组+子串预处理)(分组型dp再次总结)
    洛谷 P1052 过河 (离散化+dp)
    洛谷 P1541 乌龟棋 (四维费用背包)
    洛谷 P1736 创意吃鱼法
    矩阵旋转模板
    洛谷 P1855 榨取kkksc03 (二维费用背包)
    洛谷 P1417 烹调方案 (01背包拓展)
    关于结构体的PPT
    子进程自父进程继承什么或未继承什么
  • 原文地址:https://www.cnblogs.com/zndxall/p/14919571.html
Copyright © 2020-2023  润新知