Miasma: AI 웹 스크레이퍼를 끝없는 오염 루프로 가두는 도구

3 days ago 5
  • Miasma는 AI 웹 스크레이퍼를 무한 루프에 빠뜨려 훈련 데이터 수집을 방해하는 Rust 기반 서버 도구
  • 웹사이트 콘텐츠를 대규모로 수집하는 AI 기업의 트래픽을 리디렉션해, ‘poison fountain’에서 가져온 오염된 데이터와 자기참조 링크를 반환
  • 빠른 처리 속도와 낮은 메모리 사용량으로 서버 자원 낭비 없이 방어 가능
  • Nginx 리버스 프록시숨겨진 링크 삽입을 통해 스크레이퍼를 /bots 경로로 유도해 무한 순환 구조 형성
  • 정상 검색엔진은 robots.txt 예외 규칙으로 보호하며, 오픈소스로 커뮤니티 기여를 허용함

설치 및 실행

  • Cargo를 이용해 설치 가능
    • cargo install miasma 명령으로 설치
  • GitHub Releases 페이지에서 미리 빌드된 바이너리 다운로드 가능
  • 기본 설정으로 실행 시 miasma 명령만 입력
  • 모든 설정 옵션은 miasma --help로 확인 가능

스크레이퍼 트랩 설정 방법

  • /bots 경로를 스크레이퍼 유입 지점으로 설정
  • Nginx를 리버스 프록시로 사용해 /bots 경로의 요청을 Miasma 서버로 전달 location ~ ^/bots($|/.*)$ { proxy_pass http://localhost:9855; }
    • /bots, /bots/, /bots/12345 등 모든 변형 경로를 매칭
  • 숨겨진 링크 삽입

    • 웹페이지 내에 인간 방문자에게는 보이지 않지만 스크레이퍼가 탐지할 수 있는 숨겨진 링크 추가 <a href="/bots" style="display: none;" aria-hidden="true" tabindex="1"> Amazing high quality data here! </a>
    • display: none, aria-hidden="true", tabindex="1" 속성으로 접근성 도구와 사용자에게는 비노출
  • Miasma 실행

    • /bots를 링크 접두사로 지정하고 포트와 동시 연결 제한 설정 miasma --link-prefix '/bots' -p 9855 -c 50
    • 최대 50개의 동시 연결을 허용하며, 초과 요청은 HTTP 429 응답 반환
    • 50개 연결 시 약 50~60MB 메모리 사용량 예상
  • 배포 후 동작

    • 설정 완료 후 배포하면 스크레이퍼는 /bots 경로를 따라 무한히 오염된 데이터 페이지를 순환
    • 로그를 통해 스크레이퍼의 반복 요청을 실시간으로 확인 가능

robots.txt 설정

  • 정상적인 검색엔진 크롤러가 Miasma에 접근하지 않도록 robots.txt에 예외 규칙 추가 필요 User-agent: Googlebot User-agent: Bingbot User-agent: DuckDuckBot User-agent: Slurp User-agent: SomeOtherNiceBot Disallow: /bots Allow: /

설정 옵션

  • CLI 옵션을 통해 세부 설정 가능
옵션 기본값 설명
port 9999 서버가 바인딩할 포트
host localhost 서버가 바인딩할 호스트 주소
max-in-flight 500 동시에 처리 가능한 최대 요청 수. 초과 시 429 응답 반환. 메모리 사용량은 이 값에 비례
link-prefix / 자기참조 링크의 접두사. 예: /bots
link-count 5 각 응답 페이지에 포함할 자기참조 링크 수
force-gzip false 클라이언트의 Accept-Encoding 헤더와 무관하게 항상 gzip 압축 적용. 전송 비용 절감에 유용
poison-source https://rnsaffn.com/poison2/ 오염된 훈련 데이터를 가져올 프록시 소스

개발 및 기여

  • 버그 리포트나 기능 제안은 GitHub Issues를 통해 제출 가능
  • AI가 생성한 코드 기여는 자동으로 거부됨
  • 커뮤니티 기여를 환영하며, 프로젝트는 오픈소스로 유지됨
Read Entire Article