Arch Linux AUR 침해 사고: 400+ 패키지가 정보 탈취 도구와 루트킷에 감염됨

400개 이상의 Arch User Repository (AUR) 패키지가 대규모 공급망 공격에서 침해되었습니다. 신뢰할 수 있는 유지 관리자를 가장한 악의적인 행위자가 고아 패키지를 입양하고 악성 preinstall 스크립트를 주입하여 정보 탈취 도구와 eBPF 루트킷을 배포했습니다.

공격 벡터: 고아 패키지 입양

이 침해는 AUR의 기본 설계 기능을 활용했습니다: 어떤 사용자도 '입양'할 수 있는 패키지는 유지 관리되지 않음(고아)으로 표시된 패키지입니다. 공격자는 이 메커니즘을 사용하여 버려진 패키지의 입양을 자동화하고 악성 업데이트를 푸시했습니다.

사용자를 속이기 위해 공격자는 알려진 신뢰할 수 있는 유지 관리자 계정을 위조하여 악성 커밋이 합법적으로 보이도록 했습니다. 이 공격은 진행 중이라고 설명되며, 캠페인이 진행됨에 따라 침해 지표(IoCs)가 변경됩니다.

기술적 실행 및 페이로드

악성코드는 preinstall 스크립트를 포함하는 수정된 PKGBUILD 파일을 통해 배포되었습니다. 공격은 다양한 변형을 통해 진화했습니다:

변형 1: npm 기반 배포

첫 번째로 확인된 변형에서, preinstall 스크립트는 npm을 사용하여 atomic-lockfile이라는 악성 패키지를 설치했습니다. 이 패키지는 NPM에서 사용자 herbsobering에 의해 유지 관리되었습니다.

변형 2: bun 기반 배포

공격이 진화함에 따라, 공격자가 js-digest라는 악성 패키지를 설치하기 위해 bun 사용으로 전환했다는 보고가 있습니다. 이 전환은 공격자가 탐지를 피하거나 간단한 npm 기반 우회 방식을 우회하기 위해 적극적으로 적응하고 있음을 시사합니다.

루트킷 및 정보 탈취 도구 기능

단순한 데이터 탈취를 넘어, 이 캠페인은 eBPF 루트킷의 배포로 주목받고 있습니다. 정보 탈취 도구와 커널 수준 루트킷의 조합은 공격자가 지속성을 유지하고 시스템 관리자로부터 자신의 활동을 숨길 수 있게 하여, 감염된 후 시스템을 신뢰할 수 있는 가능성을 제거합니다.

조치 및 복구

Arch Linux 사용자라면 노출을 확인하고 완화하기 위해 다음 단계가 권장됩니다:

1. 감염된 패키지 식별

사용자는 pacman -Qm을 사용하여 설치된 AUR 패키지를 식별할 수 있습니다. 특정 침해된 패키지를 확인하기 위해 커뮤니티에서 개발한 스크립트가 제공되었습니다:

2. 시스템 복구

이 공격은 루트킷을 포함하므로 표준 정리는 충분하지 않습니다. 권장 절차는 모든 자격 증명을 순환하고 Arch Linux를 전체 시스템으로 재설치하는 것입니다.

커뮤니티 분석 및 토론

이 사건은 AUR의 신뢰 모델에 대해 Arch 커뮤니티 내에서 상당한 논의를 촉발했습니다.

"Review Every PKGBUILD" 의무

많은 사용자는 AUR이 항상 사용자 생성 콘텐츠의 집합이었다고 주장하며, 사용자가 설치를 위해 모든 PKGBUILD와 업데이트를 검토하는 책임이 있다고 주장합니다.

"사용자는 AUR이 단순히 사용자 생산 PKGBUILD들의 집합이라는 것을 인식해야 합니다. AUR에서 설치하는 모든 PKGBUILD의 소스를 검토해야 합니다, 완전히.

제안된 구조적 변경

다른 커뮤니티 구성원들은 유사한 공격을 방지하기 위해 AUR의 거버넌스 변경을 제안했습니다:

  • Adoption Warnings: AUR 헬퍼(예: yay 또는 paru)에서 패키지 소유권이 변경될 때 경고를 구현합니다.
  • Trusted User Review: 패키지가 병합되기 전에 "Trusted User"에 의해 검토되어야 하는 커뮤니티 저장소 모델로 이동합니다.
  • Adoption Restrictions: 알림이나 검토 없이 고아 패키지를 입양할 수 있는 사용자의 능력을 제한합니다.

NPM/Bun의 역할

NPM 패키지가 공급망 공격의 전달 메커니즘으로 자주 사용된 데 대한 광범위한 불만이 있으며, 이로 인해 일부 사용자는 프로덕션 시스템에서 npm 또는 bun의 존재를 높은 보안 위험으로 취급해야 한다고 제안합니다.

Sources