npx로 즉시 실행! 레거시 Web API의 권한 미비(BOLA)와 SQLi를 자동 감사하는 CLI 툴 'komainu-guard' 개발
요약
레거시 Web API의 심각한 취약점인 BOLA(객체 권한 미비)와 SQLi를 자동 감사하는 CLI 툴 'komainu-guard'가 개발되었습니다. 이 툴은 AST 분석과 멀티 에이전트 AI를 결합하여, 기존 SAST 도구의 한계를 극복하고 로컬 환경에서 즉시 실행 가능합니다.
핵심 포인트
- BOLA와 SQLi 등 레거시 API 취약점을 자동 감사하는 CLI 툴 개발.
- AST 기반 정적 분석과 멀티 에이전트 AI를 결합하여 정확도를 높임.
- 기존 SAST 도구의 한계(논리적 권한 버그) 및 LLM 오탐 문제를 해결함.
- npx로 설치 없이 즉시 실행 가능하며, 로컬 환경에서 보안 진단 수행.
안녕하세요! 엔지니어 Harry입니다.
Web API 보안 진단을 할 때 가장 까다롭고 심각한 취약점 중 하나가 BOLA (Broken Object Level Authorization / 객체 수준의 권한 미비, 별칭 IDOR) 입니다. OWASP API Security Top 10에서도 항상 최상위권(API1:2023)을 차지하고 있습니다.
하지만 오랫동안 운영되어 온 **레거시 시스템(PHP, 구형 Java, ASP.NET 등)**의 경우, SonarQube 같은 기존 SAST (정적 분석 도구)를 사용해도 BOLA는 거의 탐지할 수 없습니다. 권한 로직은 '사용자 A가 사용자 B의 데이터에 접근할 수 있는지'라는 업무 컨텍스트에 의존하기 때문에, 단순한 구문 분석만으로는 놓치기 때문입니다.
그래서 이번에 **'AST (추상 구문 트리)를 이용한 정적 분석' × '멀티 에이전트 AI(감사관과 회의적인 리뷰어)'**를 융합하여, 설치가 필요 없고 로컬에서 즉시 실행 가능한 CLI 툴 **'komainu-guard'**를 개발하고 npm에 OSS로 공개했습니다!
Node.js 환경만 있다면, 사전 설치 없이 npx
명령어 한 번으로 작동할 수 있습니다.
npx --yes komainu-guard --version
# Output: komainu-guard 0.2.1
리포지토리의 언어 스택 감지, 엔드포인트 추출, SQLi 및 BOLA 잠재 후보지를 AST로 고속 스캔합니다.
npx --yes komainu-guard pre-scan ./path/to/legacy-repo
실행 결과 예시:
Loaded 10 target stacks.
Targets found: 1
Target: ./path/to/legacy-repo
...
프리스캔으로 좁혀낸 엔드포인트에 대해, 권한 로직의 결함이나 문자열 결합을 통한 SQL 인젝션을 AI 에이전트가 정밀하게 감사합니다.
npx --yes komainu-guard audit ./path/to/legacy-repo --out ./audit-result
진단 결과는 SARIF 형식뿐만 아니라, 모던한 독립형 HTML 리포트로도 출력됩니다. 브라우저에서 바로 열어 팀과 공유할 수 있습니다.
npx --yes komainu-guard report ./audit-result
일본의 엔터프라이즈나 위탁 개발(AMS / 유지보수 건) 현장에서는 10~20년 전에 만들어진 PHP나 Java Struts, Classic ASP 등의 시스템이 여전히 현역으로 작동하고 있습니다.
이러한 시스템을 모던화하는 과정에서 다음과 같은 벽에 부딪혔습니다:
- 기존 SAST 도구(SonarQube, Fortify 등)의 한계:
SQL 인젝션처럼 명확한 싱크(Sink)는 탐지할 수 있지만, '이 컨트롤러에서 테넌트 ID 검증이 빠져있다'와 같은 **권한의 논리적 버그(BOLA)**는 놓칩니다. - - 단순 LLM 프롬프트 감사 방법의 한계:
'소스 코드 전체를 LLM에 던져서 취약점을 찾는다'는 접근 방식은, 리포지토리가 커지면 토큰 제한 및 비용이 급증하고, 무엇보다도 **환각(오탐/거짓 지적)**이 너무 많아 실무에서 사용할 수 없습니다. - - 보안 및 기밀 유지 우려:
고객의 소스 코드를 클라우드의 퍼블릭 AI에 전송하여 학습될 위험을 절대 피하고 싶습니다.
이러한 문제들을 해결하기 위해 설계한 것이 Komainu LSA (Legacy Security Assessment) 아키텍처입니다.
komainu-guard의 핵심은 다음과 같은 다층 파이프라인으로 구성되어 있습니다:
+-------------------------------------------------------------------------+
| komainu-guard 파이프라인 |
+-------------------------------------------------------------------------+
...
AI에게 취약점을 탐지하게 하면, 존재하지 않는 결함을 과도하게 보고하는 경향이 있습니다. komainu-guard는 감사관(Auditor)이 발견한 지적에 대해, **'그 지적을 논파하려는' 독립적인 검증 에이전트(Skeptic Verifier)**를 구동합니다.
양자가 합의한 신뢰도 높은 취약점만을 리포트에 채택함으로써, 높은 Precision(정밀도/적합률)을 실현하고 있습니다.
-
**PHP**(Plain PHP, CodeIgniter) -
**Java**(Servlet, JSP, Struts 1, Spring MVC, MyBatis, Hibernate) -
**.NET**(ASP.NET WebForms, HTTP Handlers, ASP.NET MVC) -
**Classic ASP**(VBScript) **ColdFusion**-
**Node.js**(Express) -
**Python**(Flask) -
**Perl**(CGI) -
**SQL**(Stored Procedures / Functions)
-
**Target Read-Only:** 진단 대상의 소스코드 디렉토리에는 1바이트도 쓰기를 하지 않습니다. 출력은 모두 독립된 `OUT` 디렉토리에 격리됩니다. -
**No Training / Zero Retention:** 기밀 정보(API 키나 비밀번호)는 사전 스캔에서 자동 마스킹합니다. 로컬 GPU(Qwen 2.5 Coder 등)에서의 완전 폐쇄 실행에도 대응하고 있습니다.
다양한 언어 스택을 포함하는 테스트용 리포지토리 그룹에 대해 실시한 포괄 평가(Evaluation Run 3)에서, 다음과 같은 정확도를 달성했습니다:
-
**재현율(Recall):****100.0%** (심어놓은 취약점을 단 하나도 놓치지 않고 탐지)
**정밀도(Precision):****1.000** (회의적 검증 역할로 오탐지를 0으로 달성)
레거시 시스템을 안전하게 모던화하는 첫걸음은, **'객관적이고 정확한 현황 파악'**에서 시작됩니다.
`komainu-guard`
를 사용하면, 가지고 계신 터미널에서 `npx komainu-guard`
을 실행하는 것만으로도 단 몇 분 만에 기존 코드베이스의 권한 리스크를 시각화할 수 있습니다.
향후에는 취약점 탐지(Assess)에 그치지 않고, OWASP Coraza WAF를 통합한 API Gateway(Kong)를 통한 경계 방어 또는 .NET / Spring Boot용 권한 복구 라이브러리(Remediate)와의 연동도 순차적으로 강화해 나갈 예정입니다.
우선 가지고 계신 레거시 프로젝트나 샘플 코드로 꼭 한번 사용해보세요!
피드백이나 Issue, 스타를 주시면 큰 힘이 됩니다!
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기