
이미지 출처: Pexels (pexels.com) · Pexels License
퇴근 30분 전, 파일 업로드 기능을 하나 붙여야 합니다. AI에게 물었더니 코드가 술술 나옵니다. 맨 윗줄에 낯선 라이브러리 이름이 하나 보이지만 이름이 그럴듯하니 의심할 이유가 없습니다. 설치 명령을 붙여 넣습니다. 성공. 오류도 경고도 없습니다.
여기서 이미 끝났을 수도 있습니다. 그 이름이 일주일 전까지 세상에 없던 이름이고, 누군가 그 빈자리를 미리 채워 뒀다면요.
없는 이름을 자신 있게 알려 줍니다
AI가 사실이 아닌 것을 그럴듯하게 말하는 현상을 환각(hallucination)이라고 부릅니다. 보통은 틀린 날짜나 없는 논문 제목 정도를 떠올리지만, 코드에서도 똑같이 일어납니다. 존재하지 않는 라이브러리 이름을 지어내는 것이죠.
문제는 이 환각이 유독 안 들킨다는 점입니다. 틀린 날짜는 검색 한 번이면 드러나지만, 라이브러리 이름은 개발자가 원래 다 알지 못합니다. 세상에 수백만 개가 있고 매일 새로 생기니까요. python-imageutils 같은 이름이 나오면 "아, 그런 게 있나 보다" 하고 넘어가는 편이 자연스럽습니다.
그리고 이름이 진짜와 닮아 있습니다. 연구진이 확인해 보니 환각으로 나온 이름의 38%가 실제 패키지와 문자열이 어느 정도 비슷했습니다. 사람 눈으로 걸러 내라는 요구가 애초에 무리인 셈입니다.
오타를 노리던 수법의 후속편입니다
이 위험을 이해하려면 원래 있던 수법을 먼저 봐야 합니다.
오픈소스 생태계에는 타이포스쿼팅(typosquatting) 이라는 오래된 공격이 있습니다. 유명한 라이브러리 이름에서 글자 하나를 바꾼 이름을 미리 등록해 두는 것이죠. requests를 설치하려다 reqeusts라고 잘못 치는 사람을 노립니다. 손가락이 미끄러지길 기다리는 함정입니다.
슬롭스쿼팅(slopsquatting) 은 여기서 기다리는 대상만 바꿉니다. 사람의 오타가 아니라 AI의 환각을 기다립니다. AI가 지어낼 법한 이름을 미리 등록해 두고, 그 이름을 그대로 설치하는 사람을 기다리는 것이죠.
이름은 "AI slop(AI가 쏟아내는 저질 결과물)"과 typosquatting을 합친 말입니다. 파이썬 소프트웨어 재단(PSF)의 보안 연구자 세스 라슨(Seth Larson)이 2025년 4월에 처음 제안했고, 이후 개발자 커뮤니티에서 굳어졌습니다.

같은 이름 하나가 세 곳을 지나며 덫이 됩니다. 비어 있던 자리를 공격자가 채우는 순간 설치는 성공합니다.
둘의 차이가 중요합니다. 오타는 사람마다 다르게 납니다. reqeusts로 틀리는 사람도 있고 requsets로 틀리는 사람도 있으니, 공격자 입장에서는 어느 이름을 사둘지 도박입니다. 그런데 AI의 환각은 다릅니다. 여러 사람이 비슷한 질문을 하면 비슷한 가짜 이름이 나옵니다. 표적이 흩어지지 않고 한곳에 모이는 것이죠.
다섯 개 중 하나는 없는 이름이었습니다
감으로 하는 이야기가 아닙니다. 텍사스대 샌안토니오·버지니아공대·오클라호마대 연구진이 이 현상을 대규모로 측정했습니다. 논문 제목은 「We Have a Package for You!」이고, 2024년 6월 사전공개본이 나온 뒤 2025년 USENIX 보안 심포지엄에 정식 발표됐습니다.
규모부터 보겠습니다. LLM 16종에게 파이썬과 자바스크립트 코드를 짓게 해 코드 샘플 57만 6천 건을 모았고, 거기서 언급된 패키지 이름 223만 건을 하나하나 실제로 존재하는지 대조했습니다.

