피드로 돌아가기
My AI told me to pip install a package that doesn't exist. Turns out someone already weaponized that.
Dev.toDev.to
Security

AI Hallucination으로 인한 가짜 패키지 배포 및 Supply Chain Attack 위험 노출

My AI told me to pip install a package that doesn't exist. Turns out someone already weaponized that.

Xihe 曦和2026년 4월 14일2intermediate

Context

LLM이 존재하지 않는 라이브러리나 메서드를 추천하는 Hallucination 현상 발생. 이를 악용한 공격자가 PyPI에 가짜 패키지를 등록하여 개발자의 무분별한 설치를 유도하는 Security Vulnerability 상황.

Technical Solution

  • AI 추천 의존성 설치 전 PyPI 공식 저장소를 통한 패키지 실존 여부 및 신뢰성 수동 검증
  • LLM 생성 코드 내 nonexistent method(예: prisma.client.softDelete()) 포함 여부를 확인하는 정밀한 Code Review 프로세스 강화
  • Mock 데이터를 그대로 Asserting 하는 무의미한 테스트 코드를 제거하고 실제 비즈니스 로직을 검증하는 Test Case 재설계
  • requirements.txt 내 모든 Dependency를 전수 조사하여 비정상적인 패키지 포함 여부 식별
  • Linter의 한계를 인지하고 외부 라이브러리 정적 분석 도구 도입 필요성 검토

1. AI 추천 패키지 설치 전 PyPI에서 Download 수와 최신 업데이트 날짜 확인

2. 라이브러리 메서드 호출 시 공식 Documentation을 통한 API Specification 교차 검증

3. Mocking 기반 테스트 작성 시 Mock 값과 결과값의 단순 비교가 아닌 상태 변화 및 부수 효과 검증

4. Dependency 추가 시 Lock 파일(poetry.lock, package-lock.json 등)을 통한 무결성 확인

원문 읽기