Skip to main content
QUICK REVIEW

[논문 리뷰] DeepSQLi: Deep Semantic Learning for Testing SQL Injection

Muyang Liu, Ke Li|arXiv (Cornell University)|2020. 05. 24.
Web Application Security Vulnerabilities참고 문헌 59인용 수 8
한 줄 요약

DeepSQLi는 사용자 입력으로부터 의미적으로 관련된 고도로 발전된 테스트 케이스를 생성할 수 있도록, SQL 인젝션(SQLi) 공격의 의미적 패턴을 학습하는 Transformer 기반 신경 언어 모델을 사용하는 딥러닝 기반의 테스트 케이스 생성 도구를 제안한다. 이는 더 적은 수의 테스트 케이스로 더 많은 취약점을 탐지하고, 더 빠른 실행 속도를 보이며 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 인젝션 공격의 광범위하고 빠르게 변화하는 변종으로 인해 종합적이고 의미적으로 정교한 SQLi 테스트 케이스를 생성하는 도전 과제를 해결하기 위해.
  • 수동으로 작성된 패턴에 의존하는 규칙 기반 또는 문법 기반 테스트 케이스 생성 도구의 한계를 극복하여 새로운 공격 양식으로 일반화할 수 없음을 해결하기 위해.
  • 악성 SQL의 자연어 유사 의미 구조를 모델링하여 의미적 학습을 통해 새로운 효과적인 SQLi 테스트 케이스를 자동으로 발견하고 생성하기 위해.
  • 이전에 실패했지만 의미적으로 풍부한 입력을 재사용하여 점진적인 테스트 케이스 개선을 가능하게 함으로써 SQLi 취약점 탐지의 효율성과 효과성을 향상시키기 위해.
  • 실제 웹 애플리케이션에서 최신 기술인 SQLmap와 같은 최고 수준의 도구보다도 탐지 커버리지와 성능 면에서 뛰어나다는 것을 입증하기 위해.

제안 방법

  • 학습 데이터에서 SQL 인젝션 공격의 의미적 표현을 학습하기 위해 시퀀스 투 시퀀스(Seq2Seq) 프레임워크와 Transformer 기반 신경 언어 모델을 활용한다.
  • SQL 문의 문법적 및 의미적 패턴을 학습하여 일반 사용자 입력을 의미적으로 동일한 악성 SQLi 테스트 케이스로 번역할 수 있도록 모델을 훈련시킨다.
  • 테스트 케이스 생성을 위한 직접적인 목적보다는, 훈련 데이터를 풍부하게 하여 모델이 알려진 공격 패턴을 초월해 일반화할 수 있도록 변형 연산자(mutant operators)를 활용한다.
  • 중간 단계에서 실패한 테스트 케이스를 재사용하여 더 정교한 변종을 생성할 수 있도록 하여 공격 벡터의 점진적 개선을 가능하게 한다.
  • 새로 생성된 테스트 케이스를 다시 사용하여 모델을 재학습하고 개선하는 피드백 루프를 통합함으로써 지속적인 개선을 지원한다.
  • 다양한 웹 애플리케이션 환경과 입력 검증 메커니즘에 적응하기 위해 전이 학습(transfer learning)과 미세 조정(fine-tuning)을 활용한다.

실험 결과

연구 질문

  • RQ1딥 뉴럴 언어 모델은 실제 웹 환경에서의 SQL 인젝션 공격 패턴을 효과적으로 학습하고 일반화하여 새로운 효과적인 테스트 케이스를 생성할 수 있는가?
  • RQ2의미 인식 테스트 케이스 생성기의 성능은 SQLmap와 같은 규칙 기반 또는 문법 기반 도구보다 얼마나 뛰어나게 SQL 인젝션 취약점을 탐지할 수 있는가?
  • RQ3실패한 테스트 케이스를 점진적으로 재사용하면 SQL 인젝션 탐지의 효율성과 커버리지가 어떻게 향상되는가?
  • RQ4모델은 고도로 발전된 입력 검증 메커니즘을 갖춘 웹 애플리케이션의 SQL 인젝션 취약점을 일반화하여 탐지할 수 있는가?
  • RQ5딥 세맨틱 러닝을 사용하면 요구되는 테스트 케이스 수를 줄이면서 동시에 탐지하는 취약점의 수를 늘릴 수 있는가?

주요 결과

  • DeepSQLi는 여섯 개의 실제 웹 애플리케이션에서 SQLmap보다 더 많은 SQL 인젝션 취약점을 탐지하여 더 뛰어난 탐지 커버리지 성능을 입증했다.
  • 더 적은 수의 테스트 케이스로도 높은 탐지율을 달성하여 테스트 케이스 생성의 효율성이 향상됨을 나타냈다.
  • DeepSQLi의 실행 속도가 SQLmap보다 빠르며, 이는 새로운 공격 벡터를 완전히 새로 생성하는 대신 중간 결과를 점진적으로 개선함으로써 가능해졌다.
  • 기존 공격의 의미적으로 정교한 변종, 예를 들어 인코딩되거나 가로막혀 있는 형태의 공격도 성공적으로 생성하였다.
  • 신경 언어 모델의 사용 덕분에 훈련 데이터에 존재하지 않은 새로운 공격 패턴으로도 일반화가 가능했으며, 이는 패턴 기반 도구와는 대조적으로 나타났다.
  • 실험 결과, DeepSQLi가 고도로 발전된 입력 검증 메커니즘을 갖춘 웹 애플리케이션에서도 효과적으로 작동함을 확인하여 일반적인 방어 기법에 대한 강건성을 보였다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.