본문 바로가기
보안2026년 8월 21일6분 읽기

슬롭스쿼팅(Slopsquatting) — AI가 지어낸 가짜 패키지 이름을 노리는 새 공급망 공격

YS
김영삼
조회 5
슬롭스쿼팅(Slopsquatting) — AI가 지어낸 가짜 패키지 이름을 노리는 새 공급망 공격

슬롭스쿼팅(Slopsquatting)은 AI 코딩 도구가 존재하지도 않는 패키지 이름을 그럴듯하게 지어내는(환각) 습성을 노린 공급망 공격이다. 공격자가 그 '지어낼 법한' 이름을 미리 알아내 악성 패키지로 등록해 두면, AI의 추천을 그대로 믿은 개발자가 자기 손으로 악성코드를 설치하게 된다. 기존 타이포스쿼팅이 사람의 오타를 노렸다면, 슬롭스쿼팅은 기계의 착각을 노린다.

이름은 'AI 슬롭(slop, 대충 쏟아낸 결과물)'과 '스쿼팅'을 합친 말이다. 처음엔 연구자들의 호기심 어린 실험이었는데, LLM에게 코드를 시켜 보면 실제로 없는 라이브러리를 자신 있게 import 하는 일이 반복적으로 관찰됐다. 문제는 이 환각이 무작위가 아니라 같은 질문에 같은 가짜 이름이 반복해서 나온다는 점이다. 반복된다는 건, 미리 선점할 수 있다는 뜻이다.

공격자는 개발자를 속일 필요가 없다.
AI가 대신 속여준다.

코딩 어시스턴트가 pip install 명령까지 붙여 추천하면, 그 이름의 진위를 의심하는 개발자는 드물다. 신뢰의 화살표가 사람에서 모델로 옮겨간 것이 이 공격의 핵심이다.

환각반복
같은 가짜 이름이
재현됨
선점가능
미리 등록해
기다리는 공격
install시점
설치 스크립트가
즉시 실행
바이브코딩
검증 없이
붙여넣는 관행

타이포스쿼팅과 무엇이 다른가

둘 다 '엉뚱한 패키지를 설치하게 만든다'는 결과는 같다. 하지만 미끼를 다는 방식이 완전히 다르다. 타이포스쿼팅은 requestsreqeusts로 잘못 친 사람을 노린다. 그래서 인기 패키지와 철자가 비슷한 이름을 주로 쓴다. 슬롭스쿼팅은 애초에 존재하지 않는, 그러나 '있을 것 같은' 이름을 노린다. 예컨대 특정 작업을 도와줄 것 같은 자연스러운 이름을 AI가 만들어내면 그게 곧 미끼가 된다.

항목슬롭스쿼팅타이포스쿼팅
노리는 대상AI의 환각을 믿는 개발자오타를 낸 개발자
패키지 이름존재하지 않던 '그럴듯한' 이름인기 패키지와 비슷한 철자
트리거코딩 어시스턴트의 추천손가락 실수
확산 속도AI 사용 늘수록 가속비교적 일정

왜 하필 지금 위험한가

이른바 '바이브 코딩'이 퍼지면서 개발자가 AI가 뱉은 코드를 통째로 붙여넣고, 터미널이 시키는 대로 설치 명령을 실행하는 흐름이 일상이 됐다. 예전엔 낯선 패키지를 만나면 레지스트리에서 다운로드 수와 관리자를 확인하는 습관이 있었는데, AI가 자신 있게 추천하면 그 검증 단계를 건너뛰기 쉽다. 신뢰가 자동화되면서 검증도 함께 사라진 것이다.

게다가 많은 패키지 생태계는 설치 시점에 스크립트가 자동 실행된다. 악성 패키지를 install 하는 순간, 임포트해서 쓰기도 전에 코드가 돈다. 개발자의 로컬 환경, CI 러너, 사내망 자격증명이 그 짧은 순간에 빠져나갈 수 있다.

어떻게 막나

완벽한 방어는 없지만, 위험을 크게 줄이는 습관은 분명하다. 핵심은 'AI가 준 이름을 그대로 믿지 않는 것'과 '설치 이전에 걸러내는 것'이다.

  • 설치 전 확인 — 처음 보는 패키지는 공식 레지스트리에서 실제 존재 여부, 관리자, 최초 등록일, 다운로드 이력을 눈으로 본다. 어제 막 올라온 무명 패키지라면 일단 의심한다.
  • 의존성 고정과 락파일 — 검증된 버전만 락파일로 못 박고, 새 의존성 추가는 리뷰 대상으로 삼는다.
  • 설치 스크립트 차단 — 기본적으로 설치 시 자동 실행 스크립트를 막고, 필요한 것만 허용한다.
  • 내부 프록시·허용 목록 — 사내 아티팩트 저장소를 프록시로 두고, 승인된 패키지만 통과시키면 무명 악성 패키지가 원천적으로 들어오지 못한다.
  • AI 출력 검증 습관 — 어시스턴트가 추천한 import 목록을 커밋 전에 한 번 훑는다. 낯선 이름이 있으면 실재하는지부터 확인한다.
AI 코딩 도구는 생산성을 끌어올렸지만, 동시에 '검증 없는 신뢰'라는 새 공격면을 열었다. 슬롭스쿼팅은 그 틈을 파고든 첫 사례일 뿐, 마지막은 아닐 것이다.

자주 묻는 질문

슬롭스쿼팅은 실제로 일어나는 공격인가요?

보안 연구자들이 LLM에게 코드를 반복 요청했을 때 존재하지 않는 패키지 이름이 재현성 있게 등장한다는 점을 확인했고, 이를 악용할 수 있음을 실증적으로 보여줬습니다. 실험적으로 선점된 사례도 보고됐습니다. 아직 대규모 실피해가 흔한 단계는 아니지만, AI 코딩 사용이 늘수록 위험은 커지는 구조입니다.

타이포스쿼팅 대비 도구로 막기 어려운 이유는?

타이포스쿼팅은 인기 패키지와의 철자 유사도를 기준으로 자동 탐지하기 쉽습니다. 반면 슬롭스쿼팅의 가짜 이름은 특정 인기 패키지를 흉내 내는 게 아니라 완전히 새로운, 자연스러운 이름이라 유사도 기반 필터에 잘 걸리지 않습니다. 그래서 설치 전 검증과 허용 목록 방식이 더 효과적입니다.

개발자가 당장 할 수 있는 가장 쉬운 방어는?

AI가 추천한 패키지를 설치하기 전에 공식 레지스트리에서 그 이름을 직접 검색해 실재하는지, 신뢰할 만한 관리자와 이력이 있는지 확인하는 것입니다. 이 30초짜리 습관 하나가 지어낸 이름에 낚이는 사고 대부분을 걸러냅니다.

조직 차원에서는 무엇을 해야 하나요?

사내 아티팩트 프록시로 외부 패키지를 중계하고 승인된 것만 통과시키는 허용 목록 정책, 설치 스크립트 자동 실행 차단, 의존성 변경에 대한 코드 리뷰 의무화가 핵심입니다. 여기에 정기적인 의존성 감사와 시크릿 스캐닝을 병행하면 방어 수준이 크게 올라갑니다.

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록