KR101863172B1 - 멀티스케일 텍스트 핑거프린트를 사용한 문서 분류 - Google Patents

멀티스케일 텍스트 핑거프린트를 사용한 문서 분류 Download PDF

Info

Publication number
KR101863172B1
KR101863172B1 KR1020157021144A KR20157021144A KR101863172B1 KR 101863172 B1 KR101863172 B1 KR 101863172B1 KR 1020157021144 A KR1020157021144 A KR 1020157021144A KR 20157021144 A KR20157021144 A KR 20157021144A KR 101863172 B1 KR101863172 B1 KR 101863172B1
Authority
KR
South Korea
Prior art keywords
text
fingerprint
tokens
determining
target
Prior art date
Application number
KR1020157021144A
Other languages
English (en)
Other versions
KR20150128662A (ko
Inventor
아드리안 토마
마리우스 니콜라에 티베이카
Original Assignee
비트데펜더 아이피알 매니지먼트 엘티디
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 비트데펜더 아이피알 매니지먼트 엘티디 filed Critical 비트데펜더 아이피알 매니지먼트 엘티디
Publication of KR20150128662A publication Critical patent/KR20150128662A/ko
Application granted granted Critical
Publication of KR101863172B1 publication Critical patent/KR101863172B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/212Monitoring or handling of messages using filtering or selective blocking
    • H04L51/12
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/26Government or public services
    • G06Q50/265Personal security, identity or safety

Abstract

본 발명의 시스템 및 방법은 문서 특유의 텍스트 핑거프린트에 따라 이메일 메시지 및 HTML 문서와 같은 전자 문서의 분류를 허용한다. 텍스트 핑거프린트는 각각의 타겟 문서의 텍스트 블록에 대해 계산되고, 개별 텍스트 블록의 복수의 텍스트 토큰에 따라 결정된 문자의 시퀀스를 포함한다. 일부 실시예들에서, 텍스트 핑거프린트의 길이는 짧은 텍스트 블록의 경우 줌인에 의해서, 그리고 긴 텍스트 블록의 경우에는 줌아웃에 의해서 텍스트 블록의 길이와 관계없이, 미리결정된 범위의 길이(예컨대, 129 내지 256 문자 사이) 내에서 구속된다. 분류는, 예를 들어 전자 문서가 원하지 않는 통신(스팸) 또는 피싱과 같은 온라인 사기를 나타내는지를 결정하는 단계를 포함할 수 있다.

Description

멀티스케일 텍스트 핑거프린트를 사용한 문서 분류{DOCUMENT CLASSIFICATION USING MULTISCALE TEXT FINGERPRINTS}
본 발명은 전자 문서를 분류하기 위한 방법 및 시스템, 특히 원하지 않는 전자 통신(스팸)의 필터링 및 사기성 온라인 문서의 검출을 위한 시스템 및 방법에 관한 것이다.
스팸이라고도 알려진 원하지 않는 전자 통신은 세계적으로 통신 트래픽의 상당 부분을 형성하여, 컴퓨터 및 전화 메시지 서비스 모두에 영향을 미친다. 스팸은 원하지 않는 이메일 통신으로부터 블로그들 및 사회 관계망 사이트들과 같은 각종 인터넷 사이트에 관한 사용자 댓글(comment)로 가장한 스팸 메시지에 이르기까지 다양한 형태를 취할 수 있다. 스팸은 소중한 하드웨어 자원을 사용하고, 생산성에 영향을 미치며, 통신 서비스 및/또는 인터넷의 많은 사용자들에게 짜증스럽고 거슬리게 여겨지고 있다.
특히 피싱(phishing) 및 신원 도용(identity theft) 형태의 온라인 사기는 세계적으로 인터넷 사용자들에게 대두되는 위협이 되고 있다. 인터넷에서 활동하는 국제 범죄 네트워크에 의해 기만적으로 얻어진 사용자 이름, ID, 암호, 사회 보장 및 의료 기록, 은행 및 신용카드 내역과 같은 민감한 신원 정보는 개인 소유의 펀드를 해지하는데 사용되고/되거나 나아가 제3자에게 판매된다. 개개인에 대한 직접적인 금융 손실 외에도, 온라인 사기는 기업들에 대한 보안 비용 증가, 더 높은 소매 가격 및 은행 수수료, 주가 하락, 임금 하락 및 세수 감소와 같은 원하지 않는 부작용을 또한 야기한다.
예시적인 피싱 시도의 경우, 가짜 웹사이트(클론 이라고도 함)는 온라인 소매점 또는 금융 기관에 속하는 진정한 웹페이지인 체하면서, 사용자로 하여금 사용자 이름 또는 암호와 같은 몇몇 사용자 정보, 또는 몇몇 금융 정보, 예컨대 신용카드 번호, 계좌 번호나 보안 코드 입력을 요청할 수 있다. 의심하지 않는 사용자에 의해 정보가 제출되면, 이러한 정보는 가짜 웹사이트에 의해 수집될 수 있다. 추가적으로, 사용자는 사용자의 컴퓨터상에 악의적인 소프트웨어를 설치할 수 있는 다른 웹페이지로 이동될 수 있다. 악의적 소프트웨어[예컨대, 바이러스, 트로이 목마 바이러스(Trojan)]는 특정 웹페이지를 방문하는 동안 사용자에 의해 눌린 키들을 기록함으로써 사용자 정보를 계속하여 가로챌 수 있고, 사용자의 컴퓨터를 다른 피싱 또는 스팸 공격을 개시하기 위한 플랫폼으로 변형시킬 수 있다.
이메일 스팸 또는 이메일 사기의 경우, 사용자의 또는 이메일 서비스 제공자의 컴퓨터 시스템 상에서 실행되는 소프트웨어는 이메일 메시지를 스팸/논-스팸(또는 사기성/적법한)으로 분류하고, 심지어 다양한 종류의 메시지들 사이에서, 예컨대 제품 제안, 성인 콘텐츠, 및 나이지리아 사기(Nigerian fraud) 사이에서 식별하는데 사용될 수 있다. 그 다음, 스팸/사기성 메시지들은 특별한 폴더로 이동되거나 삭제될 수 있다. 이와 유사하게, 콘텐츠 제공자의 컴퓨터 시스템 상에서 실행되는 소프트웨어는 개별 콘텐츠 제공자에 의해 호스팅된 웹사이트로 포스팅된 스팸/사기성 메시지를 가로채도록, 그리고 개별 메시지가 현시되지 않도록 하거나 또는 개별 메시지가 사기성이거나 스팸일 수 있다는 경고를 웹사이트의 사용자에게 현시하도록 사용될 수 있다.
스팸 및/또는 온라인 사기를 식별하기 위해, 메시지의 발신 주소를 공지의 문제가 되는 또는 신뢰할 수 있는 주소들의 리스트와 매칭시키는 방법(각각, 블랙- 및 화이트-리스팅으로 명명된 기술), 특정 단어들 또는 단어 패턴을 검색하는 방법(예컨대, 리파이낸싱, 비아그라®, 주식), 및 메시지 헤더를 분석하는 방법을 포함하는 몇몇 접근법들이 제안되었다. 특징 추출/매칭 방법은 때때로 자동화된 데이터 분류 방법(예컨대, Bayesian 필터링, 뉴럴 네트워크)과 관련하여 사용된다.
몇몇 제안된 방법들은 해싱을 사용하여 전자 텍스트 메시지의 컴팩트한 표현(compact representation)을 생성한다. 이러한 표현은 스팸 또는 사기 검출을 위해 효율적인 메시지간 비교(inter-message comparision)를 허용한다.
스팸 전송자들 및 온라인 사기꾼들은 특정 단어의 오기, 적법 문서로 가장한 텍스트의 대형 블록 내에 스팸 및/또는 사기성 콘텐츠를 내장하는 것, 그리고 메시지의 형태 및/또는 콘텐츠를 하나의 디스트리뷰션 웨이브에서 다른 것으로 바꾸는 것과 같은 다양한 혼선 방법을 사용하여 검출을 회피하려고 시도한다. 해싱을 사용하는 스팸 방지/사기 방지 방법은 통상적으로 이러한 불명료화에 취약한데, 이는 텍스트 내의 작은 변화가 실질적으로 상이한 해시를 생성할 수 있기 때문이다. 따라서, 성공적인 검출은 다형적(polymorphic) 스팸 및 사기를 인식할 수 있는 방법 및 시스템으로부터 이득이 될 수 있다.
일 양태에 따르면, 클라이언트 컴퓨터 시스템은 텍스트 핑거프린트의 길이가 상한과 하한 사이에서 제한되게, 타겟 전자 문서의 텍스트 핑거프린트를 결정하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 상한과 하한은 미리결정된다. 텍스트 핑거프린트를 결정하는 단계는 타겟 전자 문서의 복수의 텍스트 토큰을 선택하는 단계와, 복수의 텍스트 토큰을 선택하는 것에 대한 응답으로, 상기 상한과 하한에 따라서 그리고 복수의 선택된 텍스트 토큰의 개수에 따라 핑거프린트 조각 크기를 결정하는 단계를 포함한다. 텍스트 핑거프린트를 결정하는 단계는 각각의 핑거프린트 조각이 상기 복수의 선택된 텍스트 토큰의 구분되는 텍스트 토큰의 해시에 따라 결정되고, 각각의 핑거프린트 조각이 문자의 시퀀스로 이루어지며, 상기 시퀀스의 길이가 핑거프린트 조각 크기와 동일하게 선택되는, 복수의 핑거프린트 조각을 결정하는 단계와, 텍스트 핑거프린트를 형성하기 위해 복수의 핑거프린트 조각을 연쇄화하는 단계를 더 포함한다.
다른 양태에 따르면, 서버 컴퓨터 시스템은 복수의 클라이언트 시스템과의 처리를 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 처리는, 복수의 클라이언트 시스템의 하나의 클라이언트 시스템으로부터 텍스트 핑거프린트를 수신하는 단계와, 타겟 전자 문서가 속하는 문서의 카테고리를 나타내는 텍스트 라벨을 클라이언트 시스템으로 전송하는 단계를 포함하며, 상기 텍스트 핑거프린트는 텍스트 핑거프린트의 길이가 하한과 상한 사이에서 제한되도록 타겟 전자 문서에 대해 결정되고, 상기 하한과 상한은 미리결정된다. 텍스트 핑거프린트를 결정하는 단계는 타겟 전자 문서의 복수의 텍스트 토큰을 선택하는 단계와, 복수의 텍스트 토큰을 선택하는 단계에 대한 응답으로, 상기 하한과 상한에 따라서, 그리고 복수의 선택된 텍스트 토큰의 개수에 따라 핑거프린트 조각 크기를 결정하는 단계를 포함한다. 텍스트 핑거프린트를 결정하는 단계는 각각의 핑거프린트 조각이 복수의 선택된 텍스트 토큰의 구분되는 텍스트 토큰의 해시에 따라 결정되고, 각각의 핑거프린트 조각이 문자의 시퀀스로 이루어지며, 상기 시퀀스의 길이가 핑거프린트 조각 크기와 동일하게 선택되는, 복수의 핑거프린트 조각을 결정하는 단계와, 텍스트 핑거프린트를 형성하기 위해 복수의 핑거프린트 조각을 연쇄화하는 단계를 더 포함한다. 타겟 라벨을 결정하는 단계는 기준 핑거프린트가 상기 카테고리에 속하는 기준 전자 문서에 대해 결정되며, 기준 핑거프린트는 기준 핑거프린트의 길이가 상기 하한과 상한 사이에 있도록 기준 핑거프린트의 길이에 따라 선택되는, 기준 핑거프린트의 데이터베이스로부터 기준 핑거프린트를 회수하는 단계와, 텍스트 핑거프린트를 기준 핑거프린트와 비교한 결과에 따라 타겟 전자 문서가 상기 카테고리에 속하는지를 결정하는 단계를 포함한다.
또 다른 양태에 따르면, 방법은 텍스트 핑거프린트의 길이가 하한과 상한 사이에서 제한되도록, 타겟 전자 문서의 텍스트 핑거프린트를 결정하기 위해, 클라이언트 컴퓨터 시스템의 적어도 하나의 프로세서를 사용하는 단계를 포함하며, 상기 하한과 상한은 미리결정된다. 텍스트 핑거프린트를 결정하는 단계는 타겟 전자 문서의 복수의 텍스트 토큰을 선택하는 단계와, 복수의 텍스트 토큰을 선택하는 단계에 대한 응답으로, 상기 하한과 상한에 따라서 그리고 복수의 선택된 텍스트 토큰의 개수에 따라 핑거프린트 조각 크기를 결정하는 단계를 포함한다. 텍스트 핑거프린트를 결정하는 단계는 각각의 핑거프린트 조각이 복수의 선택된 텍스트 토큰의 구분되는 텍스트 토큰의 해시에 따라 결정되고, 각각의 핑거프린트 조각이 문자의 시퀀스로 이루어지며, 상기 시퀀스의 길이가 핑거프린트 조각 크기와 동일하게 선택되는, 복수의 핑거프린트 조각을 결정하는 단계와, 텍스트 핑거프린트를 형성하기 위해 복수의 핑거프린트 조각을 연쇄화하는 단계를 더 포함한다.
또 다른 양태에 따르면, 방법은 복수의 클라이언트 시스템의 하나의 클라이언트 시스템으로부터 텍스트 핑거프린트를 수신하기 위해, 그리고 타겟 전자 문서가 속하는 문서의 카테고리를 나타내며, 타겟 전자 문서에 대해 결정된 타겟 라벨을 클라이언트 시스템으로 전송하기 위해, 복수의 클라이언트 시스템과의 처리를 실행하도록 구성된 서버 컴퓨터 시스템의 적어도 하나의 프로세서를 사용하는 단계를 포함하고, 상기 텍스트 핑거프린트는 텍스트 핑거프린트의 길이가 하한과 상한 사이에서 제한되도록 타겟 전자 문서에 대해 결정되고, 상기 하한과 상한은 미리결정된다. 텍스트 핑거프린트를 결정하는 단계는 타겟 전자 문서의 복수의 텍스트 토큰을 선택하는 단계와, 복수의 텍스트 토큰을 선택하는 단계에 대한 응답으로, 상기 하한과 상한에 따라서, 그리고 복수의 선택된 텍스트 토큰의 개수에 따라 핑거프린트 조각 크기를 결정하는 단계를 포함한다. 텍스트 핑거프린트를 결정하는 단계는 각각의 핑거프린트 조각이 복수의 선택된 텍스트 토큰의 구분되는 텍스트 토큰의 해시에 따라 결정되고, 각각의 핑거프린트 조각이 문자의 시퀀스로 이루어지며, 상기 시퀀스의 길이가 핑거프린트 조각 크기와 동일하게 선택되는, 복수의 핑거프린트 조각을 결정하는 단계와, 텍스트 핑거프린트를 형성하기 위해 복수의 핑거프린트 조각을 연쇄화하는 단계를 더 포함한다. 타겟 라벨을 결정하는 단계는 기준 핑거프린트가 상기 카테고리에 속하는 기준 전자 문서에 대해 결정되며, 기준 핑거프린트는 기준 핑거프린트의 길이가 상기 하한과 상한 사이에 있도록 기준 핑거프린트의 길이에 따라 선택되는, 기준 핑거프린트의 데이터베이스로부터 기준 핑거프린트를 회수하는 단계와, 텍스트 핑거프린트를 기준 핑거프린트와 비교한 결과에 따라 타겟 전자 문서가 상기 카테고리에 속하는지를 결정하는 단계를 포함한다.
본 발명의 전술한 양태 및 장점들은 후술하는 발명의 상세한 설명 및 도면을 참조로 더욱 잘 이해될 것이다.
도 1은 본 발명의 일부 실시예들에 따른, 복수의 클라이언트 시스템을 보호하는 보안 서버를 포함하는 예시적 스팸 방지/사기 방지 시스템을 도시한다.
도 2a는 본 발명의 일부 실시예들에 따른 클라이언트 컴퓨터 시스템의 예시적인 하드웨어 구성을 도시한다.
도 2b는 본 발명의 일부 실시예들에 따른 보안 서버 컴퓨터 시스템의 예시적인 하드웨어 구성을 도시한다.
도 2c는 본 발명의 일부 실시예들에 따른 콘텐츠 서버 컴퓨터 시스템의 예시적인 하드웨어 구성을 도시한다.
도 3a는 본 발명의 일부 실시예들에 따른, 텍스트 블록을 포함하는 예시적인 스팸 이메일 메시지를 도시한다.
도 3b는 본 발명의 일부 실시예들에 따른, 텍스트 블록을 포함하는 예시적인 스팸 블로그 댓글을 도시한다.
도 3c는 본 발명의 일부 실시예들에 따른, 복수의 텍스트 블록을 포함하는 예시적인 사기성 웹페이지를 도시한다.
도 4a는 본 발명의 일부 실시예들에 따른, 클라이언트 컴퓨터와 보안 서버 사이의 예시적인 스팸/사기 검출 처리(transaction)를 도시한다.
도 4b는 본 발명의 일부 실시예들에 따른, 콘텐츠 서버와 보안 서버 사이의 예시적인 스팸/사기 검출 처리를 도시한다.
도 5는 본 발명의 일부 실시예들에 따른, 타겟 전자 문서의 예시적인 타겟 인디케이터를 도시하며, 인디케이터는 텍스트 핑거프린트 및 다른 스팸/사기 식별 데이터를 포함한다.
도 6은 본 발명의 일부 실시예들에 따른 클라이언트 시스템상에서 실행되는 예시적인 어플리케이션 세트의 모식도를 도시한다.
도 7은 본 발명의 일부 실시예들에 따른, 도 6의 핑거프린트 계산기에 의해 실시되는 단계들의 예시적인 시퀀스를 도시한다.
도 8은 본 발명의 일부 실시예들에 따른, 타겟 텍스트 블록의 텍스트 핑거프린트의 예시적인 결정을 도시한다.
도 9는 본 발명의 일부 실시예들에 따른, 다양한 줌인 및 줌아웃 팩터(zoom-in and zoom-out factor)에서 타겟 텍스트 블록에 대해 결정된 복수의 핑거프린트를 도시한다.
도 10은 본 발명의 일부 실시예들에 따른 줌아웃 핑거프린트를 결정하기 위해 핑거프린트 계산기에 의해 실행되는 단계들의 예시적인 시퀀스를 도시한다.
도 11은 본 발명의 일부 실시예들에 따른 보안 서버상에서 실행되는 예시적인 어플리케이션을 도시한다.
도 12는 본 발명의 일부 실시예들에 따른 보안 서버상에서 실행되는 예시적인 문서 분류자(document classifier)의 모식도를 도시한다.
도 13은 실제 스팸의 스트림 분석을 포함하는 컴퓨터 실험에서 얻어진 스팸 검출율을 도시하며, 상기 분석은 본 발명의 일부 실시예들에 따라 실시되었으며, 상기 검출율은 종래 방법에 의해 얻어진 검출율과 비교된다.
이하의 설명에서, 구조들 사이에서 언급된 모든 연결들은 직접적인 동작 연결들 또는 매개 구조들을 통한 간접적인 동작 연결들일 수 있는 것으로 이해된다. 구성 요소들의 세트는 하나 이상의 구성 요소를 포함한다. 구성 요소의 임의의 열거는 적어도 하나의 구성 요소를 언급하는 것으로 이해된다. 복수의 구성 요소는 적어도 2개의 구성 요소를 포함한다. 달리 요구되지 않는다면, 기술된 어떠한 방법 단계들도 설명된 특정 시퀀스로 반드시 실행될 필요는 없다. 제2 구성 요소로부터 유도되는 제1 구성 요소(예컨대, 데이터)는 제2 구성 요소와 동일한 제1 구성 요소는 물론, 제2 구성 요소 그리고 선택적으로는 다른 데이터를 처리하는 것에 의해 생성된 제1 구성 요소를 포함한다. 파라미터에 따라 결정 또는 판정하는 것은 파라미터에 따라 그리고 선택적으로는 다른 데이터에 따라 결정 또는 판정하는 것을 포함한다. 달리 구체화되지 않는다면, 일부 수량/데이터의 인디케이터는 수량/데이터 그 자체, 또는 수량/데이터 그 자체와 상이한 인디케이터일 수 있다. 달리 구체화되지 않는다면, 해시는 해시 함수(hash function)의 출력값이다. 달리 구체화되지 않는다면, 해시 함수는 기호(예컨대, 문자, 비트)의 시퀀스를 다수의 비트 스트링으로 맵핑하는 수학적 변환이다. 컴퓨터 판독 가능 매체는 자성, 광, 및 반도체 저장 매체(예컨대, 하드 드라이브, 광 디스크, 플래시 메모리, DRAM)와 같은 비-일시적 매체는 물론, 전도성 케이블 및 파이버 옵틱 링크와 같은 통신 링크들을 포함한다. 일부 실시예들에 따르면, 본 발명은, 그 중에서도, 본원에 설명된 방법들을 수행하기 위해 프로그래밍된 하드웨어(예컨대, 하나 이상의 프로세서)는 물론, 본원에서 설명된 방법들을 수행하기 위해 명령들을 인코딩하는 컴퓨터-판독 가능 매체를 포함하는 컴퓨터 시스템을 제공한다.
후술하는 기재는 본 발명의 실시예들을 예시적으로 설명하는 것이며, 반드시 제한적인 것은 아니다.
도 1은 본 발명의 일부 실시예들에 따른 예시적인 스팸 방지/사기 방지 시스템(10)을 도시한다. 시스템(10)은 통신 네트워크(18)에 의해 모두 연결되는 콘텐츠 서버(12), 발신자 시스템(13), 보안 서버(14), 및 복수의 클라이언트 시스템(16a-c)을 포함한다. 네트워크(18)는 인터넷과 같은 광역 통신망일 수 있고, 네트워크(18)의 일부는 근거리 통신망(LAN)을 또한 포함할 수 있다.
일부 실시예들에서, 콘텐츠 서버(12)는 사용자-기여 콘텐츠(예컨대, 기사, 블로그 엔트리, 미디어 업로드, 댓글 등)을 복수의 사용자로부터 수신하도록, 그리고 이러한 콘텐츠를 클라이언트 시스템(16a-c)과 같은 제3자에게 오거나이즈, 포맷, 및 분배하도록 구성된다. 콘텐츠 서버(12)의 예시적 실시예는 클라이언트 시스템(16a-c)에 대한 전자 메시지 전달을 제공하는 이메일 서버이다. 콘텐츠 서버(12)의 다른 실시예는 블로그 또는 사회 관계망 사이트를 호스팅하는 컴퓨터 시스템이다. 일부 실시예들에서, 사용자-기여 콘텐츠는 후술하는 기재에서 타겟 문서로도 일컬어지는 전자 문서의 형태로 네트워크(18)를 순환한다. 전자 문서는, 특히 웹페이지(예컨대, HTML 문서)와 이메일 및 단문 서비스(SMS) 메시지와 같은 이메일 전자 메시지를 포함한다. 서버(12)에서 수신된 사용자-기여 데이터의 일부는 원하지 않는 및/또는 사기성 메시지 및 문서를 포함할 수 있다.
일부 실시예들에서, 발신자 시스템(13)은 스팸 이메일 메시지와 같은 원하지 않는 통신을 클라이언트 시스템(16a-c)으로 전송하는 컴퓨터 시스템을 포함한다. 이러한 메시지는 서버(12)에서 수신된 다음, 클라이언트 시스템(16a-c)으로 전송될 수 있다. 대안적으로, 서버(12)에서 수신된 메시지는 클라이언트 시스템(16a-c)에 의해 (예컨대, 웹 인터페이스를 통해) 회수가능할 수 있다. 다른 실시예들에서, 발신자 시스템(13)은 사회 관계망 사이트에 포스팅된 스팸 또는 스팸 블로그 댓글과 같은 원하지 않는 통신을 콘텐츠 서버(12)로 전송할 수 있다. 그러면, 클라이언트 시스템(16a-c)은 하이퍼텍스트 전송 규약(HTTP)과 같은 프로토콜을 통해 그러한 통신을 회수할 수 있다.
보안 서버(14)는 이하에서 상세히 도시된 바와 같은 전자 문서들의 분류를 수행하는 하나 이상의 컴퓨터 시스템을 포함할 수 있다. 이러한 분류는 원하지 않는 메시지(스팸) 및/또는 피싱 메시지 및 웹페이지와 같은 사기성 전자 문서들을 식별하는 것을 포함할 수 있다. 일부 실시예들에서, 분류의 수행은 보안 서버(14)와 콘텐츠 서버(12) 사이에서, 그리고/또는 보안 서버(14)와 클라이언트 시스템(16a-b) 사이에서 실시되는 협동적 스팸/사기 검출 처리를 포함한다.
클라이언트 시스템(16a-c)은 프로세서, 메모리, 및 저장소를 각각 가지며, Windows®, MacOS® 또는 Linux와 같은 운영 체제를 구동하는 엔드-유저 컴퓨터를 포함할 수 있다. 몇몇 클라이언트 컴퓨터 시스템(16a-c)은, 특히 태블릿 PC, 이동 전화, 퍼스널 디지털 어시스턴트(PDA)와 같은 모바일 컴퓨팅 및/또는 통신 장치들, 및 TV 또는 음악 플레이어와 같은 가전기기일 수 있다. 일부 실시예들에서, 클라이언트 시스템(16a-c)은 개별 소비자를 나타낼 수 있으며, 그렇지 않으면 몇몇 클라이언트 시스템이 동일한 소비자에게 속할 수 있다. 클라이언트 시스템(16a-c)은 전자 문서, 예를 들어 이메일 메시지를, 발신자 시스템(13)으로부터 이러한 문서를 수신하고 로컬 인박스(local inbox)에 이들을 저장하는 것에 의하거나 또는 네트워크(18)에서, 예를 들어 콘텐츠 서버(12)에 의해 서비스된 웹사이트로부터 이러한 문서를 회수하는 것에 의해 액세스할 수 있다.
도 2a는 도 1의 시스템(16a-c)과 같은 클라이언트 시스템(16)의 예시적인 하드웨어 구성을 도시한다. 도 2a는 설명을 위하여 컴퓨터 시스템을 도시한 것이며, 이동 전화와 같은 다른 장치들의 하드웨어 구성은 이와 다를 수 있다. 일부 실시예들에서, 클라이언트 시스템(16)은 버스(34)의 세트에 의해 모두 연결되는 프로세서(20), 메모리 유닛(22), 입력 장치(24)의 세트, 출력 장치(26)의 세트, 저장 장치(28)의 세트, 및 통신 인터페이스 제어기(30)를 포함한다.
일부 실시예들에서, 프로세서(20)는 신호 및/또는 데이터의 세트로 산술 및/또는 논리 연산을 실행하도록 구성된 물리적 장치(예컨대, 멀티-코어 집적 회로)를 포함한다. 일부 실시예들에서, 이러한 논리 연산들은 프로세서 명령(예를 들어, 기계 코드 또는 다른 유형의 소프트웨어)의 시퀀스 형태로 프로세서(20)에 전달된다. 메모리 유닛(22)은 명령들을 수행하는 도중에 프로세서(20)에 의해 액세스되거나 생성되는 데이터/신호들을 저장하는 휘발성 컴퓨터-판독 가능 매체(예컨대, RAM)를 포함할 수 있다. 입력 장치(24)는 사용자가 시스템(16)으로 데이터 및/또는 명령들을 도입할 수 있게 하는 개별 하드웨어 인터페이스 및/또는 어댑터를 포함하는, 특히 컴퓨터 키보드, 마우스, 및 마이크를 포함할 수 있다. 출력 장치(26)는 특히 모니터와 같은 디스플레이 장치 및 스피커는 물론, 시스템(16)이 사용자에게 테이터를 통신하게 할 수 있는 그래픽 카드와 같은 하드웨어 인터페이스/어탭터를 포함할 수 있다. 일부 실시예들에서, 입력 장치(24)와 출력 장치(26)는 터치-스크린 장치들의 경우와 같이, 하드웨어의 공통적인 부품을 공유할 수 있다. 저장 장치(28)는 소프트웨어 명령들 및/또는 데이터의 비휘발성 저장, 판독, 및 기록을 가능하게 하는 컴퓨터-판독 가능 매체를 포함한다. 예시적인 저장 장치(28)는 자성 및 광 디스크들 및 플래시 메모리 장치들은 물론, CD 및/또는 DVD 디스크들 및 드라이브들과 같은 소거 가능 매체를 포함한다. 통신 인터페이스 제어기(30)는 시스템(16)이 네트워크(18) 및/또는 다른 장치들/컴퓨터 시스템들에 연결될 수 있게 한다. 버스(34)는 클라이언트 시스템(16)의 장치들(20-30)의 상호-통신을 가능하게 하는 복수의 시스템, 주변 장치, 및 칩셋 버스들, 및/또는 다른 모든 회로망을 집합적으로 나타낸다. 예를 들어, 버스(34)는 특히 프로세서(20)를 메모리(22)에 연결시키는 노스브리지, 및/또는 프로세서(20)를 장치들(24-30)에 연결시키는 사우스브리지를 포함할 수 있다.
도 2b는 본 발명의 일부 실시예들에 따른 보안 서버(14)의 예시적 하드웨어 구성을 도시한다. 보안 서버(14)는 프로세서(120)와 메모리 유닛(122)을 포함하고, 저장 장치(128)의 세트와 적어도 하나의 통신 인터페이스 제어기(130)를 더 포함할 수 있으며, 이들은 모두 버스(134)의 세트를 통해 상호 연결된다. 일부 실시예들에서, 프로세서(120), 메모리(122), 및 저장 장치(128)의 동작은 앞서 도 2a와 관련하여 설명된 바와 같은 항목들(20, 22, 및 28)의 동작과 유사할 수 있다. 메모리 유닛(122)은 명령들을 수행하는 도중에 프로세서(120)에 의해 액세스되거나 생성된 데이터/신호들을 저장한다. 제어기(들)(130)은 네트워크(18)에 연결된 다른 시스템으로/으로부터 데이터를 전송 및/또는 수신할 수 있도록 보안 서버(14)를 네트워크(18)에 연결한다.
도 2c는 본 발명의 일부 실시예들에 따른 콘텐츠 서버(12)의 예시적 하드웨어 구성을 도시한다. 콘텐츠 서버(12)는 프로세서(220)와 메모리 유닛(222)을 포함하고, 저장 장치(228)의 세트와 적어도 하나의 통신 인터페이스 제어기(230)를 더 포함할 수 있으며, 이들은 모두 버스(234)의 세트를 통해 상호 연결된다. 일부 실시예들에서, 프로세서(220), 메모리(222), 및 저장 장치(228)의 동작은 앞서 설명된 바와 같은 항목들(20, 22, 및 28)의 동작과 유사할 수 있다. 메모리 유닛(222)은 명령들을 수행하는 도중에 프로세서(220)에 의해 액세스되거나 생성된 데이터/신호들을 저장한다. 일부 실시예들에서, 제어기(들)(230)은 콘텐츠 서버(12)를 네트워크(18)에 연결하고, 네트워크(18)에 연결된 다른 시스템으로 및/또는 다른 시스템으로부터 데이터를 전송 및/또는 수신할 수 있게 한다.
도 3a는 본 발명의 일부 실시예들에 따른, 스팸 이메일을 포함하는 예시적인 타겟 문서(36a)를 도시한다. 타겟 문서(36a)는 헤더 및 페이로드를 포함하며, 헤더는 메시지 루팅 데이터, 예컨대 발신자의 인디케이터 및/또는 수신자의 인디케이터, 및/또는 타임스탬프 및 콘텐츠 유형, 예컨대 다목적 인터넷 전자 우편(MIME) 유형과 같은 다른 데이터를 포함한다. 페이로드는 사용자에게 텍스트 및/또는 이미지로 현시되는 데이터를 포함할 수 있다. 콘텐츠 서버(12) 및/또는 클라이언트 시스템(16a-c) 상에서 실행되는 소프트웨어는 타겟 문서(36a)의 타겟 텍스트 블록(38a)을 생성하기 위해 페이로드를 처리할 수 있다. 일부 실시예들에서, 타겟 텍스트 블록(38a)은 텍스트로 해석되도록 의도된 표시(sign) 및/또는 기호(symbol)의 시퀀스를 포함한다. 텍스트 블록(38a)은 특히 특수문자와 유사한 구두점 기호는 물론, 네트워크 주소, 유니폼 리소스 로케이터(URL), 이메일 주소, 필명, 및 가명을 나타내는 문자 시퀀스를 포함할 수 있다. 타겟 텍스트 블록(38a)은 타겟 문서(36a)에, 예컨대 일반-텍스트 MIME 파트로서 직접 내장될 수 있고, 그렇지 않으면 문서(36a)에 내장된 컴퓨터 명령 세트의 처리 결과를 포함할 수 있다. 예를 들어, 타겟 텍스트 블록(38a)은 하이퍼텍스트 마크업 언어(HTML) 명령 세트의 렌더링 결과, 또는 타겟 문서(36a)에 내장된 서버측 스크립트 명령(예컨대, PHP, Javascript) 세트의 실행 결과를 포함할 수 있다. 다른 실시예에서, 타겟 텍스트 블록(38a)은, 이미지 스팸의 경우와 같이, 이미지 내에 내장될 수 있다.
도 3b는 블로그, 온라인 뉴스 페이지, 또는 사회 관계망 페이지와 같은 웹페이지 상에 포스팅된 댓글을 포함하는 다른 예시적인 타겟 문서(36b)를 도시한다. 일부 실시예들에서, 문서(36b)는 데이터 필드(data field), 예컨대 HTML 문서에 내장된 폼(form)의 필드 세트의 콘텐츠를 포함한다. 이러한 폼 필드의 완성(filling)은 예컨대 발신자 시스템(13) 상에서 실행되는 소프트웨어의 일부에 의해 자동으로 그리고/또는 사람 오퍼레이터에 의해 원격으로 이루어질 수 있다. 일부 실시예들에서, 문서(36b)의 현시는 개별 웹사이트에 액세스하는 사용자에게 텍스트로 해석되도록 의도된 문자 및/또는 기호의 시퀀스로 이루어진 텍스트 블록(38b)을 포함한다. 텍스트 블록(38b)은, 특히 하이퍼링크, 특수문자, 이모티콘, 및 이미지를 포함할 수 있다.
도 3c는 피싱 웹사이트를 포함하는 다른 예시적인 타겟 문서(36c)를 도시한다. 문서(36c)는, 실행되었을 때 이미지 세트 및/또는 텍스트 블록 세트를 생성할 문서 뷰어(예컨대, 웹 브라우저)를 결정하는, 서버측 또는 클라이언트측 스크립트 명령들 및/또는 HTML 세트로서 전달될 수 있다. 이러한 2개의 텍스트 블록(38c-d)이도 3c에 도시되어 있다. 텍스트 블록(38c-d)은 하이퍼링크 및 이메일 주소를 포함할 수 있다.
도 4a는 본 발명의 일부 실시예들에 따른, 도 1의 클라이언트 시스템(16a-c)과 같은 예시적 클라이언트 시스템(16)과 보안 서버(14) 사이의 예시적 스팸/사기 검출 처리를 도시한다. 도 4a에 도시된 교환은, 예컨대 이메일 스팸을 검출하도록 구성된 시스템(10)의 실시예에서 이루어진다. 콘텐츠 서버(12)로부터 타겟 문서(36), 예컨대 이메일 메시지를 수신한 후, 클라이언트 시스템(16)은 타겟 문서(36)의 타겟 인디케이터(40)를 결정할 수 있고, 타겟 인디케이터(40)를 보안 서버(14)로 전송할 수 있다. 타겟 인디케이터(40)는, 예를 들어 문서(36)가 스팸인지 아닌지를 결정하기 위해, 보안 서버(14)가 타겟 문서(36)를 분류할 수 있게 하는 데이터를 포함한다. 타겟 인디케이터(40)의 수신에 응답하여, 보안 서버(14)는 문서(36)가 스팸인지 아닌지를 지시하는 타겟 라벨(50)을 개별 클라이언트 시스템(16)으로 전송할 수 있다.
스팸-검출 처리의 다른 실시예가 도 4b에 도시되며, 이는 콘텐츠 서버(12)와 보안 서버(14) 사이에서 이루어진다. 이러한 교환은, 예컨대 블로그 및/또는 사회 관계망 웹사이트에 포스팅된 원하지 않는 통신을 검출하기 위해, 또는 피싱 웹사이트를 검출하기 위해 이루어질 수 있다. 개별 웹사이트를 호스팅 및/또는 현시하는 콘텐츠 서버(12)는 타겟 문서(36)(예컨대, 블로그 댓글)를 수신할 수 있다. 콘텐츠 서버(12)는 개별 문서의 타겟 인디케이터(40)를 생성하기 위해 개별 통신을 처리할 수 있고, 타겟 인디케이터를 보안 서버(14)로 전송할 수 있다. 그에 대한 반응으로, 서버(14)는 개별 문서가 스팸이거나 사기성인지를 나타내는 타겟 라벨(50)을 결정할 수 있고, 라벨(50)을 콘텐츠 서버(12)로 전송할 수 있다.
도 5는 도 3a의 이메일 메시지(36a)와 같은 예시적 타겟 문서(36)를 위해 결정된 예시적 타겟 인디케이터(40)를 도시한다. 일부 실시예들에서, 타겟 인디케이터(40)는 타겟 문서(36)와 특유하게 관련된 메시지 식별자(41)(예컨대, 해시 인덱스), 및 도 3a의 텍스트 블록(38a)과 같은 문서(36)의 텍스트 블록에 대해 결정된 텍스트 핑거프린트(42)를 포함하는 데이터 구조이다. 타겟 인디케이터(40)는 문서(36)의 발신자를 지시하는 발신자 인디케이터(44)와, 문서(36)가 생성된 네트워크 주소(예컨대, IP 주소)를 지시하는 루팅 인디케이터(46)와, 그리고 문서(36)가 발송 및/또는 수신된 순간을 시간으로 나타내는 타임 스탬프(48)를 더 포함할 수 있다. 몇몇 실시예들에서, 타겟 인디케이터(40)는, 특히 문서(36)가 이미지를 포함하는지를 지시하는 플래그, 문서(36)가 하이퍼링크를 포함하는지를 지시하는 플래그, 및 문서(36)를 위해 결정된 문서 레이아웃 인디케이터와 같은 문서(36)의 다른 스팸-지시 및/또는 사기-지시 특징을 포함할 수 있다.
도 6은 본 발명의 일부 실시예에 따른 클라이언트 시스템(16) 상에서 실행되는 예시적인 요소의 세트를 도시한다. 도 6에 도시된 구성은, 예컨대 클라이언트 시스템(16)에서 수신된 스팸 이메일 메시지를 검출하는데 적합하다. 시스템(16)은 문서 다이제스터(52) 및 문서 다이제스터(52)에 연결된 문서 현시 관리자(54)를 포함한다. 문서 다이제스터(52)는 핑거프린트 계산기(56)를 더 포함할 수 있다. 일부 실시예들에서, 문서 다이제스터(52)는 타겟 문서(36)(예컨대, 이메일 메시지)를 수신하고, 타겟 인디케이터(40)를 생성하기 위해 문서(36)를 처리한다. 문서(36)의 처리는, 특히 구분되는(distinct) 데이터 필드 및/또는 유형을 식별하기 위해, 그리고 페이로드 데이터로부터 헤더 데이터를 구별하기 위한 문서(36) 파싱(parsing)을 포함한다. 문서(36)가 이메일 메시지인 경우, 예시적인 파싱은, 특히 개별 메시지의 발신자, IP 주소, 주제, 타임스탬프, 및 콘텐츠에 대한 별개의 데이터 오브젝트를 생성할 수 있다. 문서(36)의 콘텐츠가 복수의 MIME 유형의 데이터를 포함할 경우, 파싱은, 특히 일반 텍스트, HTML, 이미지와 같은 각각의 MIME 유형에 대한 별개의 데이터 오브젝트를 얻을 수 있다. 그 다음, 문서 다이제스터(52)는, 예컨대, 특히 발신자, 루팅 주소, 및 타임스탬프와 같은 타겟 인디케이터(40)의 개별 필드를 완성함으로써 타겟 인디케이터(40)를 만들 수 있다. 그 다음, 클라이언트 시스템(16)의 소프트웨어 요소는 분석을 위해 타겟 인디케이터(40)를 보안 서버(14)로 전송할 수 있다.
일부 실시예들에서, 문서 현시 관리자(54)는 타겟 문서(36)를 수신하고, 이를 시각적 형태로 번역하여, 이를 클라이언트 시스템(16)의 출력 장치에 현시한다. 현시 관리자(54)의 일부 실시예들은 클라이언트 시스템(16)의 사용자가 현시된 콘텐츠와 상호작용하는 것도 허용한다. 현시 관리자(54)는, 특히 웹 브라우저, 이메일 리더, e-북 리더, 및 미디어 플레이어와 같은 규격(off-the shelf) 문서 현시 소프트웨어와 통합될 수 있다. 이러한 통합은, 예컨대 소프트웨어 플러그인 형태로 달성될 수 있다. 현시 관리자(54)는 타겟 문서(36)(예컨대, 들어오는 이메일)에 스팸, 적법, 및/또는 다양한 기타 분류와 같은 문서 분류 및 문서의 하위분류를 할당하도록 구성될 수 있다. 이러한 분류는 보안 서버(14)로부터 수신된 타겟 라벨(50)에 따라 결정될 수 있다. 현시 관리자(54)는 스팸/사기 메시지를 개별 폴더로 나누도록 그리고/또는 적법 메시지만을 사용자에게 현시하도록 또한 구성될 수 있다. 관리자(54)는 이러한 분류에 따라 문서(36)에 라벨을 또한 제공할 수 있다. 예를 들어, 문서 현시 관리자(54)는 별도의 색상으로 스팸/사기 메시지를 현시하거나, 각각의 스팸/사기 메시지 옆에 개별 메시지(예컨대, 스팸, 피싱 등)의 분류를 지시하는 플래그를 현시할 수 있다. 이와 유사하게, 문서(36)가 사기성 웹페이지인 경우, 현시 관리자(54)는 개별 페이지에 대한 사용자의 액세스를 차단하고 그리고/또는 사용자에게 경고를 현시할 수 있다.
블로그 및 사회 관계망 사이트 상에 댓글로 포스팅된 스팸/사기를 검출하도록 구성된 실시예에서, 문서 다이제스터(52) 및 현시 관리자(54)는 도 6에 도시된 클라이언트 시스템(16a-c) 대신에 콘텐츠 서버(12) 상에서 실행될 수 있다. 이러한 소프트웨어는 서버측 스크립트들의 형식으로 콘텐츠 서버(12) 상에서 실행될 수 있으며, 이 스크립트들은, 예컨대 Wordpress® 또는 Drupal® 온라인 발행 플랫폼들에 대한 스팸 방지/사기 방지 플러그인과 같은 대형 스크립트 패키지 내에 플러그인으로 또한 포함될 수 있다. 타겟 문서(36)가 스팸 또는 사기성으로 결정되면, 현시 관리자(54)는 개별 메시지를 차단하도록 구성됨으로써, 그 문서가 개별 웹사이트 내에서 현시되는 것을 방지할 수 있다.
핑거프린트 계산기(56)(도 6)는 타겟 문서(36)의 텍스트 핑거프린트를 결정하도록 구성되며, 이는 타겟 인디케이터(40)(예컨대, 도 5의 42 항목)의 일부를 구성한다. 일부 실시예들에서, 타겟 전자 문서에 대해 결정된 핑거프린트는 문자의 시퀀스를 포함하며, 시퀀스의 길이는 미리결정된 상한과 미리결정된 하한 사이(예컨대, 전체적으로 129 내지 256 문자 사이)에서 제한된다. 미리결정된 범위의 길이 내에서 이러한 핑거프린트를 갖는 것이 바람직하며, 이로써, 이하에서 더욱 상세히 도시되는 바와 같이, 스팸 및/또는 사기를 포함하는 텍스트 블록을 식별하기 위한 기준 핑거프린트의 총체(collection)에 대한 효율적인 비교를 허용한다. 일부 실시예들에서, 핑거프린트를 형성하는 문자들은, 특히 영숫자 문자, 특수문자 및 기호(예컨대, *, /, $ 등)를 포함할 수 있다. 텍스트 핑거프린트를 형성하는데 사용되는 다른 예시적인 문자들은, 특히 이진수, 16진수, 및 베이스64(Base64)와 같은 각종 인코딩 내의 숫자를 나타내는데 사용되는 자리수(digit) 또는 기타 기호들을 포함한다.
도 7은 텍스트 핑거프린트를 결정하기 위해 핑거프린트 계산기(56)에 의해 실시되는 단계들의 예시적인 시퀀스를 도시한다. 단계(402)에서, 핑거프린트 계산기는 핑거프린트 계산을 위해 타겟 문서(36)의 타겟 텍스트 블록을 선택할 수 있다. 일부 실시예들에서, 타겟 텍스트 블록은 타겟 문서(36)의 실질적으로 모든 텍스트 콘텐츠, 예컨대 문서(36)의 일반-텍스트 MIME 부분으로 이루어질 수 있다. 일부 실시예들에서, 타겟 텍스트 블록은 문서(36)의 텍스트 부분의 단일 문단으로 이루어질 수 있다. 웹 기반 스팸을 필터링하도록 구성된 실시예에서, 타겟 텍스트 블록은 블로그 댓글, 또는 사용자에 의해 발송되고 개별 웹사이트에 포스팅되도록 의도된 다른 종류의 메시지(예컨대, Facebook® 월 포스트, Twitter® 트윗 등)의 콘텐츠로 이루어질 수 있다. 일부 실시예들에서, 타겟 텍스트 블록은 HTML 문서의 섹션, 예를 들면 DIV 또는 SPAN 태그에 의해 지시된 섹션으로 이루어질 수 있다.
단계(404)에서, 핑거프린트 계산기(56)는 타겟 텍스트 블록을 텍스트 토큰으로 분할할 수 있다. 도 8은 복수의 텍스트 토큰(60a-c)으로의 텍스트 블록(38)의 예시적인 분절화(segmentation)를 도시한다. 일부 실시예들에서, 텍스트 토큰은 임의의 구획문자(delimiter) 문자/기호 세트에 의해 다른 텍스트 토큰으로부터 분리된 문자/기호의 시퀀스가다. 서방 언어 스크립트를 위한 예시적인 구획문자는, 특히 스페이스, 라인 브레이크, 탭, '\r', '\0', 마침표, 쉼표, 콜론, 세미콜론, 괄호 및/또는 묶음표(parentheses) 및 또는 괄호(bracket), 역 슬래쉬 및/또는 슬래쉬, 이중 슬래쉬, '+', '-', '*', '^'와 같은 수학 기호, '!' 및 '?'와 같은 구두점, 그리고 '$' 및 '|'와 같은 특수문자를 포함한다. 도 8의 예시적인 토큰들은 개별적인 단어이며, 텍스트 토큰의 다른 예들은, 특히 다중 단어 시퀀스, 이메일 주소, 및 URL을 포함할 수 있다. 텍스트 블록(38)의 개별 토큰을 식별하기 위해, 핑거프린트 계산기는 본 기술분야에서 공지된 임의의 스트링 토큰화 알고리즘을 사용할 수 있다. 핑거프린트 계산기(56)의 일부 실시예들은 특정 토큰, 예를 들어 영어의 'a'와 'the' 같은 흔한 단어들을 핑거프린트 계산에 있어서 부적합한 것으로 고려할 수 있다. 일부 실시예들에서, 미리결정된 최대 길이를 초과하는 토큰들은 더 짧은 토큰들로 더욱 분할될 수 있다.
일부 실시예들에서, 계산기(56)에 의해 결정된 텍스트 핑거프린트의 길이는 개별 타겟 텍스트 블록의 길이 또는 토큰 개수와 무관하게 미리결정된 범위(예컨대, 전체적으로 129 내지 256 문자 사이) 내에서 제한된다. 이러한 핑거프린트를 계산하기 위해, 단게(406)에서, 핑거프린트 계산기(56)는 타겟 텍스트 블록의 텍스트 토큰의 개수를 먼저 결정하고, 상기 개수를 핑거프린트 길이의 상한에 따라 결정된, 미리결정된 상한 문턱값(upper threshold)과 비교한다. 토큰 개수가 상한 문턱값(예컨대, 256)을 초과할 때, 단계(408)에서, 계산기(56)는 이하 상세히 나타난 바와 같은 줌아웃 핑거프린트(zoomed-out fingerprint)를 결정할 수 있다.
토큰 개수가 상한 문턱값 미만일 경우, 단계(410)에서, 핑거프린트 계산기는 각 텍스트 토큰의 해시를 계사할 수 있다. 도 8은 각각 텍스트 토큰(60a-c)에 대해 결정된 예시적인 해시(62a-c)를 도시한다. 해시(62a-c)는 16진수 표기법으로 도시된다. 일부 실시예들에서, 이러한 해시들은 각 토큰(60a-c)에 해시 함수를 적용한 결과물이다. 많은 이러한 해시 함수 및 알고리즘이 본 기술분야에서 공지되어 있다. 나이브 해시 알고리즘(Naive hash algorithm)들은 빠르지만, 통상적으로 많은 충돌(대별되는 토큰들이 동일한 해시를 갖는 상황)을 생성한다. MD5 같은 메시지 다이제스트 알고리즘에 의해 계산된 것들과 같은 더욱 복잡한 해시들은 이른바 충돌은 없지만, 상당한 계산 비용을 수반한다. 본 발명의 일부 실시예들은 계산 속도와 충돌 방지 사이의 트레이드-오프를 제공하는 해시 알고리즘을 사용하여 해시(62a-c)를 연산한다. 이러한 알고리즘의 예는 로버트 세즈윅(Robert Sedgewick)이 기여한 것으로, 본 기술분야에서 RSHash로 알려져 있다. RSHash의 의사 코드(pseudocode)는 다음과 같이 나타나며,
foreach ( byte x ; bytes ) {
value = value * a + x;
a *= b;
}
return value;
여기서, a와 b는 정수, 예를 들어 a=63,689 그리고 b=378,551이다.
해시(62a-c)의 크기(비트수)는 충돌 경향성 및 그에 따른 스팸 검출율에 영향을 줄 수 있다. 일반적으로, 작은 해시의 사용은 충돌 경향성을 증가시킨다. 일반적으로, 큰 해시들이 충돌에 덜 취약기는 하지만, 계산 속도 및 메모리의 관점에서 더 비싸다. 핑거프린트 계산기(56)의 몇몇 실시예들은 항목(62a-c)들을 30-비트 해시로 계산한다.
핑거프린트 계산기(56)는 이제 타겟 텍스트 블록의 실제 텍스트 핑거프린트를 결정할 수 있다. 도 8은 타겟 텍스트 블록(38)에 대해 결정된 예시적인 핑거프린트(42)를 또한 도시한다. 텍스트 핑거프린트(42)는 단계(410)에서 결정된 해시(62a-c)에 따라 결정된 문자의 시퀀스를 포함한다. 일부 실시예들에서, 각 토큰(60a-c)에 대해, 핑거프린트 계산기(56)는 도 8에 항목(64a-c)으로 도시된 핑거프린트 조각(fingerprint fragment)을 결정한다. 그 다음, 일부 실시예들에서, 이러한 조각들이 연쇄되어(concatenated) 핑거프린트(42)가 생성된다.
각각의 핑거프린트 조각(64a-c)은 개별 토큰(60a-c)의 해시(62a-c)에 따라 결정된 문자 시퀀스를 포함할 수 있다. 일부 실시예들에서, 모든 핑거프린트 조각(64a-c)들이 동일한 길이를 가질 수 있으며, 도 8의 예에서는 각각의 조각(64a-c)이 2개의 문자로 이루어진다. 핑거프린트 조각의 상기 길이는 개별 핑거프린트가 바람직한 범위, 예컨대 129 내지 256 문자 내의 길이를 갖도록 결정된다. 일부 실시예들에서, 핑거프린트 조각의 길이는 줌인 팩터(k)로 언급된다. 예를 들어, 길이 1의 조각은 노-줌 조각(줌인 팩터 1)이며 노-줌 핑거프린트를 생성하고, 길이 2의 조각은 2x 줌인 조작(줌인 팩터 2)이며 2x 줌인 핑거프린트를 생성하는 것 등이다. 도 9는 다양한 줌인 팩터(k)에서 텍스트 블록(38)에 대해 결정된 복수의 텍스트 핑거프린트(42a-c)를 도시한다.
단계(412)(도 7)에서, 핑거프린트 계산기(56)는 바람직한, 미리결정된 범위 내의 핑거프린트 길이를 생성하는 줌인 팩터(k)의 값을 결정한다. 예를 들어, 토큰 개수가 바람직한 핑거프린트 길이의 하한에 따라 결정된 하한 문턱값보다 클 때, 핑거프린트 계산기는 노-줌 핑거프린트(k=1)를 계산하도록 결정할 수 있는데, 이는 노-줌 핑거프린트가 이미 바람직한 길이의 범위 내에 있기 때문이다. 텍스트 블록(38)이 너무 적은 토큰을 갖는 경우, 핑거프린트 계산기는 예를 들어 2x 또는 3x 줌인 핑거프린트를 계산할 수 있다.
다음으로, 단계(414)에서, 핑거프린트 계산기(56)는 각 토큰의 개별 해시에 따라, 상기 토큰의 핑거프린트 조각을 계산한다. 조각(64a-c)을 결정하기 위해, 핑거프린트 계산기(56)는 해시(62a-c)의 이진수 또는 베이스64 표현과 같은, 본 기술분야에서 공지된 임의의 인코딩 개념을 사용할 수 있다. 이러한 인코딩 개념은 미리결정된 알바벳으로부터 문자의 시퀀스와 숫자 사이의 일대일 맵을 생성한다. 예를 들어, 베이스64 표현을 사용할 때, 해시의 6개의 연속 비트의 모든 그룹이 하나의 문자로 맵핑될 수 있다.
일부 실시예들에서, 복수의 핑거프린트 조각은 개별 해시를 표현하는데 사용되는 문자의 개수를 변화시키는 것에 의해 각 해시에 대해 결정될 수 있다. 길이 1(예컨대, 줌인 팩터 1)의 조각을 생성하기 위해, 일부 실시예들은 개별 해시의 단지 6개의 유의미한 비트를 사용한다. 길이 2(예컨대, 줌인 팩터 2)의 조각은 개별 해시의 6개의 추가적인 비트를 사용하여 생성될 수 있다. 기타 등등. 베이스64 표현의 경우, 30-비트 해시는 이에 따라 최대로 줌인 팩터 5에 대응하는 문자 5개 길이의 핑거프린트 조작을 얻을 수 있다. 표 1은 도 9의 예시적 텍스트 블록(38)으로부터 다양한 줌인 팩터에서 계산된 예시적인 핑거프린트 조각들을 나타낸다.
Figure 112015075758697-pct00001
단계(416)(도 7)에서, 핑거프린트 계산기(56)는, 예컨대 단계(414)에서 계산된 조각들을 연쇄시킴으로써, 텍스트 핑거프린트(42)를 결합한다.
단계(406)로 돌아가서, 토큰 개수가 상한 문턱값보다 큰 것으로 밝혀졌을 때, 핑거프린트 계산기(56)는 개별 텍스트 블록의 줌아웃 핑거프린트를 결정한다. 일부 실시예들에서, 주밍 아웃은 텍스트 블록(38)의 토큰들의 하나의 부분 집합(subset)으로부터 핑거프린트(42)를 연산하는 것을 포함한다. 부분 집합을 선택하는 것은 해시 선택 조건에 따라 단계(404)에서 결정된 복수의 텍스트 토큰을 잘라내는 것(pruning)을 포함한다. 이러한 계산을 실시하는 단계들의 예시적인 시퀀스가 도 10에 도시된다. 단계(422)는 핑거프린트 계산을 위한 줌아웃 팩터를 선택한다. 일부 실시예들에서, k로 표시되는 줌아웃 팩터는, 평균적으로 텍스트 블록(38)의 1/k의 토큰만이 핑거프린트 계산에 사용됨을 나타낸다. 핑거프린트 계산기(56)는 그에 따라 단계(406)(도 7)에서 결정된 토큰 개수에 따라 줌아웃 팩터를 선택할 수 있다. 일부 실시예들에서, 줌아웃 팩터의 초기 선택은 바람직한 길이 범위 내의 핑거프린트를 생성하지 않을 수 있으며(이하 참조), 이러한 경우, 단계들(422-430)은 시행착오 방식으로 적절한 길이의 핑거프린트가 생성될 때까지 루프로 실행될 수 있다. 예를 들어, 핑거프린트 계산기(56)는 초기에 줌아웃 팩터 k=2를 선택할 수 있고, 이 값이 충분히 짧은 핑거프린트를 생성하지 못했을 때, 계산기(56)는 k=3을 선택할 수 있는 것 등이다.
다음으로, 핑거프린트 계산기는 해시 선택 조건에 따라 토큰을 선택할 수 있다. 주밍 아웃할 때, 핑거프린트 계산기(56)는 단계(404)(도 7)에서 이미 결정된 토큰을 사용할 수 있으며, 그렇지 않으면 텍스트 블록(38)으로부터 새로운 토큰을 계산할 수 있다. 도 10에 도시된 예의 경우, 단계(424)에서, 핑거프린트 계산기(56)는 텍스트 블록(38)의 집합 토큰(aggregate token) 세트를 결정한다. 일부 실시예들에서, 도 9에 항목(60d)으로 도시된 집합 토큰은 연속적인 개별 토큰들을 연쇄시킴으로써 결정된다. 집합 토큰을 형성하기 위해 사용되는 토큰의 개수는 줌아웃 팩터에 따라 변할 수 있다.
단계(426)에서, 예를 들어 전술한 방법들을 사용하여 각각의 집합 토큰에 대한 해시가 계산된다. 단계(428)에서, 계산기(56)는 해시 선택 조건에 따라 집합 토큰의 부분 집합을 선택한다. 일부 실시예들에서, 줌아웃 팩터(k)에 대해, 선택 조건은 선택된 부분 집합의 멤버들에 대해 결정된 모든 해시들이 동일한 모듈로(k; modulo)일 것을 필요로 한다. 예를 들면, 2x 줌아웃 핑거프린트를 결정하기 위해, 계산기(56)는 그 해시들이 동일한 모듈로 2(즉, 홀수 해시들만, 또는 짝수 해시들만)인 집합 토큰들만을 고려할 수 있다. 일부 실시예들에서, 해시 선택 기준은 그 해시들이 줌아웃 팩터(k)에 의해 나뉠 수 있는 토큰들만을 선택하는 것을 포함한다.
단계(430)에서, 핑거프린트 계산기(56)는 단계(428)에서 선택된 토큰들의 개수가 핑거프린트 길이의 원하는 범위 내인지를 체크할 수 있다. 만일 아니라면, 계산기(56)는 단계(422)로 복귀하여 다른 줌아웃 팩터(k)로 재시작할 수 있다. 선택된 토큰들의 개수가 그 범위 내이면, 단계(432)에서 계산기(56)는 선택된 토큰의 각 해시에 따라 핑거프린트 조각을 결정한다. 단계(434)에서, 그러한 조각들이 모여져 핑거프린트(42)를 생성한다. 도 9는 텍스트 블록(38)에 대해 결정된 다수의 줌아웃 핑거프린트(42d-h)를 나타낸다. 표 2는 다양한 줌아웃 팩터들에서, 도 9의 동일한 텍스트 블록(38)에 대해 결정된 예시적인 핑거프린트 조각들을 나타낸다.
Figure 112015075758697-pct00002
도 11은 본 발명의 일부 실시예들에 따른 보안 서버(또한 도 1 참조)상에서 실행되는 예시적인 요소들을 도시한다. 보안 서버(14)는 통신 관리자(74) 및 핑거프린트 데이터페이스(70)에 연결된 문서 분류자(72)를 포함한다. 통신 관리자(74)는, 앞서 도 4a, b와 관련하여 도시된 바와 같이, 클라이언트 시스템(16a-c)과의 스팸/사기-검출 처리를 관리한다. 일부 실시예들에서, 문서 분류자(72)는 통신 관리자(74)를 통해 타겟 인디케이터(40)를 수신하도록, 그리고 타겟 문서(36)의 분류를 지시하는 타겟 라벨(50)을 결정하도록 구성된다.
일부 실시예들에서, 타겟 문서(36)를 분류하는 것은 각각의 기준 핑거프린트가 문서 카테고리를 나타내는 기준 핑거프린트 세트와 문서(36)에 대해 결정된 텍스트 핑거프린트 사이의 비교에 따라, 문서 카테고리에 문서(36)를 할당하는 것을 포함한다. 예를 들면, 문서(36)의 분류는 문서(36)가 스팸 및/또는 사기인지 여부를 결정하는 것과 문서(36)가 제품 오퍼, 피싱 또는 Nigerian 사기와 같은 스팸/사기의 서브-카테고리에 속하는지를 결정하는 것을 포함할 수 있다. 문서(36)를 분류하기 위해, 문서 분류자(72)는 핑거프린트 비교와 관련하여, 본 기술분야에서 공지된 임의의 방법을 채용할 수 있다. 이러한 방법들은 특히 블랙리스팅과 화이트리스팅, 및 패턴 매칭 알고리즘들을 포함한다. 예를 들어, 문서 분류자(72)는 복수의 개별 점수를 연산할 수 있으며, 여기서 각 점수는 문서(36)가 특정 문서 카테고리(예컨대, 스팸)에 대한 멤버임을 나타내며, 각각의 점수는 별개의 분류 방법(예컨대, 핑거프린트 비교, 블랙리스팅 등)을 통해 결정된다. 그 다음, 분류자(72)는 개별 점수들의 조합으로 결정된 복합 점수에 따라 문서(36)의 분류를 결정할 수 있다.
문서 분류자(72)는 타겟 문서의 핑거프린트를 데이터베이스(70)에 저장된 기준 핑거프린트 세트와 비교함으로써 타겟 문서(36)를 분류하도록 구성된, 도 12에 도시된 바와 같은, 핑거프린트 비교기(78)를 더 포함할 수 있다. 일부 실시예들에서, 핑거프린트 데이터페이스(70)는 특히 이메일 메시지, 웹페이지, 및 웹사이트 댓글과 같은 기준 문서들의 세트에 대해 결정된 텍스트 핑거프린트의 보관소를 포함한다. 데이터페이스(70)는 스팸/사기의 핑거프린트뿐 아니라, 적법한 문서도 포함할 수 있다. 각각의 기준 핑거프린트에 대해, 데이터베이스(70)는 개별 핑거프린트와 문서 카테고리(예컨대, 스팸) 사이의 관계의 인디케이터를 점수화할 수 있다.
일부 실시예들에서, 데이터베이스(70) 내의 기준 핑거프린트의 부분 집합의 모든 핑거프린트들은 미리결정된 범위 내의, 예컨대 129 내지 256 문자 사이의 길이를 갖는다. 또한, 상기 범위는 핑거프린트 계산기(56)(도 6)에 의해 타겟 문서들에 대해 결정된 타겟 핑거프린트들의 길이와 일치한다. 모든 기준 핑거프린트들이 거의 동일한 크기를 가지며, 기준 핑거프린트들이 타겟 핑거프린트들의 길이와 거의 동일한 길이를 갖는 이러한 구성은 문서 분류의 목적에 있어 타겟 핑거프린트와 기준 핑거프린트 사이의 비교를 용이하게 할 수 있다.
각각의 기준 핑거프린트에 대해, 데이터베이스(70)의 일부 실시예들은 개별 핑거프린트가 결정되는 텍스트 블록의 길이의 인디케이터를 저장할 수 있다. 이러한 인디케이터들의 예는 특히 개별 텍스트 블록의 스트링 길이, 개별 핑거프린트를 결정하는데 사용된 조각 길이, 및 줌인/줌아웃 팩터를 포함한다. 각각의 핑거프린트에 대한 텍스트 블록 길이의 인디케이터를 저장하는 것은, 핑거프린트 비교기(78)로 하여금 타겟 핑거프린트(42)를 생성하는 텍스트 블록과 길이가 유사한 텍스트 블록을 나타내는 기준 핑거프린트들을 선택적으로 회수하게 함으로써, 문서 비교를 용이하게 할 수 있다.
타겟 문서(36)를 분류하기 위해, 분류자(72)는 타겟 인디케이터(40)를 수신하고, 인디케이터(40)로부터 타겟 핑거프린트(42)를 추출하고, 핑거프린트(42)를 핑거프린트 비교기(78)로 전달할 수 있다. 비교기(78)는 타겟 핑거프린트(42)와의 비교를 위해 기준 핑거프린트(82)를 선택적으로 회수하도록, 데이터베이스(70)와 인터페이스할 수 있다. 일부 실시예들에서, 핑거프린트 비교기(78)는 타겟 텍스트 블록의 길이와 유사한 길이의 텍스트 블록에 대해 연산된 기준 핑거프린트들을 우선적으로 회수할 수 있다.
문서 분류자(72)는 데이터베이스(70)로부터 회수된 기준 핑거프린트와 타겟 핑거프린트(42) 사이의 비교에 따라 타겟 문서(36)의 분류를 또한 결정한다. 일부 실시예들에서, 비교는 핑거프린트들(42 및 82)의 유사도를 나타내는 유사성 점수를 연산하는 것을 포함한다. 이러한 유사성 점수는, 예컨대 다음과 같이 결정될 수 있으며,
Figure 112015075758697-pct00003
여기서, fT와 fR은 각각 타겟 핑거프린트와 기준 핑거프린트를 나타내고, d(fT,fR)은 두 핑거프린트 사이의 편집 거리(edit distance), 예컨대 Levenshtein 거리를 나타내며, |fT|와 |fR|는 각각 타겟 핑거프린트와 기준 핑거프린트의 길이를 나타낸다. 점수(S)는 0과 1 사이의 임의의 값을 취할 수 있으며, 1에 가까운 값은 두 핑거프린트 사이의 높은 유사도를 나타낸다. 예시적인 실시예에서, 타겟 핑거프린트(42)는 점수(S)가 미리결정된 문턱값(T), 예컨대 0.9를 초과할 때 기준 핑거프린트(82)와 일치한다고 말할 수 있다. 타겟 핑거프린트(42)가 데이터베이스(70)으로부터 적어도 하나의 기준 핑거프린트와 일치할 때, 문서 분류자(72)는 개별 기준 핑거프린트의 문서 카테고리 인디케이터에 따라 타겟 문서를 분류할 수 있으며, 그 분류를 반영하기 위해 타겟 라벨(50)을 만들어낼 수 있다. 예를 들어, 타겟 핑거프린트(42)가 스팸 메시지에 대해 결정된 기준 핑거프린트와 일치될 때, 타겟 문서(36)는 스팸으로 분류될 수 있고, 타겟 라벨(50)은 스팸 분류를 나타낼 수 있다.
전술할 예시적인 시스템 및 방법은 이메일 및 사용자-기여 웹사이트와 같은 전자 메시징 시스템에서 원하지 않는 통신(스팸)의 검출은 물론 피싱 웹사이트와 같은 사기성 전자 문서들의 검출을 허용한다. 일부 실시예들에서, 텍스트 핑거프린트가 각각의 타겟 문서에 대해 계산되며, 핑거프린트는 개별 문서의 복수의 텍스트 토큰에 따라 결정된 문자들의 시퀀스를 포함한다. 그 다음, 핑거프린트는 문서들의 총체에 대해 결정된 기준 핑거프린트들과 비교된다. 타겟 핑거프린트가 스팸/사기성 메시지에 대해 결정된 기준 핑거프린트와 일치될 때, 타겟 통신은 스팸/사기라고 라벨링된다.
타겟 통신이 스팸/사기로서 긍정적으로 식별되면, 스팸 방지/사기 방지 시스템의 요소들은 개별 문서의 현시를 수정할 수 있다. 예를 들어, 일부 실시예들은 개별 문서의 현시를 차단할 수 있으며(예컨대, 스팸 댓글이 웹사이트 상에 현시되는 것을 허용하지 않음), 개별 문서를 별도의 위치(예컨대, 스팸 이메일 폴더, 별도의 브라우저 윈도우)에 현시할 수 있으며, 그리고/또는 경고를 현시할 수 있다.
일부 실시예들에서, 텍스트 토큰들은 타겟 문서의 개별 단어들 또는 단어 시퀀스는 물론, 이메일 주소 및/또는 타겟 문서의 텍스트 부분에 포함된 유니폼 리소스 로케이터(URL)와 같은 네트워크 주소를 포함한다. 본 발명의 일부 실시예들은 타겟 문서 내에서 복수의 이러한 텍스트 토큰을 식별한다. 각각의 토큰에 대해 해시가 연산되며, 개별 해시에 따라 핑거프린트 조각이 결정된다. 다음으로, 일부 실시예들에서, 핑거프린트 조각들이 예컨대 연쇄화에 의해 모여져, 개별 문서의 텍스트 핑거프린트를 생성한다.
이메일 메시지와 같은 일부 전자 문서들은 그 길이가 상당히 다양할 수 있다. 일부 종래의 스팸 방지/사기 방지 시스템들의 경우, 이러한 문서들에 대해 결정된 핑거프린트의 길이는 그에 따라 가변적이다. 이와 대조적으로, 본 발명의 일부 실시예들의 경우에는, 타겟 텍스트 블록 또는 문서의 길이와 무관하게, 텍스트 핑거프린트의 길이가 미리결정된 길이의 범위 내에서, 예컨대 129 내지 256 문자 사이에서 제한된다. 모든 텍스트 핑거프린트가 미리결정된 길이 한계 내에 있게 함으로써, 메시지간 비교의 효율성을 실질적으로 향상시킬 수 있다.
미리결정된 길이 범위 내에서 핑거프린트들을 결정하기 위해, 본 발명의 일부 실시예들은 줌인 및 줌아웃 방법을 채용한다. 텍스트 블록이 비교적 짧을 때는 원하는 길이의 핑거프린트를 생성하기 위해 핑거프린트 조각들의 길이를 조정하여 주밍 인(zooming in)이 얻어진다. 예시적인 실시예에서, 30-비트 해시의 매 6 비트가 (예컨대, 베이스64 표현을 사용하여) 문자로 전환될 수 있음으로써, 개별 해시는 1 내지 5 문자 길이의 핑거프린트 조각을 생성할 수 있다.
비교적 긴 텍스트 블록의 경우, 본 발명의 일부 실시예들은 해시 선택 기준에 따라 선택된 토큰들의 부분 집합으로부터 핑거프린트를 연산함으로써 줌아웃을 달성한다. 예시적인 해시 선택 기준은 2, 3, 또는 6과 같은 정수(k)에 의해 나뉠 수 있는 해시를 갖는 토큰들만을 선택하는 것을 포함한다. 주어진 예에 대해, 이러한 선택의 결과로서, 각각 가용 토큰들의 대략 1/2, 1/3, 또는 1/6로부터 핑거프린트가 연산된다. 일부 실시예들에서, 주밍 아웃은 이러한 토큰 선택을 복수의 집합 토큰에 적용하는 것을 더 포함할 수 있고, 각각의 집합 토큰은 개별 전자 문서의 단어들의 시퀀스와 같은 여러 토큰의 연쇄를 포함한다.
다양한 해시 함수들이 핑거프린트 조각들의 결정에 사용될 수 있다. 컴퓨터 실험에서, 각각의 해시 함수가 실제 스팸을 생성할 수 있는 (다른 단어들이 동일한 해시를 생성하는) 해시 충돌 횟수를 결정할 목적으로, 다양한 언어들의 이메일 메시지들로부터 추출된 122,000 단어의 총체에 본 기술분야에서 공지된 각종 해시 함수들이 적용되었다. 표 3에 정리된 결과는 RSHash와 같은 본 기술분야에서 공지된 해시 함수가 모든 테스팅된 해시 함수들 중 가장 적은 충돌을 생성한다는 것을 보여준다.
Figure 112015075758697-pct00004
다른 컴퓨터 실험에서, 기업 서버에서 한 주 동안 수신된 모든 이메일로 구성되고 스팸 및 적법한 메시지들을 모두 포함하는 이메일 메시지의 총체가 본 발명의 일부 실시예들을 사용하여 분석되었다. 129 내지 256 문자 사이의 텍스트 핑거프린트를 결정하기 위해, 20.8%의 메시지는 주밍이 필요치 않았고, 18.5%는 2x 줌아웃이 필요했으며, 8.1%는 3x 줌아웃이 필요했고, 8.7%는 6x 줌아웃이 필요했다. 동일한 메시지의 총체 중에서, 14.8%는 2x 줌인이 필요했고, 9.7%는 4x 줌인이 필요했으며, 11.7%는 8x 줌인이 필요했다. 상기 결과는 이메일 스팸을 검출하기 위해 129 내지 256 문자 사이의 길이가 최적일 수 있다는 것을 제안하는 것인데, 이는 줌인 및/또는 줌아웃 팩터에 따른 그룹들로의 이메일의 실제 스트림의 전술한 분리(partitioning)로 인해 비교적 균일하게 수용된 그룹들을 생성하기 때문이며, 이러한 상황은 모든 그룹들이 거의 동일한 시간에 탐색될 수 있기 때문에 핑거프린트 비교에 있어서 유리하다.
다른 컴퓨터 실험에서, 15 시간 넘게 수집된 대략 865,000개의 메시지로 이루어진 스팸의 연속 스트림이, 각각의 세트가 구분되는 10분 간격 동안 수신된 메시지로 이루어진 메시지 세트들로 분할되었다. 각각의 메시지 세트는 본 발명의 일부 실시예들에 따라(예컨대, 도 11-12 참조) 문서 구성된 문서 분류자를 사용하여 분석되었다. 각각의 메시지 세트에 대해, 핑거프린트 데이터페이스(70)는 이전 시간 구간에 속하는 스팸 메시지들에 대해 결정된 핑거프린트들로 구성되었다. 식 [1] 및 문턱값 T=0.75를 사용하여 얻어진 스팸 검출율(실선)이 도 13에 도시되어 있으며, 퍼지 해싱으로 본 기술분야에서 공지된 종래의 스팸-검출 방법을 사용하여 동일한 메시지 세트에서 얻어진 스팸 검출율(점선)과 비교되었다.
전술한 실시예들이 본 발명의 범위를 훼손하지 않으면서 많은 방식으로 변형될 수 있다는 것은 본 기술분야의 숙련자에게 명확할 것이다. 따라서, 본 발명의 범위는 후술하는 특허청구범위 및 그 등가물들에 의해 결정되어야 한다.

Claims (24)

  1. 텍스트 핑거프린트의 길이가 상한과 하한 사이에서 제한되게, 타겟 전자 문서의 텍스트 핑거프린트를 결정하도록 구성된 적어도 하나의 프로세서를 포함하는 클라이언트 컴퓨터 시스템이며,
    상기 상한과 하한은 미리결정되며, 텍스트 핑거프린트를 결정하는 단계는
    타겟 전자 문서의 복수의 텍스트 토큰을 선택하는 단계와,
    복수의 텍스트 토큰을 선택하는 단계에 대한 응답으로, 상기 상한과 하한에 따라서 그리고 복수의 선택된 텍스트 토큰의 개수에 따라 핑거프린트 조각 크기를 결정하는 단계와,
    복수의 핑거프린트 조각을 결정하는 단계로써, 각각의 핑거프린트 조각이 상기 복수의 선택된 텍스트 토큰의 구분되는 텍스트 토큰의 해시에 따라 결정되고, 각각의 핑거프린트 조각이 문자의 시퀀스로 이루어지며, 상기 시퀀스의 길이가 핑거프린트 조각 크기와 동일하게 선택되는, 복수의 핑거프린트 조각을 결정하는 단계와,
    텍스트 핑거프린트를 형성하기 위해 복수의 핑거프린트 조각을 연쇄화하는 단계를 포함하는,
    클라이언트 컴퓨터 시스템.
  2. 제1항에 있어서, 적어도 하나의 프로세서는
    a) 서버 컴퓨터 시스템에 텍스트 핑거프린트를 전송하도록, 그리고
    b) 타겟 전자 문서에 대해 결정된 타겟 라벨을 서버 컴퓨터 시스템으로부터 수신하도록 추가적으로 구성되며,
    상기 b)에서 상기 타겟 라벨은 타겟 전자 문서가 속하는 문서의 카테고리를 나타내며, 상기 타겟 라벨을 결정하는 단계는,
    - 기준 핑거프린트의 데이터베이스로부터 기준 핑거프린트를 회수하는 단계로서, 기준 핑거프린트는 상기 카테고리에 속하는 기준 전자 문서에 대해 결정되며, 기준 핑거프린트는 기준 핑거프린트의 길이가 상기 상한과 하한 사이에 있도록 기준 핑거프린트의 길이에 따라 선택되는, 기준 핑거프린트의 데이터베이스로부터 기준 핑거프린트를 회수하는 단계와,
    - 텍스트 핑거프린트를 기준 핑거프린트와 비교한 결과에 따라 타겟 전자 문서가 상기 카테고리에 속하는지를 결정하는 단계를 포함하는,
    클라이언트 컴퓨터 시스템.
  3. 제2항에 있어서, 문서의 카테고리는 스팸 카테고리인, 클라이언트 컴퓨터 시스템.
  4. 제2항에 있어서, 문서의 카테고리는 사기성 문서 카테고리인, 클라이언트 컴퓨터 시스템.
  5. 제1항에 있어서, 텍스트 핑거프린트를 결정하는 단계는 구분되는 텍스트 토큰의 해시의 비트의 구분되는 그룹에 따라 문자의 시퀀스의 각각의 문자를 결정하는 단계를 더 포함하는, 클라이언트 컴퓨터 시스템.
  6. 제1항에 있어서, 복수의 텍스트 토큰을 선택하는 단계는
    타겟 전자 문서의 복수의 예비 텍스트 토큰을 선택하는 단계와,
    복수의 예비 텍스트 토큰의 개수를 결정하는 단계와,
    이에 대한 응답으로, 복수의 예비 텍스트 토큰의 개수가 미리결정된 문턱값을 초과할 때, 복수의 선택된 텍스트 토큰의 개수가 미리결정된 문턱값을 초과하지 않도록, 복수의 선택된 텍스트 토큰을 형성하기 위해 복수의 예비 텍스트 토큰을 잘라내는 단계를 포함하는,
    클라이언트 컴퓨터 시스템.
  7. 제6항에 있어서, 복수의 예비 텍스트 토큰을 잘라내는 단계는 복수의 예비 텍스트 토큰의 타겟 텍스트 토큰을 타겟 텍스트 토큰의 해시에 따라 복수의 선택된 텍스트 토큰으로 선택하는 단계를 포함하는,
    클라이언트 컴퓨터 시스템.
  8. 제6항에 있어서, 복수의 예비 텍스트 토큰을 잘라내는 단계는
    타겟 텍스트 토큰의 해시가 줌아웃 팩터에 의해 나뉠 수 있는지를 결정하는 단계와,
    이에 대한 응답으로, 타겟 텍스트 토큰이 줌아웃 팩터에 의해 나뉠 수 있을 때, 타겟 텍스트 토큰을 복수의 선택된 텍스트 토큰으로 선택하는 단계를 더 포함하는,
    클라이언트 컴퓨터 시스템.
  9. 제1항에 있어서, 복수의 텍스트 토큰을 선택하는 단계는
    타겟 전자 문서의 복수의 예비 텍스트 토큰을 선택하는 단계와,
    복수의 예비 텍스트 토큰의 개수를 결정하는 단계와,
    이에 대한 응답으로, 복수의 예비 텍스트 토큰의 개수가 미리결정된 문턱값을 초과할 때,
    복수의 집합 텍스트 토큰을 결정하는 단계로써, 각각의 집합 텍스트 토큰이 복수의 예비 텍스트 토큰의 텍스트 토큰 세트의 연쇄를 포함하는 복수의 집합 텍스트 토큰을 결정하는 단계와,
    복수의 집합 텍스트 토큰의 하나의 집합 텍스트 토큰을 그 집합 텍스트 토큰의 해시에 따라 복수의 선택된 텍스트 토큰으로 선택하는 단계를 포함하는,
    클라이언트 컴퓨터 시스템.
  10. 제1항에 있어서, 타겟 전자 문서는 이메일 메시지 및 하이퍼텍스트 마크업 언어(HTML) 문서로 이루어진 그룹으로부터 선택되는, 클라이언트 컴퓨터 시스템.
  11. 제1항에 있어서, 구분되는 텍스트 토큰은 타겟 전자 통신의 유니폼 리소스 로케이터(URL), 이메일 주소, 및 단어로 이루어진 그룹으로부터 선택된 항목을 포함하는, 클라이언트 컴퓨터 시스템.
  12. 복수의 클라이언트 시스템과의 처리를 실행하도록 구성된 적어도 하나의 프로세서를 포함하는 서버 컴퓨터 시스템이며, 상기 처리는
    복수의 클라이언트 시스템의 하나의 클라이언트 시스템으로부터 텍스트 핑거프린트를 수신하는 단계와,
    타겟 전자 문서가 속하는 문서의 카테고리를 나타내는 타겟 라벨을 클라이언트 시스템으로 전송하는 단계를 포함하며,
    상기 텍스트 핑거프린트는 텍스트 핑거프린트의 길이가 하한과 상한 사이에서 제한되도록 타겟 전자 문서에 대해 결정되고, 상기 하한과 상한은 미리결정되며,
    텍스트 핑거프린트를 결정하는 단계는
    타겟 전자 문서의 복수의 텍스트 토큰을 선택하는 단계와,
    복수의 텍스트 토큰을 선택하는 단계에 대한 응답으로, 상기 하한과 상한에 따라서, 그리고 복수의 선택된 텍스트 토큰의 개수에 따라 핑거프린트 조각 크기를 결정하는 단계와,
    복수의 핑거프린트 조각을 결정하는 단계로써, 각각의 핑거프린트 조각이 복수의 선택된 텍스트 토큰의 구분되는 텍스트 토큰의 해시에 따라 결정되고, 각각의 핑거프린트 조각이 문자의 시퀀스로 이루어지며, 상기 시퀀스의 길이가 핑거프린트 조각 크기와 동일하게 선택되는, 복수의 핑거프린트 조각을 결정하는 단계와,
    텍스트 핑거프린트를 형성하기 위해 복수의 핑거프린트 조각을 연쇄화하는 단계를 포함하고,
    타겟 라벨을 결정하는 단계는
    기준 핑거프린트가 상기 카테고리에 속하는 기준 전자 문서에 대해 결정되며, 기준 핑거프린트는 기준 핑거프린트의 길이가 상기 하한과 상한 사이에 있도록 기준 핑거프린트의 길이에 따라 선택되는, 기준 핑거프린트의 데이터베이스로부터 기준 핑거프린트를 회수하는 단계와,
    텍스트 핑거프린트를 기준 핑거프린트와 비교한 결과에 따라 타겟 전자 문서가 상기 카테고리에 속하는지를 결정하는 단계를 포함하는,
    서버 컴퓨터 시스템.
  13. 제12항에 있어서, 문서의 카테고리는 스팸 카테고리인, 서버 컴퓨터 시스템.
  14. 제12항에 있어서, 문서의 카테고리는 사기성 문서 카테고리인, 서버 컴퓨터 시스템.
  15. 제12항에 있어서, 텍스트 핑거프린트를 결정하는 단계는 구분되는 텍스트 토큰의 해시의 비트의 구분되는 그룹에 따라 문자의 시퀀스의 각각의 문자를 결정하는 단계를 더 포함하는, 서버 컴퓨터 시스템.
  16. 제12항에 있어서, 복수의 텍스트 토큰을 선택하는 단계는
    타겟 전자 문서의 복수의 예비 텍스트 토큰을 선택하는 단계와,
    복수의 예비 텍스트 토큰의 개수를 결정하는 단계와,
    이에 대한 응답으로, 복수의 예비 텍스트 토큰의 개수가 미리결정된 문턱값을 초과할 때, 복수의 선택된 텍스트 토큰의 개수가 미리결정된 문턱값을 초과하지 않도록, 복수의 선택된 텍스트 토큰을 형성하기 위해 복수의 예비 텍스트 토큰을 잘라내는 단계를 포함하는,
    서버 컴퓨터 시스템.
  17. 제16항에 있어서, 복수의 예비 텍스트 토큰을 잘라내는 단계는 복수의 예비 텍스트 토큰의 타겟 텍스트 토큰을 타겟 텍스트 토큰의 해시에 따라 복수의 선택된 텍스트 토큰으로 선택하는 단계를 포함하는,
    서버 컴퓨터 시스템.
  18. 제17항에 있어서, 복수의 예비 텍스트 토큰을 잘라내는 단계는
    타겟 텍스트 토큰의 해시가 줌아웃 팩터에 의해 나뉠 수 있는지를 결정하는 단계와,
    이에 대한 응답으로, 타겟 텍스트 토큰이 줌아웃 팩터에 의해 나뉠 수 있을 때, 타겟 텍스트 토큰을 복수의 선택된 텍스트 토큰으로 선택하는 단계를 더 포함하는,
    서버 컴퓨터 시스템.
  19. 제12항에 있어서, 복수의 텍스트 토큰을 선택하는 단계는
    타겟 전자 문서의 복수의 예비 텍스트 토큰을 선택하는 단계와,
    복수의 예비 텍스트 토큰의 개수를 결정하는 단계와,
    이에 대한 응답으로, 복수의 예비 텍스트 토큰의 개수가 미리결정된 문턱값을 초과할 때,
    복수의 집합 텍스트 토큰을 결정하는 단계로써, 각각의 집합 텍스트 토큰이 복수의 예비 텍스트 토큰의 텍스트 토큰 세트의 연쇄를 포함하는, 복수의 집합 텍스트 토큰을 결정하는 단계와,
    복수의 집합 텍스트 토큰의 하나의 집합 텍스트 토큰을 그 집합 텍스트 토큰의 해시에 따라 복수의 선택된 텍스트 토큰으로 선택하는 단계를 포함하는,
    서버 컴퓨터 시스템.
  20. 제12항에 있어서, 타겟 전자 문서는 이메일 메시지 및 하이퍼텍스트 마크업 언어(HTML) 문서로 이루어진 그룹으로부터 선택되는, 서버 컴퓨터 시스템.
  21. 제12항에 있어서, 구분되는 텍스트 토큰은 타겟 전자 통신의 유니폼 리소스 로케이터(URL), 이메일 주소, 및 단어로 이루어진 그룹으로부터 선택된 항목을 포함하는, 서버 컴퓨터 시스템.
  22. 텍스트 핑거프린트의 길이가 하한과 상한 사이에서 제한되도록, 타겟 전자 문서의 텍스트 핑거프린트를 결정하기 위해, 클라이언트 컴퓨터 시스템의 적어도 하나의 프로세서를 사용하는 단계를 포함하는 방법이며,
    상기 하한과 상한은 미리결정되며, 텍스트 핑거프린트를 결정하는 단계는
    타겟 전자 문서의 복수의 텍스트 토큰을 선택하는 단계와,
    복수의 텍스트 토큰을 선택하는 단계에 대한 응답으로, 상기 하한과 상한에 따라서 그리고 복수의 선택된 텍스트 토큰의 개수에 따라 핑거프린트 조각 크기를 결정하는 단계와,
    복수의 핑거프린트 조각을 결정하는 단계로써, 각각의 핑거프린트 조각이 복수의 선택된 텍스트 토큰의 구분되는 텍스트 토큰의 해시에 따라 결정되고, 각각의 핑거프린트 조각이 문자의 시퀀스로 이루어지며, 상기 시퀀스의 길이가 핑거프린트 조각 크기와 동일하게 선택되는, 복수의 핑거프린트 조각을 결정하는 단계와,
    텍스트 핑거프린트를 형성하기 위해 복수의 핑거프린트 조각을 연쇄화하는 단계를 포함하는,
    방법.
  23. 제22항에 있어서,
    상기 텍스트 핑거프린트를 결정하는 단계는, 상기 텍스트 핑거프린트에 따라 타겟 전자 문서가 속하는 문서의 카테고리를 결정하기 위해 적어도 하나의 프로세서를 사용하는 단계를 더 포함하는, 방법.
  24. 복수의 클라이언트 시스템의 하나의 클라이언트 시스템으로부터 텍스트 핑거프린트를 수신하기 위해, 그리고
    타겟 전자 문서가 속하는 문서의 카테고리를 나타내며, 타겟 전자 문서에 대해 결정된 타겟 라벨을 클라이언트 시스템으로 전송하기 위해,
    복수의 클라이언트 시스템과의 처리를 실행하도록 구성된 서버 컴퓨터 시스템의 적어도 하나의 프로세서를 사용하는 단계를 포함하는 방법이며,
    상기 텍스트 핑거프린트는 텍스트 핑거프린트의 길이가 하한과 상한 사이에서 제한되도록 타겟 전자 문서에 대해 결정되고, 상기 하한과 상한은 미리결정되며,
    텍스트 핑거프린트를 결정하는 단계는
    타겟 전자 문서의 복수의 텍스트 토큰을 선택하는 단계와,
    복수의 텍스트 토큰을 선택하는 단계에 대한 응답으로, 상기 하한과 상한에 따라서, 그리고 복수의 선택된 텍스트 토큰의 개수에 따라 핑거프린트 조각 크기를 결정하는 단계와,
    복수의 핑거프린트 조각을 결정하는 단계로써, 각각의 핑거프린트 조각이 복수의 선택된 텍스트 토큰의 구분되는 텍스트 토큰의 해시에 따라 결정되고, 각각의 핑거프린트 조각이 문자의 시퀀스로 이루어지며, 상기 시퀀스의 길이가 핑거프린트 조각 크기와 동일하게 선택되는, 복수의 핑거프린트 조각을 결정하는 단계와,
    텍스트 핑거프린트를 형성하기 위해 복수의 핑거프린트 조각을 연쇄화하는 단계를 포함하고,
    타겟 라벨을 결정하는 단계는
    기준 핑거프린트가 상기 카테고리에 속하는 기준 전자 문서에 대해 결정되며, 기준 핑거프린트는 기준 핑거프린트의 길이가 상기 하한과 상한 사이에 있도록 기준 핑거프린트의 길이에 따라 선택되는, 기준 핑거프린트의 데이터베이스로부터 기준 핑거프린트를 회수하는 단계와,
    텍스트 핑거프린트를 기준 핑거프린트와 비교한 결과에 따라 타겟 전자 문서가 상기 카테고리에 속하는지를 결정하는 단계를 포함하는,
    방법.
