[Paper] FuzzySQL: LLM 기반 퍼징을 이용한 DBMS 특수 기능의 숨겨진 취약점 탐지
Source: arXiv - 2602.19490v1
번역할 텍스트를 제공해 주시겠어요? 현재는 소스 링크만 포함되어 있어 번역할 내용이 없습니다.
Overview
FuzzySQL은 대형 언어 모델(LLM)을 활용하여 SQL 문을 생성하고 변형시켜 현대 데이터베이스 관리 시스템(DBMS)의 “특수” 기능에 숨겨진 버그를 드러내는 새로운 퍼즈‑테스팅 프레임워크입니다. 일반적인 쿼리 구문을 넘어 GTID, 저장 프로시저, 프로세스‑제어 문과 같이 거의 사용되지 않는 명령을 대상으로 함으로써, 저자들은 전통적인 퍼저로는 보이지 않는 많은 중요한 취약점이 여전히 존재함을 보여줍니다.
주요 기여
- LLM‑기반 SQL 생성 – 문법 기반 시드 생성기와 SQL 의미론을 추론하고 현실적이며 기능이 풍부한 문장을 생성할 수 있는 대형 언어 모델을 결합합니다.
- 논리 전환 점진적 변이 – 조건을 뒤집고 제어 흐름을 재구성하며 DBMS를 대체 실행 경로로 유도하는 새로운 변이 전략입니다.
- 하이브리드 오류 복구 파이프라인 – 규칙 기반 패치와 LLM 가이드 의미 복구를 혼합하여 구문 및 컨텍스트 민감 오류를 자동으로 수정하고 퍼징 루프를 지속시킵니다.
- 다중 DBMS 평가 – MySQL, MariaDB, SQLite, PostgreSQL, ClickHouse에 적용하여 37개의 이전에 알려지지 않은 취약점을 발견했으며, 그 중 7개는 충분히 테스트되지 않은 특수 기능과 관련됩니다.
- 실제 영향 – 29개의 버그가 확인되었고, 9개는 CVE ID가 할당되었으며, 14개의 패치가 이미 공급업체에 의해 배포되었습니다.
방법론
- Grammar‑Guided Seed Creation – 전통적인 SQL 문법이 일반적인 DML/DDL 패턴을 포괄하는 기본 쿼리를 생성합니다.
- LLM‑Assisted Enrichment – 대형 언어 모델(예: GPT‑4)이
SET GLOBAL GTID_PURGED,CALL PROCEDURE,KILL QUERY와 같은 드물게 사용되는 구문을 추가하여 시드를 확장합니다. 모델은 대상 DBMS의 방언을 준수하도록 프롬프트됩니다. - Logic‑Shifting Progressive Mutation – 단순 토큰 교체 대신 프레임워크는 술어를 체계적으로 부정(
WHERE x > 5→WHERE NOT (x > 5)), 분기를 교체하고 제어 흐름 문을 삽입하여 엔진이 대체 실행 경로를 탐색하도록 강제합니다. - Hybrid Error Repair – 생성된 쿼리가 구문 분석에 실패하거나 런타임 제약을 위반할 경우, 두 단계의 복구가 작동합니다:
- Rule‑based patcher는 명백한 구문 오류(누락된 쉼표, 일치하지 않는 따옴표)를 수정합니다.
- LLM‑semantic fixer는 컨텍스트 요구 사항을 충족하도록 쿼리를 재작성합니다(예: 누락된 권한 추가, 데이터 타입 불일치 수정).
- Instrumentation & Crash Detection – 퍼징 하니스는 프로세스 종료, sanitizer 알림, DBMS 로그를 모니터링하여 충돌, 메모리 손상 또는 보안 관련 오류 메시지를 포착합니다.
루프는 반복되며, 성공적인 변이를 지속적으로 LLM에 피드백하여 추가 다양화를 수행합니다.
결과 및 발견
| DBMS | 발견된 취약점 | 할당된 CVE | 공급업체에 의해 수정 |
|---|---|---|---|
| MySQL | 12 | 4 | 5 |
| MariaDB | 8 | 2 | 3 |
| SQLite | 5 | 1 | 2 |
| PostgreSQL | 7 | 1 | 2 |
| ClickHouse | 5 | 1 | 2 |
- 7개의 버그는 “특수 기능”(예: GTID mode,
KILL, stored procedures)과 직접 연결되어 있었으며, 기존 퍼저가 거의 다루지 못한다. - 크래시 유형에는 세그멘테이션 오류, 어설션 실패, 낮은 권한의 쿼리가 전역 상태에 영향을 줄 수 있는 권한‑상승 경로가 포함되었다.
- 성능 – LLM‑augmented 변이 파이프라인은 기존 문법‑전용 퍼저 대비 시간당 약 2× 더 많은 고유 실행 경로를 생성했다.
이러한 결과는 수년간 강화 작업을 거쳤음에도 불구하고 DBMS가 여전히 깊은 의미 수준의 버그를 내포하고 있음을 확인한다.
Practical Implications
- Security‑first development – 고급 DBMS 기능(복제, 사용자 정의 프로시저, 다중 테넌트 격리)에 의존하는 애플리케이션을 구축하는 팀은 구문적 SQL 검증에만 의존하지 말고 의미 기반 퍼징을 CI 파이프라인에 통합해야 합니다.
- Vendor tooling – 데이터베이스 벤더는 논리 전환 변이 전략을 채택해 내부 회귀 테스트 스위트를 강화할 수 있습니다. 특히 새로 추가된 시스템 수준 명령어에 대해 효과적입니다.
- LLM‑assisted testing – 하이브리드 복구 파이프라인은 개발자를 거짓 양성으로 압도하지 않으면서 LLM을 지속적으로 활용하는 실용적인 방법을 보여줍니다. 이와 유사한 패턴을 Kubernetes YAML, Terraform 등 복잡한 구성 언어에도 적용할 수 있습니다.
- Compliance & Auditing – 숨겨진 권한 상승 경로를 발견함으로써 조직은 PCI‑DSS나 ISO 27001과 같은 표준을 충족할 수 있습니다. 이러한 표준에서는 문서화되지 않은 DBMS 기능도 고려해야 합니다.
요약하면, FuzzySQL은 적은 비용의 LLM 기반 퍼징 투자가 수년간 숨겨져 있던 고영향 버그를 찾아낼 수 있음을 보여줍니다.
제한 사항 및 향후 작업
- LLM 의존성 – 생성된 쿼리의 품질은 기반 모델에 달려 있으며, 규모가 작거나 오래된 모델은 미묘한 방언 뉘앙스를 놓칠 수 있습니다.
- 자원 집약도 – 대규모로 LLM 추론을 실행하면 CPU/GPU 오버헤드가 증가하여 소규모 팀에게는 부담이 될 수 있습니다.
- 커버리지 격차 – 특수 기능은 더 잘 테스트되지만, 일부 DBMS‑특정 확장(예: 커스텀 플러그인, 사용자 정의 함수)은 여전히 범위 밖에 남아 있습니다.
- 향후 방향 – 저자들이 제안한 바에 따르면, 과거에 충돌을 유발한 변이를 우선순위로 두는 강화 학습을 통합하고, 프레임워크를 NoSQL 스토어로 확장하며, 보다 넓은 채택을 위해 경량 “LLM‑lite” 변이 엔진을 오픈소스로 제공하는 것이 포함됩니다.
저자
- Yongxin Chen
- Zhiyuan Jiang
- Chao Zhang
- Haoran Xu
- Shenglin Xu
- Jianping Tang
- Zheming Li
- Peidai Xie
- Yongjun Wang
논문 정보
- arXiv ID: 2602.19490v1
- 카테고리: cs.DB, cs.CR, cs.SE
- 출판일: 2026년 2월 23일
- PDF: PDF 다운로드