코드큐엘(CodeQL) 2.25.5, 깃허브 코드 스캔 정확도 UP!
코드큐엘(CodeQL) 2.25.5 출시로 C/C++, Java/Kotlin, 깃허브 액션(GitHub Actions) 쿼리 정확도 개선
Java/Kotlin에서 읽기 전용 경로(read-only path)를 구분하는 새로운 싱크(sink) 종류 도입
깃허브 액션(GitHub Actions)에서 파이썬 모듈 및 go run을 통해 실행되는 스크립트 탐지 기능 추가
C/C++에서 fscanf 관련 오탐 감소, Java/Kotlin에서 아카이브(archive) 항목 이름 관련 오탐 감소
정적 분석 엔진(Static Analysis Engine)의 역할
코드큐엘(CodeQL)은 깃허브 코드 스캐닝(GitHub Code Scanning)의 핵심 엔진으로, 코드 내 보안 취약점(Security Vulnerabilities)을 탐지하고 해결하는 데 기여한다.
정적 분석(Static Analysis): 코드를 실행하지 않고 소스 코드 자체를 분석하여 잠재적 문제점 파악
쿼리(Query) 기반 분석: 미리 정의된 쿼리를 통해 특정 취약점 패턴을 찾아내고, 오탐(False Positive)을 줄이기 위한 지속적인 쿼리 개선
코드 품질 향상: 개발 초기 단계에서 문제점을 발견하여 개발 생산성(Development Productivity) 향상 및 보안 사고 예방
Java/Kotlin 쿼리 개선 사항 분석
코드큐엘(CodeQL) 2.25.5 버전에서는 Java/Kotlin의 path-injection[read] 싱크(sink) 종류를 도입하여, 읽기 전용 경로(read-only path)를 구분한다.
ClassLoader.getResource, FileInputStream, FileReader 등 읽기 전용 경로(Read-only Path)에서 발생하는 취약점 분석 정확도 향상
오탐 감소: 읽기 전용 경로에서 발생하는 안전한 코드 패턴을 식별하여 불필요한 알림(Alert) 발생 최소화
보안 강화: 잠재적 위험이 있는 경로와 안전한 경로를 구분함으로써 실제 보안 위협(Security Threat)에 대한 탐지 능력 향상
깃허브 액션(GitHub Actions) 쿼리 개선의 중요성
깃허브 액션(GitHub Actions) 환경에서 파이썬 모듈 및 go run을 통해 실행되는 스크립트 탐지 기능 추가는 CI/CD 파이프라인(CI/CD Pipeline) 보안 강화에 기여한다.
자동화된 보안 검사: 깃허브 액션(GitHub Actions)을 통해 코드 변경 시마다 자동으로 보안 취약점 검사 수행
컴포지트 액션(Composite Action) 지원: action.yml 및 action.yaml 파일 분석을 통해 액션(Action) 메타데이터(Metadata) 분석 범위 확장
보안 사고 예방: 액션(Action) 내에서 발생할 수 있는 취약점을 사전에 탐지하여 보안 사고를 예방
C/C++ 쿼리 개선과 오탐 감소
C/C++에서 fscanf 관련 오탐 감소는 개발자의 분석 피로도(Analysis Fatigue)를 줄이고, 실제 보안 문제에 집중할 수 있도록 돕는다.
fscanf 함수(Function)의 오용으로 인한 오탐(False Positive) 감소
정확한 알림: 실제 보안 위협이 있는 코드에 대한 정확한 알림(Accurate Alert) 제공
개발 효율성 향상: 오탐으로 인한 불필요한 수정 작업을 줄여 개발 생산성(Development Productivity) 향상
코드큐엘(CodeQL) 2.25.5 배포 및 업그레이드
코드큐엘(CodeQL) 2.25.5는 깃허브 코드 스캐닝(GitHub Code Scanning) 사용자에게 자동으로 배포되며, 깃허브 엔터프라이즈 서버(GitHub Enterprise Server, GHES) 3.22 릴리스에 포함될 예정이다.
자동 업데이트: 깃허브 코드 스캐닝(GitHub Code Scanning) 사용자는 별도의 조치 없이 최신 버전의 코드큐엘(CodeQL) 사용 가능
GHES 사용자: GHES 3.22 미만 버전 사용자는 수동 업그레이드(Manual Upgrade) 필요
최신 기능 활용: 최신 버전의 코드큐엘(CodeQL)을 통해 향상된 보안 분석 기능(Security Analysis Feature) 활용 가능