GitHub AI Scan 정식 출시: PR 보안 검토의 빈칸을 메우다
CodeQL이 다루지 않는 언어의 변경 사항까지 AI가 살피지만, 결과는 병합을 막는 보안 게이트가 아닙니다. 활성화 조건과 크레딧 과금, 검토자가 확인할 경계를 짚습니다.
GitHub가 2026년 10월 15일 풀 리퀘스트용 AI Scan을 정식 출시했습니다. CodeQL을 교체하는 제품이 아니라, CodeQL이 아직 지원하지 않는 언어와 프레임워크의 변경 사항을 AI 기반 엔진으로 보완하는 기능입니다. 최근 48시간 공식 피드에서 적합한 미중복 소재가 부족해 7일 범위로 넓혀 확인한 소식입니다.
무엇을 보완하나
PHP, Shell/Bash, Terraform의 HCL, Dockerfile, Java의 JSP와 C#의 Blazor 등이 공식 예시입니다. PR의 변경 코드를 분석하며 필요하면 저장소의 다른 코드를 검색해 맥락을 모읍니다. 전체 저장소의 과거 취약점을 일괄 진단하는 기능과는 다릅니다. 결과도 보안 화면의 누적 경고 목록이 아니라 PR의 Conversation과 Files changed 탭에 나타납니다.
가장 중요한 제한은 발견 결과가 권고라는 점입니다. AI 표시가 붙은 결과는 Code scanning 검사를 실패시키지 않고 ruleset의 병합 차단 조건으로 사용할 수 없습니다. 따라서 ‘AI 결과가 없으니 안전하다’거나 ‘이 설정 하나로 필수 보안 승인을 대신한다’는 운영 규칙은 맞지 않습니다.
활성화 전 준비
저장소 관리자 권한과 code scanning 활성화가 필요합니다. 개인 소유 공개 저장소는 사용할 수 있지만 개인 소유 비공개 저장소는 대상이 아닙니다. 조직의 비공개·내부 저장소는 GitHub Code Security 또는 GitHub Advanced Security가 필요합니다. Copilot 라이선스 자체는 필수 조건이 아닙니다.
기업 정책에서 허용한 것과 조직에서 켠 것은 다릅니다. Enterprise 소유자가 허용해도 자동 활성화되지는 않습니다. 조직 소유자나 보안 관리자가 기능을 켜면 code scanning이 활성화된 적격 저장소로 설정이 상속됩니다. 개별 저장소 관리자는 조직에서 꺼 둔 기능을 혼자 켤 수 없고, 조직이 켠 뒤에는 opt-out할 수 있습니다.
최소 확인 절차
아래는 공식 문서를 기준으로 정리한 절차이며 실제 서비스 실행 실험은 하지 않았습니다. 먼저 과금 담당 계정과 예산을 확인한 뒤, 개인 소유 공개 시험 저장소의 Settings에서 Code scanning 아래 AI Scan for pull requests 토글을 켭니다. 조직 저장소는 먼저 조직의 유효 설정을 확인해야 합니다. 별도 모델을 고르거나 AI 전용 빌드 파일을 추가할 필요는 없습니다.
다음 명령은 Git이 설치된 macOS·Linux 셸에서 이미 복제한 시험 저장소에 정상적인 Shell 파일을 추가하는 최소 PR 준비 예입니다. 운영 저장소나 비밀이 든 스크립트로 시험하지 마세요.
git switch -c ai-scan-review-demo
cat > scan-demo.sh <<'EOF'
#!/bin/sh
printf '%s\n' 'hello'
EOF
git add scan-demo.sh
git commit -m "Add safe shell review sample"
git push -u origin ai-scan-review-demopush 뒤 GitHub에서 같은 저장소의 기본 브랜치를 대상으로 PR을 엽니다. 위 코드는 의도적으로 안전한 예이므로 경고가 안 나와도 정상입니다. 취약점을 새로 심어 결과를 강제로 만들지 말고, 사용 자격·유효 설정과 적격 PR인지 먼저 확인하세요. fork PR과 Dependabot이 만든 PR은 실행 대상이 아닙니다.
실무 검토 방식
실제 업무에서는 Dockerfile의 이미지 고정 여부나 Bash에서 외부 입력을 사용하는 변경을 검토할 때 추가 신호로 활용할 수 있습니다. AI 결과가 나오면 설명에 등장하는 입력의 출처와 실행 경로를 사람이 대조하고, 제안 수정이 정상 동작을 깨지 않는지 기존 테스트로 확인합니다. 공식 문서는 잘못된 탐지 가능성도 명시합니다. 수정 제안을 자동으로 믿고 적용하는 대신 PR 승인 과정에 포함하는 것이 적합합니다.
CodeQL 분석이 대기하거나 실패해도 AI Scan은 독립적으로 실행될 수 있습니다. 결과가 먼저 보이거나 늦게 나타나는 순서는 보안 수준의 차이가 아닙니다. 또한 저장소의 copilot-instructions.md나 CLAUDE.md를 이 엔진의 사용자 정의 검사 규칙처럼 취급해서는 안 됩니다. 공식 설명상 엔진은 특화 프롬프트를 사용합니다.
비용과 데이터 경계
사용량은 Code Security AI Credits로 집계됩니다. 공개 저장소라는 이유만으로 무조건 무료라고 단정할 수 없습니다. 개인 공개 저장소도 과금 계정과 Copilot 제공 관계에 따라 비용 주체가 달라질 수 있습니다. 포함 크레딧이 있으면 먼저 사용하고 이후에는 예산에 따른 계량 과금이 적용됩니다. 조직 전체를 켜면 관리자가 개별 저장소를 제외하기 전에 적격 PR이 크레딧을 사용할 수 있으므로 예산부터 정해야 합니다.
분석은 GitHub 서비스가 PR 코드와 저장소 맥락을 처리하는 방식입니다. 로컬 전용 검사기가 아니므로 회사의 코드 처리 정책과 계약 조건을 먼저 검토하세요. 이 문서만으로 모델의 모든 보존 조건이나 규제 적합성을 보장할 수는 없습니다.
오류와 되돌리기
결과가 없으면 저장소 소유·공개 범위, 조직 및 기업의 유효 정책, code scanning 활성화, 지원 언어, fork·Dependabot 제외 조건, 크레딧의 hard budget 순으로 확인합니다. 예산 소진으로 결과를 만들 수 없다면 관리자가 예산을 조정하거나 다음 과금 주기를 기다려야 합니다. ‘경고 없음’과 ‘검사가 실행되지 않음’을 구분하는 것이 중요합니다.
개인 공개 저장소는 같은 토글을 끄고, 조직 저장소는 관리자 opt-out이나 조직 설정으로 도입을 되돌릴 수 있습니다. 이미 발생한 사용량이 취소되거나 과거 PR 기록이 삭제되는 것은 아닙니다. 예제 브랜치는 PR을 닫은 뒤 저장소 정책에 따라 삭제하고, 기존 CodeQL·사람 승인·테스트 정책은 유지하세요.