ARTICLE · 1087547
为什么AI找出了100个漏洞,最后可能一个都交不上去?
近些年来,AI安全工具变得越来越多。
特别是当一部分AI Agent开启代码分析,浏览器,HTTP请求,扫描器后,其呈现出的感觉更为明显。
以往需自己慢慢找的物件,现在被扔给AI。
走一遍。
几十个的结果。
再跑一回。
上百个的结果。
有时看着满屏:
❝疑似SQL注入。
❝疑似是越权。
❝疑似SSF。
❝疑似有敏感信息被泄露。
刚开始或许还挺兴奋的。
卧槽,这么多漏洞?
但是当你真正打算整理这些漏洞的时候,情况就出现了。
为什么AI明明找出100个漏洞却最终一个都没有交上?
实际原因极简单。
AI所找到的很多时候仅仅是:
值得你去观赏的东西。
而非是:
“已经能够提交出来的漏洞”
此两个概念差得十分远。
一,AI所发现的是疑点,并非是结论。
这是众多初次使用AI安全工具时最容易被忽略的事情。
比如AI对一段代码进行分析,随后将其告知你:
察觉到疑似SQL的注入情况:用户输入参数 user_id ↓进入查询函数 ↓拼接SQL语句 ↓疑似存在注入风险你看到此处是否特别容易感觉到:
有。
直接就提交。
但是真正开展渗透测试的时候,首要反应通常并非提交。
而是持续问:
真的能够注入?
输入是否是用户可掌控的?
是否存在参数过滤情况?
有无ORM的处理?
数据库是什么?
此查询是否存在涉及危险执行途径的情况?
能否稳定复现?
有没有真实影响?
在这些物品尚未被确认之前它最多仅能算作一个:疑点。
二,AI很容易把看起来像是漏洞的东西当作漏洞
这实际上和AI的工作模式存在关联。
AI十分擅长从众多信息当中去寻找契合某一种模式的事物。
比如看见:
sql = " SELECT * FROM usersW ERE id = " + user_id它轻易就会跟你说:
❝这里有SQL注入的风险。
此判断不可以说错。
但是渗透测试确实需要持续往前推进。
例如:
从哪里来的user_id ?
有没有运用其他的函数?
进入此处之前有无校验?
此函数是否仅仅只有内部的服务才能够被调用?
数据库的账号有哪些权限?
最终所带来的影响是如何的?
因此你会察觉到:
漏洞识别仅仅是首要的步骤。
真正困难的是后续验证。
三,最为棘手的问题是误报
若你使用过各类扫描器,你实际上应该十分熟悉这个物件。
扫描器的报告里面常常出现:
高危:像SQL注入中危:似似越权中危情况敏感信息被泄露低危是安全配置的问题结果开启一看:
有些乃误报。
有些乃重复之事。
部分根本无法运用。
还有部分虽然确实有问题,但是实际产生的影响十分有限。
AI时代实际上也是一样。
甚至由于AI可一次处理数量更多的目标,误报的数量也有可能一同增多。
以往你一天能够看到20个成果。
现在AI给你整出200个。
效率实在是太高了。
但你是否曾想过:
谁来验证那200个的结果?
四,100个成果,最为麻烦的是筛选
假设AI确实给你找到100个疑似的漏洞。
接下来通常不是:
100个漏洞↓写100份报告↓提交现实更或许是:
100个疑似问题 ↓去重 ↓排除误报 ↓人工验证 ↓确认影响 ↓判断是否重复 ↓判断是否符合漏洞规则 ↓整理复现过程 ↓提交走到最终。
或许仅剩几个。
乃至一个皆没有。
这并不意味AI没有用处。
正好相反。
AI帮助你完成了许多之前的搜索事宜。
只是最终真正具有价值的部分工作还需要人完成。
五,还有一个非常现实的事情:你能不能去证明?
漏洞报表不是:
我觉得这里存在问题。
亦不是:
AI说这里有漏洞。
也不是:
代码看上去好像存在风险。
真正漏洞报告得有证据。
比如你察觉到一个类似越权的问题。
你不可只说:
对ID进行修改之后可以去访问别的用户的相关数据。你需要阐释:
普通用户A ↓访问自己的资源 ↓修改资源标识 ↓服务端未正确校验资源归属 ↓获取用户B的数据此刻问题便变得十分明晰。
你证明不是:
“这里存在一个ID的参数”
但是:
“攻击者可以跨越原本应该具备的权限界限。”
此乃漏洞。
六,众多AI报告存在一个问题,只讲技术而不讲影响。
这是我认为非常容易被忽视的一个方面。
AI很喜爱描述:
❝参数能够控制。
用户输入就进入某个函数。
存在危险的调用。
❝有敏感的数据。
但漏洞报告实际关注的,是一个非常关键的事情:
所以?
此问题很实际。
例如:
某接口返回一个用户的名称。
是否属于敏感信息。
不一定
要是返回的话:
用户名手机号邮箱或许需要结合特定场景来进行判断。
要是返回的话:
身份证信息银行卡信息内部凭证访问Token用户隐私数据情况明显又不同。
因此:
技术现象对安全产生的影响。
漏洞价值在很多时候正好就在这个影响之上。
七,还存在一种情形:确实存在问题但不契合提交的规则
这个更为现实。
假设你确实找到了一件事情。
也可以复现。
影响也有。
是否就一定可以提交?
是不一定的。
由于不同的SRC,漏洞赏金的平台,企业的安全响应的中心,其规则可能存在差异。
某些问题或许属于:
已知问题 重复漏洞 信息级问题 不在奖励范围 第三方组件问题 测试环境问题 不具备实际安全影响 平台明确排除的类型
故而你最终会察觉到:
漏洞的存在以及漏洞可以被有效地提交,这是两个不一样的问题。
这也就是为什么很多真正去挖掘漏洞的人,不只是研究漏洞自身,还得去看目标规则。
八,重复漏洞是AI特别容易碰到的问题。
此场景确实十分典型。
设定一个系统存在50个接口的情况。
AI发现:
接口A :疑似越权。接口B :疑似越权。接口C :疑似越权。接口D :疑似越权。……你或许以为:
发财了,数十个越权”。
但是实际分析之后发觉:
它们全都运用同一种权限校验的逻辑。
根本上是:
一个根源,多个受到影响的接口。
在这种情形下,你可不能简单地去理解:
有50个完全不相同的漏洞存在。
这便是为什么在安全测试当中经常需要去做:
*基因分析。
AI可以跟你说:
❝“此处有问题”。
但是你得进一步去判断:
这些问题究竟是否属于同一类问题?
九,真正厉害不是让AI找出100个漏洞。
而是让AI寻得100个结果之后,你才知道:
有哪些值得继续去看。
这实际上就涉及到一个非常关键的能力情况:
❝漏洞挑选。
比如AI给你下面的结果:
疑似XSS疑似SQL注入疑似越权敏感信息泄露弱口令SSRF配置问题一个刚进入的人或许会:
“全都验证”。
接着开始疯狂奔跑。
但是一个真正开展安全测试工作的人,通常会先对系统架构,业务逻辑,权限模型,数据流等方面的信息进行判断:
哪些结果是值得优先去验证的。
因为时光总是有限。
你不能够无限制地去验证所有的东西。
十,这也就是为什么会用AI和会做安全是两回事。
当下众多人在学习AI安全工具时,极易陷入误区:
觉得Prompt写得还可以。
AI就可以帮助自己完成全部漏洞挖掘的过程。
但真实的问题乃:
你得明白让它去做些什么。
例如:
❝帮我找一回漏洞。
这是一项极为宽泛的需求。
AI或许会给你许多结果。
但是当你领会系统的时候,你可以再进一步去告知它:
❝对这个项目权限模型进行解析。
❝找出所有和资源归属相关的判断接口。
❝对不同角色去访问这类接口时候的权限差别进行对比。
❝找出有可能权限校验存在不一致的情况。
此刻AI的效率完全不同。
因为你所给予的已不是一句话:
“帮我寻找漏洞”。
并非是一套清晰的分析走向。
十一,未来或许会出现一个颇具意义的变化
过去做安全的测试:
人找漏洞↓工具辅助未来或许会越发相似:
AI大量寻找↓产生大量候选结果↓人进行筛选↓AI辅助验证↓人判断影响↓AI辅助整理↓人最终确认说。
AI或许会让:
“找到一个可能的问题”
此事情越发便宜。
但同时:
“判断这个问题到底有没有价值”
或许会越发重要。
十二,为什么AI找出100个漏洞却最终一个都没有交上?
当下回过头去看,实际上是很好理解的。
由于中间还有比较长的一段时间:
AI发现 ↓疑似问题 ↓人工验证 ↓确认漏洞 ↓判断影响 ↓排除误报 ↓排除重复 ↓确认规则 ↓整理证据 ↓漏洞报告 ↓有效提交AI能够参与到许多环节之中。
甚至未来参与者的比例或许会越发高涨。
可是:
AI所发现的100个漏洞这个数字自身并不是那么重要的。
真正关键的是:
100个结果当中,
你可不可以找到真正问题。
能否证明其。
能否解释它为何发生。
能不能把它造成的影响说清楚。
能否判定它是否存在重复的情况。
能不能依照目标规则梳理成一份具有有效性的报告?
最后说一句
我当下越发觉得。
未来安全测试或许会呈现出一种颇具意义的状况:
漏洞的发现会越发容易,而漏洞判断则越发重要。
以往一个人每天找到若干个问题已经相当不错。
未来AI或许一会儿就会给出几十个乃至上百个候选的结果。
不过结果越多人的工作不一定就越少。
因为你得应对另外一种问题:
在众多结果当中,哪一个是真实的?
接着往后:
在真实的问题当中,哪一个值得持续去探究?
接着往后:
这个问题究竟会带来什么实际的影响?
所以要是你现在去钻研渗透测试的话,我反倒觉得不要将自身的目标设定成:
我需要让AI帮助我找出更多的漏洞。
更应该去学习的是:
当看到某一结果时,我为何认为其为漏洞?
我准备如何证明?
它究竟对什么产生了作用?
若AI判定错误,我能否察觉?
这些问题或许是AI时代里安全测试工作者真正需要去弥补的能力所在。
但是:
要让AI找到100个疑似漏洞并不困难。
关键之处在于你能否从这100个成果当中,找到真正值得花费时间的事物。
🎁 互动与福利
分享本文到朋友圈,点赞+在看+关注,一键三联,可以凭截图找老师领取
上千学习资料+工具哦
分享后扫码加我!