
개발자 hedgerow-dev가 AI 애플리케이션의 소스 코드와 모델 파일, 의존성, 에이전트·MCP 설정을 함께 검사하는 정적 보안 분석 도구 Rowan의 첫 공개 알파 버전을 3일 선보였다. 공식 GitHub 릴리스에 따르면 검사 결과마다 근거를 표시하고 분석하지 못한 범위도 보고한다.
Rowan은 프로그램을 실행하지 않고 코드와 파일을 읽어 보안 문제의 단서를 찾는 도구다. SQL·명령어 주입, 안전하지 않은 역직렬화, 서버 측 요청 위조(SSRF), 코드에 남은 비밀키 등 일반적인 소프트웨어 위험뿐 아니라 AI 앱의 모델 로딩과 도구 호출까지 검사 대상으로 삼는다.
AI 에이전트가 고른 인수가 셸 명령, 파일, SQL, HTTP 요청으로 이어지는 경로와 대규모 언어모델(LLM)의 출력이 코드나 URL로 사용되는 지점도 살핀다. MCP(Model Context Protocol) 서버에서는 도구 인수 처리와 인증 없는 네트워크 노출, 위험한 클라이언트 설정 등을 점검한다고 프로젝트 문서는 설명한다.
분석은 패턴 규칙, Opengrep의 파일 내부 데이터 흐름 분석, Rowan의 파일 간 분석으로 나뉜다. Python과 JavaScript·TypeScript를 가장 깊게 다루며 Go의 파일 간 분석은 제한적이다. Java·Kotlin·C#은 파일 내부 데이터 흐름을, Ruby·PHP·Rust는 패턴 위주로 검사한다. 언어에 따라 분석 깊이가 다르다는 뜻이다.
모델 파일 검사는 같은 개발자가 만든 Hayward를 이용한다. Pickle·PyTorch, GGUF, SafeTensors, Keras, ONNX 등 여러 형식을 모델을 로딩하지 않은 상태에서 살핀다. 의존성 검사에서는 OSV의 알려진 취약점 정보와 EPSS의 악용 가능성 지표를 활용한다.
검사 결과에는 데이터 흐름 계산, 파일 구조 분석, 명확한 일치, 검증되지 않은 패턴 등 근거 유형이 붙는다. 읽지 못한 파일과 실패하거나 생략된 분석도 보고서에 표시한다. 프로젝트 문서에 따르면 패턴 일치만으로는 위험도를 High나 Critical로 매기지 않는다.
기본 ‘rowan scan’ 명령은 LLM을 호출하거나 소스 코드를 업로드하지 않는다. 다만 의존성 확인에는 패키지 이름과 버전이 외부 서비스로 전송되며, ‘--no-sca’ 옵션으로 이 조회를 끌 수 있다. 실험 기능인 ‘rowan hunt’는 설정한 LLM에 코드를 전송하므로 기본 검사와 구분해야 한다.
결과는 텍스트·JSON·HTML·SARIF 형식으로 내보낼 수 있고, GitHub Action과 코딩 에이전트용 MCP 서버도 제공한다. Rowan 본체는 MIT 라이선스이며 별도 검사 엔진인 Opengrep은 LGPL-2.1 라이선스를 따른다.
첫 공개 버전은 v0.3.0이다. 같은 날 배포된 v0.3.1은 설치 안내와 패키징을 정리한 업데이트로, 릴리스 노트는 검사 동작에 변화가 없다고 명시했다. 개발자는 알파 단계의 결과를 확정된 취약점이 아닌 검토할 단서로 취급해야 하며, 문제가 발견되지 않았다고 프로젝트의 보안이 입증되는 것은 아니라고 밝혔다.
출처: Rowan 공식 GitHub v0.3.0 릴리스 https://github.com/hedgerow-dev/rowan/releases/tag/v0.3.0 · v0.3.1 릴리스 https://github.com/hedgerow-dev/rowan/releases/tag/v0.3.1 · 공식 저장소 README https://github.com/hedgerow-dev/rowan · 공식 기능·한계 문서 https://github.com/hedgerow-dev/rowan/blob/main/docs/capabilities.md