人工智能与软件漏洞
青小蛙在小众软件上发表了一篇文章,讲了openai利用人工智能大模型给Linux内核找漏洞的事情。
他讲了本地提权漏洞(LPE)。
简单来说,攻击者通常需要先获得在目标系统执行代码的能力,再利用漏洞从普通用户权限提升到 root 权限。
讲了这样研究的概括。
11 月 4 日,OpenAI 公布了一项安全研究:他们使用尚未公开发布的 AI 网络安全模型,在约 10 天内,发现了 948 个不同的 Linux 内核本地提权漏洞,还为这些漏洞生成了候选修复补丁。
...这次只扫描了 Linux 内核 7% 的代码...
...根据 OpenAI 公布的数据,AI 扫描了约 280 万行 Linux 内核代码。
最初 12 小时,就发现了 2308 个候选安全问题。随后,AI 自动尝试复现漏洞、编写利用程序,验证能否获得 root 权限。
最终结果:
- 2308 个候选问题
- 1724 个成功复现的漏洞
- 1169 个成功实现的提权利用
- 948 个去重后的独立提权漏洞
OpenAI 表示,948 个独立漏洞都有对应的有效提权利用,并生成了候选补丁。
OpenAI 还抽样分析了 166 个漏洞利用,认为 AI 至少使用了 10 种此前未见公开记录的 Linux 漏洞利用技术。
OpenAI 将报告提交给了 Linux 社区,在约 10 天的研究期间,OpenAI 观察到:
- 61 个本地提权问题已被 Linux 上游修复;
- 43 个已有待合并的补丁;
- 299 个正在公开报告或讨论中。
人工智能大模型配合智能体,确实也适合做这种重复的工作。尤其适合网络安全和软件测试。
目前,网络或软件安全方面已经积累了大量的公开漏洞信息库。非常适合人工智能学习使用。对人类来说,这些库中的这么多的漏洞,根本看不过来。而对于智能体来说,这真是太适合不过的事情了。
而软件测试方面,据我观察,还没有像漏洞库这么大规模的数据库,来供软件测试智能体和人类来学习。如果有人能推动建立一个大规模的软件测试库,应该大有裨益。
但软件是需求和正确性指路的。测试驱动的开发由来已久。如果要有个测试数据库,应该是测试用例数据库吧。