
AI 코딩 에이전트가 설치하는 소프트웨어 패키지를 점검하는 오픈소스 도구 SkillTotal이 검사 예외 처리의 결과를 더 분명하게 보여준다. 공식 GitHub 릴리스에 따르면 27일 공개된 0.84.0 버전은 베이스라인 적용으로 악성 징후가 검사 결과에서 빠졌을 때 해당 탐지 규칙을 별도로 알린다.
베이스라인은 기존 탐지 결과를 저장해 이후 검사에서 제외하는 기능이다. 반복되는 경고를 줄일 수 있지만, 악성 징후에 해당하는 결과까지 제외하면 최종 판정만으로는 무엇이 빠졌는지 놓칠 수 있다. 이번 변경은 이런 제외 사실을 드러내는 데 초점을 맞췄다.
새 버전은 텍스트 보고서의 Baseline 항목과 표준 오류 출력에 제외된 악성 징후의 규칙 식별자를 표시한다. JSON 보고서에는 metadata.baseline_suppressed_malicious 필드를 추가했다. 보고서 스키마는 1.10으로 바뀌었으며, 이 필드는 해당 유형의 결과가 베이스라인에 의해 제거됐을 때만 포함된다. 단순히 다른 유형의 탐지 결과를 예외로 지정한 경우에는 이 경고가 붙지 않는다.
경고가 생겼다고 차단 기준까지 달라진 것은 아니다. 릴리스 노트와 보고서 스키마 문서는 예외 처리된 증거가 여전히 최종 판정과 종료 코드 기반 차단 조건에 반영되지 않는다고 명시한다. 탐지 규칙도 이전 규칙 집합인 83을 그대로 사용한다. 운영자는 검사 통과 여부와 함께 무엇을 예외로 뒀는지 구분해 볼 필요가 있다.
SkillTotal 공식 문서에 따르면 이 도구는 npm·PyPI 패키지, MCP 서버, 에이전트 스킬과 저장소의 파일을 읽어 위험 신호를 찾는다. 대규모언어모델을 사용하거나 대상 코드를 실행하는 대신 정규표현식과 추상 구문 트리 분석을 활용한다. 탐지 결과에는 파일명과 줄 번호를 제시하며, 명령줄 도구와 Claude Code 플러그인, GitHub Action 형태로 제공된다.
Claude Code 플러그인은 에이전트가 실행하려는 패키지 설치 명령을 사전에 확인한다. 문서는 악성 징후가 탐지되면 명령을 거부하고, 위험도가 높거나 검사를 마치지 못한 경우에는 사용자의 판단을 요청한다고 설명한다. 사람이 응답할 수 없는 지속적 통합(CI) 환경에서는 엄격 모드에 따라 차단하도록 설계돼 있다.
다만 이 검사는 실행 환경을 격리하는 샌드박스가 아니다. 공식 안내는 이름이 명시된 패키지의 의존성 전체를 검사하지 않으며, npm ci나 pip install -r처럼 패키지를 개별 지정하지 않은 설치, 이미 실행 중인 코드도 플러그인의 점검 범위 밖이라고 밝힌다. 이번 업데이트 역시 이런 범위를 넓히기보다 기존 검사 결과에서 제외한 위험 신호를 관리자가 알아볼 수 있게 한 변화다.
출처: SkillTotal 공식 GitHub 릴리스 0.84.0 https://github.com/pezhik/skilltotal/releases/tag/v0.84.0 · 공식 저장소 https://github.com/pezhik/skilltotal · Claude Code 플러그인 문서 https://github.com/pezhik/skilltotal/blob/v0.84.0/docs/plugin.md · 보고서 스키마 문서 https://github.com/pezhik/skilltotal/blob/v0.84.0/docs/report-schema.md