KR1020157021144A 2013-03-08 2014-02-04 멀티스케일 텍스트 핑거프린트를 사용한 문서 분류 KR101863172B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/790,636 US8935783B2 (en) 2013-03-08 2013-03-08 Document classification using multiscale text fingerprints
US13/790,636 2013-03-08
PCT/RO2014/000007 WO2014137233A1 (en) 2013-03-08 2014-02-04 Document classification using multiscale text fingerprints

Publications (2)

Publication Number Publication Date
KR20150128662A KR20150128662A (ko) 2015-11-18
KR101863172B1 true KR101863172B1 (ko) 2018-05-31

Family

ID=50389477

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157021144A KR101863172B1 (ko) 2013-03-08 2014-02-04 멀티스케일 텍스트 핑거프린트를 사용한 문서 분류

Country Status (12)

Country Link
US (2) US8935783B2 (ko)
EP (1) EP2965472B1 (ko)
JP (1) JP6220407B2 (ko)
KR (1) KR101863172B1 (ko)
CN (1) CN104982011B (ko)
AU (1) AU2014226654B2 (ko)
CA (1) CA2898086C (ko)
HK (1) HK1213705A1 (ko)
IL (1) IL239856B (ko)
RU (1) RU2632408C2 (ko)
SG (1) SG11201506452XA (ko)
WO (1) WO2014137233A1 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9537814B2 (en) * 2012-12-14 2017-01-03 Facebook, Inc. Spam detection and prevention in a social networking system
JP5916666B2 (ja) * 2013-07-17 2016-05-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation テキストによる視覚表現を含む文書を分析する装置、方法およびプログラム
US10579396B2 (en) * 2014-04-09 2020-03-03 Nice-Systems Ltd. System and automated method for configuring a predictive model and deploying it on a target platform
US10078750B1 (en) * 2014-06-13 2018-09-18 Trend Micro Incorporated Methods and systems for finding compromised social networking accounts
US9514312B1 (en) * 2014-09-05 2016-12-06 Symantec Corporation Low-memory footprint fingerprinting and indexing for efficiently measuring document similarity and containment
US10146752B2 (en) 2014-12-31 2018-12-04 Quantum Metric, LLC Accurate and efficient recording of user experience, GUI changes and user interaction events on a remote web document
US9787696B2 (en) * 2015-05-19 2017-10-10 Workday, Inc. Brute force attack prevention system
US10284371B2 (en) 2015-05-19 2019-05-07 Workday, Inc. Brute force attack prevention system
EP3323053B1 (en) 2015-07-16 2021-10-20 Quantum Metric, Inc. Document capture using client-based delta encoding with server
US10482119B2 (en) 2015-09-14 2019-11-19 Conduent Business Services, Llc System and method for classification of microblog posts based on identification of topics
CN106709777A (zh) 2015-11-18 2017-05-24 阿里巴巴集团控股有限公司 一种订单聚类方法及装置,以及反恶意信息的方法及装置
CN107294834A (zh) * 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 一种识别垃圾邮件的方法和装置
KR101740648B1 (ko) * 2016-06-21 2017-06-08 주식회사 북이오 전자책 내 일부 콘텐츠에 대한 주소데이터를 생성하는 시스템 및 방법
US20180012139A1 (en) * 2016-07-06 2018-01-11 Facebook, Inc. Systems and methods for intent classification of messages in social networking systems
US20180121830A1 (en) * 2016-11-02 2018-05-03 Facebook, Inc. Systems and methods for classification of comments for pages in social networking systems
US10372784B2 (en) 2017-02-08 2019-08-06 Documensions, Inc. Generating rich digital documents from limited instructional data
RU2638001C1 (ru) * 2017-02-08 2017-12-08 Акционерное общество "Лаборатория Касперского" Система и способ выделения части резерва производительности антивирусного сервера для выполнения антивирусной проверки веб-страницы
CN106878347A (zh) * 2017-04-28 2017-06-20 北京奇虎科技有限公司 信息处理方法、系统、移动终端和服务器
US10708297B2 (en) 2017-08-25 2020-07-07 Ecrime Management Strategies, Inc. Security system for detection and mitigation of malicious communications
KR102403330B1 (ko) 2017-11-15 2022-05-30 주식회사 세진마인드 텍스트 데이터를 표현하는 가상 핑거프린트를 생성 및 활용하기 위한 기법
RU2692043C2 (ru) * 2017-12-18 2019-06-19 Федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное училище имени генерала армии С.М. Штеменко" Министерство обороны Российской Федерации Способ автоматической классификации формализованных текстовых документов и авторизованных пользователей системы электронного документооборота
CN109740347B (zh) * 2018-11-23 2020-07-10 中国科学院信息工程研究所 一种针对智能设备固件的脆弱哈希函数的识别与破解方法
US11468272B2 (en) 2019-08-15 2022-10-11 Visa International Service Association Method, system, and computer program product for detecting fraudulent interactions
US11557141B2 (en) * 2019-12-19 2023-01-17 Beijing Didi Infinity Technology And Development Co., Ltd. Text document categorization using rules and document fingerprints
US11671448B2 (en) 2019-12-27 2023-06-06 Paypal, Inc. Phishing detection using uniform resource locators
US20210203693A1 (en) * 2019-12-27 2021-07-01 Paypal, Inc. Phishing detection based on modeling of web page content
TWI802040B (zh) * 2021-10-08 2023-05-11 精品科技股份有限公司 基於檔案屬性特徵之應用程式控管方法
US11651093B1 (en) * 2022-02-24 2023-05-16 LendingClub Bank, National Association Automated fraudulent document detection

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004500761A (ja) * 1999-12-22 2004-01-08 ペイス マーク レイモンド 分配された内容を識別するシステム
US20050060643A1 (en) * 2003-08-25 2005-03-17 Miavia, Inc. Document similarity detection and classification system
US7730316B1 (en) * 2006-09-22 2010-06-01 Fatlens, Inc. Method for document fingerprinting
JP2010182238A (ja) * 2009-02-09 2010-08-19 Nippon Telegr & Teleph Corp <Ntt> 引用検出装置、原典文書データベース生成装置、その方法、プログラム及び記録媒体
US20110055343A1 (en) * 2003-05-15 2011-03-03 Symantec Corporation Method and apparatus for filtering email spam using email noise reduction

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073617A1 (en) 2000-06-19 2004-04-15 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail
US6772196B1 (en) * 2000-07-27 2004-08-03 Propel Software Corp. Electronic mail filtering system and methods
US7392262B1 (en) * 2004-02-11 2008-06-24 Aol Llc Reliability of duplicate document detection algorithms
CN1922837A (zh) * 2004-05-14 2007-02-28 布赖特梅有限公司 基于相似性量度过滤垃圾邮件的方法和装置
US7660865B2 (en) * 2004-08-12 2010-02-09 Microsoft Corporation Spam filtering with probabilistic secure hashes
US8037145B2 (en) 2007-09-30 2011-10-11 Symantec Operating Corporation System and method for detecting email content containment
US8001195B1 (en) * 2008-08-26 2011-08-16 Kaspersky Lab, Zao Spam identification using an algorithm based on histograms and lexical vectors (one-pass algorithm)
US8364766B2 (en) * 2008-12-04 2013-01-29 Yahoo! Inc. Spam filtering based on statistics and token frequency modeling
RU85247U1 (ru) * 2008-12-26 2009-07-27 ЗАО "Лаборатория Касперского" Идентификация спама с помощью лексических векторов (варианты)
US8244767B2 (en) 2009-10-09 2012-08-14 Stratify, Inc. Composite locality sensitive hash based processing of documents
US8353037B2 (en) 2009-12-03 2013-01-08 International Business Machines Corporation Mitigating malicious file propagation with progressive identifiers
US9129007B2 (en) 2010-11-10 2015-09-08 Microsoft Technology Licensing, Llc Indexing and querying hash sequence matrices
US20120215853A1 (en) * 2011-02-17 2012-08-23 Microsoft Corporation Managing Unwanted Communications Using Template Generation And Fingerprint Comparison Features

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004500761A (ja) * 1999-12-22 2004-01-08 ペイス マーク レイモンド 分配された内容を識別するシステム
US20110055343A1 (en) * 2003-05-15 2011-03-03 Symantec Corporation Method and apparatus for filtering email spam using email noise reduction
US20050060643A1 (en) * 2003-08-25 2005-03-17 Miavia, Inc. Document similarity detection and classification system
US7730316B1 (en) * 2006-09-22 2010-06-01 Fatlens, Inc. Method for document fingerprinting
JP2010182238A (ja) * 2009-02-09 2010-08-19 Nippon Telegr & Teleph Corp <Ntt> 引用検出装置、原典文書データベース生成装置、その方法、プログラム及び記録媒体

