반격하는 필터

2003년 8월

베이지안 스팸 필터가 링크를 따라가 반대편에 무엇이 있는지 확인하도록 함으로써 정확도를 높일 수 있을지도 모릅니다. death2spam의 리처드 조시(Richard Jowsey)는 현재 경계선에 있는 경우에 이 방법을 사용하고 있으며, 효과가 좋다고 보고합니다.

왜 경계선에 있는 경우에만 그렇게 할까요? 그리고 왜 한 번만 할까요?

제가 필터가 스팸을 죽일까?에서 언급했듯이, 스팸에 포함된 모든 URL을 따라가는 것은 재미있는 부작용을 낳을 것입니다. 만약 인기 있는 이메일 클라이언트들이 스팸을 필터링하기 위해 이 작업을 수행한다면, 스패머의 서버는 심각한 타격을 입을 것입니다. 이 아이디어에 대해 생각할수록 더 좋은 생각인 것 같습니다. 이것은 단지 재미있는 것을 넘어섭니다. 스패머에 대한 이보다 더 완벽하게 표적화된 반격을 상상하기는 어려울 것입니다.

그래서 저는 스팸 필터 개발자들에게 추가 기능을 제안하고 싶습니다. 바로 "처벌(punish)" 모드입니다. 이 모드를 켜면 의심스러운 스팸에 포함된 모든 URL을 사용자가 설정한 n번만큼 스파이더링하는 것입니다. [1]

많은 사람들이 지적했듯이, 현재 이메일 시스템의 문제점 중 하나는 너무 수동적이라는 것입니다. 이메일은 당신이 시키는 대로 무엇이든 합니다. 지금까지 이 문제를 해결하기 위한 모든 제안은 새로운 프로토콜을 포함하는 것처럼 보였습니다. 하지만 이 방법은 그렇지 않습니다.

널리 사용된다면, 자동 검색 스팸 필터는 이메일 시스템을 _반등_시킬 것입니다. 지금까지 스패머에게 유리하게 작용했던 엄청난 양의 스팸은 이제 그의 얼굴에 가지가 부러져 튀어 오르듯이 그에게 불리하게 작용할 것입니다. 자동 검색 스팸 필터는 스패머의 비용을 증가시키고 판매를 감소시킬 것입니다. 그의 대역폭 사용량은 천정부지로 치솟을 것이고, 그의 서버는 부하로 인해 멈춰 설 것이며, 이는 스팸에 응답했을 사람들에게 서버를 사용할 수 없게 만들 것입니다.

한 시간에 백만 통의 이메일을 쏟아내면, 한 시간에 백만 건의 서버 히트를 얻게 될 것입니다.

우리는 이것이 의심스러운 스팸에만 적용되도록 해야 합니다. 일반적으로 수백만 명에게 전송된 URL은 스팸 URL일 가능성이 높으므로, 모든 이메일에서 모든 HTTP 요청을 제출하는 것은 거의 항상 잘 작동할 것입니다. 하지만 그렇지 않은 몇 가지 경우가 있습니다. 예를 들어, 야후 메일(Yahoo Mail)이나 핫메일(Hotmail)과 같은 무료 이메일 서비스에서 보낸 메일 하단의 URL이 그렇습니다.

이러한 사이트를 보호하고 남용을 방지하기 위해, 자동 검색은 스팸 광고 사이트의 블랙리스트와 결합되어야 합니다. 블랙리스트에 있는 사이트만 크롤링되며, 사이트는 사람의 검사를 거친 후에만 블랙리스트에 추가됩니다. 스팸의 수명은 최소 몇 시간은 되어야 하므로, 새로운 사이트를 홍보하는 스팸을 방해하기 위해 이러한 목록을 제때 업데이트하는 것은 쉬울 것입니다. [2]

대량 자동 검색은 고대역폭 연결을 사용하는 사용자에게만 실용적일 것이지만, 스패머에게 심각한 문제를 일으킬 만큼 충분한 사용자가 있습니다. 실제로 이 해결책은 문제점을 깔끔하게 반영합니다. 스팸의 문제는 소수의 잘 속는 사람들에게 도달하기 위해 스패머가 모든 사람에게 메일을 보낸다는 것입니다. 잘 속지 않는 수신자는 단지 부수적인 피해일 뿐입니다. 그러나 잘 속지 않는 대다수는 잘 속는 사람들이 스팸에 응답하는 것을 막을 수 있을 때까지 (또는 막겠다고 위협할 때까지) 스팸을 계속 받을 것입니다. 자동 검색 스팸 필터는 그들에게 이를 수행할 방법을 제공합니다.

그것이 스팸을 없앨까요? 완전히는 아닙니다. 가장 큰 스패머들은 자동 검색 필터로부터 서버를 보호할 수 있을 것입니다. 그러나 그들이 그렇게 할 수 있는 가장 쉽고 저렴한 방법은 메일에 작동하는 수신 거부 링크를 포함하는 것입니다. 그리고 이것은 작은 스패머들과 스패머를 고용하여 자신들을 홍보하는 "합법적인" 사이트들에게는 필수적인 것이 될 것입니다. 따라서 자동 검색 필터가 널리 퍼진다면, 그것들은 자동 수신 거부 필터가 될 것입니다.

이 시나리오에서 스팸은 OS 충돌, 바이러스, 팝업처럼 올바른 소프트웨어를 사용하지 않는 사람들에게만 영향을 미치는 재앙 중 하나가 될 것입니다.

각주

[1] 자동 검색 필터는 리다이렉트를 따라가야 하며, 어떤 경우에는 (예: "여기를 클릭하세요"라고만 표시된 페이지) 한 단계 이상의 링크를 따라가야 합니다. 또한 HTTP 요청이 인기 있는 웹 브라우저의 요청과 구별할 수 없도록 순서와 리퍼러(referrer)를 포함하여 확인해야 합니다.
응답이 x 시간 내에 돌아오지 않으면, 상당히 높은 스팸 확률로 기본 설정해야 합니다.
n을 상수로 두는 대신, 해당 사이트를 언급한 스팸의 수에 비례하는 함수로 만드는 것이 좋은 생각일 수 있습니다. 이는 남용과 사고에 대한 추가적인 보호 수준을 더할 것입니다.

[2] 이 글의 원본에서는 "블랙리스트" 대신 "화이트리스트"라는 용어를 사용했습니다. 비록 블랙리스트처럼 작동할 예정이었지만, 법적 공격에 덜 취약하게 만들 수 있을 것 같아 화이트리스트라고 부르는 것을 선호했습니다. 하지만 이것이 독자들을 혼란스럽게 한 것 같습니다.
아마도 여러 개의 블랙리스트가 있어야 할 것입니다. 단일 실패 지점은 공격과 남용 모두에 취약할 것입니다.

이 글의 초안을 읽어준 브라이언 버튼(Brian Burton), 빌 예라주니스(Bill Yerazunis), 댄 기핀(Dan Giffin), 에릭 레이먼드(Eric Raymond), 그리고 리처드 조시(Richard Jowsey)에게 감사드립니다.