Skip to main content
QUICK REVIEW

[논문 리뷰] You Can Run But You Can't Hide: Runtime Protection Against Malicious Package Updates For Node.js

Timo Pohl, Marc Ohm|arXiv (Cornell University)|2023. 05. 31.
Advanced Malware Detection Techniques인용 수 4
한 줄 요약

이 논문은 노드.js에 대한 런타임 보호 메커니즘을 제안하며, 패키지 소스 코드를 정적 분석하여 필요한 기능(예: 모듈 및 함수 접근)을 추론하고, 수정된 노드.js 인터프리터를 통해 이를 강제 적용함으로써 최소 권한 정책을 구현한다. 이 방법은 설치 시 평균 0.6초 이내의 오버헤드와 런타임 시 평균 0.2초 이내의 오버헤드로 이전에 알려진 공급망 공격의 90%를 방지했다.

ABSTRACT

Malicious software packages are often used in software supply chain attacks. Detecting these packages is a top priority, and there have been many academic and commercial approaches developed for this purpose. In the event of an attack, it is essential to have resilience against malicious code. To address this issue, we introduce a runtime protection for Node.js that automatically limits the capabilities of packages to a minimum level. The implementation and evaluation of the detection and enforcement of necessary capabilities at runtime was conducted against known malicious attacks. Our approach successfully prevented 90 % of historical attacks with a median install-time overhead of less than 0.6 seconds and a median runtime overhead of less than 0.2 seconds.

연구 동기 및 목표

  • 노드.js 생태계에서 악성 패키지 업데이트로 인한 증가하는 소프트웨어 공급망 공격 위협을 해결하기 위해.
  • 악성 코드 실행을 방지하기 위해 자동으로 최소 요구 기능을 런타임에서 강제 적용하기 위해.
  • 소스 코드의 정적 분석 기반으로 자동으로 생성하고 강제 적용하는 기능 정책을 통해 공격 표면을 줄이기 위해.
  • 성능 오버헤드, 탐지 정확도, 알려진 악성 업데이트에 대한 내성에 대해 이 접근법을 평가하기 위해.

제안 방법

  • 시스템은 추상 구문 트리(_ASTs_)를 사용하여 신뢰할 수 있는 패키지 버전과 그 종속성을 정적 분석하여 필요한 모듈과 함수를 추론한다.
  • 정책 파일에 저장된 허용 목록(허용 모듈 및 멤버)으로 구성된 기능 정책을 생성한다.
  • 수정된 노드.js 인터프리터가 런타임에서 정책을 강제 적용하여 임포트된 모듈을 허용된 멤버들로만 줄인다.
  • 시스템은 두 가지 모드를 지원한다: 모듈 수준의 굵은 조절(코arse-grained) 및 멤버 수준의 세밀한 조절(fine-grained) 접근 제어로, 멤버 접근 추적을 통해 구현한다.
  • 정책 강제 적용은 require 함수를 수정하여 허용 목록 기반으로 액세스를 제한함으로써 런타임에서 적용된다.
  • 정적 분석을 활용하여 프로그램의 실제 기능의 92퍼센트를 탐지할 수 있었으며, 엔지니어링적 개선을 통해 가짜 경고를 줄였다.

실험 결과

연구 질문

  • RQ1정적 소스 코드 분석이 노드.js 패키지의 최소 요구 기능 집합을 신뢰성 있게 추론할 수 있는가?
  • RQ2유추된 기능 기반의 런타임 강제 적용 메커니즘이 알려진 악성 패키지 업데이트를 어느 정도 방지할 수 있는가?
  • RQ3설치 시간 및 실행 시간 비용 측면에서 정책 생성 및 런타임 강제 적용의 성능 오버헤드는 어느 정도인가?
  • RQ4불필요하거나 악성으로 추가된 기능을 차단함으로써 이 접근법이 공격 표면을 얼마나 효과적으로 줄이는가?

주요 결과

  • 시스템은 권한이 없는 기능을 요구하는 악성 코드를 차단함으로써 알려진 이전 공급망 공격의 90퍼센트를 방지했다.
  • 설치 시간 오버헤드의 중앙값은 0.6초 미만이었고, 런타임 오버헤드의 중앙값은 0.2초 이내였으며, 이는 낮은 성능 영향을 의미한다.
  • 코arse-grained 모드는 가용 기능의 78.82퍼센트를 사용하지 않았고, fine-grained 모드는 96.56퍼센트를 사용하지 않아 공격 표면이 크게 감소한 것으로 나타났다.
  • 정책 생성 시간은 0.52에서 0.60초였고, 정책 파일은 크기가 작았으며(1.2 kB에서 2.98 kB), 추가 시작 시간은 오직 198 ms였다.
  • AST 기반 분석을 통해 실제 프로그램 기능의 92퍼센트를 탐지했지만, 여전히 가짜 경고가 문제로 남아 있어 향후 개선이 필요하다.
  • 이 방법은 새로운 기능을 추가하여 패키지의 동작을 변경하는 공격에 효과적이지만, ESM, 대체 임포트 방법, 모듈 수준 제한을 우회하는 C++ 애드온 등으로 인해 제한을 받는다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.