피드로 돌아가기
InfoQSecurity
원문 읽기
개발자가 하나의 MavenInstall 명령으로 해커에게 터미널 접근 권한을 gift하는 현실
Presentation: Are We Ready for the Next Cyber Security Crisis Like Log4shell?
AI 요약
Context
개발자들이 인터넷에서 복사한 bash 명령어나 npm, Maven 같은 패키지 매니저 설치 명령을 실행하는 순간, 공격자가 대상 머신의 터미널 접근 권한을 탈취할 수 있다. 방화벽과 라우터는 기본적으로 외부からの incoming 연결을 차단하지만, 내부에서 외부로 향하는 outgoing 연결은 허용한다. 이 특성을 역이용하여受害자가 공격자 머신으로 연결을 시도하게 만드는 reverse shell 공격이 동작한다.
Technical Solution
- Java 프로젝트에서 Maven install 실행 시 악성 코드가 자동 실행되어 reverse shell이 수립되는 과정을 시연
- npm install express 등 최신 패키지 설치만으로 공격이 완료되는 것을 실증
- Public IP가 없는 laptop에서도 outgoing 연결로 인해 공격이 성공하는 메커니즘 설명
- .npmrc 파일에 config registry와 auth token 설정을 통해 npm 설치 시 의도한 registry만 사용하도록 제한
- Yarn과 Gradle은 보안 기능을 기본 제공하지만 Maven은 플러그인 추가로 구현 필요
Impact
Maven과 npm 설치 명령 한 번으로 머신의 대화형 터미널 접근 권한이 공격자에게 완전히 이전됨
Key Takeaway
패키지 매니저 설치 명령은 단순한 개발 워크플로우가 아니라, 실행 즉시 시스템 제어권을 공격자에게 양도할 수 있는 보안 경계임을 인식해야 한다.
실천 포인트
JavaScript/Node.js 프로젝트에서 npm install 명령을 실행할 때 .npmrc 파일로 registry와 auth token을 사전 설정하여 악성 패키지 설치를 사전 차단하고, CI/CD 파이프라인에서 SBOM 도구로 의존성 취약점을 지속적으로 스캔해야 한다