AUR 패키지 공급망 공격 — 408개 감염과 eBPF 루트킷이 보여준 것
2026년 6월, Arch Linux의 AUR(Arch User Repository) 저장소에서 408개 이상의 패키지가 정보 탈취기와 eBPF 루트킷에 감염된 정황이 확인됐다. 이번 사건은 단순한 패키지 변조가 아니라, 고아 패키지를 사칭해 인수한 뒤 npm과 Bun을 악용해 멀웨어를 설치하고 커널 수준에서 흔적을 지우는 공급망 공격의 전형적인 사례로 기록된다. 2026년 6월 현재 Arch Linux 측은 모든 악성 커밋을 제거한 상태지만, AUR의 구조적 취약점은 여전하다.

공격 개요 — 고아 패키지 사칭과 의존성 침투
이번 공격의 핵심 진입점은 AUR의 "고아 패키지 채택" 메커니즘이다. AUR은 관리되지 않는 패키지를 표시하면 누구나 PKGBUILD와 관련 파일을 변경해 제출할 수 있다. 공격자는 신뢰받는 메인테이너를 사칭해 채택을 신청한 뒤, 인수 직후 악성 커밋을 업로드했다.
• 초기 감염 경로: preinstall 스크립트가 npm을 실행해 악성 페이로드 atomic-lockfile을 설치하도록 수정됨
• 후기 감염 경로: Bun으로 전환해 악성 js-digest를 설치 (npm 기반 우회책 무력화)
• 페이로드: 정보 탈취 + eBPF 루트킷 (커널 수준에서 프로세스/파일 은폐)
Socket.dev의 자료에 따르면 atomic-lockfile 패키지는 134회 다운로드에 그쳤지만, 감염 범위가 408개 이상이라는 점에서 잠재적 피해는 작지 않다.
공격 메커니즘 — npm에서 Bun으로의 전환
초기 침해는 preinstall 스크립트 안에서 npm install을 호출하는 단순한 형태였다. 그러나 Arch 보안팀과 AUR 메인테이너들이 npm 페이로드를 차단하기 시작하면서 공격자는 런타임을 Bun으로 교체했다. Bun은 JavaScript/TypeScript 런타임으로, npm 호환성을 갖지만 별도의 패키지 저장소 없이도 스크립트를 직접 실행할 수 있다는 점이 악용됐다. preinstall 단계에서 Bun이 호출되면 의존성 설치 과정이 시스템 권한으로 실행되므로, 감염된 AUR 패키지를 설치한 사용자는 자신의 홈 디렉터리 정보, SSH 키, 브라우저 세션 토큰이 외부 C2 서버로 유출될 수 있다. Socket.dev 보고서에 따르면 js-digest 패키지는 Bun 런타임을 통해 실행되며, 감염 시점부터 네트워크 트래픽에서 비정상적인 outbound 패턴이 관측된다. NPM은 js-digest를 즉시 제거했지만, Bun 기반 페이로드는 표준 패키지 레지스트리에 등록되지 않으므로 사후 차단이 더 어렵다.
침해 지표와 탐지 방법
Arch 사용자가 즉시 점검해야 할 침해 지표(IoC)는 다음과 같다.
• SHA256: 7883bda1ff15425f2dbe622c45a3ae105ddfa6175009bbf0b0cad9bf5c79b316

• eBPF 의심 맵 이름: hidden_pids, hidden_names, hidden_inodes
• bpftool map list 명령으로 비정상 맵 탐지 가능
NPM은 js-digest를 제거했지만, Bun 기반으로 우회한 후속 변종이 보고되고 있어 단순 차단 목록만으로는 부족하다.
운영자용 가드레일과 결론
2026년 6월 기준으로 AUR을 안전하게 사용하려면 다음 원칙이 필수다.
1. 모든 PKGBUILD 소스를 직접 읽고 빌드하라. AUR 헬퍼(yay, paru)의 검토 단계를 무시하지 마라.
2. 감염 패키지가 발견되면 시스템을 보존한 채 포렌식 조사 후 Arch를 재설치하라. 루트킷 가능성으로 신뢰성을 보장할 수 없다.
3. 모든 자격 증명을 교체하고 outbound Tor 트래픽을 차단하라.
4. AUR 헬퍼에 "최근 소유자가 바뀐 패키지" 경고 기능을 요청해라. 고아 패키지 인수 정책 자체의 개선이 필요하다.
이번 사건은 오픈소스 생태계 전반에 동일한 위협이 존재함을 보여준다. PyPI, npm, Docker Hub, 브라우저 확장 모두 의존성 사슬에 페이로드를 숨길 수 있다. 99.99%의 사용자가 모든 코드를 검토할 수는 없으므로, 샌드박싱과 권한 모델의 강화가 현실적 대안이다. 2026년 6월을 기점으로, AUR의 고아 패키지 인수 구조는 재설계될 가능성이 높다. AUR 헬퍼 측에서도 최근 소유자가 바뀐 패키지에 대해 큰 경고를 표시하는 패치가 paru와 yay 커뮤니티에서 논의되고 있다. 사용자 입장에서는 AUR의 PKGBUILD를 직접 빌드하는 방식을 채택해, 의존성 그래프 전체를 자신의 통제하에 두는 것이 가장 견고한 방어선이다.
'AI 뉴스' 카테고리의 다른 글
| 그냥 ChatGPT에 업로드하면? — 프리랜서 번역가가 본 AI의 한계 (0) | 2026.06.14 |
|---|---|
| 이메일의 미래 — SPF·DKIM·DMARC가 AI 시대 신뢰 계층이 된 이유 (0) | 2026.06.14 |
| Show GN: 다 푼 문제지를 깨끗하게 만들어주는 AI — 학부모 주말 바이브 코딩의 결과물 (0) | 2026.06.14 |
| [주간 기술 요약] 2026년 23주차 — AI · iOS · 자동화 트렌드 (0) | 2026.06.14 |
| 코드 라인 수가 더 나은 홍보 담당자를 얻었다 — 2026년 AI 코딩 효율성 논란 정리 (0) | 2026.06.14 |