오픈소스 소프트웨어(OSS) 생태계에서 풀 리퀘스트(PR)를 통한 악성코드 주입 시도가 늘어나면서, 기존 코드 리뷰 방식의 한계가 드러나고 있습니다. 이러한 위협에 대응하기 위해 'Vigil PR 스캐너'라는 새로운 GitHub 액션이 출시되었습니다. 이 도구는 코드 품질이나 스타일이 아닌, PR에 포함된 변경 사항에서 잠재적인 악성 기능(예: 셸 명령 실행, 자격 증명 접근, 데이터 유출, 자동 실행 후크, 난독화, 프롬프트 주입)만을 전문적으로 탐지하는 데 초점을 맞춥니다.
Vigil은 정규 표현식(regex)과 Semgrep을 활용하여 결정론적으로 악성 패턴을 스캔하며, 대규모 언어모델(LLM)을 사용하지 않는 것이 특징입니다. 이는 Greptile이나 CodeRabbit과 같은 AI 기반 코드 리뷰어들이 놓칠 수 있는 부분을 보완하기 위함입니다. Vigil은 두 개의 GitHub 워크플로 파일만으로 설치가 가능하며, 별도의 서버나 복잡한 설정 없이 작동합니다. 특히, PR 제출자가 스캐너를 조작할 수 없도록 보안 모델을 설계하여 신뢰성을 높였습니다. 예를 들어, 포크(fork)된 PR에서 워크플로 파일을 수정하더라도, 리포트 워크플로는 원본 브랜치의 코드를 사용하고 API를 통해 CI(지속적 통합) 조작 여부를 확인하여 무력화되지 않도록 합니다.
이러한 접근 방식은 AI 코드 리뷰어의 맹점을 효과적으로 메울 수 있습니다. AI 리뷰어는 코드의 의도를 추론하고 복잡한 로직을 이해하는 데 강점이 있지만, 악의적인 프롬프트 주입이나 고도로 난독화된 코드에 취약할 수 있습니다. 반면 Vigil은 패턴 기반으로 작동하여 이러한 공격에 흔들리지 않습니다. Vigil이 먼저 악성 코드를 스캔하고 의심스러운 부분을 AI 리뷰어에게 전달함으로써, AI는 더 집중적이고 효율적인 검토를 수행할 수 있으며, 전체적인 토큰 사용량도 줄일 수 있습니다. 결과적으로 개발자는 결정론적 스캐너와 AI의 추론 능력을 결합하여, 공격자가 두 가지 상반된 방어 체계를 모두 뚫어야 하는 더욱 강력한 보안 환경을 구축할 수 있게 됩니다.