介绍
大模型基础设施的安全攻防体系主要包括恶意输入防御和基础设施安全两个方面。恶意输入防御通过检测和过滤异常数据,防止系统被外部攻击者利用。基础设施安全则涵盖框架安全、三方库安全、插件安全、平台安全、模型安全和系统安全等多个层面,确保从底层框架到整体系统的全方位防护。
漏洞和案例分享
框架安全
大模型基础设施的安全攻防主要涉及分布式计算框架Ray的使用。Ray是一个基于Python的分布式计算框架,广泛应用于AI机器学习领域。在安全方面,Ray的dashboard默认绑定在127.0.0.1,但在实际业务代码中通常会绑定到实际IP地址。此外,任务执行缺少校验机制,如果能够访问到节点,攻击者可以直接执行代码。因此,确保Ray社区和安全研究员对安全的看法一致,并采取相应的防护措施,是保障大模型基础设施安全的关键。
大模型基础设施的安全攻防中,CVE-2023-6019是一个值得关注的漏洞。该漏洞涉及Ray框架中的一个安全问题,即在执行命令时直接使用字符串拼接,这可能导致命令注入攻击。具体来说,攻击者可以通过构造恶意输入来控制命令的执行,从而获取系统权限或执行其他恶意操作。在设计和实现大模型基础设施时,必须重视代码的安全性,避免直接使用字符串拼接执行命令,而是采用更安全的方法来构建和执行命令,以防止此类漏洞被利用。
PyTorch是一个开源的Python机器学习库,广泛用于构建和训练深度学习模型。其分布式RPC框架允许跨多个设备或服务器进行远程过程调用,从而实现高效的分布式计算。然而,CVE-2024-5480和CVE-2024-48063等安全漏洞的存在表明,在使用PyTorch进行分布式计算时,必须注意潜在的安全风险,确保代码的安全性和系统的稳定性。
llama.cpp是一个主要由C++编写的框架,用于对各种大模型进行推理。它支持CPU推理,具有极高的效率优势。然而,历史上该框架的安全漏洞多位于模型文件解析和rpc_server部分,在使用时需要特别注意这些方面的安全防护,以确保大模型基础设施的安全性。
CVE-2024-23605是由Francesco Benvenuto发现的一个安全漏洞,该漏洞存在于gguf_init_from_file函数中。具体来说,header.n_kv与sizeof(struct gguf_kv)的乘积可能导致整数溢出,从而引发越界写操作。这种类型的漏洞可能被攻击者利用来执行任意代码或导致系统崩溃,在大模型基础设施的安全防护中需要特别关注此类潜在风险,并采取相应的措施进行修复和加固。
CVE-2024-32878是一个与未初始化变量相关的安全漏洞。该漏洞出现在代码中处理字符串长度检查的部分,当字符串长度为SIZE_MAX时,程序会提前退出以防止整数溢出。然而,在某些情况下,这可能导致未正确初始化的变量被释放(free),从而引发潜在的安全风险。在大模型基础设施中使用此类代码时,必须确保所有变量都已正确初始化,并且在释放前进行适当的检查,以避免类似的安全问题。
CVE-2024-42479是由360的7resp4ss发现的一个安全漏洞,该漏洞存在于llama.cpp框架中。具体来说,问题出现在ggml_backend_cpu_buffer_set_tensor函数中,其中使用了memcpy函数来复制数据,但没有正确处理缓冲区边界,可能导致越界写操作。这种类型的漏洞可能被攻击者利用来执行任意代码或导致系统崩溃,在大模型基础设施的安全防护中需要特别关注此类潜在风险,并采取相应的措施进行修复和加固。
模型文件安全
模型文件安全是大模型基础设施中一个重要的方面。攻击者可能会通过替换或投放畸形的模型文件来嵌入恶意代码,这些文件在加载时可能导致系统崩溃或执行恶意代码,为确保模型文件的安全性至关重要,需要采取措施防止未经授权的修改和恶意注入,以保护系统的稳定性和安全性。
在模型文件安全方面,pickle反序列化(pickle.load())是一个常见的风险点。许多框架都存在这个问题,通常只会在文档中申明模型文件可能存在恶意代码。例如,Ray广泛使用cloudpickle进行Python对象的序列化,而TensorFlow模型被视为代码,需要小心处理不可信的代码。transformers库要求用户启用TRUST_REMOTE_CODE=True来允许pickle.load()的调用,并建议使用Safetensors等更安全的模型文件格式,这些格式不包含执行代码,从而避免加载模型时的反序列化操作带来的风险。
相关实践
大模型基础设施安全实践包括多个方面:平台特色功能融合专家经验,打造丰富、准确的大模型供应链漏洞库;智能化漏洞可达性分析基于大模型智能化收集分析漏洞信息,结合蓝军攻防积累,提供更精准的供应链漏洞可达性分析能力;大模型文件深度检测可识别命令注入、模型文件格式攻击等以大模型文件为媒介的供应链攻击。这些措施共同构成了大模型基础设施的安全评估和研究体系,涵盖三方库安全、框架安全、应用安全和系统安全等多个层面。