GitHub PR용 AI Scan 정식 출시…CodeQL 빈자리 메우되 병합 차단 조건은 제외

ARCH-B

ARCH-B

2026년 10월 18일 · 7분 분량

1

한눈에 보는 핵심요약

GitHub가 CodeQL 미지원 언어 변경을 보완하는 PR용 AI Scan을 정식 출시했다. Copilot 라이선스는 필수가 아니지만 별도 AI 크레딧을 소비하며, 필수 ruleset을 통한 병합 차단이나 포크·Dependabot PR 검사는 지원 범위에서 제외된다.

  • PHP·Shell·Terraform 등 CodeQL 미지원 영역을 보완하는 PR 전용 정식 분석 기능이다.
  • 결과는 권고 성격으로 필수 ruleset 조건이 아니며 PR 병합을 직접 막지 않는다.
  • Copilot 좌석 없이도 동작하지만 Code Security AI 크레딧 소비와 예산 제한을 받는다.
  • 포크·Dependabot PR과 전체 저장소 검사는 제외되며 비공개 개인 계정은 지원하지 않는다.
GitHub PR용 AI Scan 정식 출시…CodeQL 빈자리 메우되 병합 차단 조건은 제외
이미지 제공: GitHub Changelog · 원출처 기사

깃허브는 10월 15일 풀 리퀘스트용 코드 스캐닝 AI Scan을 정식 제공한다고 공식 발표했다. 이번 기능은 PHP, Shell과 Bash, Terraform의 HCL, Dockerfile, 자바 JSP, C# Blazor 등 CodeQL이 현재 다루지 않는 언어와 프레임워크의 코드 변경 사항에서 보안 취약점을 탐지하도록 설계되었다.

기존 정적 분석 도구인 CodeQL을 대체하는 목적이 아니라 분석 공백을 메우는 보완적 역할로 포지셔닝한다. 저장소 수준에서 코드 스캐닝 설정과 유효한 AI Scan 옵션이 활성화되어 있고, 지원 대상 언어의 변경이 포함된 풀 리퀘스트가 제출되면 자동으로 검사가 트리거된다.

검출된 분석 결과는 Conversation 탭과 Files changed 화면 양쪽에 CodeQL 검출 결과와 나란히 배치된다. 개발자가 혼동하지 않도록 결과 카드에 전용 AI 표시가 부여되며, 일부 검출 항목에 대해서는 위험에 대한 배경 설명과 함께 곧바로 적용 가능한 코드 수정 제안이 직접 포함된다.

PR 변경점 집중 분석과 검사 제외 대상의 명확화

공식 가이드 문서에 따르면 AI Scan 결과는 풀 리퀘스트 인터페이스 내부에만 존재하며, 저장소 보안 탭에 누적되는 보안 경고 목록에는 기록되지 않는다. 새로운 PR 생성이나 추가 커밋을 계기로 동작하며, 정확한 문맥 파악을 위해 저장소 내부 코드 검색을 보조적으로 활용할 수 있지만 저장소 전체 코드를 일괄 점검하는 방식은 아니다.

또한 외부 포크에서 유입된 PR이나 Dependabot이 자동으로 발행한 의존성 갱신 PR에는 AI Scan이 전혀 실행되지 않는다. 따라서 외부 오픈소스 기여 코드나 자동 갱신 워크플로에서 유입되는 변경점은 이 도구의 점검 울타리 바깥에 머물게 된다.

동시에 CodeQL 기본 설정의 완결성이나 CodeQL 분석 작업의 성공 여부를 AI Scan 동작의 전제 조건으로 두지 않는다. CodeQL 분석 파이프라인이 실패하거나 큐에서 대기 상태에 머물러 있더라도 AI Scan은 별개의 독립 프로세스로 실행될 수 있다. 화면상에서 두 결과의 표시 순서가 달라지더라도 한쪽 시스템이 다른 쪽의 검증 단계를 보증하거나 통과했다는 의미는 아니다.

권고 형태의 동작 특성과 상위 거버넌스 정책

AI Scan이 생성한 모든 결과는 순수한 권고 성격을 띤다. 이 탐지 내역은 코드 스캐닝 검사 자체를 실패로 처리하지 않으며, 브랜치 보호를 위한 ruleset의 필수 통과 조건으로 지정하여 PR 병합을 강제로 차단하는 용도로 활용할 수 없다. 즉 해당 기능을 켜두었다는 사실만으로 보안 경고 미해결 시 머지를 막는 자동 강제 정책이 수립되지는 않는다.

공식 안내에서도 AI 모델의 구조적 한계로 인해 오탐이 발생할 수 있고, 지원 언어군이나 탐지 분류 체계 역시 향후 변동될 수 있음을 인정하고 있다. 부정확하거나 적절하지 않은 탐지 결과에 대해서는 사용자가 피드백을 전달할 수 있는 창구가 열려 있다.

