TL;DR
작성자는 SSH 타르핏과 'LLM 미로'를 운영하면서 얻은 통계로 봇 트래픽 특성과 방어 효과를 비교합니다. SSH 타르핏은 최근 일주일 기준으로 봇 시간이 11.6일로 2022년 같은 기간 20.14일 대비 42.5% 감소했지만 연결 수는 9,387건으로 47% 증가해 봇은 더 많이 시도하되 빨리 포기함을 보여줍니다. LLM 미로는 지난 90일에 3.1억 건의 요청을 서비스했고 전체 기간 6.27억 건의 약 절반이 최근 90일에 몰렸으며, 자바스크립트 실행 크롤러는 전체의 약 0.1%이나 트랩을 통해 자원 소모를 유도할 수 있습니다.
섹션별 상세
- 타르핏이 최근 일주일에 소모한 봇 시간은 11.6일이며, 2022년 같은 기간 20.14일 대비 42.5% 감소했다. — Flux 쿼리로 telegraf/telegraf_low_granularity 버킷의 ssh_tarpit measurement에서 after_sum을 합산한 결과.
- 타르핏에 들어온 연결 수는 9,387건으로 2022년 6,354건 대비 47% 증가했다. — telegraf 버킷에서 ssh_tarpit의 after_count를 집계한 쿼리 결과로 전체 합을 산출.

- LLM 미로는 지난 90일에 310,248,945건을 서비스했으며 전체 집계 기간 627,732,698건의 약 49%가 최근 90일에 발생했다. — Flux 쿼리(from ... fck_your_llm, field=count)를 사용한 지난 90일 합계와 전체 집계 비교.

- 자바스크립트 실행 크롤러는 전체 요청 중 약 0.1%(661,668건)에 불과하지만 트랩으로 자원 소비를 유도하기에 가치가 있다. — 원문 통계에서 자바스크립트 실행 요청 수와 전체 요청 수의 비율을 직접 비교한 수치.
용어 해설
- SSH 타르핏(SSH tarpit)
- — SSH 타르핏은 악성 연결을 접속 상태로 오래 붙들어 두어 공격자의 시간과 리소스를 소모시키는 기법입니다. 서버 배너를 아주 천천히 또는 무한히 전송해 클라이언트가 세션을 계속 유지하도록 유도하며, 결과로 공격자의 계산·네트워크 비용을 올립니다. 본문에서는 연결 수와 체류 시간(mean, max)을 측정해 타르핏의 효과를 평가합니다.
- LLM 미로(메이즈)(LLM maze)
- — LLM 미로는 웹 크롤러를 위해 인위적이고 끝없이 생성되는 페이지를 제공하는 함정으로, robots.txt와 링크 속성으로 자동 크롤러를 배제하려는 의도를 표명하지만 이를 무시하는 수집기에게는 잡다한 콘텐츠를 공급합니다. 각 페이지는 다른 페이지로 연결되고 임의의 이미지와 가짜 JPEG을 섞어 크롤러가 실제 콘텐츠 대신 무의미한 데이터를 수집하도록 만듭니다. 목적은 크롤링 비용을 증가시키고 머신러닝 데이터 품질을 떨어뜨리는 것입니다.
- robots.txt
- — robots.txt는 웹사이트 운영자가 자동화된 크롤러에게 접근 권한을 기술적으로 요청하는 표준 텍스트 파일입니다. User-agent와 Disallow 규칙으로 특정 경로의 수집을 금지할 수 있으며, 본문은 /secretstuff/를 Disallow로 설정해 미로로의 접근을 공식적으로 막고 있습니다. 단, 많은 크롤러가 이를 무시하면 사이트 운영자의 의도는 지켜지지 않습니다.
- 헤드리스 브라우저(headless browser)
- — 헤드리스 브라우저는 GUI 없이 자바스크립트를 실행할 수 있는 브라우저 인스턴스로, 단순한 HTTP 요청을 넘어서 페이지 내 스크립트 실행 결과를 수집할 수 있습니다. 이 글에서는 헤드리스 브라우저가 자바스크립트 트랩을 실행할 수 있어 작가가 의도한 함정에 더 잘 걸린다는 점을 핵심으로 삼고 있습니다. 헤드리스 크롤링은 방어 회피에 유리하므로 방어 측에서 추가 비용을 유발시키는 타깃이 됩니다.
- 웹 크롤러(web crawler)
- — 웹 크롤러는 웹 페이지를 자동으로 방문해 콘텐츠를 수집하는 프로그램으로, 검색 엔진과 학습 데이터 수집 등에 쓰입니다. 기사에서는 일부 크롤러가 robots.txt를 무시하고 페이지를 대량 요청해 서비스 부하와 데이터 수집 문제를 일으킨다고 보고합니다. 크롤러의 동작 방식(단순 HTTP vs 자바스크립트 실행)에 따라 방어 기법의 효과가 달라집니다.
코드 예제
from(bucket: "telegraf/telegraf_low_granularity") |> range(start: 2026-08-01T00:00:00Z, stop: 2026-08-08T00:00:00Z) |> filter(fn: (r) => r._measurement == "ssh_tarpit") |> filter(fn: (r) => r._field == "after_sum") |> filter(fn: (r) => exists r.country) |> group() |> sum()이 Flux 쿼리는 지정한 1주 범위에서 ssh_tarpit 측정치의 after_sum 필드를 합산해 해당 기간에 타르핏이 소모한 총 봇 시간 합계를 산출합니다. 쿼리는 country 태그가 있는 레코드만 합쳐 지역 분포를 확인할 수 있게 하며 그룹화 후 합계를 취해 전체 합을 얻습니다. 원문 통계(최근 주에 11.6일 소모 등)는 이 쿼리 결과에 근거합니다.
from(bucket: "telegraf/telegraf_low_granularity") |> range(start: -90d) |> filter(fn: (r) => r._measurement == "fck_your_llm") |> filter(fn: (r) => r._field == "count") |> group() |> sum()이 Flux 쿼리는 지난 90일 동안 LLM 미로(fck_your_llm) 엔드포인트에 들어온 요청수를 합산해 기간별 총 요청량을 확인합니다. 쿼리 결과에서 저자는 최근 90일 동안 310,248,945건의 요청이 서비스되었다고 보고했으며, 전체 집계와 피크치 분석의 근거가 됩니다. 쿼리의 그룹화와 합계는 시간 축에 걸친 누적량을 빠르게 확인하는 목적입니다.
기술
- flask
- Anubis
- telegraf
- Flux (InfluxDB 쿼리)
- robots.txt
활용 사례
- 무단 크롤러가 사이트를 대량 수집할 때 크롤링 비용을 증가시켜 수집 효율을 떨어뜨리기 위한 함정 운영.
- 헤드리스 브라우저를 이용하는 공격자에게 자바스크립트 기반 트랩을 걸어 연산·메모리 비용을 유발하는 방어.
- 타르핏과 미로 운영을 통한 악성 트래픽의 지역 패턴과 체류 시간 변화를 모니터링해 방어 우선순위를 정하는 분석.
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.