# Patent

## Title
Use of geo-location data for spam detection

## Abstract

Computer implemented methods, apparatus, and computer-readable media for detecting suspected spam in e-mail (24) originating from a sending computer (21). A method embodiment comprises the steps of determining (11) the actual IP address (23) of the sending computer (21); converting (12) the actual IP address (23) into geo-location data; and, using the geo-location data, ascertaining (13) whether the e-mail (24) contains suspected spam.

## Background
CROSS-REFERENCE TO RELATED APPLICATION
This application is a continuation of U.S. patent application Ser. No. 12/025,634, filed Feb. 4, 2008 which is a continuation of U.S. patent application Ser. No. 10/424,532, filed on Apr. 25, 2003, now U.S. Pat. No. 7,366,919, each of which is hereby incorporated by reference in its entirety.


TECHNICAL FIELD
This invention pertains to the field of reducing the amount of spam to which a computer is subjected.
BACKGROUND ART
As used throughout this specification including claims, “spam” is any e-mail that is unwanted by the recipient. As spam has regrettably become more widely prevalent, techniques to combat spam are beginning to emerge. One such technique is to allow e-mail recipients to specify a list of addresses, domains, and/or top-level domains to be always blocked or automatically allowed. The “block” list is often referred to as a “blacklist”, while the “allow” list is often referred to as a “whitelist”. The inspiration behind blacklists and whitelists is the observation that most computer users exchange e-mail with a relatively small and fixed set of addresses. These addresses are on a smaller list of domains, and these domains are on an even smaller list of top-level domains. A significant amount of spam comes from addresses, domains, and top-level domains that a user rarely, if ever, legitimately interacts with. Blocking entire domains or top-level domains (as well as addresses) thus becomes a relatively easy way to block a significant amount of spam. There is a need to improve the use of whitelists and blacklists in fighting spam. Much spam also comes from addresses claiming to be on common domains such as yahoo.com, msn.com, aol.com, and hotmail.com. Blocking these domains would, for most computer users, block too much legitimate e-mail. Furthermore, many spammers falsely indicate that they are sending e-mails from such common domains when, in reality, they are not. In other words, the spammer is spoofing his or her address. There is a need to develop techniques to counter such spoofing.
DISCLOSURE OF INVENTION
Computer implemented methods, apparatus, and computer-readable media for detecting suspected spam in e-mail (24) originating from a sending computer (21). A method embodiment comprises the steps of determining (11) the actual IP address (23) of the sending computer (21); converting (12) the actual IP address (23) into geo-location data; and, using the geo-location data, ascertaining (13) whether the e-mail (24) contains suspected spam.