거버넌스 측면에서 기업 계정의 기본 정책은 Not allowed로 설정되어 있어 기업 관리자의 선제적 허용 승인이 요구된다. 허용 상태로 변경하더라도 곧바로 모든 곳에 자동 적용되는 것은 아니며, 조직 소유자나 보안 관리자가 기능을 켜야 코드 스캐닝을 쓰는 적격 저장소들에 일괄 활성화된다. 개별 저장소 관리자는 조직이 켠 기능을 제외할 권한이 있지만, 상위 조직에서 비활성화한 상태를 하위 저장소에서 임의로 번복해 켤 수는 없다.

계정 권한별 사용 조건과 AI 크레딧 과금 체계

저장소 공개 여부와 소유 주체에 따른 조건도 구체적으로 구분된다. 조직과 개인 계정의 공개 저장소는 무료 지원 대상에 포함되지만, 조직 계정 소속의 비공개 및 내부 저장소에서 이를 쓰려면 Code Security 또는 Advanced Security 라이선스가 필수적으로 요구된다. 반면 개인 계정 소유의 비공개 저장소와 관리형 사용자 계정의 개인 네임스페이스는 지원 대상에서 완전히 배제된다.

이 과정에서 GitHub Copilot 라이선스 좌석 자체는 필수가 아니다. 다만 Copilot 라이선스가 필요 없다는 말이 스캔 서비스의 전면 무상 제공을 뜻하는 것은 아니며, 검사가 실행될 때마다 활성 커미터 라이선스와는 별도로 책정된 Code Security AI Credits를 소비하게 된다.

공식 설명에 따르면 청구 계정에 기본 포함된 크레딧이 존재할 경우 이를 우선 소진하고, 이후에는 실제 PR 스캔 사용량과 사전에 설정한 예산 한도 정책에 따라 추가 과금이 발생한다. 만약 강제 예산 제한 설정으로 인해 가용 크레딧이 모두 고갈되면 AI Scan은 더 이상 결과를 생성하지 못하고 중단되며, 추가 예산 증액이나 다음 청구 주기가 도래해야 분석이 재개된다.

스캔이 없던 경우와 경고가 없던 경우

PR 화면에 결과가 없을 때는 지원 변경에서 문제를 찾지 못한 것인지, 제외 대상이거나 예산·정책 때문에 실행되지 않은 것인지가 다르다. 포크와 Dependabot PR은 공식 제외 범위다. 이 구분을 남겨야 경고 건수 감소를 보안 개선으로 오해하지 않는다.

필수 병합 조건은 다시 별개다. AI Scan 결과는 권고이며 검사 실패나 ruleset 차단 조건으로 쓰이지 않는다. 기존 필수 검사와 검토 정책의 통과 여부를 함께 보아야 하고, 자동 수정 제안이 있더라도 그 제안을 적용하고 확인하는 단계는 남아 있다.

PR에서 구분할 세 상태
PR에서 구분할 세 상태
상태뜻하는 것
스캔 실행 후 탐지 없음지원·실행한 범위에서 결과가 없었음
제외·정책·예산으로 미실행AI Scan으로 판단한 결과 자체가 없음
권고 결과 표시검토할 발견이며 그 자체로 병합 차단하지 않음
표를 좌우로 넘겨 전체 내용을 확인할 수 있습니다.

보안 개요 화면은 조직 전체의 유효한 활성화 상태와 AI Scan 탐지 결과의 전반적인 추이를 점검하는 관측 도구 역할을 수행한다. 풀 리퀘스트 세부 보고서는 CodeQL 탐지 항목과 AI Scan 결과를 분리해 보여주며, 수정 제안이 동반된 결과와 그렇지 않은 결과가 개발 과정에서 어떻게 처리되고 있는지 흐름을 추적할 수 있도록 돕는다.

도입 조직은 정식 기능 출시에 맞춰 분석 지원 대상에서 누락되는 PR 유형을 정확히 인지하고 예산 제약에 따른 스캔 일시 중단 상황을 상시 모니터링해야 한다. 결과 카드에 아무런 경고가 표시되지 않는 상황이 곧 코드의 무결성을 의미하는 것은 아니라는 점을 전제로 운영 프로세스를 정립해야 한다.

ARCH.B 의견

AI Scan을 켠 저장소에서도 검사 대상과 결과의 성격을 구분해야 한다. 지원 언어의 PR에 경고가 붙는 일, 필수 검사에 통과하는 일, 수정이 적절한지 검토하는 일은 서로 다른 단계다. 권고 결과가 있다는 이유로 다른 보안 검사를 없애거나, 경고가 없다는 이유로 전체 코드가 검증됐다고 볼 수 없다.

도입 효과는 생성된 경고 수보다 실제로 유효한 문제를 발견하고 수정한 흐름에서 살펴볼 수 있다. 경고를 검토한 시간과 채택한 수정, 분석에서 제외된 PR을 함께 기록하면 이 도구가 기존 CodeQL과 수동 검토 사이의 어느 빈자리를 메우는지 구체적으로 판단할 수 있다. 별도 크레딧 예산과 실행 상태도 그 운영 범위의 일부다.

출처와 참고자료

Share

Related

함께 읽기 좋은 글