几款AI工具代码安全漏洞分析能力对比

这篇具有很好参考价值的文章主要介绍了几款AI工具代码安全漏洞分析能力对比。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

     这段时间研究AI平台的能力。 今天我把库博检测工具发现的一个Java安全漏洞相关代码传到几款AI工具上进行分析,看看这几款工具反馈的结果。这些工具包括ChatGPT-3.5、Forefront Claude、AIChat(组合)和清华ChatGlm。

       首先我们看看库博检测出的这个漏洞是否存在。先在代码。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // TODO Auto-generated method stub

        /**

         * 文件下载

         * 有目录遍历攻击漏洞的代码

         */

            request.setCharacterEncoding("UTF-8");

            response.setContentType("text/html;charset=utf-8");

            response.setCharacterEncoding("utf-8");

            OutputStream out = null;

            //获取项目部署绝对路径下的upload文件夹路径,下载upload目录下面的文件

            String root = request.getServletContext().getRealPath("/upload");

            //获取文件名

            String filename = request.getParameter("filename");

            File file = new File(root + "/" + filename);

            //根据文件路径创建输入流

            FileInputStream fis = new FileInputStream(file);

            out=response.getOutputStream();

            //设置响应头,弹出下载框

           System.out.println(root + "/" + filename);

            //response.setContentType("application/x-msdownload");

           // response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));

            

            String agent = request.getHeader("USER-AGENT").toLowerCase();

            String name = new String(filename.getBytes(agent.indexOf("msie") != -1 ? "GBK" : CharEncoding.UTF_8), CharEncoding.ISO_8859_1);

            response.setContentType("application/octet-stream");

            response.setHeader("Content-Length""" + file.length());

            response.setHeader("Pragma""NO-cache");

            response.setHeader("Cache-Control""No-cache");

            response.setCharacterEncoding("UTF-8");

            response.setContentType("text/html");

            response.setDateHeader("Expires", -1);

            

            response.setHeader("Content-disposition""attachment;filename=" + name);

            //response.addHeader("Content-Length", "" + file.length());

            //byte[] b = new byte[fis.available()];

            byte[] b = new byte[1024];

            int len=0;

            while ((len=fis.read(b))!=-1)

                out.write(b,0,len);

            

            if(len==-1)

            {

                fis.close();

                request.getSession().setAttribute("message2","下载完成!");

                request.getRequestDispatcher("/filetraversal.jsp").forward(request, response);

            }

       }

库博检测是以安全漏洞维度展示的,所以点击某个漏洞类型,可以看到该安全漏洞对应的代码位置。当前这个版本没有以文件形式展示漏洞方式了(国内工具基本上都没有该功能,库博之前版本是有的)。

几款AI工具代码安全漏洞分析能力对比,AI运用,人工智能,AI引擎,Chatglm

首先我们测试一下边界AICHAT,我们使用推荐模型组合,输入代码后,给出分析结果如下。

几款AI工具代码安全漏洞分析能力对比,AI运用,人工智能,AI引擎,Chatglm

可以看到,AI引擎给找出来了多个缺陷,其中第一条就是我们最关注的路径遍历,能够给出来。第2条代码中不存在,但是3、5、6还的确是存在的问题。这样看,分析还是比较全面的。

使用国外AI工具Forefront Chat进行分析,该工具也是集成Chatgpt、Claude 1.2,该引擎是需要在互联网进行搜索,大概1分钟没有反馈出结果。

我们看Chatgpt官方网站上,使用Chatgpt-3.5引擎的分析结果。

几款AI工具代码安全漏洞分析能力对比,AI运用,人工智能,AI引擎,Chatglm

分析上面的结果,可以看到发现了3个安全问题,第1个事路径遍历,第2个问题,国产AI工具也给出了类似结果。而第3个问题感觉是一个误报,因为在代码中进行流资源释放,但是是在一个分支进行了释放,应该算是一个误报。

我们再看看在清华大学的ChatGlm平台上的分析结果。

几款AI工具代码安全漏洞分析能力对比,AI运用,人工智能,AI引擎,Chatglm

……………省略中间代码,见下面。

几款AI工具代码安全漏洞分析能力对比,AI运用,人工智能,AI引擎,Chatglm