BRIEF DESCRIPTION OF THE DRAWINGS
These and other more detailed and specific objects and features of the present invention are more fully disclosed in the following specification, reference being had to the accompanying drawings, in which:
FIG. 1 is a flow diagram illustrating a method embodiment of the present invention.
FIG. 2 is a block diagram illustrating apparatus used in the present invention.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
As used throughout this specification including claims, the following terms have the following meanings:
“OSI” is the Open System Interconnect model developed by the International Standardization Organization (ISO) in 1984. This model, described at http://www.4d.com.docs/cmu/cmu79892.htm, describes how data is transferred from an application on one computer to an application on another computer. The OSI model comprises seven different layers.
“TCP” is the Transmission Control Protocol. It operates at the transport layer (layer 4) of the OSI model to establish data transmission reliability.
“IP” is the Internet Protocol.
“IP address” is the unique address of a computer that is coupled to the Internet. The IP address has the form #.#.#.#, where each # is a number from zero to 255. For example, an IP address might be 66.120.211.171.
“IRNA” is the Internet Assigned Number Authority, an agency given authority by the U.S. government to assign domain names.
“DNS” is the Domain Name System.
“DNS address” is an address of a computer, complying with the DNS and expressed in a form that is relatively user friendly compared with the IP address. An example of a DNS address is fenwick.com. In this address, “fenwick” is a domain and “.com” is the top-level domain. The top-level domain may also be a country.
“SMTP” is the Simple Mail Transfer Protocol, a protocol which currently governs all e-mail sent over the Internet.
“MTA” is Mail Transfer Agent, a computer such as a large server computer that forwards e-mail from a sending computer to a recipient computer.
“Access Control List” is a whitelist or a blacklist, as those terms have been defined above.
“Coupled” encompasses any direct or indirect coupling or connection.
“Network” is any wired or wireless network, such as the Internet, a Local Area Network (LAN), or a Wide Area Network (WAN).
In the present invention, and with reference to FIG. 2, a sending computer 21 sends an e-mail 24 to a recipient computer 26 over a network 28. An access control list 29 may be associated with recipient computer 26. If the e-mail 24 is unwanted by the recipient computer 26, the e-mail 24 is said to be spam or to contain spam. Within network 28 may be one or more MTA's 25. FIG. 2 illustrates N MTA's. N can be any positive integer.
Sending computer 21 has a unique actual IP address 23 as well as a claimed address 22, which may be expressed as an IP address or as a DNS address. If the user of sending computer 21 wishes to include spam within e-mail 24, said user is referred to as a spammer. A spammer may spoof an innocuous claimed address 22 that is not an actual address of sending computer 21. This may lull the user of recipient computer 26 into thinking that the e-mail 24 does not contain spam, because this claimed address 22 may be presented to the user of recipient computer 26 via e-mail client software 27 associated with recipient computer 26.
FIG. 1 illustrates the method of the present invention as having three generic steps: 11, 12, and 13. In step 11, the actual IP address 23 of sending computer 21 is determined. At step 12, the actual IP address 23 is converted into geo-location data, which is data giving the actual geographical location of sending computer 21. The geo-location data may be any type of geographical information such as city, county, state, country, or presence within a pre-selected radius of a geographical point. The conversion of the actual IP address 23 into geo-location data at step 12 may be performed by a software program such as Geobytes. Such software programs were designed for marketing purposes, e.g., letting the owner of a Website know where most of his hits are coming from so he can tailor his marketing approach accordingly. Geobytes includes with the geo-location data a confidence number from 1 to 100, with 1 representing virtually no confidence in the geo-location data offered by the program, and 100 representing complete confidence. In one embodiment, a pre-selected confidence threshold level between 1 and 100 is selected by the user of the present invention, and only geo-location data exceeding the pre-selected threshold is used; all other geo-location data is ignored as being unreliable.
At step 13, it is ascertained whether e-mail 24 contains suspected spam. Steps 11, 12, and 13 may be performed by one or more modules associated with recipient computer 26 and/or with one of the MTA's 25. Said modules can be implemented in hardware, firmware, and/or software. A module may take the form of a standalone software program, a plug-in module, or a proxy situated in front of (with respect to sending computer 21) computer 26 or MTA 25. When the modules of the present invention are embodied in software, they may reside on any computer-readable medium such as a hard disk, floppy disk, CD, DVD, etc.
It may be that the module performing step 12 may not be able to successfully convert the actual IP address 23 into geo-location data. In such a case, the converting module may indicate “unknown” rather than the name of a geographical entity or location. When this happens, in one embodiment, particularly useful when the claimed domain of sending computer 21 is not common, ascertaining step 13 is programmed to automatically declare that suspected spam is not present in e-mail 24. Examples of common domains are yahoo.com. msn.com, aol.com, and hotmail.com. In an alternative embodiment, particularly useful when the claimed domain within address 22 of sending computer 21 is common, the ascertaining step 13 is automatically programmed to declare that suspected spam is present in e-mail 24. The theory behind this alternative embodiment is that if the domain really is in fact is a common actual domain, and not a spoofed domain, the geo-location data should not be returned as “unknown”.
Alternative embodiments for implementing step 13 are illustrated in FIG. 1 by means of steps 14 and 15. In a first embodiment of the present invention, at step 14 the actual geo-location data of sending computer 21 is compared with an access control list, which might be a whitelist or a blacklist. To illustrate the use of a whitelist 29, let us assume that whitelist 29 contains the name of the city Cincinnati. Then, when the geo-location data shows that the actual location of the sending computer 21 is Cincinnati, recipient computer 26 automatically accepts the e-mail 24, without any further analysis as to whether e-mail 24 contains spam or not. To illustrate the use of a blacklist 29, let us assume that blacklist 29 contains an entry for the country of China. Then, whenever the geo-location data indicates that the actual location of sending computer 21 is China, computer 26 or MTA 25 automatically treats e-mail 24 as containing suspected spam (step 16).
Once a declaration has been made that e-mail 24 contains suspected spam at step 16, post-decision processing can be performed at step 17. For example, e-mail 24 can be refused by recipient computer 26; the suspected spam can be deleted from e-mail 24; e-mail 24 can be subjected to further processing by a spam filter; e-mail 24 can be tagged as containing suspected spam; e-mail 24 can be moved to a special folder where the user of recipient computer 26 can later check it in case there was a false positive; a composite spam score maintained by recipient computer 26 can be augmented; and/or e-mail 24 can be modified. When optional step 17 is not used, the declaration at step 16 is that “spam is present” rather than “suspected spam is present”.
The determination at step 11 of the actual IP address 23 can be made at a time when sending computer 21 connects with an MTA 25. At that time, pursuant to the SMTP protocol, sending computer 21 initiates the sending of an e-mail 24 by issuing a HELO or EHLO command. Following the word HELO or EHLO, sending computer 21 inserts a claimed address 22, which can be spoofed. However, the actual IP address 23 can be determined by a conventional module associated with computer 26 or MTA 25, by examining what is happening at the transport layer using a knowledge of TCP. Alternatively, or in addition to said method for determining the actual IP address 23, the actual IP address 23 can be determined by a conventional module associated with computer 26 or MTA 25, by examining a return path header associated with e-mail 24, again, by using a knowledge of TCP to observe what is transpiring at the transport layer. An example of a set of return path headers is giving in the following:

    
    
        1 Return-path: <ronronron@eudoramail.com>
        2 Received: from 207.118.30.214 (unverified [216.96.57.133]) by
        3 mail01.corp.xyz.com
        4 (SMTPRS) with SMTP id
        5<B0002012226@mail01.corp.xyz.com> for <bill@xyz.com>;
        6 Mon, 24 Mar 2003 03:37:15-0800
        7 Received: from 285 bpq3wz2mfu [25.149.92.80] by
        8 206.117.30.214 with ESMTP id
        9 JRAZX; Mon, 24 Mar 03 06:33:15+0400
        10 Received: from 6zd6.gs5gs4 [78.32.232.240] by
        11 25.149.92.80 with ESMTP id
        12 HLXCVRMFX; Mon, 24 Mar 03 06:17:15+0400
        13 Message-ID: <ple3-$3z2ig27xzw@i7t.mvuv>>
        14 From: “Carmine Opera”<ronronron@eudoramail.com>
        15 To: bill@xyz.com
        16 Date: Mon, 24 Mar 03 06:17:15 GMT
        17 X-Priority: 3
        18 X-MSMail-Priority: Normal
        19 X-Mailer: MIME-tools 5.503 (Entity 5.501)
        20 MIME-Version: 1.0
        21 Content-Type: multipart/alternative;
        22 boundary=“1._F—.14_A.3”
        23 X-SYMC-SmtpMailFrom: ronronron@eudoramail.com
        24X-SYMCFilter-IP: 216.96.57.133
        25 X-SYMCFilter-Path-1: 216.96.57.133 [last relay]
        26 (US;US;United States;KS;Kansas;Effingham;96)
        27 X-SYMCFilter-Path-2: 25.149.92.80 [prior relay] (unknown)
        28 X-SYMCFilter-Path-3: 78.32.232.240 [prior relay] (unknown)
        29 X-SYMCFilter-Reason: bill@xyz.com bill@xyz.com 1 Found
        30 10.0.0.14 on BackupTrap list
        31 Subject: [FILTERED] Admin.the nature of the search
        32 engines uaieyfosbjjlld
    
    


