LLMs in Web Development: Evaluating LLM-Generated PHP Code Unveiling Vulnerabilities and Limitations
作者: Rebeka Tóth, Tamas Bisztray, László Erdodi
分类: cs.SE, cs.AI
发布日期: 2024-04-21 (更新: 2024-05-21)
💡 一句话要点
评估大型语言模型生成的PHP代码安全性以揭示其漏洞与局限性
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 大型语言模型 PHP代码 安全性评估 Web应用 漏洞分析 生成式AI Docker容器 混合方法
📋 核心要点
- 现有的生成代码方法在安全性方面存在显著不足,尤其是在处理用户输入时容易引发漏洞。
- 本研究通过混合方法评估生成的PHP代码,结合主动扫描和静态分析,系统性地识别安全漏洞。
- 实验结果显示,生成代码中存在大量安全隐患,强调了在软件开发中使用生成AI技术时进行全面测试的必要性。
📝 摘要(中文)
本研究评估了大型语言模型生成的Web应用代码的安全性,分析了2500个GPT-4生成的PHP网站。这些网站在Docker容器中部署,并通过Burp Suite的主动扫描、静态分析和人工审查的混合方法测试漏洞。研究重点识别不安全的文件上传、SQL注入、存储型XSS和反射型XSS等问题。分析结果显示,2440个参数存在漏洞,11.56%的站点可被直接攻陷,26%的站点至少存在一个可通过Web交互利用的漏洞。文件上传功能的不安全率高达78%,突显了软件安全的重大风险。为支持后续研究,研究团队公开了源代码和详细的漏洞记录。
🔬 方法详解
问题定义:本研究旨在解决大型语言模型生成的Web应用代码在安全性方面的不足,尤其是识别和评估潜在的安全漏洞,如SQL注入和XSS攻击等。现有方法往往忽视了生成代码的安全性,导致实际应用中存在重大风险。
核心思路:研究采用混合方法,结合Burp Suite的主动扫描、静态分析和人工审查,以全面评估GPT-4生成的PHP代码的安全性。通过这种方法,可以系统性地识别和记录代码中的安全漏洞。
技术框架:整体架构包括三个主要阶段:首先是生成PHP代码的过程,其次是将生成的代码部署在Docker容器中,最后是通过混合方法进行安全性测试和漏洞分析。每个阶段都确保了对生成代码的全面评估。
关键创新:本研究的创新点在于系统性地评估生成代码的安全性,并通过结合多种分析方法,揭示了生成代码中潜在的安全风险。这种方法与传统的单一分析方法相比,提供了更全面的安全评估。
关键设计:在实验中,设置了多个关键参数,包括扫描深度、漏洞类型的选择以及Docker环境的配置等。此外,采用了Burp Suite的多种扫描策略,以确保对不同类型漏洞的全面覆盖。
🖼️ 关键图片
📊 实验亮点
实验结果显示,在2500个测试网站中,2440个参数存在安全漏洞,11.56%的站点可被直接攻陷,26%的站点至少存在一个可通过Web交互利用的漏洞。特别是文件上传功能的不安全率高达78%,突显了生成代码在安全性方面的重大隐患。
🎯 应用场景
该研究的潜在应用领域包括Web开发、软件安全评估和生成式AI技术的应用。通过识别和修复生成代码中的安全漏洞,开发者可以提高Web应用的安全性,降低潜在的攻击风险。此外,研究结果为后续的安全性研究提供了重要的基础数据和参考。
📄 摘要(原文)
This study evaluates the security of web application code generated by Large Language Models, analyzing 2,500 GPT-4 generated PHP websites. These were deployed in Docker containers and tested for vulnerabilities using a hybrid approach of Burp Suite active scanning, static analysis, and manual review. Our investigation focuses on identifying Insecure File Upload, SQL Injection, Stored XSS, and Reflected XSS in GPT-4 generated PHP code. This analysis highlights potential security risks and the implications of deploying such code in real-world scenarios. Overall, our analysis found 2,440 vulnerable parameters. According to Burp's Scan, 11.56% of the sites can be straight out compromised. Adding static scan results, 26% had at least one vulnerability that can be exploited through web interaction. Certain coding scenarios, like file upload functionality, are insecure 78% of the time, underscoring significant risks to software safety and security. To support further research, we have made the source codes and a detailed vulnerability record for each sample publicly available. This study emphasizes the crucial need for thorough testing and evaluation if generative AI technologies are used in software development.