Axios 공급망 공격 발생: 1억 건 이상 다운로드된 라이브러리, 보안 비상!

by DD
2개월 전
조회수 12

Axios의 공급망 공격으로 인해 악성 코드가 포함된 버전(1.14.1, 0.30.4)이 배포됨

Remote Access Trojan(RAT)을 포함한 멀티 스테이지 페이로드가 시스템 데이터 유출 및 지속적인 감염을 시도

공격자는 npm 계정 탈취를 통해 악성 패키지를 배포, GitHub Actions를 우회

의존성 검토(Dependency Review) 및 안전한 버전으로의 롤백(Rollback)을 권고하며, min-release-age 설정 권장

공격 방식: 악성 코드 삽입 및 은폐

공격자는 postinstall npm lifecycle hook을 활용하여 악성 코드를 실행했다. 구체적으로, `setup.js`를 실행하여 운영체제를 감지하고, 플랫폼별 페이로드를 배포했다. 이중 레이어 인코딩(Two-layer Encoding)을 통해 정적 분석을 회피했으며, C2 서버(Command and Control Server)와의 통신을 위해 난독화된 문자열(Obfuscated Strings)을 사용했다. 공격자는 또한 파일 삭제(File Deletion)이름 변경(Renaming)을 통해 흔적을 지웠다.

피해 규모: 광범위한 영향

Axios는 주간 1억 건 이상의 다운로드를 기록하며, 프론트엔드 프레임워크, 백엔드 서비스, 엔터프라이즈 애플리케이션에서 널리 사용된다. 공격자는 1.x 및 0.x 브랜치를 모두 공격하여 영향 범위를 극대화(Maximize Blast Radius)했다. 또한, @shadanai/openclaw@qqbrowser/openclaw-qbot과 같은 다른 패키지에서도 동일한 악성 코드가 발견되어, 공급망 공격의 파급력을 보여준다.

대응 방안: 보안 강화 및 예방 조치

커뮤니티에서는 min-release-age 설정을 통해 신규 릴리스의 즉각적인 사용을 제한하는 방안이 제시되었다. 또한, PGP 서명(PGP Signing)을 통해 커밋 및 릴리스의 무결성을 보장하는 방법도 언급되었다. 의존성 검토(Dependency Review)를 통해 악성 패키지 포함 여부를 확인하고, 안전한 버전으로 롤백하는 것이 중요하다. npm_lifecycle_event 환경 변수를 활용하여 설치 스크립트의 동작을 감사하는 방법도 제시되었다.

npm 생태계의 취약점

댓글에서는 npm이 패키지 설치 시 스크립트를 무조건 실행하는 점을 지적하며, 이러한 설계상의 취약점(Design Vulnerability)이 공급망 공격의 주요 원인으로 작용한다고 분석했다. pnpm 및 bun과 같은 다른 패키지 관리자는 postinstall 스크립트 실행을 선택적으로 지원하여, 공격의 위험을 줄일 수 있다. 하지만 npm의 압도적인 사용자 기반을 고려할 때, 공격자들은 npm을 주요 타겟으로 삼을 가능성이 높다.

Supply Chain Attack on Axios