악성코드 감염 봇 대응

프로그래머 이브라힘 디알로(Ibrahim Diallo)는 개인 서버에 호스팅하는 블로그를 운영하며, 자신의 경험을 바탕으로 대부분의 트래픽이 콘텐츠를 찾기 위해 인터넷을 탐색(trolling)하는 봇들이라고 파악하고 있습니다. 이 봇들 중 상당수는 무해하지만, 간혹 악성 공격을 주입하거나 시스템 응답을 탐색하여 자신의 시스템을 탈취하려는 봇들이 있습니다. 이러한 위협에 대응하여 디알로는 자신의 블로그에 원본 크기보다 최대 1,000배까지 팽창하여 봇 서버를 강제 충돌시키는 '핫 짓 폭탄(hot zip bomb)'을 제공한다고 설명합니다.
짓 폭탄(Zip bomb)은 극도로 작게 압축된 아카이브 속에 실제로는 엄청나게 큰 파일 크기를 숨겨둔 것입니다. 그 대표적인 예시로는 46MB 아카이브가 거대한 4.5 페타바이트 파일로 변환되어 대부분의 컴퓨터 자원을 압도하는 경우가 있습니다. 이러한 파일들은 목표 시스템의 기능을 마비시키도록 설계되었기 때문에 악성코드(malware)로 분류됩니다.
그러나 디알로는 이 상황을 역이용하여 짓 폭탄을 악성코드 방어 수단으로 활용하고 있습니다. 디알로는 시스템 침입을 시도하는 봇들을 무력화하기 위해 1MB 크기로 압축되었으나 1GB로 압축 해제되는 파일을 제작했다고 밝혔습니다. 또한, 리소스가 더 강력한 봇들을 위해 10MB에서 10GB로 압축되는 파일을 갖추고 있어, 이 거대한 아카이브로 봇의 메모리 용량을 압도합니다.
이 방어 시스템은 다음과 같이 작동합니다. 디알로가 악성 봇을 감지하면, 서버는 '200 OK' 응답을 반환함과 동시에 짓 폭탄을 전송합니다. 파일의 메타데이터는 봇에게 해당 파일이 압축 파일임을 알려주어, 봇이 가능한 한 많은 정보를 스크래핑(scraping)하기 위해 이를 열도록 유도합니다. 하지만 이 파일은 압축 해제 시 최소 1GB에 달하기 때문에, 대부분의 단순 봇—심지어 일부 고급 봇까지도—의 메모리를 과부하 상태로 만듭니다. 만약 몇 기가바이트에 달하는 메모리를 가진 더 진보된 스크래퍼와 마주칠 경우, 그는 10GB 짓 폭탄을 먹여 가장 높은 확률로 해당 봇을 충돌시킬 수 있습니다.
이 시스템을 직접 시도해 보고 싶다면, 디알로는 자신의 블로그에 봇을 겨냥한 짓 폭탄을 만드는 방법을 상세히 안내하고 있습니다. 다만, 그는 사용자에게 주의를 당부합니다. 이는 사용자가 스스로 폭발(즉, 실수로 짓 폭탄을 여는 행위)을 일으켜 자신의 서버를 충돌시킬 수 있기 때문입니다. 또한 짓 폭탄을 탐지하고 무시하는 방식이 존재하기 때문에 100% 완벽한 해결책은 아닙니다. 하지만 대부분의 단순 봇에게는 이 시스템만으로도 서버가 멈춰 재부팅될 때까지 무력화시키는 데 충분할 것입니다.
최신 뉴스, 분석 및 리뷰를 피드에서 받아보려면 Google News에서 Tom's Hardware를 팔로우하세요. '팔로우' 버튼을 클릭하는 것을 잊지 마세요.