슬롭스쿼팅
더 많은 작업
- Slopsquatting; 슬롭스쿼팅
- LLM이 코드에서 지어낸, 실제로는 없는 패키지 이름을 공격자가 먼저 등록해 악성 패키지를 설치하게 만드는 공급망 공격
슬롭스쿼팅(slopsquatting)은 코드 생성 대형 언어 모델이 존재하지 않는 패키지를 추천하는 현상(패키지 환각, package hallucination)을 노린 소프트웨어 공급망 공격이다. 모델이 그럴듯한 가짜 패키지 이름을 반복해서 내놓는다면, 공격자는 그 이름으로 PyPI나 npm에 악성 패키지를 올려 두기만 하면 된다. 생성된 코드나 설치 명령을 그대로 실행한 개발자, 또는 사람 확인 없이 의존성을 설치하는 코딩 에이전트가 피해자가 된다.
이름은 저품질 AI 생성물을 뜻하는 "슬롭"(AI 슬롭)과 오타를 노리는 타이포스쿼팅(typosquatting)을 합친 말이다. 파이썬 소프트웨어 재단(PSF)의 보안 담당 개발자 세스 라슨(Seth Larson)이 2025년 4월 무렵 만들었고, 앤드루 네스빗(Andrew Nesbitt)의 마스토돈 글로 퍼졌다.[1][2] 국내 언론도 음차 "슬롭스쿼팅"으로 쓴다. 도메인 이름을 선점하는 사이버스쿼팅과 같은 발상이다.
가장 큰 규모의 측정은 Spracklen 외의 연구다(USENIX Security 2025). 16개 코드 생성 모델로 파이썬·자바스크립트 코드 표본 57만 6,000개를 만들어 분석했다.[3]
- 추천된 패키지 약 223만 개 중 19.7%가 존재하지 않는 패키지였고, 서로 다른 가짜 이름은 20만 5,474개였다.
- 상용 모델의 평균 환각률은 5.2% 이상, 공개 모델은 21.7% 이상이었다. 가장 낮은 것은 GPT-4 Turbo(3.59%)였다.
- 언어별로는 파이썬 15.8%, 자바스크립트 21.3%였다. 온도(temperature)를 높이면 환각률이 올랐다.
- 반복성: 환각을 낸 프롬프트 500개를 10번씩 다시 물었을 때 43%는 10번 모두 같은 가짜 이름을 냈고, 58%는 두 번 이상 냈다. 공격자가 노릴 이름을 예측할 수 있다는 뜻이다.
- 가짜 이름 중 실제 패키지와 편집 거리 1~2인 오타형은 13.4%뿐이었고 48.6%는 거리 6 이상이었다. 오타를 노리는 기존 방어로는 잡기 어렵다. 파이썬 가짜 이름의 8.7%는 자바스크립트에 실제로 있는 패키지였다.
- 완화: 검색 증강, 자기 점검, 미세 조정으로 환각률을 낮출 수 있었다. 예를 들어 실험에 쓴 딥시크 모델은 미세 조정으로 16.14%에서 2.66%가 되었지만, 코드 정확도(HumanEval pass@1)가 51.4%에서 25.3%로 떨어졌다.
바 라냐도(Bar Lanyado)는 불칸 사이버(Vulcan Cyber)에서 했던 ChatGPT 패키지 환각 연구를 이어, 라소 시큐리티(Lasso Security)에서 2024년 3월 GPT-3.5, GPT-4, 제미나이, 코히어 모델에 개발 질문 약 4만 7,800개를 던져 환각된 패키지 이름을 모았다. 이 가운데 모델들이 반복해서 지어낸 파이썬 패키지 이름 huggingface-cli(허깅 페이스 허브의 명령줄 도구 이름과 같지만, 실제 설치 명령은 pip install -U "huggingface_hub[cli]"다)로 빈 패키지를 PyPI에 올렸더니, 약 3개월 동안 자동 스캐너를 뺀 실제 내려받기가 3만 회를 넘었다. 알리바바의 연구 저장소 README에도 이 패키지를 설치하라는 안내가 들어가 있었다.[4] 악성 코드가 없는 실험이었지만, 공격자가 같은 일을 했다면 그대로 공급망 공격이 되었을 것이다. 2025년 4월 소켓(Socket)과 6월 트렌드마이크로의 분석도 확인된 실제 공격 사례 없이 위험으로 다뤘다.[1][5] MITRE ATLAS는 이 연구를 사례 연구(AML.CS0022)로 싣고, 환각된 패키지·URL·회사 이름·메일 주소를 공격자가 만들어 두는 기법을 환각된 개체 게시(Publish Hallucinated Entities, AML.T0060)로 분류한다.[6]
같은 공격은 패키지 밖으로도 넓어졌다. 팔로알토 네트웍스는 2026년 6월 LLM에 주요 브랜드와 닮은 URL 210만 개를 만들게 했는데, 그중 1만 3,000개 넘는 도메인이 이미 등록되어 악성으로 확인되었고 자주 환각되는 도메인 약 25만 개는 아직 등록되지 않은 상태였다.[2]
- 생성된 코드의 의존성은 설치 전에 저장소에서 실제로 있는지, 언제 등록되었는지, 관리자와 내려받기 수가 어떤지 확인한다. 최근에 등록된 낯선 패키지는 의심한다.
- 사내 패키지 미러나 허용 목록을 두고, 의존성을 잠금 파일과 해시로 고정한다.
- 코딩 에이전트가 새 패키지를 설치할 때는 사람 승인을 받게 하고, 일회용 컨테이너나 샌드박스에서 설치·실행한다.[5]
- SBOM을 만들어 서명하고 CI에서 의존성 취약점·악성 패키지를 검사한다.
- 모델 쪽에서는 낮은 온도, 패키지 목록을 검색해 근거로 주는 검색 증강이 환각을 줄인다.[3]
- 저장소 운영자 쪽에서는 존재하지 않는 이름에 대한 갑작스러운 요청 증가를 보고 LLM발 수요를 짐작할 수 있다고 라슨은 설명했다.[2]
- ↑ 1.0 1.1 Sarah Gooding, The Rise of Slopsquatting: How AI Hallucinations Are Fueling a New Class of Supply Chain Attacks, Socket, 2025-04-08.
- ↑ 2.0 2.1 2.2 David Berreby, Crooks Are Learning to Love AI Hallucinations, IEEE Spectrum, 2026-08-13.
- ↑ 3.0 3.1 Joseph Spracklen 외, 〈We Have a Package for You! A Comprehensive Analysis of Package Hallucinations by Code Generating LLMs〉, USENIX Security 2025. arXiv:2406.10279
- ↑ Bar Lanyado, Diving into AI Package Hallucinations, Lasso Security, 2024-03-28.
- ↑ 5.0 5.1 Trend Micro, Slopsquatting: When AI Agents Hallucinate Malicious Packages, 2025-06-05
- ↑ MITRE ATLAS AML.CS0022, ChatGPT Package Hallucination; 기법 AML.T0060은 ATLAS 데이터 2026.09 기준.