보안 도구 'hallint', AI 생성 코드 취약점 탐지
- •개발자 리슈(Rishu)가 AI 코딩 도우미가 생성한 보안 버그를 식별하는 오픈소스 도구 'hallint'를 공개했다.
- •이 도구는 인증 마스킹, SQL 인젝션, 하드코딩된 보안 정보 등 AI 특화된 11가지 실패 패턴을 겨냥한다.
- •hallint는 CLI와 라이브러리 연동을 지원하며, CI/CD 파이프라인에 통합해 AI 생성 취약점의 배포를 방지한다.
소프트웨어 개발자 리슈(Rishu)는 AI 코딩 도우미가 흔히 유발하는 보안 취약점을 탐지하기 위해 설계된 무료 오픈소스 정적 분석 도구 'hallint'를 출시했다. 기존의 린터(Linter)가 주로 구문이나 일반적인 코드 품질에 집중했다면, hallint는 하드코딩된 API 키, 안전하지 않은 SQL 쿼리, 깨진 인증 미들웨어와 같이 거대언어모델(LLM)이 자주 생성하는 보안 실패 패턴을 타깃으로 한다. 이 도구는 타입스크립트 라이브러리와 CLI 인터페이스를 제공하여 자바스크립트, 타입스크립트, 파이썬 코드베이스를 검사할 수 있다.
AI 도우미는 수동 코드 검토를 통과하기 쉬운 미묘하면서도 위험한 보안 허점을 자주 만든다. 주요 취약점 중 하나인 '인증 마스킹'은 LLM이 토큰 오류를 포착하는 try/catch 블록을 생성한 뒤, 인증 절차를 우회하여 다음(next) 함수를 실행하는 경우를 포함한다. 그 외에도 허용적인 교차 출처 리소스 공유(CORS) 설정, 라우트 인증 누락, 부적절한 문자열 보간법으로 인한 SQL 인젝션 등이 빈번하게 발견된다.
hallint 엔진은 두 가지 감지 계층을 사용한다. 알려진 위협을 빠르게 식별하기 위한 정규표현식 매칭과, 코드의 논리적 구조를 트리 형태로 분석하여 다중 라인 패턴을 평가하는 AST(추상 구문 트리) 기반의 구조적 분석 방식을 결합했다. 현재 이 도구는 unsafe eval 사용, innerHTML을 통한 XSS 취약점, 'sk-', 'ghp_', 'AKIA' 등 알려진 접두사가 포함된 하드코딩된 비밀 정보 탐지 등 총 11가지 규칙을 포함한다. 특히 하드코딩된 비밀 정보와 SQL 인젝션, unsafe eval 등은 위험도가 높은 것으로 분류된다.
개발자는 별도의 설치 없이 npx를 통해 명령줄에서 이 도구를 실행하거나, 특정 종료 코드를 활용하여 CI/CD 파이프라인의 PR 게이트로 통합할 수 있다. 예를 들어, 중요도 높은 문제가 식별되면 종료 코드 1을 반환하도록 설정하는 방식이다. 또한 사용자는 핵심 라이브러리를 직접 가져와 커스텀 테스트 파이프라인이나 프리커밋 훅, 에디터 플러그인을 구축하는 것도 가능하다. 현재 이 프로젝트는 MIT 라이선스를 따르며, 깃허브(GitHub)를 통해 추가적인 규칙 세트에 대한 커뮤니티 기여를 장려하고 있다.