피드로 돌아가기
Dev.toSecurity
원문 읽기
.npmrc 설정을 통한 Registry Hijacking 기반의 Supply Chain Attack 분석
A Rogue Registry in My Own Backyard: Anatomy of a Two-Line Supply Chain Attack
AI 요약
Context
신뢰할 수 있는 오픈소스 기여자로 위장한 공격자가 성능 개선을 명목으로 PR을 제출하여 패키지 매니저의 설정 파일을 변조하려 시도한 사례임. 단순한 의존성 추가가 아닌 설치 프로세스 자체의 경로를 변경하여 악성 코드를 주입하는 고도로 정밀한 사회공학적 기법이 사용됨.
Technical Solution
- .npmrc 파일 내
:registry구문을 통한 Default Registry 경로를 공격자 제어 IP(206.223.232.170:64389)로 강제 변경 - HTTPS가 아닌 HTTP 프로토콜을 사용하여 TLS 인증 과정을 생략하고 데이터 패킷의 무결성 검증을 무력화
- package.json에 실재하지 않는 가짜 패키지를 추가하여 npm install 실행 시 공격자 서버에서 악성 페이로드를 다운로드하도록 유도
- 캐럿(^) 버전 범위를 지정하여 추후 공격자가 임의로 업데이트한 최신 버전의 악성 코드를 지속적으로 배포할 수 있는 구조 설계
- 기여자의 프로필 신뢰도와 정교한 PR 설명문을 활용하여 리뷰어의 심리적 경계심을 낮추는 Social Engineering 전략 결합
실천 포인트
- .npmrc 및 package.json의 install 설정 변경 시 IP 주소 기반의 Registry 설정 여부를 최우선 검토 - CI/CD 파이프라인 내 --ignore-scripts 옵션을 적용하여 설치 단계의 임의 코드 실행 원천 차단 - Build Container의 네트워크 Egress 정책을 설정하여 허용된 공식 Registry 외의 외부 IP 통신을 차단 - PR의 설명문(Description)이 아닌 실제 변경 파일(Diff)의 무결성을 기준으로 리뷰 수행