Red Hat npm 패키지 공격: 30개 이상의 저장소에서 클라우드 자격 증명 탈취 악성코드 유포

조직적인 npm 공급망 공격 클라우드 자격 증명 탈취 캠페인이 엔터프라이즈 소프트웨어에서 가장 잘 알려진 이름 중 하나를 강타했습니다. 알려지지 않은 공격자들이 Red Hat 직원의 GitHub 계정을 먼저 탈취한 후, 그 접근 권한을 이용해 악성 커밋을 푸시함으로써 30개 이상의 Red Hat Cloud Services npm 패키지를 감염시켰습니다. 이 패키지에 삽입된 멀웨어는 'Mini Shai-Hulud' 변종으로, 설치 시 자동으로 실행되어 즉시 AWS, GCP, Azure 액세스 키와 SSH 키, Kubernetes 구성 파일을 포함한 클라우드 자격 증명을 빼내기 시작합니다.

이 사건이 두드러지는 이유는 npm 자체의 취약점 때문이 아니라, 공격자가 신뢰받는 정상 개발자 신원을 통해 침투했기 때문입니다.

Red Hat npm 패키지가 침해된 경위

공격 사슬은 Red Hat 직원의 GitHub 계정 하나가 침해되면서 시작되었습니다. 공격자는 이 계정에 침입한 후, Red Hat Cloud Services npm 패키지와 연결된 저장소에 직접 코드를 푸시할 수 있는 권한을 확보했습니다. 커밋이 인식된 기여자 계정에서 발생했기 때문에 자동화된 파이프라인과 동료 검토자는 의심스러운 부분을 찾아내기가 훨씬 더 어려웠습니다.

이것이 바로 소프트웨어 공급망 공격의 핵심 특징입니다. 악성 페이로드가 정상 소프트웨어 안에 숨어 서명되고 신뢰받는 채널을 통해 유통됩니다. 침해 기간 동안 영향을 받은 패키지를 설치하거나 업데이트한 개발자들은 아무런 명백한 경고도 없이 자신의 시스템에서 멀웨어를 무심코 실행하게 됩니다. 패키지 자체가 계속 정상적으로 작동하기 때문에 탐지는 더욱 어려워집니다.

'Mini Shai-Hulud' 멀웨어 변종은 개발자가 npm install을 입력하는 순간, 설치 시간에 실행되도록 특별히 설계되었습니다. 애플리케이션이 시작되거나 사용자가 상호작용할 때까지 기다리지 않습니다. 이 접근 방식은 감염과 유출 사이의 시간을 획기적으로 단축합니다.

탈취된 자격 증명과 그 중요성

멀웨어의 표적 목록은 공격자가 개발자 워크스테이션이나 CI/CD 파이프라인 실행기에서 빼낼 수 있는 가장 치명적인 항목들의 체크리스트와 같습니다. AWS, Google Cloud Platform, Azure 자격 증명 파일이 주된 표적이며, 이러한 키는 흔히 프로덕션 인프라 전반에 걸쳐 광범위한 권한을 지니고 있습니다. SSH 개인 키와 Kubernetes 구성 파일까지 더해져 공격자에게 내부 네트워크 및 컨테이너 오케스트레이션 클러스터로의 측면 이동 경로를 제공할 수 있습니다.

자동화된 빌드 파이프라인을 운영하는 조직의 경우 노출 위험이 증폭됩니다. CI/CD 시스템은 수명이 긴 클라우드 자격 증명을 환경 변수나 마운트 된 시크릿 형태로 저장하는 경우가 많습니다. 감염된 빌드 실행기 하나가 전체 클라우드 환경을 통제하는 키를 은밀하게 넘겨줄 수 있으며, 이는 데이터 유출, 랜섬웨어 배포, 지속적 백도어 접근으로 이어질 가능성을 열어줍니다.

이것이 바로 보안 팀이 공급망 진입점이 더 깊은 시스템 침해로 이어질 수 있음을 명심해야 하는 이유이기도 합니다. CISA의 최근 CVE-2026-31431 경고, 리눅스 로컬 권한 상승 결함은 이를 직접적으로 상기시켜 줍니다. 탈취된 자격 증명이나 초기 접근 권한을 가지고 시스템에 침투한 공격자가 거기서 멈추는 경우는 거의 없습니다. 그들은 사슬의 다음 연결고리를 찾아 나섭니다.

공급망 공격이 표준 보안의 사각지대인 이유

