🤖 24 AI
🟢 🛡️ 보안 2026년 4월 22일 수요일 · 2 분 읽기

GitHub CodeQL, 선언적 새니타이저와 유효성 검사기 지원, QL 코드 불필요

편집 일러스트: 8개 프로그래밍 언어의 잠금장치로 코드를 취약점으로부터 보호하는 디지털 요새

왜 중요한가

GitHub이 CodeQL 2.25.2에서 YAML을 통한 새니타이저와 유효성 검사기의 선언적 정의를 가능하게 했습니다. QL 코드 작성이 필요 없습니다. 8개 언어(C/C++, C#, Go, Java/Kotlin, JS/TS, Python, Ruby, Rust)를 지원하여 QL 전문가 없이도 정적 보안 분석을 가능하게 합니다.

GitHub CodeQL, 선언적 새니타이저와 유효성 검사기 지원, QL 코드 불필요

GitHub이 CodeQL 2.25.2 버전에서 models-as-data 접근법을 확장하여 QL 언어에서 쿼리를 작성할 필요 없이 YAML을 통해 새니타이저와 유효성 검사기를 정의할 수 있는 새 기능을 추가했습니다.

새니타이저와 유효성 검사기란 무엇인가

새니타이저는 입력 데이터에서 잠재적으로 위험한 콘텐츠를 제거하는 함수입니다. 예를 들어 표시 전에 HTML 태그를 제거합니다. 유효성 검사기는 부울 결과를 반환하며 데이터를 안전하게 추가 처리할 수 있는지를 나타내는 함수입니다. CodeQL 용어에서 새니타이저는 배리어(감염된 데이터 흐름의 중단)로 모델링되고, 유효성 검사기는 배리어 가드(조건부 중단)로 모델링됩니다. 이전에는 팀이 CodeQL이 내부 보안 함수를 인식하도록 하려면 자체 QL 쿼리를 작성해야 했습니다. 새로운 확장 가능한 프레디케이트 barrierModelbarrierGuardModel은 이제 YAML 모델 팩을 통해 채우는 것으로 충분합니다.

지원 언어와 실제 영향

이 기능은 8개 프로그래밍 언어를 포괄합니다: C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, Ruby, Rust. 각 언어에 대해 팀은 QL에 대한 깊은 지식 없이 자체 입력, 출력, 조건을 정의할 수 있습니다. GitHub는 이 변화를 보안 정적 분석의 민주화로 설명합니다. SQL 쿼리 이스케이프, HTML 새니타이즈, JWT 토큰 검증을 위한 자체 헬퍼 함수를 보유한 조직은 이제 모델 팩 저장소의 풀 리퀘스트를 통해 이러한 패턴을 표준 CodeQL 스캐너에 추가할 수 있습니다.

누가 사용해야 하는가

이것은 내부 보안 라이브러리가 있는 대규모 모노레포에서 작업하는 보안 팀과 유틸리티 함수를 포괄하려는 오픈소스 유지 관리자에게 가장 유용할 것으로 예상됩니다. 이 기능은 2026년 4월의 CodeQL 2.25.2에서 사용할 수 있습니다. 이미 GitHub Advanced Security를 사용하는 소규모 팀에게 이것은 QL 전문가를 고용하지 않고도 커버리지를 확장하는 저위험 방법입니다. 전형적인 사용 사례는 SQL 쿼리 전에 사용자 입력을 이스케이프하는 자체 함수를 작성한 조직입니다. 이러한 확장 기능 없이는 데이터가 실제로 안전함에도 불구하고 CodeQL이 여전히 SQL 인젝션에 대한 오탐(false positive) 경고를 보고할 것입니다. 모델 팩에 YAML 항목을 추가함으로써 이러한 오탐이 제거되고 분석은 풀 리퀘스트 전체에서 일관되게 유지됩니다. YAML 확장에 대한 문서와 예제는 공식 CodeQL 저장소에서 제공되며, GitHub는 분기별 업데이트를 통한 추가 확장을 예고하고 있습니다.

🤖

이 기사는 AI가 1차 출처를 기반으로 생성했습니다.