The return path header that should be examined is that associated with the MTA 25 that is closest to the sending computer 21, as long as said closest MTA 25 and each MTA 25 situated between said closest MTA 25 and said recipient computer 26 is trusted by recipient computer 26. “Trust” can be defined in a number of ways. For example, recipient computer 26 can be said to trust an MTA 25 when the MTA 25 is co-located with recipient computer 26 in a common enterprise, such as a corporation, university, or government agency. Alternatively, recipient computer 26 can be said to trust an MTA 25 when the MTA 25 appears on a list of trusted computers kept by recipient computer 26. Alternatively, recipient computer 26 can be said to trust an MTA 25 when the recipient computer 26 has never been spoofed by the MTA 25.
In the above exemplary set of return path headers, the DNS address ronronron@eudoramail.com appearing on line 1 is a spoofed address 22 claimed by sending computer 21. The IP address 207.118.30.214 appearing on line 2 is the IP address corresponding to this spoofed DNS address 22. Such an IP address can be determined, for example, by consulting the WHOIS database. The IP address 216.96.57.133 appearing on line 2 is the actual IP address 23 of computer 21 as determined by an inventive module as described herein. In this example, there are three MTA's 25 situated between sending computer 21 and recipient computer 26. The return path header for the last MTA 25(3) is given on line 25. The return path header for the second MTA 25(2) is given on line 27. The return path header for the first MTA 25(1) is given on line 28. As can be seen from line 25, the IP address of the last MTA 25(3) is 216.96.57.133. This was determined by step 11 using TCP, as described above. Line 26 shows the results of applying step 12 to this IP address 23. The converting means of step 12 has determined that this MTA 25(3) is located in Effingham, Kans., United States of America, with a confidence level of 96. As can be seen from the word “unknown” appearing on lines 27 and 28, the converting means of step 12 was not able to produce geo-location data for MTA 25(2) or MTA 25(1), respectively.
In an alternative embodiment of the present invention, at step 15 the geo-location data produced at step 12 is compared with a claimed geo-location claimed by sending computer 21. This claimed geo-location may be derived from domain information inserted by sending computer 21 in an outgoing e-mail 24. For example, in the SMTP protocol, the sending of an e-mail 24 is initiated by sending computer 21 indicating its desire to connect to an MTA 25 by generating a HELO or EHLO command having an address as an argument. At this time, a spammer in control of sending computer 21 may insert a bogus address following the word HELO or EHLO. There are other places where the spammer can falsify the address 22, e.g., as part of a MAILFROM command. This bogus address 22 may be presented to the user of recipient computer 26 via e-mail client software 27 associated with recipient computer 26.
In this embodiment of the present invention, a DNS address 22 claimed by the sending computer 21 is resolved into a location or a set of locations corresponding to the claimed address 22. If the actual geo-location obtained in step 12 matches one of these resolved locations, ascertaining step 13 determines that e-mail 24 does not contain suspected spam. If, on the other hand, the actual geo-location obtained from step 12 does not match one of these resolved locations, a declaration is made at step 16 that e-mail 24 contains suspected spam. For example, if it is known that the domain from the claimed address 22 has an MTA 25 in five countries, but the actual geo-location of computer 21 is in a sixth country, suspected spam is declared at step 16. Similarly, if it is known that said domain does not have an MTA 25 in China, and the geo-location report from step 12 indicates that the actual location of computer 21 is in China, suspected spam is likewise declared at step 16.
The resolved locations may be obtained by examining the domain name within the claimed DNS address 22. One or more databases can be created over time giving resolved locations for each of a set of domains. These databases can be created by any one or more of a number of various techniques. For example, the owner of the domain (such as aol.com) may publish locations where its MTA's 25 are located. Alternatively, database entries may be compiled by machine learning techniques such as neural networks, Bayesian classifiers, or support vector machines. For example, the training process may identify those domains responsible for the most e-mail traffic to an MTA 25 and the associated geo-locations for those domains. The training process can be performed by updating a database containing the domain name, its associated IP address, geo-location data for this IP address, and a count of each incoming e-mail for that domain. One can have a pre-selected confidence threshold level. For example, let us assume that this threshold is set at 5000. If the training process indicates that there are at least 5000 matches of the domain “aol.com” with the location “Boise, Id.”, one can safely assume that there is in fact an aol MTA 25 located in Boise, Id. In this example, spammers who are spamming the domain name aol.com will likely have their locations resolved to a large plurality of locations, each of which will experience far fewer than 5000 counts.
A database trained by machine learning techniques can be offered by a software publisher to its customers 26 so that each customer computer 26 does not have to perform this training process itself.
In an alternative embodiment, a database of resolved locations can be compiled by simply noticing locations from which a large amount of e-mail has emanated. In all of these embodiments, a database may be compiled only with respect to e-mail allegedly emanating from common domains, on the theory that e-mail allegedly emanating from uncommon domains will not be prolific enough to make for a reliable database. Examples of common domains include yahoo.com, msn.com, aol.com, and hotmail.com. Another way of defining “common” is to require that, during a machine learning training phase such as described above, at least a certain preselected threshold percentage worth of total e-mail traffic observed during the training phase must be exceeded in order for the domain to be classified as “common”.
The above description is included to illustrate the operation of the preferred embodiments and is not meant to limit the scope of the invention. The scope of the invention is to be limited only by the following claims. From the above discussion, many variations will be apparent to one skilled in the art that would yet be encompassed by the spirit and scope of the present invention. For example, the principles of the present invention can be applied to any protocol in any electronic messaging system where the actual location of the sender of the electronic message can be determined, and thus checked against where the sender claims to be, to see whether the sender is lying.

