피드로 돌아가기
InfoQInfoQ
Security

YAML 기반 Declarative 모델링을 통한 CodeQL 보안 분석 유연성 확보

GitHub Enhances CodeQL with Declarative Security Modeling for Faster, More Flexible Analysis

Craig Risi2026년 5월 5일4intermediate

Context

기존 Static Analysis 워크플로우에서 탐지 로직 확장을 위해 복잡한 CodeQL 쿼리 작성 능력이 필수적이었던 한계 존재. 이로 인해 내부 라이브러리나 커스텀 프레임워크에 특화된 보안 검증 로직을 적용하는 데 높은 진입 장벽과 운영 비용 발생.

Technical Solution

  • Models-as-data 개념 도입을 통한 쿼리 중심에서 데이터 중심 구성으로의 패러다임 전환
  • YAML 기반의 Declarative Data Extension을 통해 커스텀 Sanitizer 및 Validator 정의
  • Taint Tracking 제어를 위한 barrierModel 및 barrierGuardModel 프리디케이트 구현
  • Sanitizer를 통한 데이터 중화 및 Validator를 통한 안전성 확인 시 Tainted Data Flow를 차단하는 Barrier 구조 설계
  • C/C++, Go, Java, Rust 등 Polyglot 환경 전반에 동일한 보안 모델을 적용하는 표준화 체계 구축
  • 보안 로직을 구조화된 데이터로 관리함으로써 버전 제어 및 조직 내 공유가 용이한 아키텍처 구현

1. 복잡한 쿼리 기반 시스템을 데이터 기반 설정(YAML/JSON)으로 전환 가능한지 검토

2. Taint Tracking 적용 시 데이터 흐름을 끊어줄 수 있는 Barrier 지점을 정의하여 False Positive 최소화

3. Polyglot 환경에서 언어별 개별 대응 대신 공통 모델링 레이어 구축 고려

원문 읽기