NPM 악성 패키지 탐지를 위한 벤치마크 기반 실증 분석

본 논문은 6,420개의 악성 및 7,288개의 정상 NPM 패키지를 수집·주석화한 대규모 벤치마크를 구축하고, 8개의 탐지 도구(13가지 변형)를 정량적 평가와 소스코드 분석을 결합해 비교한다. 주요 결과는 도구들의 정밀·재현율 트레이드오프가 “코드 능력 vs 의도” 해석 구조에 의해 결정되고, 행동 연쇄 분석이 탐지력을 크게 높이며, 머신러닝 기반 도구는 개념 수렴(concept convergence)으로 성능이 급락한다는 점이다.

저자: Wenbo Guo, Zhongwen Chen, Zhengzi Xu

NPM 악성 패키지 탐지를 위한 벤치마크 기반 실증 분석
본 논문은 현재 NPM(Node Package Manager) 생태계가 소프트웨어 공급망 공격의 주요 표적이 되고 있음에도 불구하고, 기존 악성 패키지 탐지 도구들의 평가가 서로 다른 데이터셋과 독립적인 실험 설계에 의존해 비교가 어려운 상황을 지적한다. 이를 해결하기 위해 저자들은 2020년부터 2025년까지 공개된 악성 및 정상 NPM 패키지를 포괄적으로 수집·정제하여, 총 6,420개의 악성 버전과 7,288개의 정상 버전을 포함하는 대규모 벤치마크를 구축하였다. 각 악성 패키지는 11개의 행동 카테고리(예: 환경 변수 탈취, 파일 시스템 조작, 네트워크 전송 등)와 8개의 회피 기법(예: 환경 감지, 안티‑디버깅, 코드 난독화 등)으로 라벨링되었으며, 라벨링 과정에는 LLM 보조 분석과 전문가 검토가 결합되어 높은 신뢰성을 확보했다. 연구는 8개의 탐지 도구(총 13가지 변형)를 선정했으며, 이들은 정적 분석(GuardDog, OSSGadget, CodeQL 기반 도구 등), 동적 분석(MalOSS, Packj), 머신러닝 기반(Cerebro, SAP, AMALFI 등), 그리고 최신 대형 언어 모델(LLM) 기반(SocketAI)으로 구분된다. 각 도구의 소스코드를 직접 검토함으로써, 도구가 어떤 방식으로 “코드가 할 수 있는 일(능력)”과 “코드가 실제 의도하는 일(의도)” 사이의 모호성을 해소하려는지 구조적 메커니즘을 파악했다. 주요 발견은 다음과 같다. 첫째, 도구들의 정밀도와 재현율 사이의 트레이드오프는 단순히 알고리즘의 복잡도나 학습 데이터 양에 의해 결정되지 않는다. 대신, 도구가 API 호출을 단일 신호로 처리하느냐, 아니면 호출 전후의 컨텍스트와 행동 연쇄를 분석하느냐에 따라 위치가 달라진다. GuardDog은 Semgrep 규칙에 행동 연쇄(예: env 변수 수집 → 직렬화 → 외부 전송)를 명시적으로 매핑해 93.32%의 F1 점수를 달성했으며, 이는 가장 균형 잡힌 성능을 보여준다. 반면 SAP_DT와 같은 통계 기반 ML 모델은 단일 API 호출만을 특징으로 사용해 3.2% 수준의 검출률에 머물렀다. 동일 데이터에 행동 연쇄를 적용하면 검출률이 79.3%까지 급증한다는 실험 결과는 “행동 연쇄”가 악성 의도 판단의 핵심 신호임을 명확히 한다. 둘째, 회피 기법 분석에서 환경 감지와 안티‑분석 기술이 가장 탐지하기 어려운 것으로 나타났다. 특히 ML 기반 도구는 이러한 회피에 매우 취약해, anti‑analysis 회피를 적용한 악성 패키지에 대해 5% 이하의 검출률을 보였다. 이는 ML 모델이 주로 통계적 특징에 의존하고, 회피 기법이 이러한 특징을 교묘히 숨기기 때문으로 해석된다. 셋째, 머신러닝 기반 도구는 시간에 따라 급격한 성능 저하를 겪는다. 2021년부터 2023년 사이에 SAP_DT의 검출률이 87.15%에서 39.49%로 감소했으며, 이는 “개념 수렴(concept convergence)” 현상—공격자들이 최소한의 코드 풋프린트를 사용해 정상 패키지와 구별되지 않는 특징을 만들면서 발생한다—을 근거로 설명한다. 즉, 악성 코드가 점점 더 “정상적인” 형태를 띠게 되면서 기존 ML 특징이 무의미해진 것이다. 넷째, 도구 조합 전략에 대한 분석에서는 단순히 서로 다른 패러다임을 섞는 것이 아니라, 각 도구의 보완성(complementarity)과 오탐 증가(FP introduction)를 정량화해 최적 조합을 도출했다. GuardDog(고정밀·고재현)과 Packj(동적 저정밀) 그리고 LLM 기반 SocketAI를 결합한 조합은 정확도 96.08%, F1 95.79%를 기록했으며, 이는 개별 도구가 제공하지 못하는 시너지 효과를 입증한다. 반대로, 고재현 저정밀 도구를 무분별히 추가하면 오탐이 급증해 전체 성능이 오히려 악화될 수 있음을 보여준다. 마지막으로, 논문은 다음 네 가지 핵심 원칙을 제시한다. (i) “능력‑의도 모호성”이 정밀·재현율 트레이드오프의 근본 원인이며, 이를 해소하기 위한 설계가 필요하다. (ii) “행동 연쇄” 기반 시그니처는 단일 API 호출보다 훨씬 강력한 탐지 신호를 제공한다. (iii) 머신러닝 모델은 “개념 수렴”에 대비해 지속적인 특징 재설계와 최신 데이터 업데이트가 필수이다. (iv) 도구 조합은 “보완성‑오탐 감소” 원칙에 따라 설계해야 하며, 단순한 패러다임 다양성만으로는 충분하지 않다. 이러한 기여를 바탕으로 저자들은 구축한 벤치마크와 평가 프레임워크를 공개하여, 향후 NPM 악성 패키지 탐지 연구와 실무 적용에 표준화된 기반을 제공한다.

원본 논문

고화질 논문을 불러오는 중입니다...

댓글 및 학술 토론

Loading comments...

의견 남기기