1. Field of the Invention
The present invention relates generally to communication networks, and more particularly, but not exclusively, to techniques for identifying spam and/or malware.
2. Description of the Background Art
Problems associated with unsolicited messages in electronic mail systems and malware in computer systems are well documented. Unsolicited messages, also referred to as “spam,” are mass mailed by spammers to e-mail accounts over the Internet. Malware includes computer viruses, worms, phishing messages, and malicious scripts.
Various anti-spam and anti-malware techniques have been developed to combat spam and malware. For example, anti-spam software has been deployed in host computers to detect and block spam, and anti-virus software is commonly deployed in personal computers.
The domain name system (DNS) is a hierarchical naming system for resources on the Internet. A DNS blacklist (DNSBL) is a published list of known untrustworthy IP addresses (for example, those IP addresses linked to spamming) which may be checked to determine if an electronic mail (email) message is from an address known for sending out spam. Conversely, a DNS whitelist is a published list of known trustworthy IP addresses which may be used to avoid unnecessary false positive identifications of spam.
One embodiment relates to an apparatus for in-the-cloud identification of spam and/or malware. The apparatus includes computer-readable code configured to be executed by the processor so as to receive queries, said queries including hash codes embedded therein. The apparatus further includes computer-readable code configured to be executed by the processor so as to detect a group of hash codes which are considered similar and to identify said group as corresponding to spam or malware.
Another embodiment relates to a method performed by executing computer-readable code on an apparatus. The apparatus receives queries that include hash codes embedded therein. The apparatus also detects a group of hash codes which are considered similar and identifies said group as corresponding to spam or malware.
Another embodiment relates to an apparatus for in-the-cloud detection of spam and/or malware. The apparatus includes computer-readable code configured to be executed by the processor so as to receive an electronic message, calculate a locality-sensitive hash based on the message, embed the locality-sensitive hash into a query, and send the query to an analysis system via a network interface.
In accordance with another embodiment of the invention, tangible computer-readable media may store computer-readable code described herein for use at a host and/or server.
These and other features of the present invention will be readily apparent to persons of ordinary skill in the art upon reading the entirety of this disclosure, which includes the accompanying drawings and claims.
The use of the same reference label in different drawings indicates the same or like components.
Applicants have determined that prior technologies to identify unsolicited messages or spam have certain disadvantages and inefficiencies. The present application discloses apparatus and methods for in-the-cloud identification of spam and/or malware, such as computer viruses, worms, phishing messages, or malicious scripts. In the present application, such spam and/or malware may be referred to jointly as undesirable network outbreaks. Advantageously, these apparatus and methods provide for the centralized monitoring of outbreaks of spam and/or malware and enable central control over the level of variants (of spam and/or malware) to be identified.
Referring to
A plurality of personal computers (PCs) or other computer hosts 20 may be connected to each LAN 14. In accordance with an embodiment of the invention, one or more of the hosts 20 may be configured with a host engine (HE) 21.
A domain name system (DNS) server 30 may be connected to the WAN 12. The domain name system or DNS is a hierarchical naming system for resources on the Internet. In accordance with an embodiment of the invention, the DNS server 30 may be configured with an analysis system 31 and an undesirable ID data structure 32.
Referring now to
In the example of
The software modules 210 may be loaded from the data storage device 206 to the main memory 208 for execution by the processor 201. In accordance with an embodiment of the invention, the software modules 210 on a host computer 20 may include a host engine (HE) 21, and the software modules 210 on a DNS server 30 may include an analysis system 31. In addition, the data storage device 206 on the DNS server 30 may include an undesirable ID data structure 32.
As seen in
The HE (which may be configured as a software module running on the host computer) may then process 304 the message that was received. For example, if the message is an email in hypertext markup language (HTML) format, then the HE may be configured to process the message by removing the plain text and leaving the HTML tags, or, alternatively, by removing the HTML tags and leaving the plain text. Such processing may be done before the hashing algorithm to be applied.
The HE then calculates 306 a locality-sensitive hash by applying an appropriate hashing algorithm to the message (after post processing, if any). In accordance with an embodiment of the invention, the hashing algorithm may comprise a Nilsimsa code generator. The Nilsimsa code generator may be configured to generate Nilsimsa codes which have a fixed length of 256 bits. Nilsimsa codes are locality sensitive in that a relatively small change in the message results in a relatively small change in the corresponding Nilsimsa code.
The locality-sensitive hash may then be embedded 308 in a query, and the query may be sent 310 to an analysis system. For example, a domain name system (DNS) query may be embedded with the locality-sensitive hash, and the DNS query sent out by the host computer to be received by a DNS server configured with the analysis system. Subsequently, an answer to the query may be received 312 by the HE from the analysis system.
As seen in
The analysis system 31 (which may be configured as a software module running on the server) may then determine or detect 604 a group of hash codes which are considered similar. For example, if the locally sensitive hash algorithm being used in 602 is a Nilsimsa hash, then determining that two hash codes are similar would be done by determining whether two hash codes have a number of common bits greater than a configurable threshold. The similarity measure may be configured so that less or more similarity is needed before multiple hash codes are identified as being members of a common group.
A lower similarity threshold (for example, fewer common bits in the case of using a Nilsimsa hash as the locality sensitive hash) would detect more spam messages and/or malware but may lead to more false positive identifications. On the other hand, a higher similarity threshold would lead to fewer false positive identifications but may leave more spam messages and/or malware as undetected.
The analysis system 31 may then identify 606 the group of similar locality-sensitive hashes (with a similarity measure sufficient to pass a threshold) as corresponding to spam or malware. This identification of the group of hashes as corresponding to spam may rely on other characteristics beyond the cluster of hash codes. Examples of approaches for associating this as a spam cluster may be to (i) have a spam sample from a spam trap which belongs to this group, or (ii) to look at the distribution of IP numbers which were the sources of the spam.
Once a group of similar locality-sensitive hashes is identified as spam, the analysis system 31 may determine 608 a signature for the spam or malware. One approach would be to identify a central representative hash code for the cluster. The representative samples could be in a data structure such as a KD tree for fast identification of similar hash codes. A kd (k-dimensional) tree is a space-partitioning data structure for organizing points in a k-dimensional space. A kd tree is a type of binary search tree. Another approach would involve calculation of an associated bitmask for the spam or malware cluster. Such a bitmask may be configured such that the bits which are not common are not compared against the signature, while the bits which are common are compared against the signature. An example of this approach is discussed below in relation to
The analysis system 31 may then add 610 the signature (and possibly the associated bitmask) to an undesirable ID data structure 32. For example, the undesirable ID data structure 32 may be configured as a binary search tree, such as a KD tree, or other efficiently searchable data structure. Such an undesirable ID data structure 32 may be searched to determine if a newly received locality-sensitive hash value matches a signature/mask for a spam. The analysis system 31 may also forward 612 the update (new addition) to the undesirable ID data structure 32 to other servers configured with the analysis system 31.
Below the ten variants of the example spam are shown bits for a signature and corresponding mask for the spam. As seen, the bits with common values amongst the spam variants are made part of the signature, and the bits that do not have common values amongst the spam variants are masked off so that they are not part of the signature.
As seen in
The analysis system 31 (which may be configured as a software module running on the server) may then search 804 the undesirable ID data structure 32 to determine 806 whether or not the locality-sensitive hash matches any signature/mask entry in the data structure. The analysis system 31 may then respond 808 to the query by returning an answer to the inquiring HE 21. The answer may indicate whether or not the hash code indicates that the corresponding message or file is spam or malware.
Improved apparatus and methods for identification of spam have been disclosed herein. While specific embodiments of the present invention have been provided, it is to be understood that these embodiments are for illustration purposes and not limiting. Many additional embodiments will be apparent to persons of ordinary skill in the art reading this disclosure.
Number | Name | Date | Kind |
---|---|---|---|
6732149 | Kephart | May 2004 | B1 |
6732157 | Gordon et al. | May 2004 | B1 |
6993660 | Libenzi et al. | Jan 2006 | B1 |
7328349 | Milliken | Feb 2008 | B2 |
7367056 | Szor et al. | Apr 2008 | B1 |
7406454 | Liu et al. | Jul 2008 | B1 |
7409708 | Goodman et al. | Aug 2008 | B2 |
7483947 | Starbuck et al. | Jan 2009 | B2 |
7574409 | Patinkin | Aug 2009 | B2 |
7617231 | Moon et al. | Nov 2009 | B2 |
7716297 | Wittel et al. | May 2010 | B1 |
7865561 | Kelly et al. | Jan 2011 | B2 |
8205258 | Chang et al. | Jun 2012 | B1 |
8578484 | Yu | Nov 2013 | B2 |
20030225841 | Song et al. | Dec 2003 | A1 |
20050015626 | Chasin | Jan 2005 | A1 |
20050108340 | Gleeson et al. | May 2005 | A1 |
20050188032 | Yamazaki et al. | Aug 2005 | A1 |
20060075048 | Gruper et al. | Apr 2006 | A1 |
20060095966 | Park | May 2006 | A1 |
20060101334 | Liao et al. | May 2006 | A1 |
20070033645 | Jones | Feb 2007 | A1 |
20070038709 | Medvedev et al. | Feb 2007 | A1 |
20080059590 | Sarafijanovic et al. | Mar 2008 | A1 |
20100192222 | Stokes et al. | Jul 2010 | A1 |
20110093426 | Hoglund | Apr 2011 | A1 |
Entry |
---|
Damiani et al. “An Open Digest-based Technique for Spam Detection” in Proceedings of the 2004 International Workshop on Security in Parallel and Distributed Systems. 2004. 6 pgs. |
Bentley, J. “Multidimensional Binary Search Trees Used for Associative Searching”, Communications of the ACM, vol. 18, No. 9. Sep. 1975. 509-517. |
nilsimsa “What's a nilsimsa code?”, 2 sheets [retrieved on Sep. 24, 2009], retrieved from the internet: http://ixazon.dynip.com/˜cmeclax/nilsimsa.html. |
Bloom filter—Wikipedia, the free encyclopedia, 10 sheets [retrieved on Sep. 24, 2009], retrieved from the internet: http://en.wikipedia.org/wiki/Bloom—filter. |