NPM 패키지 악성코드 공격 및 LavaMoat 방어

2025-09-09
NPM 패키지 악성코드 공격 및 LavaMoat 방어

최근 `is-arrayish`라는 NPM 패키지에 악성 코드가 주입되어 사용자 거래에서 ETH를 훔치려는 시도가 있었습니다. 악성코드는 `fetch`, `XMLHttpRequest`, `window.ethereum.request`와 같은 브라우저 함수를 덮어써서 이를 달성했습니다. 이 글에서는 공격에 대한 자세한 분석 대신 LavaMoat를 사용하여 이러한 공격을 방지하는 방법을 보여줍니다. LavaMoat는 각 종속성의 모듈을 별도의 어휘적 전역 컨텍스트(구획)에 배치하고 정책에 지정된 전역 변수와 가져오기만 허용하여 악성 코드의 액세스를 제한합니다. 이를 통해 악성 코드가 트랜잭션 주소를 변경하는 것을 방지합니다. 정교한 악성코드라도 LavaMoat의 방어를 우회하기는 어렵습니다.

개발 NPM 보안