# Nepenthes - AI 웹 크롤러를 잡는 함정

> Clean Markdown view of GeekNews topic #18770. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=18770](https://news.hada.io/topic?id=18770)
- GeekNews Markdown: [https://news.hada.io/topic/18770.md](https://news.hada.io/topic/18770.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-01-17T09:58:35+09:00
- Updated: 2025-01-17T09:58:35+09:00
- Original source: [zadzmo.org](https://zadzmo.org/code/nepenthes/)
- Points: 5
- Comments: 1

## Summary

Nepenthes는 대규모 언어 모델(LLM)을 위한 데이터를 스크랩하는 웹 크롤러를 잡기 위한 소프트웨어로, 무한한 페이지 시퀀스를 생성하여 크롤러가 빠져나가지 못하게 하고 의도적인 지연을 추가합니다. 이 소프트웨어는 악의적인 목적으로 설계되었으며, 사용 시 주의가 필요하며, 검색 엔진 크롤러와 AI 모델 훈련 크롤러를 구분할 수 없어 사이트가 검색 결과에서 사라질 위험이 있습니다. 설치는 Docker를 사용하거나 수동으로 가능하며, 다양한 설정을 통해 Nepenthes의 동작을 조정할 수 있습니다.

## Topic Body

- 웹 크롤러를 잡기 위한 소프트웨어로, 특히 대규모 언어 모델(LLM)을 위한 데이터를 스크랩하는 크롤러를 대상으로 함.  
  - 무한한 페이지 시퀀스를 생성하여 크롤러가 빠져나가지 못하게 함.  
  - 크롤러가 서버를 과부하시키지 않도록 의도적인 지연을 추가하며, Markov-babble을 사용하여 크롤러가 데이터를 수집하도록 유도할 수 있음.  
  - 이 소프트웨어는 악의적인 목적으로 설계되었으며, 사용 시 주의가 필요함.  
- **경고**  
  - LLM 크롤러는 매우 집요하며, 이 소프트웨어를 사용하면 크롤러가 원하는 데이터를 계속 제공하게 됨.  
  - 검색 엔진을 위한 크롤러와 AI 모델을 훈련하는 크롤러를 구분할 수 있는 방법이 없으며, 이 소프트웨어를 사용하면 사이트가 검색 결과에서 사라질 가능성이 높음.  
- **사용법**  
  - Nginx 또는 Apache 뒤에 tarpit을 숨기는 것이 권장됨.  
  - HTTP 헤더를 사용하여 tarpit을 구성하며, 예시로 nginx 설정 스니펫이 제공됨.  
- **설치**  
  - Docker를 사용하거나 수동으로 설치 가능.  
  - Lua, SQLite, OpenSSL 및 여러 Lua 모듈이 필요함.  
  - 설치 후 config.yml 파일을 조정하여 시작 가능.  
- **Markov Babbler 부트스트랩**  
  - Markov 기능은 훈련된 코퍼스가 필요하며, 다양한 텍스트 소스를 사용하여 훈련 가능.  
  - 훈련 데이터는 POST 엔드포인트로 전송하여 추가할 수 있음.  
- **통계**  
  - JSON 형식으로 여러 통계 엔드포인트를 제공하며, IP 주소 및 사용자 에이전트 문자열을 확인할 수 있음.  
- **Nepenthes의 방어적 사용**  
  - 사이트에서 Nepenthes 위치로의 링크를 통해 크롤러가 실제 콘텐츠에 접근하지 못하도록 함.  
  - 수집된 IP 주소 목록을 사용하여 크롤러를 차단할 수 있음.  
- **Nepenthes의 공격적 사용**  
  - 크롤러를 차단하지 않고 최대한 많은 데이터를 제공하여 AI 모델을 방해할 수 있음.  
- **구성 파일**  
  - config.yaml 파일의 가능한 모든 지시문이 설명됨.  
  - 다양한 설정을 통해 Nepenthes의 동작을 조정할 수 있음.

## Comments



### Comment 33540

- Author: neo
- Created: 2025-01-17T09:58:35+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=42725147) 
- ChatGPT 크롤러의 반사형 DDOS 취약점을 테스트하는 방법에 대한 의견이 있음. 이 취약점은 단일 HTTP 요청이 5000개의 HTTP 요청을 유발할 수 있음
  - OpenAI와 Microsoft는 이 취약점을 무시했으며, 보고 과정이 매우 어려웠음
  - 법적 이유로 이 취약점을 악용하지 말 것을 권장함

- 과거 봇 모텔을 운영했던 경험을 공유하며, 크롤러들이 며칠 동안 갇혀 있었던 사례를 언급함
  - 보안은 종종 사후 고려 사항이며, 크롤러와의 싸움은 끝없는 경쟁임

- 비영리 웹사이트가 Amazon 봇의 공격적인 크롤링으로 인해 일시적으로 닫힌 경험을 공유함
  - Siteground가 사이트를 복구해 주었고, 이후 robots.txt에 Amazon 봇을 추가함
  - 현재 상황에 대한 불만을 표하며, 타르핏이나 법률이 해결책이 될 수 있는지에 대한 의문을 제기함

- 타르핏이 크롤링을 늦출 수 있지만, 많은 사이트가 이를 사용하지 않는 한 큰 효과는 없을 것이라는 의견이 있음
  - 잘못된 봇을 식별하는 것이 어려워 검색 결과에서 제외될 위험이 있음

- 무작위 마르코프 체인 기반 텍스트 생성기가 LLM 훈련 크롤러에 큰 문제가 되지 않을 것이라는 의견이 있음
  - 무작위 오염보다는 반복적인 비상식적 텍스트를 사용하는 것이 더 효과적일 수 있음

- 현재 502 Bad Gateway 오류가 발생하고 있으며, AI 웹 크롤러로 분류되었는지 아니면 과부하인지 알 수 없다는 의견이 있음

- 이 개념이 대중화되지 않는 한 필터링하기 쉽다는 의견이 있음
  - 대기업들이 이러한 소프트웨어를 방지하기 위해 팀을 구성할 수 있음

- 이미 인터넷에는 "무한" 웹사이트가 존재하며, 크롤러는 도메인별로 크롤링할 페이지 수를 정해놓음
  - 인기 있는 사이트는 많은 크롤링을 받지만, 알려지지 않은 사이트는 적은 크롤링을 받음

- 간단한 접근 방식으로는 각 잘못된 HTTP 요청에 대해 100개의 잘못된 HTTP 요청을 보내는 방법을 고려 중임

- 이 소프트웨어가 적용된 사이트는 모든 검색 결과에서 사라질 가능성이 높다는 의견이 있음
  - 이는 버그일 수도 있고, 기능일 수도 있음
