빠른 요약

  • 악성 arrayref 릴리스는 컴파일 시점에 백도어를 실행한 것으로 보고됐다. Rust 팀은 프로덕션 런타임뿐 아니라 빌드 도구가 실행하는 코드까지 의존성 보안 범위에 넣어야 한다.
  • 빌드 에이전트에는 소스, 토큰, 네트워크 권한이 있을 수 있다. 컴파일 시점 침해는 배포 전에 접근 경로를 만들 수 있다.
  • Search Cargo.lock for arrayref and correlate findings with build logs and runner privileges.

무슨 일이 있었나

런타임만 보는 의존성 검토로는 부족하다. crate는 바이너리가 프로덕션에 도달하기 전, 컴파일러와 빌드 도구가 이를 처리하는 단계에서 환경에 영향을 줄 수 있다.

Wiz는 Rust crate arrayref 등의 악성 버전이 컴파일 시점에 백도어를 실행했다고 보고했다. 보고서는 최근 DPRK 공급망 캠페인과의 인프라 중복도 언급하지만, 이는 조사 단서이지 모든 사건의 행위자 귀속 근거는 아니다.

컴파일 시점은 신뢰 모델을 바꾼다

CI 러너에는 소스 체크아웃, 의존성 캐시, 환경 변수, 때로는 패키지 배포 자격 증명까지 있다. 따라서 빌드 중 처리되는 의존성은 빌드 환경에 영향을 미칠 수 있는 코드로 취급해야 한다.

단기 키와 통제된 네트워크 경로를 갖춘 격리된 CI 러너
단기 키와 통제된 네트워크 경로를 갖춘 격리된 CI 러너

프로덕션 실행이 없었다고 노출이 없었던 것은 아니다. 의심스러운 아티팩트를 처리한 파이프라인은 별도로 조사할 가치가 있다.

해석된 아티팩트 기준으로 Cargo를 점검하라

  1. 모든 저장소의 Cargo.lock에서 관련 버전, 체크섬, 빌드 시점을 찾는다.
  2. 조사 범위의 아티팩트로 Rust를 빌드한 CI 작업을 나열한다.
  3. 러너의 시크릿, 네트워크 egress, 레지스트리 쓰기, 릴리스 권한을 분류한다.
  4. 신뢰할 수 있는 지침을 반영한 뒤 깨끗한 캐시에서 다시 빌드한다.

crate를 무해하다고 가정하지 말고 빌드 권한을 줄여라

일회성 러너, 작업 단위 시크릿, 분리된 배포 권한은 침해된 의존성의 영향을 제한한다. egress 제어와 접근 로그는 패치를 대체하지는 않지만 조사 가능성을 높인다.

다음으로 볼 항목

arrayref 연구의 기술 범위를 추적하고, 새 정보는 내부 로그와 대조하라.

5분 요약

  • 컴파일 시점도 별도의 공격 표면이다.
  • Cargo.lock과 CI 로그로 실제 범위를 확인한다.
  • 시크릿이 있는 러너부터 조사한다.
  • 깨끗한 재빌드와 최소 권한이 중요하다.
`,`recommendedAction`:`Cargo.lock의 arrayref 항목을 찾고 각 항목을 CI 실행, 러너, 빌드가 접근한 시크릿과 연결하세요.`,`seoTitle`:`컴파일 시점 Rust 공급망 보안`,`seoDescription`:`악성 Rust crate에 대응하기 위해 Cargo.lock, CI 러너, 시크릿, 깨끗한 재빌드를 점검하는 방법입니다.`}}},

참고 자료

개발자가 주목해야 하는 이유

빌드 에이전트에는 소스, 토큰, 네트워크 권한이 있을 수 있다. 컴파일 시점 침해는 배포 전에 접근 경로를 만들 수 있다.

  1. 1Search Cargo.lock for arrayref and correlate findings with build logs and runner privileges.