기존의 보안 도구는 외부의, 서명되지 않은, 또는 알려지지 않은 코드가 위협이라는 전제를 기반으로 구축됩니다. 방화벽, 엔드포인트 탐지 에이전트, 시그니처 기반 스캐너는 이상 징후를 탐지하도록 조정되어 있습니다. 공급망 공격은 정당한 서명을 가지고 예상된 채널을 통해 도달하는 소프트웨어 내부에 숨어 이 모델을 전복시킵니다.

이번 사례에서는 Red Hat이라는 브랜드와 관련 GitHub 계정 이력이 감염된 패키지에 높은 수준의 암묵적 신뢰를 부여했을 것입니다. Red Hat 관련 인프라를 다루는 개발자들은 이 패키지들이 잘 유지 관리되고 안전할 것이라는 기대 때문에 바로 설치했을 수 있습니다.

알려진 취약점 버전을 확인하는 표준 의존성 검사 도구는 해당 악성 버전이 취약점 데이터베이스에 이미 등재되지 않은 한 설치 시간 자격 증명 탈취자를 잡아내지 못합니다. 이 공격은 '알려진 악성 탐지'와 행동 분석 사이의 틈을 노립니다.

계층화된 방어: 시크릿 관리, 네트워크 세분화, VPN

단일 통제 수단으로 정교한 공급망 공격을 막을 수는 없지만, 계층화된 방어는 피해 범위를 크게 줄일 수 있습니다.

시크릿 관리 중심, 로컬 자격 증명 파일 제거. 가장 효과적인 완화책은 개발자 머신과 CI/CD 실행기에서 정적 자격 증명 파일을 완전히 없애는 것입니다. 수명이 짧고, 필요 시점에 생성되는 자격 증명을 발급하는 도구를 사용하면 자격 증명이 탈취되더라도 공격자가 유의미하게 사용하기 전에 만료됩니다.

의존성 고정 및 무결성 검증. 패키지를 변동 버전 범위가 아닌 특정 검증된 커밋 해시에 고정하면 예기치 않은 코드 변경에 대한 노출을 제한할 수 있습니다. 이를 패키지 콘텐츠에 대한 자동 무결성 검사와 결합하면 또 다른 탐지 계층이 추가됩니다.

네트워크 세분화 및 송신 트래픽 필터링. Mini Shai-Hulud 멀웨어는 훔친 데이터를 어딘가로 보내야 합니다. 빌드 환경과 개발자 머신에서 알려진 엔드포인트로의 아웃바운드 연결을 제한하면 멀웨어가 성공적으로 실행되더라도 유출을 차단할 수 있습니다. VPN과 제로 트러스트 네트워크 아키텍처는 분산된 팀 전반에 걸쳐 이러한 송신 정책을 일관되게 시행할 수 있습니다.

모든 개발자 계정에 다중 인증 적용. 이번 사건의 초기 침해는 GitHub 계정 탈취였습니다. 강력한 MFA, 특히 하드웨어 보안 키 또는 패스키 기반 인증을 요구하면 계정 탈취를 상당히 어렵게 만듭니다.

CI/CD 파이프라인의 행동 모니터링. 빌드 단계에서 예상치 못한 아웃바운드 DNS 쿼리나 네트워크 연결을 경고하도록 설정하면 탈취된 자격 증명이 사용되기 전에 설치 시간 멀웨어를 포착할 수 있습니다.

이것이 여러분에게 의미하는 바

개발 또는 운영 환경이 Red Hat Cloud Services npm 패키지에 의존하고 있다면, 즉각적인 우선 과제는 사용 중인 패키지 버전을 감사하고, 설치 이벤트 즈음의 네트워크 로그에서 침해 지표를 확인하며, 영향을 받은 시스템에 존재했을 수 있는 모든 클라우드 자격 증명을 교체하는 것입니다.

더 넓게 보면, 이 사건은 클라우드 자격 증명 위생 상태를 엔드투엔드로 재점검하라는 촉구입니다. 자격 증명이 개발자 머신에 파일로 저장되어 있나요? CI/CD 환경 변수는 최소 권한으로 제한되어 있나요? 패키지 게시 권한이 있는 모든 계정에 MFA가 강제되고 있나요?

공급망 공격은 신뢰를 악용하여 성공합니다. 대응책은 암묵적 신뢰에만 의존하지 않는 시스템을 구축하는 것입니다. 검증된 신원, 시간 제한된 시크릿, 행동 모니터링이 그 기반입니다. 오늘 자격 증명 감사부터 시작하고, 모든 의존성을 면밀히 살펴보아야 할 잠재적 공격 표면으로 취급하십시오.