Also Published As

Publication number Publication date
EP2965472A1 (en) 2016-01-13
CA2898086A1 (en) 2014-09-12
SG11201506452XA (en) 2015-09-29
IL239856B (en) 2018-12-31
US20140259157A1 (en) 2014-09-11
AU2014226654A1 (en) 2015-08-20
JP6220407B2 (ja) 2017-10-25
RU2632408C2 (ru) 2017-10-04
CN104982011B (zh) 2018-12-14
IL239856A0 (en) 2015-08-31
KR20150128662A (ko) 2015-11-18
CN104982011A (zh) 2015-10-14
RU2015142105A (ru) 2017-04-11
EP2965472B1 (en) 2019-08-21
JP2016517064A (ja) 2016-06-09
US8935783B2 (en) 2015-01-13
HK1213705A1 (zh) 2016-07-08
US20150089644A1 (en) 2015-03-26
US9203852B2 (en) 2015-12-01
CA2898086C (en) 2018-06-26
AU2014226654B2 (en) 2017-04-27
WO2014137233A1 (en) 2014-09-12

Similar Documents

Publication Publication Date Title
KR101863172B1 (ko) 멀티스케일 텍스트 핑거프린트를 사용한 문서 분류
US11159545B2 (en) Message platform for automated threat simulation, reporting, detection, and remediation
RU2607229C2 (ru) Системы и способы динамического агрегирования показателей для обнаружения сетевого мошенничества
US20210344632A1 (en) Detection of spam messages
US8869269B1 (en) Method and apparatus for identifying domain name abuse
JP5990284B2 (ja) キャラクター・ヒストグラムを用いるスパム検出のシステムおよび方法
JP5941163B2 (ja) キャラクター・ストリングの周波数スペクトルを用いるスパム検出のシステムおよび方法
WO2019199712A1 (en) Mail protection system
CN103139193B (zh) 钓鱼网站处理方法以及系统
US11677783B2 (en) Analysis of potentially malicious emails
US8910281B1 (en) Identifying malware sources using phishing kit templates
Noh et al. Phishing Website Detection Using Random Forest and Support Vector Machine: A Comparison
CN116186685A (zh) 用于识别网络钓鱼电子邮件的系统和方法
Saka et al. Context-based clustering to mitigate phishing attacks
Mbah A phishing e-mail detection approach using machine learning techniques
Wardman et al. New tackle to catch a phisher
US20230359330A1 (en) Systems and methods for analysis of visually-selected information resources
Xiaopeng et al. A multi-dimensional spam filtering framework based on threat intelligence
Satane et al. Survey paper on phishing detection: Identification of malicious URL using Bayesian classification on social network sites
Bradbury Avoiding URL hell
CODE PHISHING WEBSITES DETECTION BASED ON WEB SOURCE CODE AND URL IN THE WEBPAGE

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant