Skip to main content
QUICK REVIEW

[논문 리뷰] Silent Spring: Prototype Pollution Leads to Remote Code Execution in Node.js

М. А. Щербаков, Musard Balliu|arXiv (Cornell University)|2022. 07. 22.
Advanced Malware Detection Techniques인용 수 10
한 줄 요약

이 논문은 Node.js에서 원격 코드 실행(RCE)을 위해 프로토힋 풀리션 취약점을 탐지하고 악용하기 위한 첫 번째 체계적인 프레임워크를 제시한다. 다중 레이블 정적 타인팅 분석을 통해 오염을 탐지하고, 정적-동적 분석의 하이브리드 접근 방식을 통해 Node.js 커널 내의 일반적인 가드를 식별한다. 저자들은 Node.js 내에서 11개의 일반적인 가드를 발견하였으며, NPM CLI 및 Rocket.Chat과 같은 고도로 평가받는 애플리케이션에서 8개의 RCE 취약점을 수동으로 악용하였다. 이는 프로토타입 오염이 실제 시스템에서 완전한 RCE로 이어질 수 있음을 보여준다.

ABSTRACT

Prototype pollution is a dangerous vulnerability affecting prototype-based languages like JavaScript and the Node.js platform. It refers to the ability of an attacker to inject properties into an object's root prototype at runtime and subsequently trigger the execution of legitimate code gadgets that access these properties on the object's prototype, leading to attacks such as Denial of Service (DoS), privilege escalation, and Remote Code Execution (RCE). While there is anecdotal evidence that prototype pollution leads to RCE, current research does not tackle the challenge of gadget detection, thus only showing feasibility of DoS attacks, mainly against Node.js libraries. In this paper, we set out to study the problem in a holistic way, from the detection of prototype pollution to detection of gadgets, with the ambitious goal of finding end-to-end exploits beyond DoS, in full-fledged Node.js applications. We build the first multi-staged framework that uses multi-label static taint analysis to identify prototype pollution in Node.js libraries and applications, as well as a hybrid approach to detect universal gadgets, notably, by analyzing the Node.js source code. We implement our framework on top of GitHub's static analysis framework CodeQL to find 11 universal gadgets in core Node.js APIs, leading to code execution. Furthermore, we use our methodology in a study of 15 popular Node.js applications to identify prototype pollutions and gadgets. We manually exploit eight RCE vulnerabilities in three high-profile applications such as NPM CLI, Parse Server, and Rocket.Chat. Our results provide alarming evidence that prototype pollution in combination with powerful universal gadgets lead to RCE in Node.js.

연구 동기 및 목표

  • 기존 연구가 DoS 공격에 국한하여 프로토타입 오염을 탐지하는 데에 그친 점을 고려해, 원격 코드 실행(RCE) 악용으로의 탐지 범위를 확장한다.
  • RCE를 달성하기 위해 프로토타입 오염과 연결시킬 수 있는 Node.js 핵심 API 내의 일반적인 가드를 식별하고 검증한다.
  • 실제 Node.js 애플리케이션에서 프로토타입 오염과 가드 기반 RCE를 종단 간으로 탐지하기 위한 확장 가능한 다단계 프레임워크를 개발한다.
  • 실제 운영 환경 애플리케이션에서의 수동 악용을 통해 프로토타입 오염이 DoS를 넘어서 가능한 현실성과 심각성을 입증한다.
  • JavaScript 생태계에서 새로운 유형의 악용으로서 프로토타입 기반 객체 삽입 취약점(POIVs)을 탐지하기 위한 원칙적인 방법론을 수립한다.

제안 방법

  • CodeQL를 활용한 다중 레이블 정적 타인팅 분석을 통해, 신뢰할 수 없는 데이터의 흐름이 Object.prototype 변경에 이르는지를 추적함으로써 프로토타입 오염을 탐지한다.
  • Node.js 소스 코드의 정적 분석과 동적 타인팅 추적을 조합한 하이브리드 분석 접근 방식을 설계하여 핵심 API 내의 일반적인 가드를 식별한다.
  • 실제 코드베이스에서 드문 삽입 싱크를 더 잘 탐지하기 위해 정확도보다 재현율을 우선시하는 정적 분석 설정을 최적화한다.
  • 코드 수준 분석과 실제 애플리케이션의 수동 악용을 통해 가드의 도달 가능성과 악용 가능성 여부를 수동으로 검증하고 확인한다.
  • 100개의 취약 패키지로 구성된 코어 데이터셋을 보안 고지서에서 수집하여 오염 탐지 컴ponent를 훈련하고 검증한다.
  • 15개의 인기 있는 Node.js 애플리케이션에 프레임워크를 적용하여 오염 벡터와 악용 가능한 가드 체인을 모두 식별한다.

실험 결과

연구 질문

  • RQ1Node.js에서 알려진 DoS 공격 외에도, 프로토타입 오염을 체계적으로 활용하여 원격 코드 실행(RCE)을 달성할 수 있는가?
  • RQ2프로토타입 오염를 통해 유도될 수 있는 Node.js 핵심 내의 일반적인 가드의 특성과 위치는 무엇인가?
  • RQ3정적 및 동적 분석을 어떻게 조합하여 실제 Node.js 애플리케이션에서 악용 가능한 가드 체인을 탐지할 수 있는가?
  • RQ4기존의 프로토타입 오염 전용 정적 분석 도구들이 낮은 재현율로 인해 중요한 RCE 벡터를 얼마나 많이 놓치는가?
  • RQ5NPM CLI, Parse Server, Rocket.Chat과 같은 고도로 평가받는 운영 애플리케이션을 프로토타입 오염을 통해 악용할 수 있는가?

주요 결과

  • 저자들은 프로토타입 오염을 통해 유도할 수 있고, 해당 API를 사용하는 모든 애플리케이션에서 RCE를 달성할 수 있는 11개의 일반적인 가드를 Node.js 핵심 API 내에서 발견하였다.
  • 실제 애플리케이션인 NPM CLI, Parse Server, Rocket.Chat에서 8개의 RCE 취약점을 수동으로 악용하여 종단 간 공격의 가능성을 확인하였다.
  • 제안된 다중 레이블 정적 타인팅 분석 프레임워크는 최신 기술인 ODGen에 비해 유의미하게 높은 재현율을 달성했으며, 정확도는 약간 낮아지기는 하였다.
  • 프로토타입 오염은 DoS에 국한되지 않으며, 일반적인 가드와 결합될 경우 운영 환경 애플리케이션에서 완전한 코드 실행을 가능하게 한다.
  • 이 연구는 Node.js 핵심 내의 일반적인 가드가 프로토타입 변경을 통해 사용되지 않는 코드 경로를 악용하여 제어 흐름을 훔치는 새로운 유형의 위협을 드러낸다.
  • 하이브리드 분석 접근 방식은 정적 분석만으로는 놓칠 수 있는 가드 체인을 성공적으로 식별하였으며, 특히 복잡하거나 간접적인 데이터 흐름에서 두드러진 성능을 보였다.

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

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

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

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