[논문 리뷰] Supporting the Detection of Software Supply Chain Attacks through Unsupervised Signature Generation
이 논문은 추상 구문 트리(Abstract Syntax Trees, ASTs)와 마르코프 군집 알고리즘(Markov Cluster Algorithm, MCL)을 사용하는 비지도 학습 방법인 ACME를 제안한다. 이 방법은 문법적 코드 유사성 기반으로 악성 npm 패키지를 군집화하여 소프트웨어 공급망 공격을 탐지한다. 수작업으로 구성한 군집을 재현할 때 F₁ 스코어가 0.99에 도달했으며, 자동 서명 기반 스캔을 통해 npm 레지스트리에서 이전에 보고되지 않은 여섯 개의 악성 패키지를 식별했다.
Trojanized software packages used in software supply chain attacks constitute an emerging threat. Unfortunately, there is still a lack of scalable approaches that allow automated and timely detection of malicious software packages and thus most detections are based on manual labor and expertise. However, it has been observed that most attack campaigns comprise multiple packages that share the same or similar malicious code. We leverage that fact to automatically reproduce manually identified clusters of known malicious packages that have been used in real world attacks, thus, reducing the need for expert knowledge and manual inspection. Our approach, AST Clustering using MCL to mimic Expertise (ACME), yields promising results with a $F_{1}$ score of 0.99. Signatures are automatically generated based on characteristic code fragments from clusters and are subsequently used to scan the whole npm registry for unreported malicious packages. We are able to identify and report six malicious packages that have been removed from npm consequentially. Therefore, our approach can support analysts by reducing manual labor and hence may be employed to timely detect possible software supply chain attacks.
연구 동기 및 목표
- 소프트웨어 공급망 내 악성 소프트웨어 패키지에 대한 확장 가능한 자동 탐지 방법의 부족을 해결한다.
- 트로이난 패키지 식별에 있어 수작업 분석과 전문 지식에 대한 의존도를 줄인다.
- 코드 유사성 기반으로 알려진 악성 패키지를 자동으로 군집화하여 조기에 탐지할 수 있도록 지원한다.
- 군집에서 비지도로 재사용 가능한 서명을 생성하여 npm과 같은 대규모 레지스트리에서 이전에 알려지지 않은 악성 패키지를 스캔할 수 있도록 한다.
- 악성 패키지의 평균 제거 소요 시간인 200일을 단축시켜 사전 스캔을 가능하게 하여 탐지 속도를 향상시킨다.
제안 방법
- 기타 알려진 악성 npm 패키지의 소스 코드에서 추상 구문 트리(Abstract Syntax Trees, ASTs)를 추출하여 문법적 구조를 표현한다.
- 구조적 비교 기법을 사용하여 AST 간의 쌍별 유사도 점수를 계산하여 높은 유사성을 가진 코드 조각을 식별한다.
- 유사한 AST들을 군집화하기 위해 마르코프 군집 알고리즘(Markov Cluster Algorithm, MCL)을 적용하여 전문가 기반 악성 소프트웨어 가족 군집화를 모방한다.
- 각 군집 내 대표적인 코드 조각에서 탐지 서명을 생성하여 새로운 패키지의 스캔을 가능하게 한다.
- 거의 108개의 가장 많이 의존되는 npm 패키지에 대한 매칭을 제거하여 가짜 경고(false positives)를 줄인다.
- 생성된 서명을 사용하여 npm 전체 레지스트리 스캔을 수행하여 보고되지 않은 악성 패키지를 탐지한다.
실험 결과
연구 질문
- RQ1AST 기반 비지도 군집화가 수작업으로 확인된 악성 npm 패키지 군집을 효과적으로 재현할 수 있는가?
- RQ2AST 기반 유사도 탐지 방법이 최소한의 수작업 간섭으로 알려진 악성 패키지를 얼마나 잘 식별할 수 있는가?
- RQ3자동으로 생성된 서명이 대규모 레지스트리에서 이전에 알려지지 않은 악성 패키지를 얼마나 잘 탐지할 수 있는가?
- RQ4서명 필터링 과정이 가짜 경고를 최소화하면서도 탐지 커버리지 유지에 얼마나 효과적인가?
- RQ5이 방법은 대규모 소프트웨어 생태계에서 알려진 악성 소프트웨어 가족의 새로운 변종을 탐지하는 데에 확장 가능한가?
주요 결과
- ACME는 114개의 알려진 악성 npm 패키지에 대해 수작업으로 구성한 군집을 재현할 때 F₁ 스코어 0.99를 기록했다.
- 서명 기반 스캔을 통해 npm 레지스트리에서 이전에 보고되지 않은 일곱 개의 악성 패키지를 성공적으로 식별했다.
- 식별된 일곱 개 패키지 중 네 개는 악성으로 확인되어 npm에 보고되었으며 제거되었다.
- 남은 세 개 패키지 중 두 개는 개념 증명(PoC) 변종이었고, 한 개는 알려진 악성 종속성의 직접적인 복사본을 포함하고 있었다.
- 각 군집당 가장 매칭되는 50개의 가짜 경고 지문을 제거함으로써 총 매칭 수를 약 50% 감소시켜, 가짜 경고 정리의 가능성을 입증했다.
- 일반적인 코드 오브스큐레이션 기법, 예를 들어 변수 이름 변경(Type-1 및 Type-2 클론)과 미세한 구조적 변경(Type-3 클론)에 대해 이 방법은 내성적 저항성을 보였다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.