## Claims

1. A computer-implemented method for detecting spam in e-mail received by a recipient computer from a sending computer, wherein there are a plurality of mail transfer agents located between the sending computer and the recipient computer that are trusted by the recipient computer, the method comprising:
determining an actual Internet Protocol (IP) address of the sending computer from a return path header associated with a mail transfer agent from the plurality of mail transfer agents that is closest to the sending computer;
converting the actual IP address into geo-location data that identifies a geographical location associated with the sending computer;
comparing the geo-location data to an access control list that is indicative of one or more geographical locations; and
ascertaining whether the e-mail contains suspected spam based at least in part on the geographical location associated with the sending computer matching one of the geographical locations included in the access control list.

2. The computer-implemented method of claim 1, wherein determining the actual IP address of the sending computer further comprises:
determining the actual IP address when the sending computer connects to one of the plurality of mail transfer agents based on an examination of a transport layer using the Transmission Control Protocol (TCP).

3. The computer-implemented method of claim 1, wherein the mail transfer agent of the plurality of mail transfer agents is trusted by the recipient computer when at least one of the following conditions is satisfied:
the mail transfer agent is co-located with the recipient computer in a common enterprise;
the mail transfer agent appears on a list of trusted computers that is kept by the recipient computer; and
the recipient computer has never been spoofed by the mail transfer agent.

