35P by baeba 15일전 | ★ favorite | 댓글 30개

서론

  • 인터넷 트래픽의 대부분은 봇이며, 이 중 일부는 악의적인 목적(스팸, 해킹 등)을 가진다.
  • 작성자는 과거에 봇으로 인해 워드프레스 서버가 감염되거나 구글 검색에서 제외되는 등 피해를 겪음.
  • 이를 방지하기 위해 Zip Bomb을 사용하기 시작함.

본론

  • Zip Bomb이란?

    • 작지만 압축 해제 시 매우 큰 용량으로 확장되는 압축 파일.
    • 1MB 압축 파일이 1GB로, 10MB는 10GB로 확장되어 서버를 마비시킴.
  • 기존의 gzip 기능

    • 웹에서는 전송 효율을 위해 gzip 압축을 사용함.
    • 대부분의 봇도 gzip 압축을 지원함.
  • Zip Bomb을 통한 대응 방식

    • 악성 봇으로 판단되면 200 OK와 함께 gzip 압축된 Zip Bomb 파일을 응답함.
    • 이 파일을 열다가 봇이 서버에서 다운되거나 멈춤.
    • 일반적으로 1MB(1GB 확장) 또는 10MB(10GB 확장)를 사용.
  • Zip Bomb 생성 방법

    dd if=/dev/zero bs=1G count=10 | gzip -c > 10GB.gz  
    
    • /dev/zero로 10GB의 0 바이트 데이터를 생성한 후 gzip으로 압축.
    • 결과물은 약 10MB 크기의 zip bomb.
  • 서버 적용 예시

    • 미들웨어에서 IP 블랙리스트 또는 악성 패턴을 감지하면 Zip Bomb 전송.
    if (ipIsBlackListed() || isMalicious()) {  
        header("Content-Encoding: deflate, gzip");  
        header("Content-Length: "+ filesize(ZIP_BOMB_FILE_10G));  
        readfile(ZIP_BOMB_FILE_10G);  
        exit;  
    }  
    

결론

  • Zip Bomb은 완벽한 방어책은 아님.
    • 정교한 봇은 이를 감지하고 우회할 수 있음.
  • 그러나 무차별 웹 크롤링을 하는 저급 봇에겐 효과적인 방어 수단.
  • 일부 서버 리소스를 사용하더라도 보안을 위해 충분한 가치가 있음.

본 글과는 관련 없는 댓글인데, 즐겨보는 hada에 최근 악플 다는 사용자 몇몇이 눈에 띄게 증가한 거 같네요. 댓글이 없거나 몇 개 안 달리던 시절의 분위기랑 좀 많이 달라진 것 같습니다.

개인적으로는 차단 기능이 있던지, 다수의 신고를 받아서 댓글을 회색처리하는 기능이 있으면 어떨까 합니다.

추천을 많이 받은 유저들은 그런 기능을 부여받는 것으로 추정됩니다

스팸 트래픽을 발생시키는 봇을 효과적으로 차단하는 방식이 없다면 한번쯤 시도해볼 수 있는 방식이라고 생각합니다.

택배 털이범에게 글리터 폭탄을 주는 글 같아서 재밌게 읽었습니다 :)

인터넷 글은 누가 소유한 택배가 아닙니다
그럼 공개불가 소유물이면 인증절차를 넣었겠죠
길거리에 전단지 하나 놓고 거기에 맹독 뭍여놓는 거랑 비슷하다고 봐도 될것 같네요

악의적인 목적으로 독을 바른 전단지 붙여놓는거랑 다른 개념이죠.

그 영상 재밌죠. 그것과 똑같네요 ㅋㅋ

그래서 ip로 봇 판단한 경우도 폭탄 날리겠다는건데요 ㅎㅎ
작성자에게 분노가 느껴진다는.ㅎㅎ

agent가 bot이라고 오는 요청에 폭탄을 선사하겠다는건데..
너무 악의 적이네요. 어짜피 agent는 쉽게 숨길 수 있습니다. 진짜 악의적인 봇이면 악의를 드러내지 않습니다.