为了方便,我贴出所有返回的代码。

protected  void  doPost(HttpServletRequest  request,  HttpServletResponse  response)  throws  ServletException,  IOException  {

     //  TODO  Auto-generated  method  stub

     /**

       *  文件下载

       *  修复了目录遍历攻击漏洞的代码

       */

     request.setCharacterEncoding("UTF-8");

     response.setContentType("text/html;charset=utf-8");

     response.setCharacterEncoding("utf-8");

     OutputStream  out  =  null;

     //  获取项目部署绝对路径下的upload文件夹路径,下载upload目录下面的文件

     String  root  =  request.getServletContext().getRealPath("/upload");

     //  获取文件名

     String  filename  =  request.getParameter("filename");

     //  检查文件名是否符合预期

     if  (filename  ==  null  ||  filename.trim().isEmpty())  {

         response.sendError(HttpServletResponse.SC_BAD_REQUEST,  "Invalid  file  name");

         return;

     }

     //  限制用户可以下载的文件类型

     String  allowedExtensions  =  "txt,jpg,png,gif";

     String  fileExtension  =  filename.substring(filename.lastIndexOf('.')  +  1).toLowerCase();

     if  (!allowedExtensions.contains(fileExtension))  {

         response.sendError(HttpServletResponse.SC_BAD_REQUEST,  "Invalid  file  extension");

         return;

     }

     File  file  =  new  File(root  +  "/"  +  filename);

     //  使用ServletContext.getResourceAsStream()代替FileInputStream

      try  (InputStream  is  =  request.getServletContext().getResourceAsStream("/upload/"  +  filename))  {

         if  (is  ==  null)  {

             response.sendError(HttpServletResponse.SC_NOT_FOUND,  "File  not  found");

             return;

         }

         response.setContentType("application/octet-stream");

         response.setHeader("Content-Length",  String.valueOf(is.available()));

         response.setHeader("Pragma",  "NO-cache");

         response.setHeader("Cache-Control",  "No-cache");

         response.setCharacterEncoding("UTF-8");

         response.setContentType("text/html");

         response.setDateHeader("Expires",  -1);

         response.setHeader("Content-disposition",  "attachment;filename="  +  filename);

         byte[]  buffer  =  new  byte[1024];

         int  bytesRead;

         while  ((bytesRead  =  is.read(buffer))  !=  -1)  {

             out.write(buffer,  0,  bytesRead);

         }

     }  catch  (IOException  e)  {

         //  处理异常,例如记录日志、返回错误信息等

         e.printStackTrace();

     }

     if  (out  !=  null)  {

          try  {

             out.flush();

             out.close();

         }  catch  (IOException  e)  {

             //  处理异常,例如记录日志、返回错误信息等

             e.printStackTrace();

         }

     }

}

突然感觉清华大学的这个AI引擎功能强大,不但给出了4个问题,最亮眼的给出的修复后的代码,这段代码我还没有时间去替换原来代码去编译看看是否存在问题,但是这个功能足于领先了。为了验证引擎,我把返回的代码又贴了回去,让引擎分析分析是否存在漏洞。其反馈结果如下:

几款AI工具代码安全漏洞分析能力对比,AI运用,人工智能,AI引擎,Chatglm

在其提供的修复代码的基础上又检测出的问题,其提供的修复代码中,增加了对于文件类型的限制。

几款AI工具代码安全漏洞分析能力对比,AI运用,人工智能,AI引擎,Chatglm

通过这个例子说明,国内AI引擎有自己创新之处,但是在一些细节上还是存在瑕疵,需在在引擎或训练数据上做的更精细。

(结束)文章来源地址https://www.toymoban.com/news/detail-765672.html