세 숫자 중 마지막이 가장 무겁습니다.
결과는 이렇습니다.
| 항목 | 수치 |
|---|---|
| 존재하지 않은 패키지 이름 | 44만 건 (19.7%) |
| 서로 다른 가짜 이름의 종류 | 205,474개 |
| 상용 모델 환각률 | 최소 5.2% |
| 오픈소스 모델 환각률 | 최소 21.7% |
다섯 번에 한 번꼴입니다. 다만 모델에 따라 편차가 큽니다. 성적이 가장 좋았던 GPT-4 터보는 3.59% 였고, CodeLlama 계열은 출력의 3분의 1 이상에서 없는 이름을 만들어 냈습니다. 무료로 돌리는 작은 모델일수록 위험이 커진다는 뜻이라, 비용을 아끼려는 선택이 보안 비용으로 되돌아올 수 있습니다.
같은 질문에 같은 헛것을 봅니다
앞의 숫자들보다 훨씬 중요한 발견이 따로 있습니다. 환각이 매번 랜덤하지 않다는 것입니다.
연구진은 가짜 이름이 나왔던 질문 500개를 골라 똑같이 열 번씩 다시 물었습니다. 그랬더니 43%는 열 번 모두 같은 가짜 이름을 내놨고, 58%는 열 번 안에 최소 한 번 이상 같은 이름이 다시 나왔습니다.
이 한 줄이 왜 결정적일까요. 공격자 입장에서 생각해 보면 분명해집니다. 매번 다른 가짜 이름이 나온다면 20만 개를 다 사둘 수는 없으니 공격이 성립하지 않습니다. 그런데 자주 반복되는 이름 몇 개만 골라 등록해 두면, 앞으로 같은 질문을 할 수많은 개발자가 그 이름으로 걸어 들어옵니다. 덫을 놓고 기다리기만 하면 되는 구조가 만들어지는 것이죠.
정리하면 위험의 정체는 "AI가 가끔 틀린다"가 아닙니다. AI가 일관되게 같은 방식으로 틀린다는 쪽입니다.
다만, 아직 실제 피해는 확인되지 않았습니다
여기서 균형을 잡고 가겠습니다. 이 이야기는 가능성에 대한 경고이지 지금 벌어지고 있는 사건 보도가 아닙니다.
2026년 7월 기준으로 슬롭스쿼팅을 이용한 실제 공격이 확인된 사례는 보고되지 않았습니다. 자주 인용되는 사례는 보안 연구자 바르 라냐도가 2023년에 진행한 실증 실험입니다. AI가 반복해서 추천하던 없는 이름(huggingface-cli)을 직접 비어 있는 상태로 등록해 두었더니, 석 달 만에 3만 회 넘게 다운로드됐습니다. 악성 코드는 넣지 않았고, "이런 방식이 실제로 통한다"는 것을 보여 준 실험이었습니다.
저는 이 구분이 중요하다고 봅니다. 실제 피해가 없다고 무시할 일도 아니고, 당장 큰일 난 것처럼 겁먹을 일도 아닙니다. 경로는 열려 있고 비용도 낮은데 아직 아무도 크게 쓰지 않은 상태, 그게 지금입니다. 그리고 이런 상태는 보통 오래가지 않습니다.
이 사이트에서 앞서 다룬 npm 공급망 공격이 좋은 참고가 됩니다. 그때는 개발자의 계정을 뺏어 진짜 패키지에 악성 코드를 심는 방식이었습니다. 사람을 뚫어야 했으니 품이 들었죠. 슬롭스쿼팅은 그럴 필요조차 없습니다. 아무도 등록하지 않은 이름을 그냥 등록하면 끝입니다.
설치 전 30초면 끊깁니다
앞의 그림에서 봤듯 이 공격은 AI의 환각, 공격자의 선점, 개발자의 설치가 모두 맞물려야 성립합니다. 앞의 둘은 우리가 어쩌지 못하지만 마지막 하나는 우리 손에 있습니다. 설치하는 순간에서 끊는 것이 가장 쉽고 확실합니다.
개발자라면 이렇게 합니다.
- AI가 알려준 라이브러리 이름은 설치 전에 공식 저장소에서 검색합니다. 파이썬은 pypi.org, 자바스크립트는 npmjs.com입니다.
- 검색 결과가 나왔다면 최초 배포일, 다운로드 수, 저장소 링크를 봅니다. 며칠 전에 처음 올라왔고 다운로드가 적고 깃허브 링크가 없다면 일단 멈춥니다.
- 이름이 널리 쓰이는 라이브러리와 미묘하게 다르다면 특히 의심합니다. 원래 쓰려던 것의 정확한 이름을 공식 문서에서 다시 확인하는 편이 빠릅니다.
- 팀 단위라면 의존성 목록을 사람이 리뷰하도록 규칙을 둡니다. AI가 짠 코드에서 새 라이브러리가 추가됐다면 그 줄만큼은 눈으로 봅니다.
package-lock.json이나requirements.txt처럼 버전을 고정하는 파일을 커밋해 두면, 나중에 같은 이름이 다른 내용으로 바뀌는 상황을 줄일 수 있습니다.
개발자가 아니라면 직접 할 일은 많지 않습니다. 다만 알아 둘 것은 있습니다. 요즘 앱과 서비스는 남이 만든 부품 수백 개를 조립해 만듭니다. 그중 하나가 오염되면 사용자에게까지 내려옵니다. 그래서 앱과 운영체제 업데이트를 미루지 않는 것이 여전히 가장 확실한 방어입니다.
한 장 정리
| 질문 | 답 |
|---|---|
| 슬롭스쿼팅이 뭔가요 | AI가 지어낸 없는 라이브러리 이름을 공격자가 미리 등록해 두는 공격 |
| 왜 생기나요 | AI가 코드를 지을 때 존재하지 않는 패키지를 추천하기 때문 |
| 얼마나 자주요 | 추천 패키지의 19.7%가 실재하지 않았습니다 (LLM 16종 측정) |
| 왜 위험한가요 | 같은 질문에 같은 가짜 이름이 반복돼, 공격자가 표적을 예측할 수 있습니다 |
| 실제 피해가 있었나요 | 2026년 7월 기준 확인된 공격 사례는 없습니다. 실증 실험만 있었습니다 |
| 어떻게 막나요 | 설치 전에 공식 저장소에서 이름·배포일·다운로드 수를 확인합니다 |
이것만 기억하면 됩니다.
첫째, AI가 알려준 라이브러리 이름은 코드가 아니라 추천입니다. 실행 전에 실재하는지 확인해야 합니다.
둘째, 위험한 것은 AI가 틀린다는 사실이 아니라 같은 방식으로 반복해서 틀린다는 점입니다.
셋째, 막는 비용이 아주 쌉니다. 공식 저장소에서 이름 한 번 검색하는 30초면 이 공격은 성립하지 않습니다.
참고 자료
- Joseph Spracklen 외, We Have a Package for You! A Comprehensive Analysis of Package Hallucinations by Code Generating LLMs, arXiv:2406.10279 (v1 2024-06-12, v3 2025-03-02 · USENIX Security 2025 발표) — 19.7%·205,474개·재현율 통계의 원자료
- SecurityWeek, AI Hallucinations Create a New Software Supply Chain Threat (2025-04-14)
- ITWorld Korea, 'AI 환각의 가짜 추천' 보안 위협으로 대두 (2025-04-15)
- Wikipedia, Slopsquatting — 용어 제안 시점, 2026년 7월 기준 실제 공격 사례 여부
본문의 수치는 위 연구 시점 기준이며, 모델이 갱신되면 환각률은 달라질 수 있습니다. 특정 도구나 모델을 비방할 의도는 없습니다.