말씀하신 User-Agent든 원글에서 언급된 IP 기반 탐지든, 식별 정보는 위장이 가능하기에 악성 여부를 단정하기 어렵다는 점에 동의합니다. 실제 악의적인 봇은 더 교묘하게 접근하겠지요.
제 생각에는 이런 공격보다는, 차라리 부하 제한이 있는 크롤링 API를 제공해서 합법적인 자동화 접근은 허용하되 서버 자원은 보호하는 방향이 더 현실적인 '넛지'가 아닐까 싶습니다. ㅎㅎ

이미 우리가 오래전부터 합의한 bots.txt 라는게 있죠..

최근 LLM 연계 서비스로부터의 과도한 트래픽으로 인한 피해 사례가 간간이 보이는데, 사실상 그런 유형을 위한 방편으로도 볼 수 있을 것 같습니다. 예를 들어 챗지피티의 웹 검색 기능 등을 보면 그 유저 풀 특성상 '악의적이지 않은' 과도한 트래픽 발생 여지가 다분한데, 이들은 간단한 에이전트 매칭으로 쉽게 걸러진다고 들었습니다. 이게 진짜 의도가 맞다면 애꿎은 OpenAI 서버비(와 평판?)만 축내는 길이지만요..

그래서 의미 없는 글이란거에요

OpenAI는 이미 그정도의 예의(?)는 갖출 수 있는 큰 .. 회사이긴 하죠.
그리고 아마도 사용자가 직접 검색 결과를 클릭하는 걸로는 부담스런 트래픽이 발생하긴 어려울 거라 생각되고, 크롤러가 너무 과도하게 동작하는 문제 아닐까요?

윤리적으로 좋은 방식은 아니네요. 근본적인 해결책도 아니구요.

악성 봇은 뭐 윤리적인 방식인가? ㅋㅋ

진짜 악성봇은 이런 방식으로 잡을수 없어요
gzip폭탄도 안통하고
그냥 모르는 사람이 재미난 폭탄글 하나썼다라고 보시면되요.

이런 분들이 정당방위 인정 어렵게 만드시는 거구나 ㅎㅎ...

제가 이런 류는 처음이라서 그러한데 근본적인 해결책이 무엇인지 궁금합니다!!

인터넷에서도 배설에 대한 책임을 안지면 인터넷 사용 금지 시켜야 한다고 봅니다. 배설한건 수습좀 하세요.

동의 합니다

윤리적으로 좋은 방식이 아닌 이유는 무엇인가요? 궁금합니다

재밌는글이네요! 생각지못한 방법이라 알려주셔서 감사합니다!

이런 글을 올리는 목적이 뭘까요?
실제로 크롤러를 돌리는 기업들이 이 글을 읽고 제외까지 할 가능성은 거의 없다고 생각하는데 말입니다.
그럼 이 글은 어떤 독자들을 대상으로 쓴 글일까요?
같이 블로그를 운영하는 사람들에게 이런 방법이 있다고 알려주는 소개글,
아니면 내 블로그 이렇게 보안 쎄니까 할 수 있으면 한번 크롤링 해보라는 어그로?
글을 올려서 얻는 게 뭘지 정말 궁금해집니다

개인 블로그인데 아무 글이나 쓰면 안 되나요? 🤔

물론 공적인 장소가 아니니까 그냥 별 생각 없이 올린 글일수도 있죠.
커뮤니티에서 별 생각 없이 댓글을 달 수도 있듯이요
저는 크롤러를 완전히 막을 수는 없으니 시도 자체를 안 받는 게 가장 좋을 텐데, 어그로를 끄는 의도가 궁금했습니다.

글의 목적보다 댓글쓴 목적이 더 궁금하네요. 이따위 댓글 써서 얻는 게 뭘지 정말 궁금하네요

똥, 배설 좋아하는 천박한 분이라 이해가 잘 안되시나 봐요 ㅠ

그냥 이러한 방법이 있다는것 아닐까요..