Arch Linux AUR Malware Incident: Over 1,500 Packages Affected

Arch Linux 개발자들은 Arch User Repository (AUR)에서 1,500개 이상의 패키지가 침해된 보안 사고 이후 알려진 모든 악성 커밋을 삭제했습니다. 이 사고는 400개의 침해된 패키지에 대한 보고로 시작되었으나, 최종적으로 영향을 받은 사용자 기여 패키지의 총 수는 1,579개로 늘어났습니다.

Impact and Remediation

Arch Linux 개발자들은 악성 커밋을 제거한 후 사고가 현재 통제 하에 있다고 믿고 있습니다. 그러나 영향을 받은 패키지의 공식 목록은 영향을 받은 소프트웨어의 "many (but not all)"를 포함하고 있다고 설명되어 있어, 침해된 패키지의 총 수가 1,579개보다 더 많을 수 있음을 시사합니다.

Security Risks of the AUR

공식 Arch Linux 저장소와 달리, AUR은 커뮤니티 주도형이며 사용자가 기여하는 저장소입니다. 이러한 구조는 검증되지 않은 소프트웨어를 설치하는 데 있어 높은 위험 환경을을 만듭니다.

기술 커뮤니티 구성원들은 설치 전 PKGBUILD 파일을 검토하는 것의 중요성을 강조했습니다. 한 사용자가 언급했듯이:

As always a fair reminder to not install random 3rd party packages/libraries/applications without reviewing them, especially when there is zero vetting.

이러한 위험을 완화하기 위해, 사용자들은 설치 전 패키지를 검토하기 위해 rua와 같은 도구를 사용하거나, 이 과정을 자동화하는 AUR 래퍼(wrapper) 사용을 피할 것을 권장합니다. 이러한 래퍼들은 중요한 수동 검토 단계를 건너뛸 수 있기 때문입니다.

Community-Suggested Detection and Recovery

시스템 점검에 대한 공식 가이드라인이 제한적이었기 때문에, 커뮤니티 구성원들은 잠재적인 감염을 식별별하기 위한 방법을 공유했습니다. 여기에는 다음이 포함됩니다:

  • Checking Foreign Packages: pacman -Qmi를 사용하여 외부 패키지를 나열하고 출력을 영향을 받은 패키지 목록과 비교합니다.
  • Searching for Malicious Dependencies: package.json, package-lock.json, 그리고 ~/.npm 디렉토리 내에서 atomic-lockfile을 검색하기 위해 grep 명령어를 실행합니다.
  • Reviewing Logs: /var/log/pacman.log에서 악성 패키지에 대한 언급을 검색합니다.
  • External Scripts: 사용자들이 감염 여부를 확인할 수 있도록 커뮤니티에서 생성한 저장소(lenucksi/aur-malware-check)가 제공되었습니다.

Proposed Systemic Improvements

이번 사고를 계기로 커뮤니티는 AUR 보안을 개선하기 위해 몇 가지 구조적 변화를 제안했습니다:

  • Vulnerability Scanning: npm과 유사하게 패키지 게시 시 자동화된 vuln-scanning을 구현합니다.
  • Adoption Policies: 전술적 탈취를 방지하기 위해 사용자가 고아(orphaned) 패키지를 입양(adopt)할 수 있는 능력을 제한합니다.
  • Packaging Helper Updates: pnpm에서 볼 수 있는 기능과 유사하게, 사용자가 최소 패키지 연령 요구 사항을 설정할 수 있도록 AUR 헬퍼를 업데이트합니다.

Sources