Axios 취약점, 당신의 시스템도 안전한가요?
npm 패키지 axios에 심각한 원격 코드 실행(RCE) 취약점이 발견되어 수백만 JavaScript 개발자가 위험에 노출됨
공격자는 악성 `axios` 버전을 통해 AWS, OpenAI API 키 등 민감 정보 탈취 및 시스템 장악 가능
취약점은 Post-install 스크립트를 이용한 공급망 공격(Supply Chain Attack) 방식으로, 사용자 시스템에 RAT(Remote Access Trojan) 설치 유도
개발자는 즉시 `axios` 버전을 확인하고, 최신 보안 버전으로 업데이트하거나 해당 패키지 사용 여부를 점검해야 함
Axios 공급망 공격(Supply Chain Attack)의 작동 원리
이번 공격은 npm 패키지 `axios`의 취약한 버전에 악성 `postinstall` 스크립트를 삽입하는 방식으로 이루어짐. 개발자가 `axios`를 설치하면 해당 스크립트가 자동으로 실행되어, 공격자가 제어하는 서버에서 원격 접근 트로이 목마(RAT)를 다운로드하고 실행시킴. 이 과정에서 AWS 자격 증명, OpenAI API 키 등 민감 정보가 유출될 수 있어 심각성이 높음.
악성 코드의 은닉 및 탐지 회피 기법
공격자는 `axios` 패키지 내에서 난독화된 JavaScript 코드를 사용하여 악성 행위를 숨김. 또한, `axios`와 유사한 이름의 `plain-crypto.js`라는 패키지를 별도로 배포하여, 설치된 악성 스크립트가 이를 다운로드하도록 유도함. 이 스크립트는 실행 환경을 탐지하고, 파일 시스템에 악성 페이로드를 기록한 후 실행하여 탐지를 회피함.
보안 강화 조치 및 권고 사항
개발자는 즉시 `axios` 패키지의 버전을 확인하고, 최신 보안 버전(v1.7.2 이상)으로 업데이트해야 함. 또한, `package.json` 파일에서 `postinstall` 스크립트 실행 여부를 점검하고, npm audit` 명령어를 주기적으로 실행하여 잠재적 보안 위협을 탐지하는 것이 중요함. 의존성 관리 도구의 보안 감사 기능 활용이 필수적임.
Axios의 역사와 취약점 발생 배경
Axios는 10년 이상 npm에서 널리 사용되어 온 HTTP 클라이언트 라이브러리로, Promise 기반의 비동기 요청 처리를 제공함. 과거에는 콜백 기반 방식 대비 장점을 가졌으나, 현재는 브라우저와 Node.js 환경 모두에서 `fetch` API가 기본 지원됨. 그럼에도 불구하고 많은 개발자가 기존의 익숙함 때문에 Axios를 계속 사용하고 있으며, 이번 취약점은 이러한 광범위한 사용층을 노린 공급망 공격의 표적이 됨.