이하, 본 발명의 몇몇 양태의 기본적 이해를 제공하기 위해 본 발명의 간단한 요약을 제공한다. 이 요약은 본 발명의 전체 개요는 아니다. 이는 본 발명의 주요/중요 요소를 식별하고 범위를 상세히 나타내려는 것이 아니다. 이의 유일한 목적은 이하 보다 상세히 설명하기 전에 간단한 형태로서 본 발명의 일부 개념을 제공하는 것이다.
본 발명은 스팸 차단에 관련하여 항목의 분류를 용이하게 하는 지능형 차단 시스템 및 방법을 제공한다. 보다 구체적으로는, 본 발명은 의심으로서 메시지를 분류하고 및/또는 이 분류(스팸 또는 양호)를 일시 지연한다. 지연 또는 차단 기간은 적절한 시간량을 제공하여 메시지 및/또는 발신자에 대한 보다 많은 정보를 습득하게 하는 필터 및/또는 시스템에 의해 설정될 수 있다.
본 발명의 일 양태에 따르면, 메시지량(예를 들어, 발신자 당 메시지량)과 같은 활동 및/또는 동작을 점검하도록 구성될 수 있는 하나 이상의 시스템 컴포넌트로부터 정보가 획득될 수 있다. 예를 들면, 적은 양이 전송되는 메시지는 스팸일 가능성이 적다. 유사하게, 많은 양이 전송되는 메시지는 스팸일 가능성이 높다.
본 발명의 다른 양태에 따르면, 메시지 컨텐츠는 하니팟(honeypot)에서 발견된 메시지와 거의 유사한지를 판정하도록 분석될 수 있다. 하니팟은 인커밍 메시지를 스팸으로 식별하거나 및/또는 특정 상업용 메시지 주소 프로세싱을 추적하는 기지의 스팸 타겟을 지칭한다. 통상, 하니팟은 일련의 적법한 메시지가 결정될 있고 모든 다른 메시지는 스팸으로 간주될 수 있는 이메일 주소이다. 예를 들면, 이메일 주소는 사람들에 의해 발견되지 않을 것 같은 제한적인 방식으로 웹사이트 상에 개시될 수 있다. 따라서, 이 주소로 전송된 임의의 메시지는 스팸으로 간주될 수 있다. 다르게는, 이메일 주소는 적법한 메시지가 수신되도록 예측되는 상인(merchant)에게만 개시될 수 있다. 따라서, 이 상인으로부터 수신된 메시지는 적법하고 모든 다른 메시지는 안전하게 스팸으로 간주될 수 있다. 하니팟 및/또는 다른 소스(예를 들어, 사용자)로부터 유도된 스팸 데이터는 피드백 루프 시스템에 포함될 수 있지만, 하니팟을 사용한 스팸 분류의 실질적 증가로 인해, 이러한 데이터는 낮게 가중되어 편향된 피드백 결과를 얻는 것을 완화할 수 있다.
본 발명의 다른 양태에 따르면, 메시지 컨텐츠는 이것이 다른 방법, 즉, 사용자에 의해 "이는 정크임(this is junk)"으로 표시; 사용자에 의해 "이는 정크가 아님(this is not junk)"으로 표시; 피드백 루프 사용자(수프라(supra)로 명명된 스팸 방지용 피드백 루프 참조)에 의해 분류; 일부 다른 설정(예를 들어, J 이메일 서비스 대신에 Y 서버 상에)의 피드백 루프의 기술의 배치로 분류; 이를 다른 스팸 리포지터리(repositories)와 비교하는 등을 통해 피드백 수신된 메시지와 거의 유사한지를 판정하도록 분석될 수 있다.
본 발명의 또다른 양태에 따르면, 해시 기반 기술을 사용하여 차단이 결합될 수 있다. 일 양태에서, 메시지는 해시되어 차단된 메시지가 추후 양호 또는 스팸으로 분류된 임의의 다른 메시지(이전에 차단된 메시지)와 유사한지를 확인하여, 차단 밖으로 나올 수 할 수 있게 한다. 스패머는 통상 수천 또는 수백만의 사용자에게 메일을 전송한다. 메시지는 종종 동일, 거의 동일, 또는 하나의 유형으로서 식별가능하다. 따라서, 다른 것과 유사한 메시지를 캐치하는 것이 이들의 분류를 용이하게 할 수 있다. 그러나, 유사한 메시지가 하니팟, 피드백 루프, 또는 사용자 불평에 없는 경우(또는 겨우 몇개만 있는 경우), 메시지는 십중 팔구 특정 수신자, 또는 수신자 그룹에 타겟되는 것으로서, 발신자는 스패머가 아닐 가능성이 높다.
차단된 메시지는 사용자에게 보이거나 보이지 않을 수 있는 "차단", "정크", "정크 가능(Potential Junk)" 등으로 식별되는 특별 폴더 내에 저장될 수 있다. 차단 폴더에 전송된 메시지는 차단된 메시지가 사용자에게 정상적으로 보이는지에 관계없이 피드백 루프에 대하여 선택될 수 있다. 즉, 삭제되고 정크 폴더에 저장되거나 수신함 내 저장되는 메시지와 같이, 차단 폴더에 전송된 메시지는 사용자 분류에 대하여 선택될 수 있다. 피드백 루프는 사용자에게 적어도 메시지의 부분집합을 스팸 또는 양호로서 분류하게 하여 스팸을 용이하게 검출하여 보다 강력한 스팸 필터를 구성할 수 있는 폴링 메커니즘이다. 본 발명에 사용되는 바와 같이, 피드백 루프는 차단된 메시지의 랜덤 샘플링 시에 사용자를 폴링하도록 사용될 수 있다. 예를 들면, 적어도 차단된 메시지의 일부는 사용자 분류를 위해 피드백 루프에 참가하는 각 수신자(예를 들어, 사용자)에게 전달될 수 있다.
다르게는 또는 피드백 루프에 더하여, 차단 폴더가 메시지 수신자(예를 들어, 적어도 이의 부분 집합)에 보일 수 있어 이들에게 특별 폴더에 유지되는 적어도 메시지의 부분 집합을 분류할 기회를 제공한다. 이 경우, 그러나, 수신자는 피드백 루프 참가자이거나 아닐 수 있다. 이들은 이러한 메시지를 양호하거나 정크로서 보고할 수 있다. 이러한 특성화는 메시지가 스팸을 나타내는 "정크 보고" 등의 하나 이상의 버튼과 또는 메시지가 적법함으로 나타내는 "양호" 또는 "구출(rescue) 메시지" 버튼을 클릭하여 수행될 수 있다. 따라서, 피드백 루프 또는 정크/양호 보고 방법을 통해, 적어도 한정된 부분의 차단 메시지에 대해서는 특정 차단 메시지가 스팸인지의 결정을 용이하게 할 수 있다.
불확실 메시지를 스팸으로 분류한 후에 사용자가 삭제로부터 이를 구출하는 구출 시스템과는 달리, 본 발명은 분류(스팸 또는 다른 경우로서)를 지연하여 사용자가 특정 메시지에 대한 이들의 생각을 제공하여 후속 분류를 용이하게 할 수 있다. 더욱이, 피드백 루프 참가자 및/또는 비요청 메시지 수신자에 의해 제출된 것과 같은 사용자 불만은 차단 중인 메시지 중 적어도 일부가 스팸인지를 결정하는데 사용될 수 있다. 사용자로부터 불평이 적은 것은 또한 특정 매시지가 스팸인지를 결정하는데 사용될 수 있다.
차단 메시지에 대한 대안으로서, 적어도 의문 또는 의심 메시지의 부분 집합은 차단 또는 명확한 사용자 분류(예를 들어, 피드백 요청, 폴링 등) 없이 필터에 새어 나가거나(trickle out) 통과할 수 있다. 그 대신, 사용자/수신자 동작은 이들 메시지에 대하여 점검 또는 관측될 수 있다. 새어 나갈 수 있는 메시지량은 발신자 당 고정된 개수의 메시지일 수 있으며(예를 들어, 처음 1000개) 또는 고정된 확률의 메시지 - 예를 들면 발신자 당 - 일 수 있다. 이들 메시지의 수신자는 스팸인지 아닌지에 대한 메시지를 특성화하는 묵시적 기회가 부여된다. 이들 메시지에 대한 사용자 동작은 필터를 갱신하는데 사용될 수 있다.
본 발명의 또다른 양태에서, 머신 습득 시스템(예를 들어, 뉴럴 네트워크, 지원 벡터 머신(SVM), 베이시안 신뢰망(Bayesian Belief Network)은 적법 메시지와 스팸 메시지를 인식하도록 트레이닝된 개선된 및/또는 갱신된 스팸 필터를 생성하도 이들을 구별하게 한다. 일단 새로운 또는 갱신된 스팸 필터가 본 발명에 따라 트레이닝되는 경우, 메일 서버 및 이메일 소프트웨어 프로그램에 배포될 수 있다. 더욱이, 새로운 또는 갱신된 스팸 필터는 참여 사용자에 의해 제공되어 개별화된 필터의 성능을 향상시키도록 분류 및/또는 다른 정보에 대하여 트레이닝될 수 있다. 추가 트레이닝 데이터 집합이 구성됨에 따라, 스팸 필터는 머신 학습을 통해 트레이닝을 진행하여 성능 및 정확성을 최적화할 수 있다. 메시지 분류에 의한 사용자 피드백은 스팸 필터와 부분 제어에 대한 리스트를 생성하고, 스팸 필터 성능을 테스트하고, 및/또는 스팸 발생지를 식별하는데 사용될 수 있다.
더욱이, 시스템 분석 뿐만 아니라 사용자에 의해 일부 생성되는 트레이닝 데이터는 또한 최근에 차단된 메시지에 구체적으로 적용가능한 새로운 서브필터(양호, 스팸 및 의심 메시지에 대한 복수의 특징에 대하여 트레이닝된 전체 크기 필터보다 작음)를 생성하도록 사용될 수 있다. 새로운 서브 필터는 최근에 차단된 메시지로부터 추출된 하나 이상의 특징(특성 부분 집합) 상에 트레이닝될 수 있다. 예를 들면, 서브필터는 IP 어드레스 특징에 대해서만 트레이닝될 수 있다.
정보가 획득되자마자 및/또는 차단 기간이 경과했을 때, 하나 이상의 (스팸) 필터가 차단된 메시지를 적절하게 분류하도록 갱신될 수 있다. 이는 메시지가 차단 기간에서 나올 준비가 될 때마다 필터가 갱신되어야 하는 것을 의미하는 것이 아니다(비록 이것이 실시가능하더라도). 본 발명은 미리 설정된 필터 갱신 스케줄과 동기일 수 있는 차단 시점을 선택할 수 있으므로, 필터 갱신이 발생한 직후에(따라서 갱신 정보로 분류 또는 재분류) 메시지 묶음이 차단에서 나올 수 있다. 이러한 스케줄은 묵시적으로(예를 들어, 새로운 필터는 1PM에 도달하도록 예정되어 메시지는 1:01PM까지 차단된다) 또는 명시적으로(예를 들어, 언제라도, "새로운 필터가 도달할 때까지" 차단되는 메시지)를 행해질 수 있다. 따라서, 이들 의심 메시지는 갱신된 필터로 다시 동작하고 스팸 또는 비스팸으로서 분류될 수 있다. 예를 들면, 지연된 메시지는 새로운 부정 정보의 부족에 일부 기초하여 "양호"로서 분류될 수 있다. 유사하게, 지연된 메시지가 새로운 양의 정보에 기초하여 양호한 것으로 분류될 수 있다.
더욱이, 사용자 및/또는 시스템 피드백으로부터 수집된 정보는 이미 사용중인 하나 이상의 필터를 갱신하는데 사용될 수 있다. 그 결과, 지연된 메시지는 분류를 위해 필터를 통해 다시 처리 또는 전송될 수 있다. 또한, 새 필터가 차단되어야 하는 후속 인커밍 메시지에 대한 적용을 위해 트레이닝될 수 있다.
메시지가 차단 또는 지연 기간 동안 스팸으로 결정되는 경우, 특별 폴더(예를 들어, 차단 폴더)로부터 직접 삭제되고 및/또는 폐기용의 다른 폴더(예를 들어, 휴지통 폴더)에 이동될 수 있다. 다르게는, 양호한 것으로 분류된 메시지는 개별 릴리스 날짜(차단에서 릴리스된 날짜)로 타임 스탬프되어 의도한 수신자에 배달될 수 있다. 따라서, 이들 메시지는 두개의 타임 스탬프 - 하나는 원래의 도달 날짜 다른 하나는 차단에서 릴리스된 날짜를 가리킨다. 차단 릴리스 날짜는 날짜:헤더 필드일 수 있으므로, 클라이언트 소프트웨어는 이 메시지를 적절하게 정렬하게 함으로써, 이들이 보여질 수 있다. (특히, 메시지가 실질적으로 지연되면, 통상의 순서로 나타나는 경우, 날짜 정렬된 수신함 부분에서 사용자가 보지 않을 수 있다. 새로운 날짜를 스탬프하는 것은 메시지가 사용자에게 보일 수 있게 한다.)
상기 및 또는 관련 목적의 달성을 위해, 여기서 설명되는 본 발명의 어떤 예시적인 양태는 다음 설명과 첨부 도면에 관련된다. 그러나, 이들 양태는 본 발명의 원리가 사용될 수 있으며 본 발명은 모든 이러한 양태와 균등물을 포함하도록 하려는 여러 방식 중 단지 일부이다. 본 발병의 다른 이점 및 신규 특징은 도면과 함께 본 발명의 후술하는 상세한 설명으로부터 보다 명백해질 것이다.
이하, 본 발명은 도면을 참조하여 설명하며, 여기서, 동일 참조 번호는 동일한 구성요소를 나타내는데 사용된다. 후술하는 설명에서, 설명의 목적을 위해, 많은 특정 세부사항이 본 발명의 철저한 이해를 제공하도록 설명된다. 그러나, 본 발명은 이들 특정 세부사항 없이 실시될 수 있음은 명백하다. 다른 경우, 공지된 구조 및 장치가 본 발명을 설명하기 위해 블록도 형태로 도시되어 있다.
이러한 애플리케이션에서 사용되는 바와 같이, "컴포넌트" 및 "시스템"이라는 용어는 컴퓨터 관련 엔티티, 하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합, 또는 실행 중인 소프트웨어를 의미한다. 예를 들면, 컴포넌트는 프로세서에서 실행되는 프로세스, 프로세서, 객체, 실행파일, 실행 스레드, 프로그램 및/또는 컴퓨터일 수 있지만 이에 한정되지 않는다. 예를 들면, 서버 상에서 동작하는 애플리케이션과 이 서버는 컴포넌트일 수 있다. 하나 이상의 컴포넌트가 프로세스 내에 상주할 수 있으며 및/또는 실행 스레드 및 컴포넌트는 하나의 컴퓨터로 로컬화되거나 및/또는 둘 이상의 컴포넌트 사이에 분산될 수 있다.
본 발명은 머신 학습 스팸 필터링을 위해 트레이닝 데이터를 생성하는 것에 관련되는 여러 유추 방식 및/또는 기술을 포함할 수 있다. 여기서 사용되는 바와 같이, "유추"라는 용어는 이벤트 및/또는 데이터를 통해 캡처된 일련의 관측으로부터 시스템, 환경, 및/또는 사용자의 상태의 추론 과정에 관한 것이다. 유추는 특정 경우 또는 동작를 식별하도록 사용될 수 있으며, 예를 들면, 상태들에 대한 확률 분포를 생성할 수 있다. 추론은 확률적일 수 있으며, 다시 말하면, 확률 분포의 계산은 데이터와 이벤트의 고려에 기초한 관심 상태에 대한 확률 분호의 계산이 다. 추론은 또한 일련의 이벤트 및/또는 데이터로부터 고차원 이벤트를 조성하는데 사용되는 기술을 나타낼 수 있다. 이러한 추론은, 이벤트가 시간적으로 상관되는지 그리고 데이터 및 이벤트가 하나 또는 여러 이벤트 및 데이터 소스로부터 오는지에 관계없이, 일련의 관측된 이벤트 및/또는 저장된 이벤트 데이터로부터 새로운 이벤트 또는 동작을 구성한다.
메시지라는 용어는 본 명세서에서 광범위하게 사용되지만 이러한 용어는 본래의 전자 메일에 한정되지 않고, 임의의 적절한 통신 아키텍처 상에 분산될 수 있는 임의 형태의 전자 메시징을 포함하는데 적절하게 적합할 수 있다. 예를 들면, 둘 이상의 사람 간의 회의 또는 대화를 용이하게 하는 회의 애플리케이션(예를 들어, 대화식 채팅 프로그램 및 인스턴트 메시징 프로그램)은, 또한, 사용자가 인사말, 맺음말 등의 메시지를 교환할 때 원하지 않은 텍스트가 정상 채트에 전자적으로 삽입될 수 있기 때문에 여기서 개시되는 필터링을 이용할 수 있다. 이러한 특정 애플리케이션에서, 필터는 원하지 않은 컨텐츠(예를 들어, 광고, 프로모션, 또는 상업광고)를 캡처하여 정크로서 태그하기위해서 특정 메시지 컨텐츠(텍스트 및 이미지)를 자동 필터링하도록 트레이닝될 수 있다.
본 발명에서, "수신자"라는 용어는 인커밍 메시지의 받는 사람을 말한다. "사용자"라는 용어는 수동 또는 능동으로 선택되었거나 여기서 설명되는 피드백 루프 시스템과 프로세스에서 참가하도록 간접적으로 선택된 수신자를 의미한다.
본 발명은 인커밍 아이템 또는 메시지의 지능형 차단을 용이하게 하는 시스템 및 방법에 관한 것이다. 지능형 차단은 스팸으로 의심받는 일부 메시지를 보류 하는 것을 의미한다. 이는 필터가 갱신되어 메시지를 보다 정확하게 분류하도록 보다 많은 시간을 부여할 수 있다. 실제, 차단이 없는 다음 시나리오를 고려하자: 스패머는 현재 필터를 통과할 수 있는 메시지를 발견한다. 그는 메시지 시스템이 필터 갱신을 획득할 수 있을 때가지 가능한 한 빨리 천만명에게 이 메시지를 전송한다. 천만명의 사람들은 스팸을 (수신함에) 수신한다. 이제 차단을 갖는 동일한 시나리오를 고려하자: 스패머가 현재 잡히지 않거나 스팸으로 식별되지 않는 메시지를 발견한다; 그러나, 메시지는 다소 이상하여 시스템이 이를 의심하다. 그는 필터가 갱신될 때까지 가능한 한 빨리 천만명의 사람에게 이 메시지를 전송한다. 스패머의 메시지가 의심스럽고 필터가 이를 스팸인지를 아닌지를 용이하게 분류하기 위해 이용가능한 충분한 정보가 없기 때문에, 이들은 이하 설명되는 바와 같이 차단될 수 있다.
이하, 도 1을 참조하면, 본 발명의 일 양태에 따른 피드백 루프 시스템을 구현하는 차단 시스템(100)의 통상의 블록도가 도시되어 있다. 메시지 수신 컴포넌트(110)는 인커밍 메시지(IM이라고 함)를 수신하여 이를 의도된 수신자(120)에 전달한다. 메시지 수신 컴포넌트는, 많은 메시지 수신 컴포넌트에서와 같이, 적어도 하나의 필터(130; 예를 들어, 제1 분류 컴포넌트)를 포함하거나 이와 함께 동작하여, 원하지 않은 메시지(예를 들어, 스팸)의 전달을 줄일 수 있다. 메시지 수신 컴포넌트(110)는 필터(130)와 관련하여 메시지(IM)를 처리하고 의도한 수신자(120)에 메시지(필터링된 IM으로 나타냄)의 필터링된 부분집합을 제공한다.
필터(130)는 피드백 루프 시스템을 사용하여 트레이닝될 수 있음이 이해되어 야 한다. 특히, 필터(130)는 신뢰 사용자 피드백에 적어도 일부 기초하여 스팸 뿐만 아니라 스팸 및 양호 메일 사이를 구별하도록 이전에 트레이닝된다. 머신 학습 시스템은 양호 및 스팸 메시지에 대한 사용자 피드백을 포함하는 트레이닝 데이터를 사용하여 이러한 필터(130)의 트레이닝을 용이하게 한다.
하나 이상의 필터(130)는 인커밍 메시지에 대한 충분한 정보를 갖고 있는 경우, 필터(130)는 메시지를 보다 정확하게 평가하여 이를 스팸 또는 비스팸(예를 들어, 양호)으로서 분류할 수 있다. 따라서, 의도한 수신자(120)에 전달된 메시지의 부분집합(필터링된 IM)에 대하여, 필터(130)는 충분한 양의 정보를 포함하여 메시지가 양호한 지를 결정하도록 할 수 있다. 유사하게, 인커밍 메시지의 다른 부분 집합은 스팸으로 식별되어 적절하게 폐기될 수 있다(미도시).
불행히도, 스패머, 그리고 심지어 적업한 발신자도 간혹 다른 것보다 보다 빈번하게 발신자 데이터의 일부를 변경하려 한다. 예를 들면, 스패머는 IP 주소, 도메인 네임, 및 메시지 컨텐츠 등의 메시지의 다양한 양태를 위장 또는 변형하여 스팸 필터를 속이려는 경향이 매우 강하다. 역으로, 일부 적법한 전송가가 이들의 IP 주소를 합리적 이유로 변경한다. 예를 들면, 뉴욕 타임스는 증가된 수의 온라인 가입자를 수용하는데 필요한 새로운 서버의 추가로 인해 수시로 IP 주소를 변경하는 것으로 알려져 있다. 적어도 인커밍 메시지의 부분 집합에서의 이들 변경 유형으로 인해, 필터(130)는 스팸 확률 점수(예를 들어, 메시지가 스팸이라는 확률)을 정확하기 결정하기 위한 메시지에 대한 충분한 정보를 갖지 않을 수 있다. 그 결과, 메시지는 정보 부족으로 인해 정확하게 분류될 수 없다.
종래의 스팸 방지 시스템과는 달리, 본 발명에서는 분류 정보가 부족한 메시지는 보류 또는 차단(추가 분석을 위해 표시)하여 보다 많은 정보가 이에 대하여 수집된다. 차단된 메시지는 필터(130)가 차단 기간 동안 수집된 임의의 정보로 갱신될 수 있을 때까지 일정 기간(예를 들어, 지연 또는 차단된 기간)에 대하여 지연된 메시지 저장소(140)에 이동될 수 있다. 지연된 메시지는 예를 들면 정크 폴더 또는 서버 상의 큐와 같은 몇몇 다른 저장소와 동일할 수 있다. 저장소에 차단된 메시지는 특별하게 표시될 수 있으며, 또는 이 폴더 내의 모든 메시지는 차단된 것처럼 주기적으로 재채점될 수 있다.
획득될 수 있는 여러 정보 유형이 있다. 한 유형은 트리클 아웃 성분(trickle out component)이다. 차단된 메시지에 대한 사용자 피드백은 적어도 차단된 메시지의 부분 집합이 차단 밖으로 새어나가거나 의도한 수신자로의 전달을 위한 필터 분류 프로세스를 우회할 수 있게 되는 트리클 아웃 메커니즘을 사용한 것을 포함한다. 새어나간 메시지는 의도한 수신자(예를 들어, 랜덤 또는 선택된 사용자(150))가 스팸 필터를 트레이닝하는 피드백 루프 시스템에서 참가자라는 사실에 일부 기인하여 선택될 수 있다. 다르게는, 또는, 이에 더하여, 새어나간 메시지는 랜덤하게 선택될 수 있다.
다른 데이터 형태는 피드백 루프이다. 피드백 루프 컴포넌트(170)는 사용자(예를 들어, 피드백 루프에 참가하는 수신자)로부터의 추가 피드백을 위해 차단, 삭제된 것에 관계없이, 메일의 일부를 선택한다. 피드백 루프 컴포넌트(170)는 필터를 구성 및/또는 갱신할 수 있게 하는 필터 갱신 컴포넌트(160)에 데이터를 부여 한다. 수프라(supra)로 불리는 스팸 방지용 피드백 루프에서 설명되는 바와 같이, 사용자는 이들 메시지에 대하여 명시적으로 문의받는다.
데이터의 또다른 형태는 하니팟(180; 예를 들어, 하니팟 성분)에 대한 것이다. 메시지가 메시지 수신 컴포넌트(110)에 도달하는 경우, 일부 메시지가 하니팟 컴포넌트(180)에 진행할 수 있다. 통상, 하니팟에 발견된 메시지는 통상 스팸일 수 있다. 따라서, 이들 메시지를 식별하는 정보는 필터를 갱신 또는 구성하는 경우 필터 갱신 컴포넌트(160)에 의한 추후 사용을 위해 수집될 수 있다.
"이는 정크", "이는 정크 아님" 등의 데이터는 다른 소스(185)로부터 또는 새로운 설정으로 배치된 피드백 루프 기술로부터 또는 다른 소스로부터 올 수 있다.
사용자 피드백은 필터 갱신 컴포넌트(160)에 의해 수집된 후 필터(130)를 갱신하도록 사용될 수 있다. 차단 기간은 설정 기간을 가질 수 있음이 이해되어야 한다. 예를 들면, 1시간, 6시간, 또는 24시간 등의 임의의 수동 또는 자동 설정된 시간 길이일 수 있다. 이는 메시지가 지연된 메시지 저장소(140)에 이동된 후에 1시간, 6시간, 24시간 또는 그 이상의 시간 동안 정보가 수집될 수 있음을 의미한다. 몇몇 경우, 새어 나간 메시지에 대한 사용자 불평의 부족은 메시지(예를 들어, 동일 메시지의 여러 복사본 또는 발신자 당 많은 상이한 메시지)가 적법할 가능성이 크고 스팸일 가능성은 작음을 나타낼 수 있다.
사용자 피드백에 더하여, 지연된 메시지 저장소(140)에 동작가능하게 접속되는 메시지 분석 컴포넌트(190)에 의해 정보가 수집될 수 있다. 메시지 분석 컴포 넌트(190)는 발신자 당 양과 차단 메시지 중에서 유사성에 대하여 차단 메시지를 점검할 수 있으며, 이들을 컨텐츠 및/또는 발생 정보로서 분석할 수 있다. 예를 들면, 적은 양으로 전송된 메시지(예를 들어, 시간당 20미만, 시간당 50미만, 시간당 1000미만 등)는 스패머 동작을 보다 잘 나타내는 많은 양(예를 들어, 시간당 10,000, 시간당 100,000)으로 전송되는 메시지보다 스팸일 가능성이 적다. 따라서, 특정 발신자가 적은 양의 메시지를 전송하는 정보는 발신자에 대하여 습득되는 특징일 수 있으며, 발신자의 메시지가 의심으로 간주되지 않는 대신 양호한 것으로 구별될 수 있도록 필터(130)를 갱신하는데 사용될 수 있다.
또한, 해시 펑션이 차단된 메시지의 적어도 부분 집합에 대하여 계산되어 발신자 당과 같이 메시지 중에서 유사성을 결정할 수 있다. 예를 들면, 차단 메시지는 컨텐츠 또는 발신자에 기초하여 다른 최근 메시지와 비교될 수 있다. 유사한 해시 또는 동일 또는 유사한 사용자로부터의 다른 최근 메시지가 사용자에 의해 정크로서 보고되고, 피드백 루프에서 정크로서 분류되거나, 하니팟에서 도달되면, 메시지는 스팸으로서 분별될 수 있다. 유사한 메시지가 양호한 것으로 표시되거나 차단 또는 정크 폴더로부터 구출되면, 또는 피드백 루프에서 양호한 것으로 분류되면, 메시지는 양호한 것으로 분류될 수 있다. 많은 유사한 메시지가 메시지 수신 컴포넌트에 도달하면, 이러한 메시지의 양은 메시지가 스팸이라는 표시일 수 있다. 많은 유사한 메시지가 사용자 수신함(예를 들어, 트리클 아웃을 통해)전달된 경우, 그리고 사용자에 의한 정크로서 표시된 것이 없거나 거의 없는 경우, 이는 메시지가 양호하다는 표시로서 취급될 수 있다. 유사한 메시지가 하니팟에서 도달되지 않은 경우, 이는 메시지가 양호하다는 표시로서 간주될 수 있다.
차단 기간이 완료된 경우, 필터(130)는 이에 따라 갱신될 수 있으며, (예를 들어, 갱신된 필터는 제2 분류 컴포넌트로서 불릴 수 있다) 차단된 메시지는 스팸 또는 양포로서 분류를 위해 재필터링될 수 있다. 차단된 메시지 상의 피드백으로부터 생성된 데이터를 트레이닝하는 것에 적어도 일부 기초한 필터 갱신은 사용자 (예를 들어, 개인용 필터), 클라이언트 및/또는 서버에 의해 결정된 바대로 빈번한게 발생할 수 있다. 필터는 차단 기간의 길이와 일치하도록 설정될 수 있으며, 그 역도 또한 사실이다.
도 2를 참조하면, 메시지 분류를 용이하게 하는 차단 시스템(200)의 블록도가 도시되어 있다. 시스템(200)은 새로운 메시지가 스팸 또는 양호로서 분류를 위해 처리되는 하나 이상의 메시지 필터(2310)를 포함한다. 임계치 분석과 같이 명확하게 스팸 또는 양호한 것으로 구분되지 않는 메시지는 의심으로 간주되어 이 메시지 또는 메시지 발신자에 대한 추가 데이터가 필터(210)에 제공될 수 있을 때까지 특별 차단 폴더(220)에 이동될 수 있다. 이는 메시지 구출 시스템과 직접적으로 반대이다. 본 발명과는 달리, 메시지 구출을 수행하는 시스템은 불명확한 메시지를 스팸으로서 분류하고 이를 스팸 폴더에 이동한다. 이러한 "스팸" 메시지는 일부가 매우 유사한 메시지를 양호한 것으로서 분류하기 때문에 추후 구출될 수 있다. 본 발명에서, 메시지는 "의심"으로 간주될 수 있으며, 스팸 또는 양호로서의 구별은 이들에 대하여 보다 많이 습득하기 위한 시간을 제공하기 위해서 일시 지연된다.
사용될 수 있는 하나의 학습 기술은 의심 메시지에 대한 추가 데이터(230)를 수신하는 것을 포함한다. 몇몇 상황에서, 일부 의심 메시지는 의도된 수신자에게 릴리스(트리클 아웃)될 수 있다. 다르게는, 피드백 루프는 몇몇 메시지를 샘플하는데 사용될 수 있다. 다르게는, 몇몇 데이터는 하니팟에 전달될 수 있다. 다르게는, 데이터는 "이는 정크"라는 보고; "이는 정크 아님"이라는 보고; 또는 새로운 설정에 배치되는 피드백 루프 기술; 또는 다른 소스로부터 올 수 있다.
다른 상황에서, 사용자는 차단 메시지 폴더에 대한 액세스를 가질 수 있다. 이것이 발생하면, 사용자는 적어도 차단된 메시지의 부분집합에 대한 피드백을 제공할 수 있다. 유사한 메시지가 그 후 사용자가 모든 차단 메시지에 대한 피드백을 제공할 필요가 없도록 해당 처리가 부여될 수 있다. 이는 수천개의 메시지가 차단될 수 있기 때문에 상대적으로 중요해질 수 있으므로, 이들의 스팸 또는 양호로서의 분류는 일시 지연되었다.
피드백은 특정 메시지로의 몇몇 액세스를 갖는 사용자로부터 긍정 또는 부정 코멘트의 형태일 수 있다. 예를 들면, 긍정 코멘트는 메시지가 양호하다는 "진술"의 확인을 포함한다. 또한, 긍정 코멘트는 새 부정 코멘트의 부족 및/또는 유사한 정보에 대한 새 불명의 부족을 포함할 수 있다.
차단된 메시지에 대한 시스템 피드백이 또한 수집될 수 있다. 이는 양(메시지의 적거나 많은 양), 메시지와 다른 차단 메시지의 유사성, 및/또는 메시지와 하니팟 메시지의 유사성 등의 특성에 대한 차단 폴더(220)에서 적어도 메시지의 부분 집합을 점검하여 수집된 데이터를 포함할 수 있다. 임의의 이용가능 사용자 피드 백과 함께 이러한 정보는 각 특징(또는 트레이닝 데이터)으로서 필터 갱신 컴포넌트(240)에 의해 사용되어 필터(210)를 트레이닝하여 갱신할 수 있다. 이 후에, 갱신된 필터(250)가 생성될 수 있다. 차단된 메시지는 실체부에서 갱신된 필터(250)를 통해 진행되어 분류 프로세스를 재개한다. 이에 따라, 일단 분류되면, 지정된 스팸이 차단 폴더로부터 영구 삭제되거나 삭제를 위해 휴지통(260)에 전송될 수 있다. 제1 전달 컴포넌트(270)는 의도한 수신자에게 전달을 위한 차단으로부터 "양호한" 메시지를 릴리스할 수 있다. 차단 폴더가 정크 폴더가 없는 경우, 차단된 메시지는 제2 전달 컴포넌트(280)를 통해 정크 폴더에 배치될 수 있다. 차단 폴더가 정크 폴더이면, 차단된 메시지는 특별 "차단된" 플리그가 제거되게 할 수 있다.
도 3은 본 발명의 일 양태에 따른, 차단 시스템(300)에 관련된 이점의 다른 측면을 나타낸다. 특히, 이 도면은 새 인커밍 메시지가 발생하는 특정 코스를 나타낸다. 메시지는 필터(310)를 통해 초기에 처리된다. 필터는 예를 들면 확률 점수를 계산하여 양호(320) 및 스팸(330) 사이에 구별되도록 트레이닝되었다. 그러나, 일부 메시지는 명확하게 스팸 또는 양호로서 구별되는 근방에 해당할 수 있다. 이들은 의심 메시지(340)일 수 있다. 이에 대한 이유는 메시지가 이전에 보지 못하거나 인식하지 않은 양태 또는 특징을 포함하기 때문에 메시지에 대한 정보를 부족할 수 있다. 이들 특정 메시지에 대하여, 스팸(330) 또는 양호(320)로서 분류는 시구간 동안 연기된다(350). 이러한 시구간은 스팸 또는 양호로서 분별하기 전에 메시지에 대한 보다 많은 정보를 학습할 수 있게 한다(360). 그 결과, 분류 에러 레이트가 감소될 수 있으며, 이전에 본 적이 없는 "양호한" 메시지가 단지 무시하 는 필터 또는 적절한 정보가 부적한 필터로 인해 "스팸"으로서 임의로 분류되기 때문에 사용자 만족이 증가될 수 있다.
필터는 갱신될 수 있으며(370), 양호(380) 또는 스팸(390)인 메시지의 분류가 재개될 수 있다. 시구간은 보다 많은 데이터가 있을 수 있고 양호 또는 스팸으로 차단 메시지의 분류를 용이하게 획득되도록 충분히 길어야 한다. 즉, 차단 구간이 경과하면 "의심" 라벨이 더이상 이용가능하지 않거나 차단 메시지에 이용가능할 수 있다.
도 4를 참조하면, 메시지의 차단 및 분류가 일시 지연될 수 있는 예시적인 인스턴스의 개략도(400)이다. 메시지가 초기에 메시지 수신 컴포넌트(예를 들어, 도 1; 110)에서 도달하는 경우에, 하나 이상의 필터에 의해 평가된 후 채점될 수 있다. 확률 점수는 특정 메시지가 스팸일 가능성을 의미한다. 이 점수는 삭제 임계치 및 이동 임계치 등의 임계치와 비교될 수 있다.
삭제 임계치를 충족하거나 초과하는 메시지는 스팸 또는 적어도 보다 스패머와 같은 것으로 간주될 수 있다. 완벽한 확률 점수가 0=양호 메시지와 최고점수인 1=스팸 또는 정크 메시지인 경우, 0과 약 0.8 사이의 계산된 점수는 양호한 메시지를 반영하고(또는 정크 폴더에 놓일 수 있는 위험에 비해 양호할 수 있는 가능성이 매우 높음)(따라서, 전달됨), 약 0.8에서 약 0.99까지의 점수는 정크 가능을 반영하며(따라서, 정크 폴더에 배치될 수 있음), 약 0.99 내지 1 까지의 점수는 정크 또는 스팸임을 반영한다(따라서, 상당한 확실성으로 삭제될 수 있음). 스팸 또는 양호의 에지 근방에 또는 그 상부의 점수를 갖는 메시지, 또는 일부 구성가능한 동작이 한정되는 임계치가 차단에 대하여 선택될 수 있다. 다르게는, 특별 방식으로 메시지를 표시하거나 메시지 관리자에게 전송하여 메시지를 조사하는 등의 일부 달리 구성가능한 동작이 발생할 수 있다.
새 IP 주소가 필터에 의해 이전에 보지 않았기 때문에 의심가는 것으로 간주된 일부 메시지에 대하여, 차단은 도움이 되거나 되지 않을 수 있다. 즉, 일부 메시지는 에지 근방에 있을 수 있지만, 이들 점수는 보다 많은 정보가 이들에 대하여 학습되는 경우에도 스팸 또는 양호로서 명확한 분류를 이끌기에 충분히 변하지 않을 수 있다. 예를 들면, 가상의 발신자 "양호 신문사"와 "스패머사"로 부터의 메시지를 고려하자. 양호 신문사로부터의 메시지는 스팸일 가능성(임계치)가 25% 할당되는 반면, 스패머사는 80% 가능성으로 할당된다. 이들 확률은 대량의 정보 또는 이전에 획득되고 필터를 트레이닝하는데 사용되는 트레이닝 데이터에 기초한다(머신 학습 기술). 양호 신문사는 이들 리스트를 디바운싱(debounce)하지 않으며, 대략 약 1/4의 필터 사용자가 이 메시지를 스팸으로 표시한다(예를 들어, 일부 사용자는 가입한 것을 잊어버려 이를 스팸으로 표시함). 따라서, 필터는 약 25%의 스팸일 가능성으로 이들 메시지를 부여하여 이는 필터를 통과하기에 충분히 낮고 차단되기에는 높을 수 있다. 그러나, 이들 메시지는 일관되게 25% 레벨이고; 필터가 더 획득할 정보가 있는지 또는 이 메시지에 대한 내일의 점수가 변경되는지 확인하기 위해 대기함에 따라 모든 수신자에게 양호 신문사의 헤드라인을 하루 이상 늦게 부여할 필요가 없다. 유사하게, 스패머사로부터의 메시지는 날마다 항상 80%의 스팸이다. 따라서, 이들 상황 어느 경우이든, 추가 정보가 분류를 변경할 가능성이 적어 차단은 최적이거나 가장 효율적인 접근법이 아닐 수 있다.
따라서, 비교적 큰 데이터양이 메시지에 대하여 이미 알려져 있는 경우, 사용자 또는 필터 시스템은 추가 정보가 분류를 변경하지 않을 가능성이 있으므로 차단하지 않도록 결정할 수 있다. 많은 양의 데이터는 IP 주소, 메시지 링크, 발신자의 도메인 네임(특히, 안티 스푸핑 메커니즘과 함께), 메시지 단어, 및 임의의 다른 특성에 관한 임의의 데이터를 의미할 수 있다. 따라서, 점검되는 특징에 대하여, 필터가 이미 전송당 특징에 대한 많은 정보가 있는지를 점검되어 차단에 대한 결정을 용이하게 할 수 있다.
그러나, 임계치에 대한 거리는 차단 시기를 결정하는 유일한 답은 아니다. 보다 구체적으로는, 메시지의 IP 주소를 고려하자. IP 주소가 이전에 관측되지 않은 것이면, 이는 통상 차단될 수 있다 - 그렇지 않은 경우 메시지는 메시지의 다른 특징에 따라 명백하게 스팸 또는 양호이다. 이전에 보지 않은 IP 주소를 갖는 메시지가 수신되면, 3가지 가능성이 있다.
적은 양의 IP 주소(예를 들어, 소기업 또는 개인용 서버이고 스팸이 아니다 - 또는 적어도 매우 타겟화된 스팸);
많은 서버를 추가함에 따라 큰 적법 회사(예를 들면, 뉴욕 타임스)에 대하여 새로운 IP 주소 - 마찬가지로, 스팸이 아님;
심지어 수시간을 기다림으로서, 필터는 이들 3개의 가능성들 사이에서 분별하여 가장 중요한 정보를 획득할 수 있다. 미지의 IP 어드레스에 대하여, 메시지 가 매우 넓은 범위에 해당되는 경우에도 메시지를 지연(일시 차단)하는 것이 바람직할 수 있다. 발신자의 도메인도 유사한 방식으로 처리될 수 있다. 안티 스푸팅 기술이 퍼짐에 따라, 메시지가 차단되어 특정 의심 메시지의 지정한 발신자를 확인할 수 있다. 또한, 발신자 IP 주소에 대한 역 IP 주소가 없고 및/또는 발신자 도메인 상의 전방 검색이 발신자의 IP 주소와 적어도 대략적으로 일치하지 않으면, 메시지는 차단될 수 있다(430).
스팸의 다른 실질적 표시자는 특히 링크에서의 임베디드 도메인의 존재이다. 메시지가 이전에 전혀 또는 거의 보지 않은 도메인 네임을 포함하면, 의심으로 간주될 수 있다. IP 주소와 같이, 이러한 메시지의 지연 전달은 이들을 스팸 또는 양호로서 분류하는 것을 지원할 수 있다. 특정 유형의 첨부 파일(440)은 특히 의심(예를 들어, 통상의 바이러스)이고 이러한 확장을 갖는 메시지(에를 들어, 실행 파일 또는 마크로 임베디드 문서 파일)는 차단될 수 있다.
또한, 차단은 키워드 기반 필터링에서 홀을 사용하려는 시도를 검출할 수 있다. 예를 들면, 스패머가 많은 양호한 워드를 발견하고 이들 양호한 워드를 그 메시지에 추가하면, 단지 나쁜 워드가 단지 검출가능하고, (전체적으로 양호한 점수를 갖더라도) 메시지는 의심으로 간주될 수 있다. 이 메시지는 예를 들면 수시간 동안 분류에서 보류되고, 피드백 루프 시스템을 통해 많은 이 종류의 데이터가 발견될 수 있다. 그 후, 필터는 이러한 유형의 메시지가 실제 나쁘다는 것을 알 수 있다. 이 스패머 전략 유형과 싸우기 위해서, 이전에 양호한 것으로 여겨진 단어는 가중치 감소되고 상기 필터는 상기 메시지의 원점이 열악함을 알 수 있다. 즉, 머신 학습 필터에 대하여 나타나기 있는 유형의 메시지의 경우 이는 상충하는 증거를 포함하기 때문에 차단될 수 있다. 또한, 파싱하기 어려운 HTML을 포함하거나 화상을 주로 포함하기 때문에 임의 유형의 필터에 대하여 나타나기 어려운 임의의 메시지가 차단될 수 있다. 전반적으로, 복수의 특징의 평가는 메시지를 차단하는지가 결정될 수 있기 전에 복수의 특징의 평가가 수행될 수 있다.
통상, 개인 사용자는 비교적 적은 수의 위치에서 메시지를 수신하고 비교적 언어 수가 적다. 개인용 필터에 있어서, 사용자는 통상 양호한 메시지를 수신하지 않는 위치에서 메시지를 수신하거나 통상 양호한 메시지를 수신하지 않는 언어로 수신하는 경우, 메시지는 또한 차단될 수 있다. 위치는, 지형 위치, IP 주소, IP 주소 할당 정보, 도메인 네임에서의 국가 코드 등에 일부 기초하여 결정될 수 있다.
도 5를 참조하면, 본 발명에 따른, 차단이 적어도 하나의 서버 상에서 사용되는, 적어도 하나의 서버와 적어도 하나의 클라이언트 사이에서간의 예시적인 하이 레벨 통신 아키텍처가 도시되어 있다. 몇몇 경우, 메시지가 이미 차단된 것을 어느 방식으로 나타내는 것이 바람직할 수 있다. 예를 들면, 클라이언트와 서버가 차단을 구변하는 경우, 클라이언트가 서버에서 이미 차단된 메시지를 차단하는 것은 바람직하지 않다. 다르게는, 클라이언트는 메시지가 서버에서 차단된 시간량을 메시지가 클라이언트에서 차단된 시간량을 감사하여 적적하여 시간량을 감소할 수 있다.
도면에서 나타낸 바와 같이, 서버에서 진입하는 메시지는 하나 이상의 필터 S(S)(510)를 통해 클라이언트에 진행하거나 분석 및 조사(520)를 위해 유지되도록 차단된다(530). 차단된(그리고 차단에서 해제된) 서버로부터의 메시지 또는 차단되지 않은 메시지는 클라이언트에 위치한 하나 이상의 필터C(S)에 전달될 수 있다. 이 점에서, 메시지는 단순히 필터(540)에 의해 분류될 수 있고 적절한 경우 수신함(550)에 전달될 수 있다.
이하, 도 6을 참조하면, 인커밍 메시지(610)에 대하여 메시지 프로세서(605)의 동작을 포함하는 차단 시스템(600)의 개략도가 도시되어 있다. 메시지(610)는 도달 날짜 및 시간으로 타임 스탬프되고(615) 그 후 필터링되는 메시지 프로세서(605)에 진입한다(620). 메시지는 메시지에 대한 정보 부족으로 인해 차단에 대해 표시한다(630). 차단 결과, 스팸 또는 양호로서의 메시지의 분류는 지연 구간 동안 지연된다.
지연 구간(635)은 메시지가 차단 표시될 때 개시하고, 시스템 또는 사용자에 의해 설정된 임의의 시간량에 대하여 계속된다. 예를 들면, 필터는 다음 필터 갱신(예정된 갱신)에 적어도 일부 기초하여 권고된 차단 시간을 제공할 수 있다. 차단은 API(애플리케이션 프로그램 인터페이스)에 의해 구현될 수 있기 때문에, 적절한 API에 전달된 m(예를 들어, 1 이상의 정수) 차단 횟수(공격적, 중간, 보수적)일 수 있다. 또한, API에 대한 설명은 도 10에서 인프라로 설명된다.
지연 구간 동안, 필터는 사용자로부터 피드백을 수집하여 그리고 차단 유지되는 메시지를 점검 또는 분석하여 행해지는 관측에 의해 메시지에 대해 보다 많이 습득할 수 있다(645). 지연 구간이 종료하면(645), 필터는 갱신될 수 있으며(650), 차단 메시지가 양호 또는 스팸으로 분류될 수 있다(660). 이제 양호로서 분류된 양호 메시지에 대하여, 예를 들면, 서버에 의해 수신자의 원래 타임 스탬프는 이들의 릴리스 날짜 및/또는 전달 날짜일 수 있다. 이는 인커밍/도달 날짜에 의해 메시지를 정렬하는 사용자에게 문제가 될 수 있다. 따라서, 차단에서 릴리스된 "양호" 메시지는 릴리스 날짜에 특히, 차단 시간이 수시간 이상 그리고 하루 이상 연장하는 경우에 타임 스탬프될 수 있다(670). 이러한 메시지는 날짜를 포함할 수 있고 및/또는 예를 들면 주로 릴리스 날짜로 정렬될 수 있다.
본 발명에 따른 다양한 방법은 이하 일련의 동작을 통해 설명한다. 본 발명은 이 동작 순서에 한정되지 않으며, 본 발명에 따라, 상이한 순서로 및/또는 여기서 도시되고 설명된 다른 동작과 동시에 발생할 수 있다. 예를 들면, 당업자는 방법론이 상태도와 같은 일련의 상호관련 상태 또는 이벤트로서 나타낼 수 있음을 이해할 것이다. 더욱이, 모든 도시된 동작이 본 발명에 따른 방법을 구현하는데 요구되는 것은 아니다.
도 7을 참조하면, 의심 또는 의문 메시지의 분류를 지연을 용이하게 하는 예시적인 프로세스(700)의 흐름도가 도시되어 있다. 프로세스(700)는 710에서 스팸 또는 양호로서의 분류를 위해 인커밍 메시지를 수신하는 것을 포함한다. 720에서, 필터는 메시지를 스팸 또는 양호로서 분류할 충분한 정보가 있는지를 판정한다. 그러한 경우, 메시지는 730으로 분류되고 그 후, 양호한 메시지는 전달될 수 있으며, 스팸 메시지는 740에서 폐기될 수 있다. 이러한 프로세스는 인커밍 메시지가 계속 수신될 대 710에서 재개한다. 안전 리스트 상의 발신자로부터의 메시지는 다르게 의심스럽게 나타나더라도 차단되지 않음이 이해되어야 한다. 사용자는 특정 메시지(발신자에 대하여)가 계속 차단 중임을 인식하면, 발신자에게 이 안전 리스트를 추가할 수 있다.
그러나, 720에서 정보가 부족하면, 분류는 750에서 지연되고 메시지는 차단 폴더 또는 지연 구간 동안 특별 폴더의 다른 유형으로 이동될 수 있다. 이 지연 구간 동안, 메시지 또는 메시지의 발신자에 대한 보다 많은 정보가 760에서 수집될 수 있다. 이 프로세스 단계에 대한 추가 세부사항이 도 8에서 인프라로서 발견될 수 있다. 임의의 수집된 정보 또는 데이터는 필터에 피드백되어 770에서 필터를 (머신 학습 기술에 의해)갱신할 수 있다. 도 9는, 인프라에서, 프로세서의 이 단계에 대한 추가 세부사항을 나타낸다.
지연 기간이 종료할 때까지, 메시지에 대한 데이터 수집을 지속한다(780). 지연 구간이 종료한 경우, 메시지(또는 적어도 부분집합)은 갱신된 필터를 사용하여 790에서 스팸 또는 양호로서 분류될 수 있다. 스팸 메시지는 폐기될 수 있으며, 양호한 메시지는 740에서 전달될 수 있다.
이하, 도 8을 참조하면, 도 7에서 760에서 등과 같이 수집될 수 있는 예시적인 정보 유형의 흐름도, 수프라이 도시되어 있다. 예를 들면, 810에서, 메시지량은 발신자가 적은 양이거나 많은 양의 발신자인지를 결정하도록 점검될 수 있다. 또한, 메시지가 발신자마다 전송된 속도는 또한 스패머 유사 행동을 나타낼 수 있다. 예를 들면, 수백개의 이메일을 한 시간 동안 전송하는 것은 수천개의 이메일 을 한 시간에 전송하는 것과 대비된다.
820에서, 차단된 메시지는 또한 하니팟 메시지일 수 있다. 하니팟은 스팸 메시지의 신뢰성있는 소스이다. 따라서, 하니팟 메시지와 유사한 차단된 메시지는 보다 스팸과 유사할 수 있다. 이러한 정보는 메시지 분류 방식을 결정할 때 필터에 배우 유용할 수 있다.
830에서, 사용자는 차단 메시지의 적어도 부분집합이 스팸인지 여부에 대하여 입력을 제공할 기회가 부여될 수 있다. 특히, 차단 시스템은 사용자 불만을 점검하기 위해서 몇개의 메시지가 차단에서 새어 나오거나 필터를 통과(차단 우회)할 수 있다. 예를 들면, 새 IP 주소에서 메시지가 검출되는 경우, 제1000 또는 10,000개의 메시지가 차단없이 필터를 통과할 수 있도록 필터가 프로그래밍될 수 있다. 다르게는, 고정 확률의 메시지가 통과될 수 있다. 그 후, 동일 IP 주소에서의 메시지는 충분한 수의 사용자가 메시지를 점검하여 스팸인 경우 불평할 시간을 가질 때가지 차단된다. 충분한 양의 시간이 지난 후에, 양호 또는 스팸으로 분류하는 결정이 행해질 수 있다.
850에서, 차단된 메시지는 유사성에 대하여 분석될 수 있다. 특히, 해시 값은 메시지에 대하여 계산되어 상이한 발신자 또는 동일 발신자 중에서 어느 메시지가 유사한지를 판정할 수 있다. 유사한 메시지의 많은 양은 스팸을 가리킬 수 있으며, 이러한 정보는 필터를 갱신하도록 사용될 수 있다. 또한, 차단된 메시지는 스팸 또는 양호한 것으로 분류된 최근 차단된 메시지와 비교될 수 있다. 유사 메시지가 발견된 경우, 차단이 제거되어 이전의 대응부분과 같이 분류될 수 있다. 또한, 메시지가 발신자 분석(예를 들어, 발신자 IP 주소)에 기초하여 비교될 수 있다.
860에서, 피드백 루프 데이터가 수집된다. 일부 메시지가 들어올 때, 메시지를 양호 또는 스팸으로 분류하도록 요구하는 특정 문의가 수신자에게 전송된다.
도 9는 차단 기간 동안 수집된 정보가 메시지 분류를 개선하는데 사용될 수 있는 방식을 나타내는 예시적인 프로세스(900)의 흐름도를 나타낸다. 910에서, 이 정보는 머신 학습 기술과 함께 트레이닝 데이터로서 사용될 수 있어 예를 들면 스팸 필터를 효과적으로 갱신할 수 있다. 스팸 필터를 갱신함으로써, 스팸 또는 양호로서의 메시지의 분류가 개선되어 오류 양호 또는 오류 스팸 분류를 줄일 수 있다. 다르게는, 또는, 이에 더하여, 획득된 정보의 적어도 부분집합이 최근 차단된 메시지에 대한 새로운 스팸 필터(서브필터)를 구성 또는 트레이닝하도록 사용될 수 있다(920).
더욱이, 머신 학습 접근법은 차단에 대하여 사용될 수 있다. 특히, 프로세스(또는 관련 시스템)는 차단이 메시지의 분류를 변경되는지를 각 메시지에 대하여 기록할 수 있다. 그러한 경우, 메시지가 차단되어야 하지만, 그렇지 않은 경우에는, 차단될 필요가 없다. 다음으로, 프로세스 및/또는 시스템은 메시지가 차단되어야 하는 이 데이터에 기초하여 학습할 수 있다. 이 머신 학습 접근법은 차단에 사용될 수 있는 임의의 특별 특징을 설명할 수 있다. 예시적인 특징은 많은 양의 IP 주소; 메시지의 IP 주소(스패머사 또는 양호 신문사인 경우, 분류가 일정하다는 것을 알고 있다); 미지의 IP 주소에서 또는 미지의 도메인 네임을 포함하는 경우; 많은 양호 및 열악한 특징을 포함하는 경우 등을 포함하지만 이에 한정되지 않는다.
이하, 도 10을 참조하면, 본 발명의 일 양태를 수행하기 위해 적어도 부분적으로 API에 구현될 수 있는 예시적인 프로세스(1000)의 흐름도가 도시되어 있다. 이 프로세스(1000)는 각 인커밍 메시지에 대하여 1010에서 스팸 확률을 계산하는 것을 포함한다. 1020에서, 필터는 각각의 계산된 스팸 확률(점수)에 기초하여 특정 메시지를 차단할지 결정할 수 있다. 1030에서, 차단 시간은 다음 중 적어도 하나에 기초하여 권고될 수 있다:
다음 필터 갱신 시간, 다음 필터 다운로드 시간(필터가 차단을 계속할지, 또는 최종 결정을 행할지를 결정하고 최종 결정이 행해질 때까지 반복할 수 있는 시간); 및/또는
다르게는, 또는, 이에 더하여, m 차단 횟수(공격적, 중간, 및/또는 보수적)가 API에 전달될 수 있다. 차단 여부, 차단 기간에 대한 권고는 API에 전달되는 값으로 알려질 수 있다. (스팸) 필터는 메시지가 스팸인지 여부 뿐만 아니라 메시지가 차단되어야 하는지 여부 - 메시지를 차단하는 기간을 포함 - 에 대한 정보가 리턴할 수 있다. 초기에, 권고된 차단 시간은 스팸 확률에 단순히 기초할 수 있으며, 다른 인자는 상술한 바와 같이 고려될 수 있다.
서버와 클라이언트가 모두 이들 필터에 대하여 차단을 구현할 수 있다. 따라서, 서보와 클라이언트가 이러한 필터와 서버가 메시지를 차단하도록 사용하는 경우, 이 정보는 클라이언트 필터에 1040에서 통신될 수 있다. 또한, 클라이언트 필터가 또한 차단하는 경우, 서버 상의 차단 시간 길이는 클라이언트 필터에 통신될 수 있으므로, 클라이언트 차단 시간이 감소되지 않을 수 있으며, 또는, 서버 차단 시간에 의해 1050에서 특정 메시지에 호출 또는 적용되지 않을 수 있다.
더욱이, 필터 또는 스팸 필터에 의한 메시지 분류의 일시 지연은, 특히, 스팸 방지를 용이하게 하는 보다 강력한 필터 메커니즘을 제공한다. 또한, 양호 메시지의 전달에 불필요한 지연이 모든 의심가는 메시지가 차단되는 것이 아니기 때문에 사용자 불만을 완화시킨다. 그 대신, 여러 인자 및/또는 기술이 필터 또는 필터링 시스템에 의해 사용되어 지능형 차단 시스템을 달성한다.
본 발명의 다양한 양태에 대한 추가 경우를 제공하기 위해서, 도 11과 다음 설명은 본 발명의 다양한 양태가 구현될 수 있는 적절한 운영 환경(1110)의 간단하고 일반적인 설명을 제공한다. 본 발명은 프로그램 모듈, 하나 이상의 컴퓨터 또는 다른 장치에 의해 실행가능한 프로그램 모듈 등의 컴퓨터 실행가능 명령의 경우에 대하여 설명하지만, 당업자는 본 발명이 다른 프로그램 모듈과 조합으로 및/또는 하드웨어 및 소프트웨어의 조합으로 구현될 수 있음을 인식할 것이다.
그러나, 통상, 프로그램 모듈은 특정 작업을 수행하거나 특정 데이터형을 구현하는 루틴, 프로그램 모듈, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 운영 환경(1110)은 적절한 운영 환경의 단지 일 예이며 본 발명의 사용 또는 기능의 범위에 대한 임의의 제한을 암시하려는 것은 아니다. 본 발명에 적절하게 사용될 수 있는 다른 공지의 컴퓨터 시스템, 환경 및/또는 구성은 개인용 컴퓨터, 핸드헬드 또는 랩탑 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 프로그래머블 소비자 전자제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템 또는 장치를 포함하는 분산 컴퓨팅 장치를 포함하지만 이에 한정되는 것은 아니다.
도 11을 참조하면, 본 발명의 다양한 양태를 구현하는 예시적인 환경(1110)은 컴퓨터(1112)를 포함한다. 컴퓨터(1112)는 처리부(1114), 시스템 메모리(1116), 및 시스템 버스(1118)를 포한한다. 시스템 버스(1118)는 시스템 메모리(1116)를 포함하지만 이에 한정되지 않는 시스템을 처리부(1114)에 결합한다. 처리부(1114)는 다양한 이용가능한 프로세서 중 임의의 것일 수 있다. 이중 마이크로프로세서 및 다른 멀티프로세서 아키텍처가 또한 처리부(1114)로서 사용될 수 있다.
시스템 버스(1118)는 메모리 버스 또는 메모리 컨트롤러, 주변 버스 또는 외부 버스, 및/또는 11비트 버스, 산업용 표준 아키텍처(ISA), 마이크로 채널 아키텍처(MSA), 확장형 ISA(EISA). 지능형 구동 전자제품(IDE), VESA 로컬 버스(VLB), 주변 컴포넌트 상호접속(PCI), 범용 직렬 버스(USB), 개선된 그래픽 포트(AGP), 개인용 컴퓨터 메모리 카드 국제 협회 버스(PCMCIA) 및 소형 컴퓨터 시스템 인터페이스(SCSI)를 포함하지만 이에 한정되지 않는 임의의 다양한 이용가능한 버스를 사용하는 로컬 버스 등의 여러 유형의 버스 구조 중 임의의 것일 수 있다.
시스템 메모리(1116)는 휘발성 메모리(1120)과 비휘발성 메모리(1122)를 포함한다. 기본 루틴을 포함하여 시동 시와 같이 컴퓨터(1112) 내의 요소들 사이에 정보를 전달하는 기본 입출력 시스템(BIOS)이 비휘발성 메모리(1122)에 저장된다. 한정이 아닌 예를 들면, 비휘발성 메모리(1122)는 판독 전용 메모리(ROM), 프로그래머블 ROM(PROM), 전기적으로 프로그래밍가능한 ROM(EPROM), 전기적으로 소거가능한 ROM(EEPROM), 또는 플래시 메모리를 포함할 수 있다. 휘발성 메모리(1120)는 외장형 캐시 메모리로서 동작하는 랜덤 액세스 메모리(RAM)를 포함한다. 한정이 아닌 예를 들면, RAM은, 동기식 RAM(SRAM), 동적 RAM(DRAM), 동기식 DRAM(SDRAM), 이중 데이터 레이트 SDRAM(DDR SDRAM), 개선된 SDRAM(ESDRAM), 동기식 링크 DRAM(SLDRAM), 및 다이렉트 램버스 RAM(DRRAM) 등의 여러 형태로 이용가능하다.
컴퓨터(1112)는 또한 분리형/비분리형, 휘발성/비휘발성 컴퓨터 스토리지 매체를 포함한다. 도 11은 예를 들면 디스크 스토리지(1124)를 나타낸다. 디스크 스토리지(114)는 자기 디스크 드라이브, 플로피 디스크 드라이브, 재즈 드라이브, 집 드라이브, LS-100 드라이브, 플래시 메모리 카드 또는 메모리 스틱 등의 장치를 포함하지만 이에 한정되지 않는다. 또한, 디스크 스토리지(1124)는 컴팩트 디스크 ROM 장치(CD-ROM), CD 기록가능 장치(CD-R Drive), CD 기입가능 드라이브(CD-RW Drive) 또는 디지털 다기능 디스트 ROM 드라이브(DVD-ROM)를 포함하지만 이에 한정되지 않는 다른 스토리지 매체와 조합으로 또는 개별적으로 스토리지 매체를 포함할 수 있다. 디스크 스토리지 장치(1124)의 시스템 버스(1118)로의 접속 용이하게 하기 위해, 분리형 또는 비분리형 인터페이스가 통상 인터페이스(1126) 등에 사용될 수 있다.
도 11에서, 적절한 운영 환경(1110)에서 설명되는 기본 컴퓨터 자원과 사용자 간의 중간자로서 동작하는 소프트웨어를 나타낸다. 이러한 소프트웨어는 운영 체계(1128)를 포함한다. 운영 체계(1128)는 디스크 스토리지(1124) 상에 저장될 수 있으며, 컴퓨터 시스템(1112)의 자원을 제어 및 할당하게 한다. 시스템 애플리케이션(1130)은 시스템 메모리(1116) 또는 디스크 스토리지(1124)에 저장되는 운영 체계(1128) 내지 프로그램 모듈(1132) 및 프로그램 데이터(1134)로 자원의 관리를 이용할 수 있다. 본 발명은 운영 체계의 조합 또는 다양한 운영 체계로 구현될 수 있다.
사용자는 입력 장치(1136)를 통해 컴퓨터(1112)에 명령 또는 정보를 입력한다. 입력 장치(1136)는 마우스 등의 포인팅 장치, 트랙볼, 스타일러스, 터치 패드, 키보드, 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 스캐너, TV 튜너 카드, 디지털 카메라, 디지털 비디오 카메라, 웹 카메라를 포함하지만 이에 한정되지 않는다. 이들 및 다른 입력 장치는 인터페이스 포트(1138)를 경유하여 시스템 버스(1118)를 통해 처리부(1114)에 접속한다. 인터페이스 포드(1138)는 예를 들면 직렬 포트, 병렬 포트, 게임 포트, 및 범용 직렬 포트(USB)를 포함한다. 출력 장치(1140)는 입력 장치(1136)로서 동일 유형의 포트의 일부를 사용한다. 따라서, 예를 들면, USB 포트는 입력을 컴퓨터(1112)에 제공하고 컴퓨터(1112)에서 출력 장치(1140)로의 정보를 출력하는데 사용될 수 있다. 출력 어댑터(1142)는 특별 어댑터를 요구하지 않는 다른 출력 장치(1140) 중에서 모니터, 스피커, 및 프린터 등의 일부 출력 장치(1140)를 나타내도록 제공된다. 출력 어댑터(1142)는 출력 장치(1140)와 시스템 버스(1118) 간의 접속 수단을 제공하는 비디오 및 사운드 카드를 포함하지만 이는 단지 예시로서 이에 한정되는 것은 아니다. 다른 출력 장치 및/ 또는 장치의 시스템이 원격 컴퓨터(1144) 등의 입력 및 출력 성능을 제공함이 인식되어야 한다.
컴퓨터(1112)는 원격 컴퓨터(1144) 등의 하나 이상의 컴퓨터에 대한 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(114)는 개인용 컴퓨터, 서버, 라우터, 네트워크 PC, 워크스테이션, 마이크로프로세서 기반 기기, 피어 장치 또는 다른 공통 네트워크 노드 등일 수 있으며, 통상, 컴퓨터(1112)에 대하여 설명된 모든 또는 다수의 요소를 포함한다. 간이함을 위해서, 단지 메모리 스토리지 장치(1146)만이 원격 컴퓨터(1144)에 도시되어 있다. 원격 컴퓨터(1144)는 네트워크 인터페이스(1148)를 통해 컴퓨터에 논리 접속된 후 통신 접속(1150)를 통해 물리적으로 접속된다. 네트워크 인터페이스(1148)는 근거리 네트워크(LAN) 및 광역 네트워크(WAN) 등의 통신 네트워크를 포함한다. LAN 기술은 파이버 분산 데이터 인터페이스(FDDI), 구리 분산 데이터 인터페이스(CDDI), 이더넷/IEEE1102.3, 토큰 링/IEEE 1102.5 등을 포함한다. WAN 기술은 점대점 링크, 통합 서비스 디지털 네트워크(ISDN), 및 그 변형과 같은 회로 교환 네트워크, 패킷 교환 네트워크 및 디지털 가입자 라인(DSL) 등을 포함하지만 이에 한정되는 것은 아니다.
통신 접속(1150)은 네트워크 인터페이스(1148)를 버스(1118)에 접속하는데 사용되는 하드웨어/소프트웨어를 나타낸다. 통신 접속(1150)이 컴퓨터(1112) 내부에 명확성을 위해 도시되어 있지만, 이는 컴퓨터(1112) 외부에 있을 수 있다. 네트워크 인터페이스(1148)에 대한 접속에 필요한 하드웨어/소프트웨어는 전화식 모 뎀, 케이블 모뎀, 및 DSL 모뎀 등의 모뎀, ISDN 어댑터, 및 이더넷 카드 등의 내장형 및 외장형 기술을 포함하지만 이는 단지 예시이다.
상기 설명된 것은 본 발명의 예들을 포함한다. 물론, 본 발명을 설명하는 목적으로 모든 생각가능한 컴포넌트 또는 방법이 조합을 설명하는 것은 가능하지 않지만, 당업자는 본 발명의 많은 추가 변형 및 조합이 가능함을 인식할 수 있다. 따라서, 본 발명은 첨부된 청구항의 취지 및 범위에 해당하는 이러한 변경, 변형, 및 변화를 포함시키려는 것이다. 또한, 여기서 용어 "구비한다(include)"라는 용어가 상세한 설명과 청구항에서 사용되는 경우에는, 이 용어는 용어 "포함한다(comprising)"와 유사한 방식으로 청구항에서 전환어로서 사용되는 경우 "포함한다(comprising)"가 해석되는 경우와 같이, 개방형이다.