Axios 공급망 공격 발생, npm 패키지 보안에 비상!

by DD
2개월 전
조회수 10

Axios의 악성 npm 패키지 배포로 인해, 수많은 프로젝트가 공급망 공격에 노출됨

공격자는 악성 코드 삽입을 위해, 일반적인 릴리스 프로세스를 우회함

자동화된 멀웨어 탐지 시스템이 공격을 신속하게 감지했지만, 피해는 이미 발생함

개발자들은 의존성 검토 및 안전한 버전으로의 롤백(Rollback)을 권고받음

악성 코드 삽입 및 배포 과정

공격자는 Axios의 공식 릴리스 프로세스를 우회하여 악성 코드를 삽입했다. 구체적으로, `axios@1.14.1` 및 `axios@0.30.4` 버전을 npm 레지스트리에 직접 배포했다. 해당 버전들은 `plain-crypto-js@4.2.1`이라는 악성 의존성을 포함하고 있으며, 이는 `postinstall` 훅을 통해 실행되는 악성 스크립트(Malicious Script)를 포함한다. 이 스크립트는 운영체제(OS)를 감지하고, 플랫폼별 페이로드를 다운로드하여 실행한다.

악성 코드 분석 및 은폐 기법

악성 코드 분석 결과, 공격자는 다중 레이어 인코딩(Multi-layer Encoding) 기법을 사용하여 코드 난독화를 시도했다. 특히, 리버스 Base64(Reversed Base64)XOR 암호화(XOR Cipher)를 결합하여, 정적 분석 및 시그니처 기반 탐지를 회피하려 했다. 이러한 은폐 기법은 악성 코드의 탐지를 어렵게 만들고, 공격의 지속성을 높이는 데 기여한다. 또한, C2 서버(C2 Server)로의 통신을 위해, 일반적인 npm 레지스트리 트래픽으로 위장하는 기법을 사용했다.

macOS RAT(Remote Access Trojan)의 기능

macOS 환경에서 실행되는 2단계 페이로드(Second-Stage Payload)는 C++로 작성된 완전한 기능을 갖춘 RAT이다. 이 RAT는 시스템 정보를 수집하고, C2 서버와 통신하며, 추가 페이로드를 주입할 수 있는 기능을 제공한다. 특히, 코드 서명(Code Signing)을 우회하기 위해, 임시 파일에 바이너리를 쓰고, `codesign` 명령어를 사용하여 임시로 서명하는 기법을 사용했다. 이는 공격자가 시스템 권한을 획득하고, 지속적인 악성 행위를 수행할 수 있도록 한다.

공급망 공격의 근본 원인

커뮤니티에서는 과도한 의존성(Excessive Dependencies)패키지 관리의 허술함을 공급망 공격의 주요 원인으로 지적한다. 특히, 개발자들이 무분별하게 패키지를 설치하고, SBOM(Software Bill of Materials) 관리를 소홀히 하는 점을 비판한다. 또한, 수익 창출(Monetization)을 위한 공격 동기가 증가하면서, 공급망 공격의 빈도가 높아지고 있다는 분석도 제기된다. AI 기반의 자동화된 빌드 파이프라인(Automated Build Pipelines)의 확산은, 이러한 공격의 확산 속도를 더욱 가속화할 수 있다.

대응 방안 및 예방 전략

개발자들은 의존성 검토를 강화하고, 안전한 버전으로 롤백하는 것이 시급하다. 또한, SBOM(Software Bill of Materials) 관리를 통해, 프로젝트의 모든 의존성을 추적하고, 잠재적인 취약점을 식별해야 한다. 정적 분석 도구(Static Analysis Tools)자동화된 멀웨어 탐지 시스템(Automated Malware Detection System)을 활용하여, 악성 코드의 조기 발견 및 대응 능력을 향상시켜야 한다. 더불어, 데이터 미저장 정책(Zero-Retention Policy)을 통해, API 키와 같은 민감한 정보를 보호해야 한다.

Why have supply chain attacks become a near daily occurrence ?

댓글 0

첫 번째 댓글을 남겨보세요!