AI 애플리케이션(AI-app)의 보안 취약점을 분석하고 자동 수정하는 새로운 도구 'getdebug'가 등장했습니다. 이 도구는 기존의 범용 정적 분석(SAST) 도구들이 놓치기 쉬운 AI 앱 특유의 보안 패턴을 정규표현식(regex) 기반으로 탐지하며, LLM(대규모 언어모델) 기반의 분석 도구보다 빠르고 정확한 결과를 제공한다고 주장합니다. 특히 프롬프트 주입(prompt-injection), 안전하지 않은 역할 병합(unsafe-role-merge), PII(개인 식별 정보) 노출, 무한 스트림(unbounded-stream), 안전하지 않은 도구 출력(unsafe-tool-output) 등 다섯 가지 주요 AI 앱 취약점 카테고리를 효과적으로 식별합니다.
getdebug 개발팀은 자사 도구의 성능을 검증하기 위해 파이썬(Python) AI 앱을 대상으로 벤치마크 테스트를 진행했습니다. 비교 대상은 파이썬 보안 린터 'Bandit', 다국어 SAST 도구 'Semgrep', 그리고 LLM 기반 AI 앱 정적 분석 리더로 알려진 'vulnhuntr'였습니다. 테스트 결과, getdebug는 5개의 취약한 코드와 5개의 안전한 코드로 구성된 테스트 세트에서 83%의 정밀도(precision)와 100%의 재현율(recall)을 기록하며 가장 우수한 성능을 보였습니다. 반면 Bandit과 Semgrep은 범용 규칙으로 인해 오탐(false positive)이 많았고, AI 앱 특유의 취약점은 대부분 놓쳤습니다. LLM 기반의 vulnhuntr는 테스트 세트에서 파일을 제대로 선택하지 못해 유의미한 결과를 내지 못했습니다.
실제 코드베이스인 Simon Willison의 'llm' CLI 도구(49개 파이썬 파일)에 대한 테스트에서도 getdebug의 강점이 드러났습니다. Bandit은 1,261개의 경고 중 대부분이 노이즈였고, Semgrep은 3개의 일반적인 SAST 경고만 발견했습니다. 반면 getdebug는 7개의 경고 중 6개가 AI 앱 관련 취약점(프롬프트 주입 1개, 무한 스트림 5개)으로 분류되었으며, 이는 실제 위협 모델에 따라 유의미한 신호로 해석될 수 있습니다. getdebug는 인간이 직접 검토하고 수정하는 '휴먼-인-더-루프(human-in-the-loop)' 접근 방식을 강조하며, AI가 모든 보안 조치를 자동으로 실행하는 대신 개발자가 최종 결정을 내리도록 돕는 것을 목표로 합니다. 이는 AI 앱 보안의 중요성을 고려할 때 매우 합리적인 접근 방식으로 평가됩니다.