
안녕하세요,
그로메트릭 입니다. 🐸
오늘은 오픈소스 생태계의 신뢰 구조 자체를 노린 새로운 공급망 공격 사례를 소개합니다. 지난 6월 11일, 소나타입(Sonatype) 보안 연구팀은 Arch Linux 사용자 저장소(AUR)에서 방치된 패키지를 탈취해 npm 악성 패키지를 설치시키는 신종 캠페인 Atomic Arch를 발견했습니다. 공격자는 관리자가 손을 놓은 오픈소스 패키지의 소유권을 넘겨받은 뒤, 빌드 스크립트(PKGBUILD)에 설치 후 스크립트를 추가해 npm 패키지 atomic-lockfile을 자동으로 내려받도록 조작했습니다.
문제는 이 패키지 안에 들어 있던 페이로드입니다. 분석 결과 자격 증명 탈취, 은닉, 디버깅 방지, 데이터 유출 기능을 갖춘 리눅스 실행 파일이 함께 설치되는 것으로 확인됐으며, eBPF(extended Berkeley Packet Filter) 기술을 활용해 프로세스와 파일을 숨기는 루트킷 수준의 은닉 기능까지 포함돼 있었습니다. 발견 직후인 6월 12일에는 npm뿐 아니라 Bun 기반 설치 경로를 쓰는 2차 공격 물결까지 확인됐고, 영향을 받은 패키지는 약 1,500개까지 늘어난 것으로 추정됩니다.
이번 사례가 특히 위협적인 이유는 공격자가 새로운 신뢰를 만들어내는 대신, 이미 검증된 오픈소스 패키지의 소유권을 그대로 가져갔다는 점입니다. 패키지명과 이력, 사용자 신뢰는 그대로인데 내부 빌드 로직만 바뀌는 구조라 기존 탐지 방식으로는 알아채기 어렵습니다. 오픈소스 의존성을 다수 사용하는 기업이라면 이번 사고를 계기로 자사 SBOM과 의존성 관리 체계를 다시 점검해 볼 필요가 있습니다.
*아래 글은 소나타입(Sonatype)의 공식 블로그 글을 번역하여 작성되었습니다.
Atomic Arch가 노린 것은 '소유권'이었다
요약
- 2026년 6월 11일, Sonatype 연구원들은 Arch User Repository(AUR)의 버려진 패키지를 표적으로 삼는 새로운 공격 캠페인인 Atomic Arch를 발견했습니다. 이 캠페인에서 공격자는 정상적으로 운영되다 버려진 AUR 프로젝트를 탈취하여 PKGBUILDS 파일을 수정하고 설치 과정에서 악성 npm 패키지를 설치합니다.
- 악성 종속성인 atomic-lockfile을 분석한 결과, 자격 증명 수집, 은밀성, 디버깅 방지 및 잠재적인 데이터 유출과 관련된 기능을 포함하는 번들 Linux 페이로드가 발견되었습니다.
- 2026년 6월 12일, 두 번째 공격이 발생했는데, 이번에는 npm만을 사용하는 대신 Bun 기반 설치 경로를 일부 감염된 패키지에 적용했습니다. 연구원들은 현재 이 공격과 관련된 패키지들을 여러 개 확인했는데, 여기에는 atomic-lockfile, js-digest, lockfile-js 등이 포함됩니다.
- 예비 분석 결과, 이번 캠페인은 여러 차례에 걸쳐 약 1,500개의 소포에 영향을 미칠 수 있는 것으로 나타났습니다.
2026년 6월 12일 업데이트: Sonatype의 최초 발표 이후, 연구원들은 Atomic Arch와 관련된 것으로 추정되는 추가적인 활동을 관찰했습니다. 여기에는 새로운 악성 패키지, 대체 설치 방식, 그리고 영향을 받는 AUR 패키지 수의 상당한 증가가 포함됩니다. 분석은 계속 진행 중이며, 새로운 정보가 나오는 대로 이 게시물을 업데이트할 예정입니다.
소나타입 연구원들은 아치 사용자 저장소(AUR)의 버려진 패키지를 표적으로 삼는 '아토믹 아치(Atomic Arch)'라는 악성 패키지 캠페인을 발견했습니다.
소나타입 엔지니어 에야드 하산이 발견한 이 공격 캠페인은 관리자가 방치한 정상적인 AUR 프로젝트의 제어권을 탈취하는 방식으로 진행됩니다. 제어권을 확보한 후에는 패키지 빌드 지침을 수정하여 atomic-lockfile이라는 악성 npm 패키지를 설치하고, 이를 통해 피해 시스템에 추가 페이로드를 배포합니다.
소나타입 리서치 랩은 공격자의 동기를 파악하기 위해 악성 atomic-lockfile 종속성을 자세히 조사했으며, Atomic Arch를 Sonatype-2026-003775 로 추적하고 CVSS 8.7을 부여했습니다. 캠페인 분석은 현재 진행 중입니다. 두 번째 공격에서 발견된 악성 NPM 패키지는 Sonatype-2026-003808 로 추적하고 있습니다 . 소나타입은 추가 정보가 나오는 대로 이 블로그를 업데이트할 예정입니다.
Atomic Arch는 공급망 위험이 증가하고 있음을 강조합니다.
공격자는 더 이상 신뢰를 구축할 필요가 없습니다. 때로는 신뢰를 그대로 물려받을 수도 있습니다.
악성 패키지 하나가 만든 대규모 파급력
이번 공격에서 공격자는 AUR에 등록된 패키지 자체를 건드리지 않았습니다. 대신 패키지의 빌드 스크립트인 PKGBUILD에 설치 후 스크립트를 추가해, 패키지 설치 과정에서 npm install atomic-lockfile minimist chalk 명령이 자동 실행되도록 만들었습니다. 그 결과 사용자는 신뢰하던 패키지를 설치하거나 업데이트하는 것만으로 악성 npm 패키지 atomic-lockfile을 함께 내려받게 됩니다.
이 방식은 과거 axios 패키지가 탈취되어 plain-crypto-js@4.2.1이라는 악성 의존성이 추가됐던 사례와 유사합니다. 신뢰받는 패키지 자체에는 악성 코드가 없기 때문에, 기존 탐지 도구를 효과적으로 우회할 수 있다는 공통점이 있습니다.
처음에는 캠페인 영향 범위가 수십 개 패키지 수준으로 보였지만, 발견 24시간 만에 상황이 빠르게 악화됐습니다.
- 추가로 발견된 악성 패키지: js-digest, lockfile-js
- 설치 경로 다변화: npm뿐 아니라 Bun 기반 설치 경로를 사용하는 공격 물결도 확인
- 영향 범위 확대: 영향받은 AUR 패키지가 수백 개 추가되며 총 1,500개 수준까지 늘어난 것으로 추정
소나타입은 영향을 받은 호스트는 이미 침해된 것으로 간주해야 한다고 강조합니다. 2차 페이로드가 이미 실행됐다면, 단순히 패키지를 제거하는 것만으로는 충분하지 않을 수 있습니다.
Atomic Arch는 개발자의 신뢰를 이렇게 악용했다
소나타입 연구팀은 PKGBUILD가 설치하는 npm 패키지 atomic-lockfile을 직접 분석했습니다.
이 패키지는 package.json에 정의된 preinstall 스크립트를 통해 네이티브 리눅스 실행 파일을 함께 실행하도록 만들어져 있었습니다.
분석 과정에서 eBPF(extended Berkeley Packet Filter) 프로그램(scales.bpf.c)과 libbpf API 호출 흔적이 확인됐습니다.
- bpf_object__load
- bpf_program__attach
- bpf_map__pin
eBPF(extended Berkeley Packet Filter)는 커널 내부에서 높은 권한으로 실행되는 리눅스 기술입니다. 정적 분석 결과, 이 바이너리는 프로세스·파일·네트워크를 은닉하는 기능을 가지고 있었으며, 디렉터리 항목을 조회하는 시스템 콜인 getdents64()를 후킹하는 동작과 hidden_pids, hidden_names, hidden_inodes라는 이름의 자료구조도 함께 발견됐습니다.
또한 NETLINK_SOCK_DIAG 등 리눅스 소켓 진단 인터페이스 관련 기능, PTRACE_ATTACH·PTRACE_SEIZE를 이용한 디버거 탐지 로직도 포함돼 있어, 분석과 탐지를 어렵게 만들려는 의도가 뚜렷했습니다.
바이너리 내부에는 GitHub 자격 증명, SSH 관련 파일, HashiCorp Vault 토큰, 브라우저 쿠키 데이터베이스, Slack·Discord·Microsoft Teams·Telegram 데이터 저장소를 가리키는 참조도 포함돼 있었습니다. 이는 자격 증명 및 토큰 탈취를 목적으로 한 기능임을 강하게 시사합니다.
여기에 더해 압축 파일 처리, 멀티파트 폼 데이터 처리, POST /upload를 활용한 HTTP 업로드 기능까지 확인되면서, 수집한 데이터를 외부로 유출할 수 있는 역량도 함께 갖추고 있는 것으로 나타났습니다.
AUR의 관리 구조가 만든 공격자의 기회
AUR(Arch User Repository)은 공식 Arch 저장소에 포함되지 않은 소프트웨어를 커뮤니티 구성원이 직접 패키지 정의로 관리하는 저장소입니다. 관리자가 패키지를 방치하면 해당 패키지는 orphaned(소유자 없음) 상태가 되며, 다른 사용자가 소유권을 요청해 가져갈 수 있습니다.
Atomic Arch 캠페인에서 공격자는 바로 이 절차를 악용해, 커뮤니티가 이미 신뢰하던 패키지의 소유권을 확보한 것으로 보입니다. 패키지는 기존 이름과 이력을 그대로 유지하지만, 빌드 지침에 대한 통제권만 공격자에게 넘어가는 셈입니다.
사용자 입장에서는 평소처럼 익숙하고 신뢰하던 출처에서 패키지를 설치하거나 업데이트하는 것뿐이라는 점이 이번 공격의 핵심 위험 요인입니다.
진짜 위협은 패키지 코드 안에 있지 않았다
Atomic Arch가 주는 가장 중요한 시사점은 신뢰 모델 자체에 있습니다.
- 전통적인 공급망 공격: 개발자에게 새로운 무언가를 설치하도록 유도
- 타이포스쿼팅(typosquatting) 공격: 오타와 같은 실수를 악용
- 브랜드재킹(brandjacking) 공격: 익숙함을 악용
- Atomic Arch: 소유권 자체를 악용
공격자는 신뢰를 처음부터 새로 쌓지 않았습니다. 이미 검증을 마친 프로젝트를 인수했을 뿐입니다. 이로 인해 개발자가 평소 소프트웨어를 평가할 때 의존하던 경고 신호들이 크게 줄어들게 됩니다.
오픈소스 생태계가 자원봉사 형태의 메인테이너와 커뮤니티 운영에 계속 의존하는 한, 패키지 소유권 이전 절차는 신뢰받는 배포 채널을 내부에서부터 무너뜨리려는 공격자에게 점점 더 매력적인 표적이 될 수 있습니다.
출처
소나타입 블로그 : Atomic Arch: Attackers Hijack Trusted AUR Packages to Deliver Rootkit-Like Malware
'Security Insights & Trends' 카테고리의 다른 글
| binding.gyp 악용, 탐지 우회한 npm 공급망 공격: Shai-Hulud Miasma (0) | 2026.06.10 |
|---|---|
| [탈클라우드 시대 4편] 하이브리드 인프라의 미래: 홈랩 경험이 만드는 차세대 클라우드 전문가 (0) | 2026.05.29 |
| AI 취약점 폭풍의 서막, Claude Mythos와 소프트웨어 공급망 보안의 진화 (0) | 2026.05.27 |
| [탈클라우드 시대 3편] 홈서버 제로 트러스트: 포트포워딩의 위험성과 Cloudflare 방어 전략 (0) | 2026.05.22 |
| [탈클라우드 시대 2편] 프라이빗 AI 아키텍처: 로컬 LLM과 Tailscale 초연결 생태계 (0) | 2026.05.13 |