震惊!Google的AI驱动的OSS-Fuzz工具在开源项目中发现大量漏洞!

谷歌宣布,他们使用AI增强的模糊测试工具OSS-Fuzz,在多个开源代码库中发现了26个漏洞,其中包括OpenSSL加密库中的一个中等严重程度的缺陷。

技术要点:

  • OSS-Fuzz:这是一个由Google开发的免费模糊测试平台,专门为开源社区服务。模糊测试是一种通过提供无效、 неожиданный 或随机数据作为输入,来测试软件的健壮性的方法,目的是发现潜在的漏洞和错误。

  • AI-Powered Fuzzing:谷歌在2023年8月开始使用大型语言模型(LLM)来改进OSS-Fuzz的模糊测试覆盖率。LLM通过生成更多的模糊测试目标(类似于单元测试,用于测试相关功能以查找漏洞)来工作,从而实现更深层次的漏洞检测。

  • CVE-2024-9143:这是OpenSSL中的一个漏洞编号,CVSS评分为4.3。该漏洞是一个越界内存写入错误,可能导致应用程序崩溃或远程代码执行。OpenSSL 3.3.3、3.2.4、3.1.8、3.0.16、1.1.1zb和1.0.2zl版本中已修复此问题。

实际应用例子:

假设你正在开发一个处理图像的开源软件。你可以使用OSS-Fuzz来测试你的代码,看它是否能正确处理各种格式错误的图像文件。如果OSS-Fuzz发现了一个导致程序崩溃的图像文件,那么你就找到了一个需要修复的漏洞。

Demo 代码 (Python 示例):

python 复制代码
import atheris
import sys

def TestOneInput(data):
  if len(data) < 5:
    return
  if data[0] == ord('f'):
    if data[1] == ord('u'):
      if data[2] == ord('z'):
        if data[3] == ord('z'):
          if data[4] == ord('!'):
            raise RuntimeError("Boom!")

def main():
  atheris.Setup(sys.argv, TestOneInput)
  atheris.Fuzz()

if __name__ == "__main__":
  main()

这段代码定义了一个简单的模糊测试目标,当输入数据的前五个字节是"fuzz!"时,程序会崩溃。你可以使用Atheris(一个用于Python的模糊测试工具)来运行这个测试。

AI 的作用:

AI能够模仿开发人员的模糊测试工作流程,从而实现更高的自动化。通过AI生成和增强的模糊测试目标,可以发现那些人工编写的测试目标难以发现的漏洞. 谷歌表示,使用AI生成模糊测试目标已经提高了272个C/C++项目的代码覆盖率,并增加了超过37万行的新代码。

传统方法的局限性:

谷歌指出,仅仅依靠代码覆盖率并不能保证一个函数没有漏洞。代码覆盖率作为一个指标,无法测量所有可能的代码路径和状态。不同的标志和配置可能会触发不同的行为,从而发现不同的错误.

其他安全措施:

谷歌一直在努力将其自身的代码库过渡到内存安全语言(如Rust),同时改进现有的C++项目,以解决空间内存安全漏洞。这包括迁移到安全缓冲区和启用强化的libc++,后者为标准C++数据结构添加了边界检查,以消除一类重要的空间安全错误。虽然C++不会完全变为内存安全,但这些改进降低了风险,从而使软件更加可靠和安全。

相关推荐
paopaokaka_luck28 分钟前
基于SpringBoot+Uniapp的健身饮食小程序(协同过滤算法、地图组件)
前端·javascript·vue.js·spring boot·后端·小程序·uni-app
Villiam_AY32 分钟前
Redis 缓存机制详解:原理、问题与最佳实践
开发语言·redis·后端
魔尔助理顾问4 小时前
系统整理Python的循环语句和常用方法
开发语言·后端·python
程序视点4 小时前
Java BigDecimal详解:小数精确计算、使用方法与常见问题解决方案
java·后端
你的人类朋友4 小时前
❤️‍🔥微服务的拆分策略
后端·微服务·架构
AI小智6 小时前
后端变全栈,终于可以给大家推出我的LangChain学习小站了!
后端
lkf197116 小时前
商品中心—1.B端建品和C端缓存
开发语言·后端·缓存
我的ID配享太庙呀7 小时前
Django 科普介绍:从入门到了解其核心魅力
数据库·后端·python·mysql·django·sqlite
C++ 老炮儿的技术栈7 小时前
在 Scintilla 中为 Squirrel 语言设置语法解析器的方法
linux·运维·c++·git·ubuntu·github·visual studio
gs801407 小时前
Keepalived + HAProxy 实现高可用架构详解
架构