4. The computer-implemented method of claim 1, further comprising:
identifying whether the geographical location associated with the sending computer matches one of the geographical locations included in the access control list, a match indicating that the email is legitimate.

5. A computer-implemented method for detecting spam in e-mail originating from a sending computer, the method comprising:
determining an actual Internet Protocol (IP) address of the sending computer;
converting the actual IP address into geo-location data that identifies an actual geographical location associated with the sending computer;
comparing the actual geographical location associated with the sending computer with a geographical location from which the sending computer claims to have sent the e-mail;
identifying whether the actual geographical location associated with the sending computer matches the claimed geographical location; and
declaring that the email contains spam responsive to the actual geographical location not matching the claimed geographical location.

6. The computer-implemented method of claim 5, further comprising:
identifying the geographical location from which the sending computer claims to have sent the e-mail.

7. The computer-implemented method of claim 6, wherein identifying the claimed geographical location comprises:
deriving the claimed geographical location from domain information inserted by the sending computer as part of a HELO or EHLO command pursuant to a Simple Mail Transfer Protocol (SMTP).

8. The computer-implemented method of claim 6, wherein identifying the claimed geographical location comprises:
deriving the claimed geographical location from a Domain Name System (DNS) address appearing in e-mail client software associated with the recipient computer that received the email.

9. The computer-implemented method of claim 5, further comprising:
declaring that the email is legitimate responsive to the actual geographical location matching the claimed geographical location.

10. A computer-implemented method for detecting spam in e-mail originating from a sending computer, the method comprising:
determining an actual Internet Protocol (IP) address of the sending computer;
converting the actual IP address into geo-location data comprising information about an actual geographical location associated with the sending computer;
identifying a Domain Name System (DNS) address from which the sending computer claims to have sent the e-mail;
resolving a geographical location of a mail transfer agent corresponding to the DNS address using one or more machine learning techniques;
comparing the actual geographical location associated with the sending computer with the resolved geographical location;
identifying whether the actual geographical location associated with the sending computer matches the resolved geographical location; and
declaring that the email contains spam responsive to the actual geographical location not matching the resolved geographical location.

11. The computer-implemented method of claim 10, wherein the machine learning techniques are selected from the set of techniques consisting of: neural networks, Bayesian classifiers, and support vector machines.

12. The computer-implemented method of claim 10, wherein resolving the geographical location comprises:
identifying one or more domains responsible for e-mail traffic to the mail transfer agent;
determining one or more geographical locations of the one or more domains responsible for the e-mail traffic to the mail transfer agent; and
associating the one or more geographical locations of the one or more domains responsible for the e-mail traffic with the mail transfer agent.

13. The computer-implemented method of claim 12, wherein identifying the one or more domains responsible for e-mail traffic to the mail transfer agent comprises:
identifying one or more domains responsible for at least a threshold amount of e-mail traffic with the mail transfer agent.

14. The computer-implemented method of claim 10, further comprising:
declaring that the email is legitimate responsive to the actual geographical location matching the resolved geographical location.

15. The computer-implemented method of claim 10, wherein resolving the geographical location of the mail transfer agent comprises:
resolving a set of geographical locations associated with the DNS address;
declaring that the email is legitimate responsive to one of the geographical locations from the set matching the claimed geographical location associated with the domain; and
declaring that the email contains spam responsive to none of the geographical locations from the set not matching the claimed geographical location associated with the domain.

16. The computer-implemented method of claim 10, wherein determining the actual IP address of the sending computer comprises:
determining the actual IP address when the sending computer connects to the mail transfer agent based on an examination of a transport layer using the Transmission Control Protocol (TCP).

17. The computer-implemented method of claim 10, wherein determining the actual IP address of the sending computer comprises:
determining the actual IP address from a return path header associated with the e-mail.