到了这里,关于几款AI工具代码安全漏洞分析能力对比的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Metasploit Framework-安全漏洞检测工具使用

    一款开源的安全漏洞检测工具,简称MSF。可以收集信息、探测系统漏洞、执行漏洞利用测试等,为渗透测试、攻击编码和漏洞研究提供了一个可靠平台。 集成数千个漏洞利用、辅助测试模块,并保持持续更新。 由著名黑客、安全专家H.D. Moore主导开发 SecTools.Org Top Network Secu

    2024年02月02日
    浏览(49)
  • Web安全 Acunetix漏洞扫描工具.

    Acunetix 是一个 自动化的 Web 应用程序安全测试工具,是通过检查 SQL 注入,跨站点脚本(XSS)和其他可利用漏洞等来审核您的 Web 应用程序 。一般来说,Acunetix 能够扫描任何通过网络浏览器访问并使用 HTTP/HTTPS 协议的网站或 web 应用程序。 Acunetix 提供了强大的的解决方案,然

    2023年04月14日
    浏览(49)
  • 基于AI的自动化安全漏洞扫描平台

    作者:禅与计算机程序设计艺术 随着互联网的快速发展,网络安全问题日益严重。为了保障网络安全,安全漏洞扫描成为了一项重要的工作。然而,传统的安全漏洞扫描方法往往需要人工进行大量的分析和判断,效率较低。近年来,人工智能(AI)技术在安全漏洞扫描中的应

    2024年02月14日
    浏览(62)
  • 安全工具--- rengine安装---资产侦查漏洞扫描

    工具介绍 reNgine是一款针对Web应用渗透测试的自动化网络侦察框架,广大研究人员可以在针对Web应用程序的渗透测试过程中使用reNgine来实现信息收集,reNgine提供了一个自定义的扫描引擎,可以用于对网站和终端节点进行扫描和信息收集。 reNgine的优点在于它把所有的东西都集

    2024年02月02日
    浏览(63)
  • 智能合约安全分析,Vyper 重入锁漏洞全路径分析

    7 月 30 日 21:10 至 7 月 31 日 06:00 链上发生大规模攻击事件,导致多个 Curve 池的资金损失。漏洞的根源都是由于特定版本的 Vyper 中出现的重入锁故障。 通过对链上交易数据初步分析,我们对其攻击的交易进行整理归纳,并对攻击流程进一步的分析,由于攻击涉及多个交易池。

    2024年02月09日
    浏览(46)
  • 【网络安全】CVE漏洞分析以及复现

    漏洞详情 Shiro 在路径控制的时候,未能对传入的 url 编码进行 decode 解码,导致攻击者可以绕过过滤器,访问被过滤的路径。 漏洞影响版本 Shiro 1.0.0-incubating 对应 Maven Repo 里面也有 【一一帮助安全学习,所有资源获取一一】 ①网络安全学习路线 ②20份渗透测试电子书 ③安全

    2024年02月06日
    浏览(48)
  • 【网络安全】本地提权漏洞分析

    CVE-2023-21752 是 2023 年开年微软第一个有 exploit 的漏洞,原本以为有利用代码会很好分析,但是结果花费了很长时间,难点主要了两个:漏洞点定位和漏洞利用代码分析,欢迎指正。 根据官方信息,该漏洞是 Windows Backup Service 中的权限提升漏洞,经过身份认证的攻击者可利用此

    2024年02月01日
    浏览(84)
  • 本地提权漏洞分析【网络安全】

    CVE-2023-21752 是 2023 年开年微软第一个有 exploit 的漏洞,原本以为有利用代码会很好分析,但是结果花费了很长时间,难点主要了两个:漏洞点定位和漏洞利用代码分析,欢迎指正。 根据官方信息,该漏洞是 Windows Backup Service 中的权限提升漏洞,经过身份认证的攻击者可利用此

    2024年02月04日
    浏览(52)
  • 网络安全——漏洞扫描工具(AWVS的使用)

    一、安全漏洞产生的原因    二、什么是0day漏洞 在安全漏洞生命周期内,从安全漏洞被发现到厂商发布补丁程序用于修复该漏洞之前。 三、什么是安全漏洞生命周期 一共分为7个阶段    四、安全漏洞管理 1、    2、安全漏洞等级 (1)、微软设置了4个等级:低危、中危、

    2024年02月08日
    浏览(59)
  • 工控系统的全球安全现状:全球漏洞实例分析

    一、摘要 ​ 运营技术(OT)、网络和设备,即工业环境中使用的所有组件,在设计时并未考虑到安全性。效率和易用性是最重要的设计特征,然而,由于工业的数字化,越来越多的设备和工业网络想公网开放。这有利于工业环境的管理和组织,但他也增加了共勉,为攻击者提供

    2024年02月05日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包