Skip to main content
QUICK REVIEW

[论文解读] DeepSQLi: Deep Semantic Learning for Testing SQL Injection

Muyang Liu, Ke Li|arXiv (Cornell University)|May 24, 2020
Web Application Security Vulnerabilities参考文献 59被引用 8
一句话总结

DeepSQLi 提出了一种基于深度学习的测试用例生成工具,该工具采用基于 Transformer 的神经语言模型,学习 SQL 注入(SQLi)攻击中的语义模式,从而能够从用户输入生成语义相关、复杂的测试用例。与 SQLmap 相比,它能以更少的测试用例和更快的执行速度检测出更多漏洞。

ABSTRACT

Security is unarguably the most serious concern for Web applications, to which SQL injection (SQLi) attack is one of the most devastating attacks. Automatically testing SQLi vulnerabilities is of ultimate importance, yet is unfortunately far from trivial to implement. This is because the existence of a huge, or potentially infinite, number of variants and semantic possibilities of SQL leading to SQLi attacks on various Web applications. In this paper, we propose a deep natural language processing based tool, dubbed DeepSQLi, to generate test cases for detecting SQLi vulnerabilities. Through adopting deep learning based neural language model and sequence of words prediction, DeepSQLi is equipped with the ability to learn the semantic knowledge embedded in SQLi attacks, allowing it to translate user inputs (or a test case) into a new test case, which is semantically related and potentially more sophisticated. Experiments are conducted to compare DeepSQLi with SQLmap, a state-of-the-art SQLi testing automation tool, on six real-world Web applications that are of different scales, characteristics and domains. Empirical results demonstrate the effectiveness and the remarkable superiority of DeepSQLi over SQLmap, such that more SQLi vulnerabilities can be identified by using a less number of test cases, whilst running much faster.

研究动机与目标

  • 解决由于 SQL 注入攻击变体数量庞大且持续演变,导致难以生成全面、语义复杂的测试用例的挑战。
  • 克服基于规则和基于语法的测试用例生成工具的局限性,这些工具依赖手动构建的模式,无法泛化到新型攻击形式。
  • 利用深度语义学习,自动发现并生成新颖、有效的 SQL 注入测试用例,通过建模恶意 SQL 的类自然语言语义。
  • 通过重用先前失败但语义丰富的输入,实现测试用例的增量式优化,从而提高 SQL 注入漏洞检测的效率和效果。
  • 在真实网络应用上,证明其优于当前最先进的工具(如 SQLmap)在检测覆盖范围和性能方面的优势。

提出的方法

  • 采用基于 Transformer 的神经语言模型的序列到序列(Seq2Seq)框架,从训练数据中学习 SQL 注入攻击的语义表示。
  • 通过学习 SQL 语句中的句法和语义模式,使模型能够将正常用户输入翻译为语义等价的恶意 SQL 注入测试用例。
  • 不将变异操作符直接用于测试用例生成,而是用于丰富训练数据,使模型能够泛化到已知攻击模式之外。
  • 允许中间的、未成功的测试用例被重新用作输入,以生成更复杂的变体,从而实现攻击向量的增量式优化。
  • 将模型集成到反馈循环中,通过新生成的测试用例不断重新训练和优化模型,支持持续改进。
  • 利用迁移学习和微调技术,使模型能够适应不同的网络应用环境和输入验证机制。

实验结果

研究问题

  • RQ1深度神经语言模型能否有效学习并泛化真实世界 SQL 注入攻击的语义模式,以生成新颖且有效的测试用例?
  • RQ2语义感知的测试用例生成器在检测 SQL 注入漏洞方面,与基于规则或基于语法的工具(如 SQLmap)相比,其性能提升程度如何?
  • RQ3失败测试用例的增量重用在多大程度上提升了 SQL 注入检测的效率和覆盖范围?
  • RQ4该模型能否泛化到具有高级输入验证机制的网络应用中的 SQL 注入漏洞检测?
  • RQ5使用深度语义学习是否能减少所需测试用例的数量,同时增加检测到的漏洞数量?

主要发现

  • 在六个真实网络应用中,DeepSQLi 检测到的 SQL 注入漏洞数量多于 SQLmap,证明其具有更优的检测覆盖范围。
  • 该工具以显著更少的测试用例实现了更高的检测率,表明其在测试用例生成方面具有更高的效率。
  • DeepSQLi 的运行速度优于 SQLmap,这归因于其能够利用中间结果对测试用例进行增量式优化,而非从头生成。
  • 该模型成功生成了已知攻击的语义复杂变体,包括编码和混淆形式,可绕过基本过滤机制。
  • 使用神经语言模型使模型能够泛化到训练数据中未出现的新型攻击模式,而基于模式的工具则不具备此能力。
  • 实验结果证实,即使在具有高级输入验证机制的网络应用中,DeepSQLi 依然有效,表明其对常见缓解技术具有鲁棒性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。