업데이트로 돌아가기
New releaseJul 25, 2026

miasma v0.4.0

AI 웹 스크래퍼를 끝없는 독 구덩이에 빠뜨리세요.

공유

🌀 Miasma

No AI crates.io downloads Docker Pulls GitHub commits since latest release

Web crawlers getting stuck in a cloud of poison miasma.

AI 기업들은 다음 모델의 훈련 데이터로 사용하기 위해 인터넷을 엄청난 규모로 지속적으로 긁어모으고 있습니다. 공개 웹사이트를 운영하고 있다면, 그들은 이미 당신의 작업물을 훔치고 있는 것입니다.

_Miasma_는 이에 맞서 싸울 수 있도록 도와드립니다! 서버를 실행하고 악성 트래픽을 이쪽으로 유도하세요. _Miasma_는 poison fountain에서 오염된 훈련 데이터를 여러 자기 참조 링크와 함께 전송합니다. 슬롭 머신을 위한 끝없는 슬롭 뷔페인 셈이죠.

_Miasma_는 매우 빠르고 메모리 사용량이 최소화되어 있습니다. 인터넷의 거머리들을 막아내는 데 컴퓨팅 자원을 낭비할 필요가 없습니다.

[!CAUTION] 이 소프트웨어를 배포하는 데는 내재적인 위험이 따릅니다. 사용 전에 configuration과 disclaimer를 반드시 완전히 읽어보세요.

Usage

_Miasma_는 로컬에서 실행하거나 공식 docker image로 실행할 수 있습니다.

기존 Rust 서버에 _Miasma_를 통합하고 싶다면, _Miasma_를 라이브러리로 사용할 수도 있습니다.

Running Locally

cargo로 설치하세요 (권장):

cargo install miasma

또는 releases에서 미리 빌드된 바이너리를 다운로드할 수 있습니다.

다양한 패키지 관리자를 위한 커뮤니티 유지 관리 패키지도 제공됩니다:

Packaging status

기본 설정으로 _Miasma_를 시작하세요:

miasma

사용 가능한 모든 configuration options를 확인하세요:

miasma --help

Running with Docker

공식 docker image를 사용하여 _Miasma_를 실행하세요:

docker run --rm -p 9999:9999 austinweeks/miasma:latest

로컬에서 사용하는 것과 동일한 configuration flags를 전달하세요:

docker run --rm -p 9999:9999 austinweeks/miasma:latest \
    --link-prefix '/naughty-bots' \
    --max-in-flight 30

또는 docker compose 클러스터 내에서 실행하세요:

services:
  miasma:
    image: austinweeks/miasma:latest
    command: ["--link-prefix", "/naughty-bots", "--max-in-flight", "30"]
    ports:
      - 9999:9999

How to Trap Scrapers

_Miasma_로 스크래퍼를 함정에 빠뜨리는 서버 설정 예시를 살펴보겠습니다. 스크래퍼 트래픽을 유도할 서버 경로로 /naughty-bots를 선택하겠습니다. 서버의 리버스 프록시로 Nginx를 사용하지만, 다양한 설정으로 동일한 결과를 얻을 수 있습니다.

완료되면 스크래퍼는 다음과 같이 함정에 빠지게 됩니다:

Flow chart depicting cycle of trapped scrapers.

사이트 내에 /naughty-bots로 이어지는 숨겨진 링크 몇 개를 포함시키겠습니다.

<a
  href="https://github.com/austin-weeks/miasma/blob/main/naughty-bots"
  style="display: none;"
  aria-hidden="true"
  tabindex="-1"
>
  Amazing high quality data here!
</a>

style="display: none;", aria-hidden="true", tabindex="-1" 속성은 링크가 사람 방문자에게 완전히 보이지 않도록 하고, 스크린 리더와 키보드 탐색에서 무시되도록 합니다. 이 링크는 오직 스크래퍼에게만 보입니다.

Configuring our Nginx Proxy

숨겨진 링크가 /naughty-bots/를 가리키므로, 이 경로가 _Miasma_로 요청을 프록시하도록 설정하겠습니다. _Miasma_가 포트 9855에서 실행 중이라고 가정하겠습니다.

또한 실수로 자체 DDoS를 당하지 않도록 스크래퍼의 user agent를 기반으로 강력한 속도 제한을 설정하겠습니다.

http {
  # Reserve 8MB memory for tracking user agents
  limit_req_zone $http_user_agent zone=miasma:8m rate=1r/s;

  server {
    location = /naughty-bots {
      port_in_redirect off;
      return 301 /naughty-bots/;
    }
    location /naughty-bots/ {
      # Rate limit via the 'miasma' zone with no queueing
      limit_req_status 429;
      limit_req zone=miasma burst=5 nodelay;

      # Proxy requests to Miasma
      proxy_pass http://localhost:9855/;
    }
  }
}

이 설정은 /naughty-bots 경로의 모든 변형을 잡아냅니다 -> /naughty-bots, /naughty-bots/, /naughty-bots/12345 등.

Run Miasma

마지막으로 _Miasma_를 시작하고 /naughty-bots를 링크 접두사로 지정하겠습니다. 이는 _Miasma_가 /naughty-bots/로 시작하는 링크를 생성하도록 지시하여, 스크래퍼가 Nginx 프록시를 통해 _Miasma_로 올바르게 라우팅되도록 합니다.

최대 동시 연결 수를 50으로 제한하겠습니다. 50개 연결에서 최대 메모리 사용량은 50-60 MB 정도로 예상할 수 있습니다. 이 제한을 초과하는 요청은 대기열에 추가되지 않고 즉시 429 응답을 받습니다.

또한 스크래퍼의 Accept-Encoding 헤더와 관계없이 _Miasma_가 모든 응답을 gzip 압축하도록 강제하겠습니다. gzip 압축된 응답은 훨씬 작기 때문에 송신 비용을 줄이는 데 도움이 됩니다.

스크래퍼를 영원히 가둬둘 수도 있지만, 링크 수와 최대 깊이 옵션을 사용하여 스크래퍼가 약 100K개의 오염된 페이지를 소비한 후 놓아주도록 하겠습니다. 이 설정으로 _Miasma_는 스크래퍼당 총 약 250MB의 데이터를 전송합니다.

miasma --link-prefix '/naughty-bots' -p 9855 -c 50 --force-gzip --link-count 5 --max-depth 8

Enjoy!

배포하고 잘못 행동하는 봇들이 우리의 끝없는 슬롭 머신에서 탐욕스럽게 먹어치우는 모습을 지켜보세요!

robots.txt

robots.txt를 통해 잘 행동하는 봇과 검색 엔진을 _Miasma_로부터 보호하세요!

User-agent: *
Disallow: /naughty-bots

Metrics

_Miasma_는 고유 User-Agent별 스크래퍼 요청 수를 추적하는 기능을 제공합니다. 이는 어떤 봇이 사이트를 가장 많이 공격하는지 식별하는 데 유용합니다. 메트릭은 로컬 SQLite 데이터베이스 파일에 기록되며, 원하는 엔드포인트에서 확인할 수 있습니다.

Configuration

_Miasma_는 CLI 플래그 또는 config file로 설정할 수 있습니다.

카테고리