본문으로 건너뛰기

SSH 타르핏과 LLM 미로 운영 통계 분석

타르핏은 연결은 늘고 체류는 줄었으며, LLM 미로는 대규모 트래픽과 소수의 자바스크립트 실행 크롤러를 관찰했다

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

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

섹션별 상세

SSH 타르핏은 연결 수는 늘었지만 체류 시간은 크게 감소한 패턴을 보입니다. 최근 일주일 데이터에서 타르핏은 11.6일(bot time)을 소모했는데, 2022년 같은 기간의 20.14일과 비교하면 총 시간은 42.5% 줄었습니다. 반면 연결 수는 9,387건으로 2022년의 6,354건보다 47% 증가해 봇이 더 많이 시도하지만 각 연결이 머무는 시간은 짧아졌다는 것이 확인됩니다.
근거
  • 타르핏이 최근 일주일에 소모한 봇 시간은 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를 집계한 쿼리 결과로 전체 합을 산출.
지역별 분포와 체류 시간 비율이 2022년과 크게 달라졌습니다. 2026년 상위 연결원은 Unknown(3,707), CN(1,550), IN(967), US(939), VN(710) 순서이며, '1분 이상 체류' 비율은 VN이 8.3%로 가장 높았고 Unknown이 8.13%로 뒤를 이었습니다. 특히 중국-origin 연결은 과거보다 체류 비율이 급감해 평균과 최댓값 통계에 큰 영향을 주었습니다.
타르핏의 평균 체류 시간은 크게 줄었으나 최댓값은 오히려 증가했습니다. 통계상 평균(mean)은 2022년 539.31초에서 2026년 16.50초로 약 97% 감소한 반면 최대(max)는 273,670초에서 582,828초로 112% 증가했습니다. 이는 대다수 봇이 빨리 포기하지만 드물게 매우 오래 머무는 개별 사례(예: 스웨덴에서 발견된 7일짜리 봇)가 존재함을 의미합니다.
LLM 미로는 robots.txt와 링크 속성으로 자동 수집을 금지해 운영자의 의도를 표명하지만 이를 무시하는 크롤러를 겨냥해 무의미한 페이지를 대량으로 제공하는 구조로 설계되어 있습니다. 각 페이지는 다른 페이지로 링크하고 캐시를 짧게 유지해 재검증 시 동일한 가짜 콘텐츠가 반환되도록 하며, 임베디드 이미지는 사이트 내 실제 이미지와 가짜 JPEG을 섞어 제공합니다. 이 방식은 크롤러가 실제 유용한 콘텐츠 대신 잡다한 데이터를 수집하게 하여 학습 데이터 품질을 떨어뜨리고 크롤링 비용을 올리는 목적을 가집니다.
LLM 미로의 트래픽 규모와 피크 특성이 매우 크고 불규칙적입니다. 지난 90일 동안 미로는 310,248,945건의 요청을 서비스했으며 전체 집계 기간 중 627,732,698건 중 약 49%가 최근 90일에 발생했습니다. 데이터 포인트 간격이 12시간임을 근거로 저자는 최대 기록률이 시간당 약 500,000건 수준에 이르렀다고 판단했고, 일부 크롤러가 User-Agent를 설정하지 않아 처리 중 예외를 던지고 서버가 재시작되는 현상이 트래픽 감소의 일부 원인으로 지목됩니다.
그래프는 'Entrants With Javascript'로 표시된 시간대별 요청 수를 보여주며 12월에서 8월까지의 추이를 시각화합니다.
Chart그래프는 4월 전후로 급격한 피크가 반복적으로 발생하는 패턴을 보여주며 최고치는 수천에서 만단위 요청까지 도달한 구간이 있습니다. 데이터 포인트 간격이 12시간으로 표기된 점과 원문 문장(최대 기록률이 시간당 약 500,000건 수준이라는 추정)을 함께 고려하면 특정 기간에 대규모 크롤링 러시가 있었음을 확인할 수 있습니다. 이 시각 자료는 자바스크립트 실행 요청이 전체에서는 소수임에도 트래픽 집중 시 운영 영향을 크게 줄 수 있다는 근거로 활용됩니다.
근거
  • LLM 미로는 지난 90일에 310,248,945건을 서비스했으며 전체 집계 기간 627,732,698건의 약 49%가 최근 90일에 발생했다. Flux 쿼리(from ... fck_your_llm, field=count)를 사용한 지난 90일 합계와 전체 집계 비교.
자바스크립트를 실행하는 헤드리스 크롤러는 전체 요청 중 극히 일부(661,668/627,732,698 ≒ 0.1%)이지만 방어 측에서 자원 소모를 유발하기에 특히 흥미로운 표적입니다. 저자는 임의로 트랩을 발동해 Amplify(문서 확장), MemGrow(문자열 반복 연결), Primes(대수적 소수 분해 병렬 처리) 같은 스크립트 기반 작업으로 브라우저의 메모리·CPU 사용을 늘리는 전략을 사용합니다. 목적은 브라우저를 강제로 크롤링 비용이 높은 상태로 유도해 수집 효율을 낮추고 운영 비용을 증가시키는 것입니다.
'Javascript Traps Sprung' 그래프는 여러 색의 시계열로 다양한 트랩이 발동된 건수를 시계열로 표현합니다.
Chart색상별로 여러 트랩의 발동 빈도가 4월을 기점으로 집중되어 있고 이후에도 반복적인 피크를 보입니다. 이 분포는 헤드리스 브라우저가 JavaScript를 실행할 때만 트랩이 발동되므로 특정 시점에 자바스크립트 실행 기반 수집이 활발했음을 시사합니다. 트랩별 차이를 통해 어떤 기법이 더 자주 발동되었는지와 트랩이 전체 부하에 미친 상대적 영향을 가늠할 수 있습니다.
근거
  • 자바스크립트 실행 크롤러는 전체 요청 중 약 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 자바스크립트 실행)에 따라 방어 기법의 효과가 달라집니다.

코드 예제

flux
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일 소모 등)는 이 쿼리 결과에 근거합니다.

flux
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 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 11.수집 2026. 08. 11.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.