US20150381540A1 - Systems and methods for creating and updating reputation records - Google Patents

Systems and methods for creating and updating reputation records Download PDF

Info

Publication number
US20150381540A1
US20150381540A1 US14/847,490 US201514847490A US2015381540A1 US 20150381540 A1 US20150381540 A1 US 20150381540A1 US 201514847490 A US201514847490 A US 201514847490A US 2015381540 A1 US2015381540 A1 US 2015381540A1
Authority
US
United States
Prior art keywords
reputation
key
score
spam
server
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
US14/847,490
Inventor
James Sargent
Sylvia Margot Romary
Jean-Jacques Moortgat
Lachlan Maxwell
Michael Adkins
Ding Xiao
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yahoo Inc
Original Assignee
AOL Inc
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 AOL Inc filed Critical AOL Inc
Priority to US14/847,490 priority Critical patent/US20150381540A1/en
Assigned to AOL INC. reassignment AOL INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MAXWELL, LACHLAN, SARGENT, JAMES, XIAO, Ding, MOORTGAT, JEAN-JACQUES, ADKINS, MICHAEL, ROMARY, SYLVIA MARGOT
Publication of US20150381540A1 publication Critical patent/US20150381540A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9035Filtering based on additional data, e.g. user or group profiles
    • H04L51/22
    • 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/42Mailbox-related aspects, e.g. synchronisation of mailboxes

Definitions

  • the present disclosure relates generally to systems and methods for managing electronic communications and messages. More particularly, and without limitation, the present disclosure relates to systems and methods for creating and updating reputation records used in managing electronic communications and messages.
  • Email spam is a growing problem for the Internet community. Spam interferes with valid email, and it burdens both email users and email service providers (ESPs). Not only is it a source of annoyance, but it also adversely affects productivity and translates to significant monetary costs for the email industry (e.g., reduced bandwidth, increased storage requirements, and the cost of supporting filtering infrastructures). Also, for some categories of spam, such as phish scams, the financial costs for users may be even greater due to fraud and theft.
  • ESPs email service providers
  • spam-filtering techniques can be divided into three broad categories: spam-filtering based on sender-based reputation, spam-filtering based on email-header analysis, and spam-filtering based on an analysis of message content.
  • spam-filtering based on sender-based reputation
  • spam-filtering based on email-header analysis
  • spam-filtering based on an analysis of message content.
  • senders are classified as either “spammers” or “good senders,” based on criteria such as the sender's identity, the sender's domain, or the sender's IP address.
  • email-header spam filtering is based on detecting forgery in the email header and distinguishing the forgery from malformatting and other legitimate explanations, such as those resulting from forwarding activity.
  • analysis of message content typically involves machine learning using a classifier for spam detection, using both batch-mode and online update models.
  • ESPs email service providers
  • TIS this is spam
  • users can also report opposite errors, i.e., when legitimate email is mistakenly classified as spam, by submitting so-called “TINS” (this is not spam) reports.
  • TINS reports may be generated by spammers seeking to legitimize their own spam. Spammers may also submit TIS reports to identify legitimate mail as being spam, in an effort to confuse traditional spam filters. Therefore, traditional spam filtering systems and methods may not satisfactorily identify those entities whose spam reports should be trusted. As a result, traditional spam filtering techniques may fail to sufficiently reduce the costs that users and systems incur as a result of spamming.
  • the disclosed embodiments of the present disclosure are directed to overcoming one or more of the problems set forth above, by providing systems and methods for creating and updating reputation records and filtering electronic messages.
  • the present disclosure is directed to a computer-implemented method for creating and updating reputation records, each reputation record including a reputation score and a unique reputation key.
  • the method includes receiving at least one incoming event notification, including an indexing reputation key; determining, based on the indexing reputation key, if a corresponding reputation record exists; creating, if the corresponding reputation record does not exist, a new reputation record including a default reputation score; storing, when the new reputation record is created, the default reputation score as the reputation score and the indexing reputation key as the unique reputation key; and updating the reputation score based on the at least one incoming event notification and a trust determination function.
  • the present disclosure is directed to a computer-implemented method for calculating a reputation score and filtering electronic messages.
  • the method includes receiving at least one incoming event notification, including an indexing reputation key; determining, based on the indexing reputation key and at least one event type, a trust determination function; calculating a reputation score based on the determined trust determination function; and filtering one or more electronic messages based on the calculated reputation score.
  • the present disclosure is directed to a computer-implemented method for generating a reputation record and filtering electronic messages, each reputation record including a reputation score and a reputation key.
  • the method includes receiving at least one incoming event notification, including a reputation key; determining, based on the reputation key, whether a corresponding reputation record exists; creating a new reputation record if the corresponding reputation record does not exist; determining a trust determination function based on the incoming event notification; calculating a reputation score based on the determined trust determination function, the incoming event notification, and an attribute associated with the reputation key; storing the calculated reputation score along with the reputation key in either the new reputation record or the corresponding reputation record; and filtering one or more electronic messages based on the calculated reputation score.
  • FIG. 1 is a block diagram of an exemplary electronic communication and messaging system, consistent with certain embodiments of the present disclosure
  • FIG. 2 is a block diagram of an exemplary system for creating and updating reputation records, consistent with certain embodiments of the present disclosure
  • FIG. 3 is a block diagram of an exemplary system for creating and updating reputation records for anti-spam purposes, consistent with certain embodiments of the present disclosure
  • FIG. 4 is a block diagram of an exemplary architecture for creating and updating reputation records, consistent with certain embodiments of the present disclosure
  • FIG. 5 is a block diagram of an exemplary architecture for creating and updating reputation records for anti-spam purposes, consistent with certain embodiments of the present disclosure
  • FIG. 6 is a flowchart of an exemplary method for creating and updating reputation records for anti-spam purposes, consistent with certain embodiments of the present disclosure.
  • FIG. 7 depicts an exemplary embodiment of a reputation record.
  • an email service provider (“ESP”) or other facilitator of electronic communications may desire to filter or otherwise block certain communications that are identified as likely being spam based on a reputation of, or trust level associated with, the sender of the communication.
  • an ESP may monitor an electronic communications network through servers connected to the Internet and/or a plurality of email servers. The ESP may then calculate a reputation score associated with one or more senders of communications over the network, and then filter a senders communications if the sender's reputation is below a predetermined threshold. For example, the ESP may block the sender's email account or not deliver messages sent by the sender.
  • the ESP may prevent the recipient from viewing messages sent from the sender, based on the sender's calculated reputation.
  • the ESP may perform all of the tasks of monitoring the network, calculating sender reputations, and/or filtering messaging based on the calculated reputations.
  • the ESP may share one or more of the tasks with another ESP, an Internet Service Provider (“ISP”), an advertiser, or any other third-party company configured to interact with the ESP and/or the electronic communications network.
  • ISP Internet Service Provider
  • the present disclosure relates to creating and updating a reputation record, including a trust level, as an attribute associated with one or more entities interacting with an electronic communication network, such as an email system.
  • a trust level as an attribute associated with one or more entities interacting with an electronic communication network, such as an email system.
  • Those who cannot be trusted may include those that cannot be trusted due to known information about them, and those that cannot be trusted due to a lack of information about them.
  • an entity's trust level may be represented on a continuous scale, for purposes of using that information, a specific application may have the trust attribute divided into discrete categories or levels to make use of it. The number of such categories may be specific to the application, but in one embodiment, there may be three such categories: “trusted” for entities that have high reputations, “not trusted” for entities that have bad reputations, and “unknown trust” for entities that have no known reputation.
  • the presently disclosed systems and methods for performing reputation services may involve creating, storing, updating, and reporting an individual reputation value, or trust level, for each entity associated with a system.
  • an “entity” may be a user account identified by a global user ID (“GUID”), an IP address, an internal domain, an external domain, or any other item for which a reputation level may be assigned.
  • GUID global user ID
  • the phrase “reputation key” may be used to define an entity-specific identifier, such as number, pin, or usemame, which may be assigned to each entity, for the purpose of identifying the entity with which a reputation value is associated.
  • An “indexing reputation key” may be a particular instance of a reputation key, which may be temporarily assigned until updated with a reputation key which is identified as being unique to a particular entity.
  • a reputation record may be any data file or text string, which includes a reputation key, reputation score, confidence factor, and trust determination function ID (TDF ID).
  • TDF ID trust determination function ID
  • information such as event notifications, reputation-affecting events, attribute information, reputation queries, alerts, and/or reputation records, may be passed between servers and entities by any suitable messaging means, such as email, XML, or any other proprietary messaging protocol.
  • reputation levels may then be used to, among other things: (I) determine whether a given user is spamming based on his reputation and behavior, and take appropriate action on the users account; (II) determine whether a spamming account is a compromised account versus one set up purely for spamming and then take appropriate action on the user's account; (Ill) improve spam detection and spam prevention through better bulk mailer scrubbing by using reputation levels of email recipients; (IV) improve identification of spam incorrectly delivered to the inbox and good mail incorrectly spam-foldered by using reports of trusted email recipients only, so that corrective measures can be put into place more quickly; and (V) improve spam detection by grouping users with similar reporting patterns in order to create group-centric spam filters.
  • FIG. 1 is a block diagram of an exemplary communication system 100 .
  • Communication system 100 may include an email and spam-filtering system, and may be configured to identify and process spam and/or spam campaigns using one or more of the embodiments disclosed herein.
  • a spam campaign may be, for example, a group of highly similar electronic messages (e.g., electronic mail messages, Short Messaging System (SMS) messages, Multimedia Messaging System (MMS) messages, etc.).
  • Communication system 100 may include any type of communication system, including, for example, a wired communication system, a wireless communication system, a local- or wide-area network, an Internet network, or any combination thereof.
  • communication system 100 may include one or more email clients 102 , a plurality of email servers 104 , an anti-spam reputation server 106 , a plurality of reputation provider servers 108 , and a plurality of reputation client servers 110 , all disposed in communication with an electronic network 110 , such as the Internet.
  • Communication system 100 may also include a spam reputation database 120 disposed in communication with anti-spam reputation server 106 .
  • Some of the email clients 102 may include valid Internet users who are individuals seeking to send and receive emails from known acquaintances for personal and/or professional purposes (i.e., “good senders”).
  • Some of the email clients 102 may include “spammers,” who are entities seeking to send large quantities of emails to known and unknown individuals for commercial or other purposes.
  • Email clients 102 may each interact with email servers 104 through computers connected to the electronic network 110 (such as the Internet), or through mobile communications devices, such as mobile phones and personal digital assistants (PDAs).
  • PDAs personal digital assistants
  • servers 104 , 106 , 108 , and 110 may be configured to receive, collect, analyze, evaluate, report, display, and distribute data related to determining a reputation score and confidence factor associated with an entity, and passing and/or filtering of electronic messages based on the reputation score, using one or more software components or applications accordingly.
  • the servers may be configured to manage and track: electronic messages, reports from users, system activity, patterns of messaging, information regarding system software, and the like, associated with the management, tracking, and collection of electronic messages.
  • the servers may also be configured to perform filtering of electronic messages and/or determine a level of confidence associated with a user report.
  • FIG. 2 depicts a block diagram of an exemplary embodiment of a general reputation system 200 .
  • General reputation system 200 may include a general reputation framework 202 , as well as one or more reputation-affecting event providers 204 , attribute providers 208 , and reputation customers 210 .
  • General reputation system 200 may be a cost-effective reputation system designed to be highly flexible and reusable by various types of electronic messaging applications desiring to incorporate reputation values.
  • General reputation system 200 may provide the capability of creating and maintaining context-specific reputation data, using general interfaces that allow the input of trust-affecting events and attributes, and the output of queries and responses for trust level information.
  • General reputation framework 202 may incorporate a trust determination function (“TDF”), which, in one embodiment, may be a mathematical formula that calculates a reputation score and a confidence factor, for a particular user (GUID), IP address, or any other key, based on a plurality of inputs, such as “attributes” and “seed data” created by event notifications.
  • TDF trust determination function
  • the trust determination function may be of the variety disclosed by E. Zheleva et al. in “Trusting Spam Reporters: A Reporter-based Reputation System for Email Filtering,” ACM Transactions on Information Systems, Vol. V, No. N, December 2008, Pages 1-37.
  • general reputation system 200 may manage context-specific trust levels for each key (i.e., for each entity). For example, a user may be assigned a first trust level based on parameters important to a first messaging system, such as an email system, and a second trust level for a second messaging system, such as an instant messaging system. General reputation system 200 may also be able to combine trust levels from different contexts to produce one aggregate trust level for a given key, to allow other applications to benefit from certain trust information without providing a specific trust determination function. General reputation system 200 may also support different types of entities, or keys, for which reputation is determined. For example, trust values could be maintained for users, identified by screenname or GUID; separately maintained for IP addresses; or separately maintained for internal domains and external domains.
  • general reputation framework 202 may include an internal interface that is configured to provide input variables to a trust determination function and to receive the results of such a function.
  • General reputation framework 202 may also include an internal interface that is configured to retrieve key attributes from attribute providers 208 , for use as input variables to a trust determination function.
  • General reputation framework 202 may also include an internal interface that is configured to provide a general external interface for receiving reputation-affecting events from reputation-affecting event providers 204 .
  • General reputation framework 202 may also include an internal interface that is configured to provide a general external interface for receiving reputation queries from and sending corresponding responses to reputation customers 210 .
  • General reputation framework 202 may also include an internal interface that is configured to provide a general external interface for sending reputation alerts to reputation customers 210 . For example, an alert could be used to announce when a significant change in trust level has occurred.
  • General reputation framework 202 may also include an internal interface that is configured to provide a mechanism for a server to subscribe to a reputation alert.
  • general reputation system 200 may detect sudden behavior changes of a key based on defined parameters provided by the specific application. When detected, these changes may cause the system to perform certain prescribed functions, such as providing alerts. General reputation system 200 may also be able to perform real-time reputation updates when receiving new inputs. General reputation system 200 may also provide a general mechanism by which discrete reputation categories, or trust levels, can be defined for a specific application. For example, using broad discrete levels, the categories might be “trusted,” “unknown,” and “untrustworthy.” These discrete categories may be mapped to an internal trust level, which may be defined on a continuous numeric scale. General reputation system 200 may also provide an additional level of secure access to control port commands that might output any personal user information, including commands that produce reports, as well as simple outputs to a control port.
  • General reputation system 200 may also support queries for providing historical events, trust level scores, and all contributing factors for a given key (e.g., user name). General reputation system 200 may also support queries on the reputation history for a given key, for example, to identify a timeframe during which an account was compromised. General reputation system 200 may also encrypt user names, attribute data, and event labels in the output for any queries providing a history of user events. General reputation system 200 may also include a separate offline decryption tool for decrypting any encrypted output from the system. General reputation system 200 may also provide plain text output for queries on user trust levels. General reputation system 200 may also provide an SQL-like query capability using multiple data variables as input to provide aggregate counts of how many keys meet the query.
  • General reputation system 200 may also provide significant detailed logging as the trust level changes for a given key. When logging messages including keys, general reputation system 200 may encrypt the key value, which may be decrypted using the offline decryption tool. General reputation system 200 may also provide an operational command for deleting a specific key and its associated reputation data, as well as a capability to archive all reputation data for all keys, including deleted keys.
  • general reputation system 200 may be used to perform reputation creation, update, deletion, query, reporting, and alerting for any number or type of entities interacting with an electronic messaging system.
  • general reputation system 200 may provide reputation information for any type of application or entity configured to interface with general reputation framework 202 .
  • FIG. 3 depicts a block diagram of a specific instance of general reputation system 200 , embodied in an exemplary anti-spam reputation system 300 .
  • Anti-spam reputation system 300 may include its own trust determination function that is specific to a given application, and any specific external interfaces to existing systems that can provide entity (key) attributes used as inputs to the trust determination function. For example, if account creation date is an input to the function and it can be retrieved from a known service using an already-existing interface, then the specific instance may include an interface for retrieval of that input.
  • anti-spam reputation system 300 may include an anti-spam reputation framework 302 ; spam reputation-affecting event providers 304 , such as spam actioning, adaptive filter training, and volume tracking systems; attribute providers 308 , such as registration, seed data, and whitelist/blacklist providers; and spam detection and anti-spam actioning systems 310 .
  • Anti-spam reputation framework 302 may define any internal project interfaces needed to store the results of its trust determination function as well as any specific inputs. Outputs from the trust determination function may be used for (1) more quickly detecting spam based on reports of trustworthy, reputable users only, and (2) for identifying potential sources of spam for which an action should be taken.
  • anti-spam reputation framework 302 may include interfaces configured to receive inputs form reputation-affecting event providers 304 , such as spam actioning, adaptive filter training, and volume tracking systems.
  • anti-spam reputation framework 302 may receive inputs relating to various high volume behaviors (e.g., email sending, TINS reporting, etc.) as dictated by the trust determination function.
  • Anti-spam reputation framework 302 may also include interfaces configured to receive attributes specific to the trust determination function for the anti-spam reputation framework 302 from attribute providers 308 .
  • anti-spam reputation framework 302 may support new reputation seeding triggered by various events including: registration of a new member accounts, SPAM reports, and TINS reports.
  • Anti-spam reputation framework 302 may also include interfaces configured to receive entity reputation queries from spam detection and anti-spam actioning systems 310 , and send corresponding anti-spam reputation responses and alerts, as desired.
  • Any trust determination function implemented by anti-spam reputation framework 302 may incorporate any number or combination of variables as inputs, including, for example: registration attributes, such as account creation timestamp; SPAM reporting events and behavior (e.g., the number of member-submitted events in a given time period); spam report events that network spam filters agree with (and vice versa); TINS reporting events and behavior that network spam filters agree with (and vice versa); TINS report events overridden by member mail controls (and whether spam filters agreed or disagreed); email sending behavior; sent email attributes (e.g., the number of recipients per email, per hour, per day, number of emails per hour, number of mails sent to non-existent addresses, etc.); email listing behavior; email reading behavior; an instant messaging hostility score; action events on the account (e.g., image challenge); whitelist/blacklist history; mail volume data; number of mails hitting bait accounts; and feedback-loop behavior.
  • registration attributes such as account creation timestamp
  • SPAM reporting events and behavior e.g., the number of member-sub
  • the trust determination function may be defined such that it is resistant to intentional system manipulation, such as spammers deceiving the system to create “trusted” accounts that can work around the system. Similarly, the trust determination function may be defined in a manner that makes it difficult for users of unknown trust to become trusted as well. The trust determination function may also avoid falsely categorizing “good” entities as “bad” entities. Because those with a bad reputation may be acted upon, such as via a spam actioning system 310 , the trust determination function may take into consideration many factors before placing a user in the “untrustworthy”, or “bad”, category. In many cases, if a user cannot be trusted, it may be more desirable to place them in the “unknown” category rather than a “bad” category, where they may be acted upon.
  • FIG. 4 a block diagram is depicted for an exemplary top level architecture configuration of a reputation services system.
  • Components of the architecture may include servers, databases, server-to-server interfaces, and server-to-database interfaces.
  • the exemplary architecture may generally include reputation clients 402 and a reputation service 404 .
  • Reputation clients 402 may include attribute providers 406 , event providers 408 , reputation clients 410 , and alert subscriber clients 412 , all consistent with the exemplary embodiments of the providers and clients described with respect to FIGS. 2 and 3 , as well as reputation provider servers 108 and reputation client servers 110 , as disclosed with respect to FIG. 1 .
  • attribute providers 406 and event providers 408 may be embodied in one or more of reputation provider servers 108 of FIG. 1 .
  • reputation clients 410 and alert subscriber clients 412 may be embodied in one or more of reputation client servers 110 .
  • Reputation service 404 may generally include a cache complex 414 , which may be embodied in a gateway server 416 and anti-spam reputation server 106 ; a spam reputation database 120 ; and a web server 428 , which may be configured to operate as a query tool and report generator.
  • Gateway server 416 may include any type of gateway server configured to interact between anti-spam reputation server 106 and any outside providers and/or clients.
  • Gateway server 416 may include a plurality of gateways 424 and an encryption/decryption library (EDL) 422 , which may be configured to encrypt and decrypt keys that are passed in from the external clients.
  • Gateway server 416 may also append the incoming service_type (e.g., spam, spim) and the key together to access the cache complex 414 . For instance, if the service_type is SPAM and the key is GUID 1234567890, then EDL 422 may create the following “bat key” having both service_type and key: SPAM — 1234567890.
  • Gateway server 416 may be configured to use EDL 422 to encrypt and decrypt incoming keys.
  • An OpenSSL library which uses EVP routines and a blowfish algorithm may be used for encryption and decryption.
  • An interface to the EDL may be performed through two function calls (encrypt and decrypt), as follows: “encrypt (input_buf, key, iv, output_buf),” where “input_buf” is the text desired to be encrypted, “key” and “iv” are keys to use in encrypting, and “output_buf” is the returned encrypted text; and “decrypt (input_buf, key, iv, output_buf),” where “input_buf” is the encrypted text, “key” and “iv” are keys, and “output_buf” is the returned decrypted text.
  • EDL 422 may use EVP cipher routines, which are a high level interface to certain symmetric ciphers.
  • the public and private keys (“key” and “IV” above) may be stored in spam reputation database 120 to enable the encryption and decryption of data.
  • the keys may be stored with start/end time periods, and new keys may be re-calculated (e.g., every month).
  • EDL 422 may also determine which key was used to encrypt/decrypt the data based on the start/end date of the key's life and the insert time of the data record to be decrypted.
  • the gateways 424 may provide the following Tcl commands: RS — GET_REPUTATION ⁇ service_type name> ⁇ key> ⁇ tdf id> for verifying that a key exists, and to determine if it is successfully accepting data; RS_DELETE_KEY ⁇ service_type name> ⁇ key> for deleting a reputation key and its associated reputation data; RS_GET_REPUTATION ⁇ service_type name> ⁇ key> ⁇ tdf id> for displaying a key's reputation score and confidence factor by service type; RS_GET_REPUTATION_HISTORY ⁇ service_type name> ⁇ key> for returning a history of events for service_type and key; and RS_ENCRYPTION_KEY ⁇ key value 1> ⁇ key value 2> ⁇ start date/time> ⁇ end date/time> for gateways 424 to read in a configuration file for setting the encryption keys.
  • Anti-spam reputation server 106 may include a trust determination function (TDF) engine 418 , a reputation service mapping (RSM) engine 420 , and various functions to create, update, delete, and re-synch a reputation value, based on event notifications received from clients 402 through gateways 424 .
  • TDF trust determination function
  • RSM reputation service mapping
  • TDF Trust Determination Function
  • the trust determination function may be a mathematical formula that calculates a reputation score and confidence factor, of a particular user (GUID), IP address, or any other key, based on a plurality of inputs.
  • TDF engine 418 may provide a general way to define trust functions and the variables that are input/output to the function.
  • Tcl language may be used to define the function and logic to allow for suitable maintenance and extensibility.
  • the Tcl code may have the advantage of not needing to be recompiled to adjust trust functions.
  • each TDF may be stored in memory and may produce multiple scores for each key (one score per formula).
  • each key may have multiple TDFs associated with it in cache complex 414 and spam reputation database 120 .
  • each TDF may be defined by a separate Tcl script in its own file which can be executed at runtime. The input constants needed by the script may be set in a Tcl interpreter prior to executing the TDF. A TDF version history may be kept to track when the TDF is changed.
  • each TDF may output a score value, which may be a double-precision floating point number between 0 and 1, where 1 represents the highest score of 1.0; and each TDF may output a confidence factor, which may be a double-precision floating point number between 0 and 1, where 1 represents the highest score of 1.0.
  • RSM engine 420 may be a general mapping list used by anti-spam reputation server 106 to define which input variables are needed for each particular TDF.
  • RSM engine 420 may have functions for adding, updating, and deleting service mappings and trust categories from the mapping list.
  • the mapping list may be defined using Tcl language, which may allow for easy modification of the mapping list when new services desire to use the reputation system.
  • RSM engine 420 may also allow for the definition of discrete reputation categories by which categories, or trust levels, can be defined for a specific application. For example, the categories “trusted,” “unknown,” and “untrustworthy” may be discrete categories which map to an internal trust level that may or may not be on a continuous numeric scale. Additionally, there may be thresholds set per service to determine which category (e.g., trusted, untrustworthy, etc.) a particular key falls into.
  • Cache complex 414 may be any suitable type of general-purpose distributed memory caching system.
  • cache complex 414 may be used to manage, provide, and store reputation data to include the reputation score, confidence factor, and the input variables to TDF engine 418 .
  • Cache complex 414 may provide a general data framework in which to store data elements, including: a key, a reputation category, a reputation score, confidence factor, and a parameter list.
  • the key may include a service type and a user-provided unique identifier.
  • a key may be associated with any number of Type Length Value records (“TLVs”).
  • TLVs Type Length Value records
  • the reputation category may be the trust level that can be defined for a specific application, such as, for example, “trusted,” “unknown,” and “untrustworthy.”
  • the reputation score may be an integer, decimal, or percentage defining the reputation level within a given category.
  • the parameter list may be a pointer to a list of Type Length Value (TLV) records, where “type” is an identifier or label for a piece of user data, “length” identifies the length of the data that follows, and “value” identifies the specific user data value for a given type.
  • TLV Type Length Value
  • the TLV may contain the input variables for the TDF that would have types such as A, B, C (equating to TINS, TIS, TIS_SPAM, for example), and the values may be the counts of those reputation event types.
  • cache complex 414 may provide the following functions of: interfacing with reputation data stored in spam reputation database 120 ; caching reputation data per key for each reputation service type; retrieving reputation data from a persistent storage system in the event of a cache miss; handling reputation data “get” requests and returning data to the requestor; and updating both the cache and the persistent storage system (spam reputation database 120 ) on an update.
  • Spam reputation database 120 may include any suitable type of physical, persistent data storage system, such as a Sybase or MySQL database, which may be provided in communication with anti-spam reputation server 106 and web server 428 . Spam reputation database 120 may be configured to store reputation records created and/or updated by server 106 . In one embodiment, the data structures stored in spam reputation database 120 may match those stored in cache complex 414 , but may be broken out into separate physical database tables. For example, the key, reputation category, reputation score, and confidence factor, may be stored in a REPUTATION_SPAM table, whereas the TDF input variables, or training event counts for the service type SPAM, may be stored in a REPUTATION_VAR_SPAM table.
  • a REPUTATION — HIST_SPAM table may store the raw event data that arrived from the various reputation event providers.
  • the REPUTATION_SPAM database containing the calculated score may be needed to (1) allow for efficient SQL-like queries on scores (thus avoiding a computation for every key), and (2) allow for simplified potential sharing of reputation information with other applications or entities.
  • the table definitions may provide an efficient and general data framework in which to store data, utilizing keyValue, tagValue, and dataValue fields.
  • the table definition for the reputation_spam table may contain a dataValue field which may be of double format to allow double-precision floating point values to be stored there for the reputation score and confidence factor; or the table definition for the reputation_var_spam table may contain a dataValue field which may be of integer format for input variables, since different services may have different numeric input variable formats for their TDF formulas.
  • the table may contain a varbinary field which allows for different data types to be stored. Allowing for different data types to be stored in the field may make the service more general.
  • a SQL “convert” function may be desired to convert numeric (integer and float) values to Hex, which may be stored in the varbinary field.
  • a reputation score may be converted to binary using, for example, a numeric precision of 5 and scale of 2 (which can support a number such as 0.67, or 100.00 for a score), as follows: insert into reputation_hist_spam (keyValue, tagValue, dataValue) VALUES (1234567890,2, convert(binary,convert(numeric(5,2), 0.67))); (where the 2 in the tagValue is the id for “trusted”).
  • FIG. 5 depicts a block diagram of an exemplary embodiment of the architecture of the anti-spam reputation service.
  • the system may include a plurality of attribute providers 406 , reputation event providers 408 , reputation clients 410 , and alert subscriber clients 412 , all in communication with gateway server 416 of the cache complex 414 .
  • the attribute providers 406 may include a mailbox server 502 and an anti-spam seed server 504 .
  • the event providers 408 may include a volume server 506 , a personal adaptive filter training (PAFT) complex 508 , a spam actioning complex 510 , and any other event provider 512 .
  • the reputation clients 410 may include a seed server 514 , a spam collective server (SCOLL) 516 , and a shared adaptive filter training (SAFT) system 518 , among any other filters or spam systems.
  • SCOLL spam collective server
  • SAFT shared adaptive filter training
  • Mailbox server 502 may be configured to communicate with gateways 424 of anti-spam reputation server 106 , for providing mail behavior events and mailbox cancel alerts. For example, when a user subscribes to or cancels a mailbox, mailbox server 502 may be configured to send an event to anti-spam seed server 504 , which may then send an RS_DELETE_KEY request to anti-spam reputation server 106 .
  • Anti-spam seed server 504 may be supplied with attribute information and seed data from, for example, a seed reputation database 520 , a registration system 522 , and/or a whitelist/blacklist database 524 .
  • anti-spam seed server 504 may be a new server configured to handle spam-specific data gathering in order to create new spam reputations or to delete spam reputations.
  • there may be at least three exemplary ways to initiate the creation of a reputation: (1) via a Tcl command from anti-spam seed server 504 ; (2) from a specified number of events of a given type; or (3) from incoming CREATE or UPDATE events with a “create_if_not_exists” flag.
  • anti-spam seed server 504 may have a Tcl command configured to read in a configuration file of reputation keys to create (e.g., member GUIDs to create).
  • Anti-spam seed server 504 may also be able to create a reputation based on a specified number of events of a given type. The number of events of a given type may be set in volume server 506 , and an alert may be sent to anti-spam seed server 504 when the threshold is hit. This alert may cause anti-spam seed server 504 to send an RS_CREATE_KEY request to gateway server 416 .
  • Anti-spam seed server 504 may be able to obtain seed data for creating new reputations from one or more of the following sources: Td configuration files; account creation dates from registration system 522 ; an IP address from a member's registration; audio or image challenges from registration; and a number of failures for audio or image challenges on registration.
  • anti-spam seed server 504 may be able to receive cancel reputation events from the mailbox service 502 .
  • anti-spam seed server 504 may be configured to provide an initial reputation score and confidence factor to be seeded. Such an initial seed reputation score and confidence factor, which may be sent via a create event, may then be used in a TDF formula as an “old score” variable, and “old confidence factor”.
  • Volume server 506 may include any suitable type of server that is configured to trigger alerts to anti-spam seed server 504 for reputation creation, when a number of events reaches a predetermined threshold.
  • Volume server bridge 507 may accept volume server alerts and trigger a CREATE event notifications that may be sent to gateways 424 . Such CREATE event notifications may have the “seed_data_provided” flag set to FALSE.
  • Volume server 506 may be configured to send such event notifications and alerts to volume server bridge 507 .
  • Volume server bridge 507 may also be able to handle UPDATE events from volume server 506 . Such UPDATE events may have the “create_if_not_exists” flag set to YES.
  • PAFT Personal Adaptive Filter Training
  • PAFT complex 508 may be configured to communicate with a spam agreement server (SAGS) 509 for correlating event signatures to known spam signatures.
  • SAGS spam agreement server
  • PAFT complex 508 may be configured to send an RS_ADD_EVENT to gateways 424 via SAGS 509 for training events; and send a TINS or TIS event type along with the RS_ADD_EVENT.
  • TINS or TIS event type there may be multiple tags in the Tag Length Value (TLV) fields of the RS_ADD_EVENT request.
  • TLV Tag Length Value
  • SAGS 509 may be configured to correlate incoming event signatures from PAFT complex 508 with a known spam signature list, and based on the correlation, to determine whether the event is of the type TINS, TINS_SPAM, TIS, TIS_SPAM, or TIS_NOT_SPAM, and to modify an event tag accordingly before sending it to gateways 424 .
  • SAGS 509 may be configured to receive a spam signature list through a Tcl port command. When an incoming event arrives from PAFT 508 , SAGS 509 may extract the signature and check it against the signature list, update the event type in the RS_ADD_EVENT based on the signature correlation, and send the event to one of the gateways 424 .
  • Spam actioning server 510 may be configured to interact with gateways 424 of anti-spam reputation server 106 , for providing actioning events and for querying reputations. For example, spam actioning server 510 may be configured to detect spamming, and then query anti-spam reputation server 106 to determine whether a user email account should be acted upon. If action is desired, spam actioning server 510 may be configured to suspend an account, permanently terminate an account, scramble the password for the account, etc. For example, spam actioning server 510 may interact with an e-mail server, such as the email server 104 depicted in FIG. 1 .
  • Event provider 512 may be any type of server that is disposed in communication with an electronic messaging or communications system, and configured to generate event notifications.
  • Seed server 514 may be any type of server configured to obtain seed data from an external source, based on alerts created by event provider 512 .
  • the event provider 512 may be configured to send a seed request directly to its own “seed server” to have the seed server initiate the Create event notification, as depicted by the dashed lines between the “any event provider” 512 and “seed server” 514 .
  • any event provider 512 may send a CREATE event notification without seed data included to seed server 514 , which may obtain seed data from any external source.
  • SCOLL complex 516 may be configured to interface with gateways 424 of anti-spam reputation server 106 for querying reputation data.
  • SCOLL complex 516 may be configured to query the reputation system for each email recipient and log whether they are trustworthy vs. untrustworthy.
  • SCOLL complex 516 may be configured to send an RS_GET_REPUTATION request to one of the gateways, and receive a RS_GET_REPUTATION_RESPONSE message containing the reputation category (e.g., Trusted, Untrusted, Unknown), the reputation score for the key (e.g., member GUID or IP address), the confidence factor for the reputation, and the TDF ID.
  • the reputation category e.g., Trusted, Untrusted, Unknown
  • the reputation score for the key e.g., member GUID or IP address
  • the confidence factor for the reputation e.g., member GUID or IP address
  • SAFT system 518 may be configured to interface with one of the gateways 424 of anti-spam reputation server 106 , for querying reputation data to assist in determine whether training events should be used in training or not.
  • SAFT system 518 may be a client system configured to benefit from reputation data that is created, updated, and stored by anti-spam reputation server 106 .
  • alert subscribers 412 may be able to subscribe to alerts created by anti-spam reputation server 106 .
  • Anti-spam reputation server 106 may be able detect changes in the trust level for a key, and be able to log the change. For instance, if the trust level changes from the discrete category “trusted” to “untrustworthy”, anti-spam reputation server 106 may generate a report, or alert, to be sent to alert subscribers 412 .
  • anti-spam reputation server 106 may provide an alert subscription function that allows for the adding/updating of subscriptions to alerts, and send alerts to those client systems that have subscribed.
  • Web server 428 may be any suitable type of web server having a GUI and report generation capability configured to allow users to query the data, and report on the data. Web server 428 may be configured to interface with spam reputation database 120 to send queries and receive data. Web server 428 may also be configured to utilize the data encryption/decryption tool 422 , as shown in FIG. 4 , to decrypt data. In one embodiment, web server 428 may be an Apache server with a GUI front end. Thus, upon receipt of a query for the reputation score and confidence factor for a key, the key may not need to be encrypted.
  • the GUI tool of web server 428 may call the EDL, encrypt the key, and then query the database for: REPUTATION_SPAM, which may return all the fields in the key's reputation record, such as, key, trust level ID, and trust score.
  • the GUI tool displays the reputation score as a double-precision floating point number and the confidence factor as a double-precision floating point number to the user.
  • the GUI tool may call the EDL, encrypt the key, and then query the database for REPUTATION_VAR_SPAM, which may return the reputation variables and their values that are input into the TDF.
  • the GUI tool displays as integers the static variables that went into the formula (e.g., alpha, beta scores).
  • Aggregate reputation service 550 may be configured to combine trust levels from different contexts to produce one aggregate trust level for a given key. Thus, aggregate reputation service 550 may allow other applications to reap the benefit of some trust information without providing its own trust determination function. As shown in FIG. 5 , aggregate reputation service 550 may include an aggregate reputation score 552 , which is calculated based on an aggregate formula 554 , which receives inputs from a plurality of reputations systems, such as spim reputation complex 555 and spam reputation complex 560 . In one embodiment, aggregate reputation service 550 may be configured to query each service type's complex to obtain key reputation scores and confidence factors and combine them using formula 554 to obtain aggregate reputation score and confidence factor 552 . Aggregate reputation score and confidence factor 552 may then be used in any type of spam actioning system, alert system, and/or reporting system.
  • the systems described in FIGS. 1-5 may be used to perform a method of creating and updating reputation records, for use in managing electronic communications and messaging systems, such as e-mail and instant messaging systems.
  • the method may include six major functions: (1) reputation creation, which uses an application-specific trust determination function to create a reputation for a new key; (2) reputation update, which uses an application-specific trust determination function to update and maintain a key's reputation based on external inputs; (3) reputation query response, which handles external queries and provides a response that can include reputation information at the individual key level and/or the aggregate level; (4) reputation alerts, which provide the ability to alert subscribing servers that desire to be notified when there is a significant change in trust level for a given key; (5) reputation reports, which respond to queries or automated schedules with reputation reports at either the individual key level or the aggregate level; and (6) reputation deletion, which can either use an operation command or an application-specific trust determination function for defining when to delete a reputation record.
  • the Tcl command may specify a list of keys to create (e.g., from a whitelist/blacklist 524 , registration system 522 , etc.).
  • the Tcl command may read in a list of keys and associated data, and send CREATE event notifications to the gateways 424 via a messaging interface.
  • the CREATE event notification may have a “seed_data_provided” flag set to TRUE.
  • the event notification may also allow for an initial score to be seeded.
  • the gateway may process the event notification, extract the key, and encrypt the key.
  • the encrypted key may then be sent from the gateway to the anti-spam reputation server (ASRS) 106 , where the server determines whether the reputation record already exists or not. If the record does not exist, any initial seed trust score and seed confidence factor may be used to create the reputation. Otherwise, the trust determination function (TDF) engine 418 may be called to calculate the reputation score and confidence factor. A reputation record having the reputation score, confidence factor, and key may then be created in cache and in the database (if it already exists, and this is a duplicate create event, an error may be returned). Additionally, for purposes of fighting spam, an initial set of keys may be seeded along with their training event counts. As a result, anti-spam seed server 504 may first send a create event to the anti-spam reputation server 106 , followed by update events with the training event counts for the key created.
  • ASRS anti-spam reputation server
  • volume server (VS) 506 may send an alert to VS bridge 507 .
  • VS bridge 507 may send a CREATE event notification to gateways 424 .
  • the CREATE event notification may have a “seed_data_provided” flag set to FALSE.
  • the gateway may process the event notification, extract the key, and encrypt the key.
  • the encrypted key, along with other data in the event, may then be sent from the gateway to the anti-spam reputation server (ASRS) 106 , where the server determines whether the reputation already exists or not. If the reputation already exists, and this is a duplicate create event, an error may be returned.
  • ASRS anti-spam reputation server
  • the server may check the “seed_data_provided” flag, which is set to FALSE, and then send a seed request off to anti-spam seed server 504 .
  • Anti-spam seed server 504 may obtain the desired seed data from external sources, such as registration system 522 and configuration seed files 520 , and send a CREATE event notification, with the “seed_data_provided” flag set to TRUE, back to one of the gateways 424 .
  • the gateway may process the event notification, extract the key, and encrypt the key.
  • the encrypted key along with other data in the event, may then be sent from the gateway to the anti-spam reputation server 106 , where the server may then use the event to create a new reputation.
  • the Trust Determination Function (TDF) engine 418 may be called to calculate the reputation score and confidence factor and the reputation record may be created in cache and in spam reputation database 120 (if it already exists, and this is a duplicate create event, an error may be returned).
  • TDF Trust Determination Function
  • the event may be sent from the external event provider 512 to one of the gateways 424 .
  • the gateway may process the event notification, extract the key, and encrypt the key.
  • the encrypted key, along with other data in the event, may then be sent from the gateway to anti-spam reputation server 106 , where the server determines whether the reputation already exists or not. If it already exists, and this is a duplicate create event, an error may be returned.
  • the server may check the “seed_data_provided” flag, which is set to FALSE, and then send a seed request off to anti-spam seed server 504 .
  • Anti-spam seed server 504 may obtain the seed data, and send it back to one of the gateways in a CREATE event notification, with the “seed_data_provided” flag set to TRUE.
  • the gateway may process the event notification, extract the key, and encrypt the key.
  • the encrypted key, along with other data in the event notification may then be sent from the gateway to anti-spam reputation server (ASRS) 106 , where the server may use the event to create a new reputation, which is stored in cache and spam reputation database 120 .
  • ASRS anti-spam reputation server
  • the event may be sent from the external event provider 512 to one of the gateways 424 .
  • the gateway may process the event notification, extract the key, and encrypt the key.
  • the encrypted key, along with other data in the event, may then be sent from the gateway to the anti-spam reputation server (ASRS) 106 , where the server determines whether the reputation already exists or not. If it already exists, and this is a duplicate create event, an error may be returned.
  • ASRS anti-spam reputation server
  • the server may check the “seed_data_provided” flag, which is set to TRUE, and then call the Trust Determination Function (TDF) engine 418 to calculate the reputation score and confidence factor.
  • TDF Trust Determination Function
  • the resulting reputation record including reputation score, confidence factor, and key, may be stored in cache and in the spam reputation database 120 .
  • any event provider 512 to send a CREATE event notification with seed data included may allow other clients of the reputation service to bypass the need for a specific “Seed Server,” such as anti-spam seed server 504 .
  • an anti-spam client may use anti-spam seed server 504 to gather seed data from different, external sources and thus benefit from its use; however, other reputation clients may have all the seed data available locally and may not need a separate “Seed Sever” to send seed data with an initial CREATE event notification.
  • the event notification may be sent to one of the gateways 424 .
  • an external event provider 512 such as PAFT 508
  • PAFT 508 may have sent an event notification with a flag set that instructs anti-spam reputation server 106 to create a reputation record if one does not already exist.
  • the event notification is sent from PAFT 508 , it may first go through SAGS 509 to correlate the event's signature to a list of known SPAM signatures.
  • the gateway may process the event notification, extract the key, and encrypt the key.
  • the encrypted key may then be sent from the gateway to the anti-spam reputation server 106 , where the server may determine whether the reputation record already exists or not. If it already exists, then the reputation record may be updated, by calling trust determination function (TDF) engine 418 and passing desired input variables for the formula, according to maps provided by RSM 420 . TDF 418 may then calculate a reputation score and confidence factor, and return the score to ASRS 106 , which may store the new reputation score and confidence factor in spam reputation database 120 for that key. If the record does not exist, then a new reputation may need to be created, by sending a seed request from ASRS 106 to anti-spam seed server 504 .
  • TDF trust determination function
  • Anti-spam seed server 504 may obtain the seed data and return it to a gateway 424 of ASRS 106 in a CREATE event notification, with the “seed_data_provided” flag set to TRUE.
  • the gateway may process the event notification, extract the key, and encrypt the key.
  • the encrypted key, along with other data in the event, may then be sent from the gateway to ASRS 106 , where the server may then use the event to create a new reputation.
  • ASRS 106 may call TDF engine 418 and pass in the desired input variables for the formula, as defined by RSM engine 420 .
  • TDF engine 418 may calculate the reputation score and confidence factor and return the score to ASRS 106 , which may then store the new reputation score and confidence factor in spam reputation database 120 for that key.
  • PAFT 508 may send UPDATE events to the gateways 424 of ASRS 106 with the “create_if_not_exists” flag set to TRUE, which causes ASRS 106 to trigger the seeding of the reputation via a message sent to the seed server 514 .
  • the architecture may also allow for any event provider to send an UPDATE event with the “create_if_not_exists” set to FALSE, and in the case where the ASRS does not find a record to update, it may return an error back to the event provider with a record-not-found error.
  • the event provider may then send a seed request directly to its own “seed server” to have the seed server initiate the Create event notification, as depicted by the dashed lines between the “any event provider” 512 and “seed server” 514 .
  • SAGS 509 may determine the type of event, e.g. TINS, TINS_SPAM, TIS, TIS_SPAM, or TIS_NOT_SPAM, based on a list of signatures available to SAGS 509 .
  • SAGS 509 may then send an UPDATE event to one of the gateways 424 .
  • the gateway may process the event notification, extract the key, and encrypt the key.
  • Anti-spam reputation server 106 may store the event that arrived from PAFT complex 508 in an event history table, and the event count may be incremented in an event count table.
  • Anti-spam reputation server 106 may then query all the events for the key, and send the events and other input variables (input variables may be determined by checking RSM engine 420 ) to TDF engine 418 for re-calculating the key's reputation score and confidence factor. TDF engine 418 may then return the re-calculated reputation score and confidence factor to anti-spam reputation server 106 and store it in spam reputation database 120 .
  • update events affecting reputation scores may be buffered until one of the following conditions is met, at which point the reputation score for the given key is re-computed: a query occurs for this key, a configurable alert lag time expires for this key, or a configurable N number of events have been buffered for this key.
  • reputation consumers, customers, or client may send a query (e.g., a “get reputation” request), to one of the gateways 424 .
  • the gateway may processes the incoming query, extract the key, and encrypt the key.
  • the encrypted key may then be sent from the gateway to anti-spam reputation server 106 .
  • Anti-spam reputation server 106 may look-up the encrypted key in cache complex 414 and return the query results to the gateway, which decrypts the key, and sends it back to the reputation client, along with the reputation category (e.g., trusted, untrusted), the reputation score, the confidence factor, and the TDF ID.
  • the reputation category e.g., trusted, untrusted
  • anti-spam reputation server 106 may be configured to detect a change in the trust level, for that user. Anti-spam reputation server 106 may log this change and provide an alert to various systems that may have subscribed to such alerts. Such an alert may then be sent thru the gateway to decrypt the key. In one embodiment, an alert subscription function of anti-spam reputation server 106 may allow for the adding/updating of alert subscriptions.
  • Reputation reports may be generated as requested by an administrator using web server 428 .
  • an operations administrator of an electronic communications system may make a request via a control port on one of the gateways 424 or web server 428 for a reputation report to be produced.
  • the produced report may be output in encrypted format for the member's event history, and decrypted format for the member's reputation score.
  • mailbox service 502 may be configured to provide alerts on a mailbox cancel.
  • the mailbox cancel alert may then trigger a reputation delete.
  • anti-spam reputation server 106 may be configured to delete the reputation from cache complex 414 and from spam reputation database 120 .
  • a Web API may be provided to allow HTTP Get and Post requests to interface with gateway server 416 .
  • HTTP Get request may be provided directly to the gateway server, with the Post occurring thru the Event Notification System (ENS) 513 .
  • ENS Event Notification System
  • an HTTP Post may go directly to the gateway server 416 .
  • FIG. 6 illustrates an exemplary embodiment of a method 600 for creating and updating reputation records, each reputation record including a reputation score, confidence factor, and a unique reputation key.
  • at least one incoming event notification including an indexing reputation key, may be received from an event provider 408 (Step 610 ). Based on the indexing reputation key, it may be determined whether a corresponding reputation record exists in either cache complex 414 or spam reputation database 120 (Step 620 ). If the corresponding reputation record exists (Step 630 , Yes), the reputation score and confidence factor may be updated using TDF engine 418 , based on the at least one incoming event notification and a trust determination function (Step 660 ).
  • a new reputation record including a default reputation score, and default confidence factor, may be created by ASRS 106 (Step 640 ).
  • the default reputation score and confidence factor may be stored as the reputation score and confidence factor and the indexing reputation key may be stored as the unique reputation key (Step 650 ).
  • the reputation score and confidence factor may be updated based on the at least one incoming event notification and a trust determination function (Step 660 ). The new reputation record may then be stored in both the cache complex 414 and the spam reputation database 120 (Step 670 ).
  • One or more of the reputation client servers 110 and email servers 104 may perform filtering of email messages sent by an entity, based on a reputation score stored in a reputation record associated with the entity's reputation key (Step 680 ).
  • an email service provider (“ESP”) may perform each step of method 600 .
  • an ESP may perform all or part of method 600 in combination with a third party company.
  • reputation alerts may be automatically provided to a subscriber or requestor. Spam may be filtered based on the calculated reputation trust score. Suspected spammers may be sanctioned based on the calculated reputation score.
  • the default reputation score and confidence factor may be a pre-determined static value previously stored by the reputation server.
  • FIG. 7 depicts an exemplary embodiment of a table 700 containing a plurality of reputation records, each reputation record extending along a horizontal row of the table.
  • each reputation record may include a reputation key, a reputation category, a reputation score, a confidence factor, and a TDF ID.
  • each reputation key may be a unique identification for each entity, such as GUID, IP address, etc.
  • Each reputation category may define a general type of reputation, such as trusted, untrusted, or unknown trust.
  • Each reputation score and confidence factor may be a number ranging from 0 to 1.
  • Each TDF ID may be an integer or any other identifier that points to particular TDF to use in relation to the entity.
  • FIG. 7 depicts only one exemplary embodiments of a way to store a reputation record table. Reputation records may be displayed and stored in any other way, such as a text file or any other data file, individually or in groups.
  • the present systems and methods may be used to determine the likelihood that a given user will send spam.
  • the system may be used to identify users that may be spamming or not spamming. For example, if a user has just sent 200 emails, which triggers rate limiting and a spam actioning event, the spam actioning system may check the user's reputation and determine this is a “trusted” user. In this case, the user may not be actioned, and the spam actioning system may allow this user to continue sending two to three times the normal amount of mail before actioning the account. Additionally, the different actioning system actions, such as scrambling the password for the account, blocking the account, etc., could be tied to the trust level of the user (e.g., more lenient action taken on a reliable user).
  • the present systems and methods may be used to determine the likelihood that a given user account has been compromised and used for spamming. For example, the present systems and methods may be used to determine whether an account has been compromised, or if an account has been set up just for spamming. For example, if a spam actioning system detects a user spamming, but a query of the reputation system reveals the user has been reliable for a predefined period of time, it may be presumed that the account has been compromised. Alternatively, a query of the reputation system may reveal the account has only been used for spamming. Moreover, the reputation alert system may detect a drastic change in the user's reputation trust score and level, and an alert may be sent to the spam actioning system to action the account.
  • the reputation system may be used to improve spam detection and bulk-mailer scrubbing by using trusted and untrusted email recipient ratios.
  • the reputation system may be used to further improve spam detection by determining for each incoming mail, how many recipients are trustworthy vs. untrustworthy users. This information can be used to help determine if a given email is spam.
  • SCOLL complex 516 may query the reputation system for each email recipient and log whether they are trustworthy vs. untrustworthy, and store the counts in a table that can be used to write spam detection rules. This data may also be used to help scrub white list of bulk mailers.
  • the TDF formula may also be revised to replace the input variables, such as TINS and TIS, with events that are more relevant to a scenario in which the reputation entity is an IP address.
  • the reputation system may be used to improve the identification of incorrectly deposited email based on trusted user reports.
  • the reputation system may be used to help determine how many reports of spam come from trustworthy users vs. untrustworthy users for an entity (or key), and how many reports of this-is-not-spam come from trustworthy users vs. untrustworthy users, and then use that information for more quickly identifying actual spam being delivered through system, as well as good mail falsely spam-foldered. In some embodiments, this information may then be used to put corrective measures in place.
  • the reputation system may be used to identify groups of users with similar reporting patterns. For example, there may be a group of individuals that only reports a certain type of spam and no other type of spam.
  • the methods may further include taking the set of all trusted users and breaking them into groups based on their reporting patterns.
  • the method may further include taking samples of those users' mail reported and use that set to train a “group” focused filter.
  • an off-line tool may be used to query the reputation system for data and then group and correlate the data to come up with the grouping of similar patterns. Then the tool may be used to gather samples of those reporting events from the group for the purpose of training a spam filter.
  • systems and methods disclosed herein may be configured to perform filtering of electronic messages to reduce spam and/or spam campaigns.
  • the systems and methods disclosed herein may be configured to determine a level of confidence to associate with a user report to improve the reliability of a spam filtering system, which, in turn, improves performance and reduces costs.

Abstract

According to one aspect of the present disclosure, a computer-implemented method is provided for generating a reputation record and filtering electronic messages, each reputation record including a reputation score and a reputation key. The method includes receiving at least one incoming event notification, including a reputation key; determining, based on the reputation key, whether a corresponding reputation record exists; creating a new reputation record if the corresponding reputation record does not exist; determining a trust determination function based on the incoming event notification; calculating a reputation score based on the determined trust determination function, the incoming event notification, and an attribute associated with the reputation key; storing the calculated reputation score along with the reputation key in either the new reputation record or the corresponding reputation record; and filtering one or more electronic messages based on the calculated reputation score.

Description

    RELATED APPLICATION(S)
  • This application claims the benefit of priority of U.S. Provisional Patent Application No. 61/136,753, filed Sep. 30, 2008, which is incorporated by reference herein in its entirety.
  • TECHNICAL FIELD
  • The present disclosure relates generally to systems and methods for managing electronic communications and messages. More particularly, and without limitation, the present disclosure relates to systems and methods for creating and updating reputation records used in managing electronic communications and messages.
  • BACKGROUND
  • Email spam is a growing problem for the Internet community. Spam interferes with valid email, and it burdens both email users and email service providers (ESPs). Not only is it a source of annoyance, but it also adversely affects productivity and translates to significant monetary costs for the email industry (e.g., reduced bandwidth, increased storage requirements, and the cost of supporting filtering infrastructures). Also, for some categories of spam, such as phish scams, the financial costs for users may be even greater due to fraud and theft.
  • Generally, spam-filtering techniques can be divided into three broad categories: spam-filtering based on sender-based reputation, spam-filtering based on email-header analysis, and spam-filtering based on an analysis of message content. In the first category, a sender-based reputation framework, senders are classified as either “spammers” or “good senders,” based on criteria such as the sender's identity, the sender's domain, or the sender's IP address. The second category, email-header spam filtering, is based on detecting forgery in the email header and distinguishing the forgery from malformatting and other legitimate explanations, such as those resulting from forwarding activity. The third category, analysis of message content, typically involves machine learning using a classifier for spam detection, using both batch-mode and online update models.
  • Content analysis using machine learning classification involves several disadvantages, including vulnerability to adversarial attacks, and difficulty in tuning and changing the classification functions. The diversity of messages within a spam campaign may be too low to effectively adjust the filtering function quickly enough. Another problem in automating spam classification is the lack of a consensus definition for spam. What some people consider spam may be considered solicited mail by others. Some email service providers (“ESPs”) allow users to mark emails they consider spam and report them to their ESP, in so-called “TIS” (this is spam) reports. In some cases, users can also report opposite errors, i.e., when legitimate email is mistakenly classified as spam, by submitting so-called “TINS” (this is not spam) reports. However, because user reports rely upon personalized definitions of spam, the value of each individual's judgments may be questionable. For example, many TINS reports may be generated by spammers seeking to legitimize their own spam. Spammers may also submit TIS reports to identify legitimate mail as being spam, in an effort to confuse traditional spam filters. Therefore, traditional spam filtering systems and methods may not satisfactorily identify those entities whose spam reports should be trusted. As a result, traditional spam filtering techniques may fail to sufficiently reduce the costs that users and systems incur as a result of spamming.
  • The disclosed embodiments of the present disclosure are directed to overcoming one or more of the problems set forth above, by providing systems and methods for creating and updating reputation records and filtering electronic messages.
  • SUMMARY
  • In one exemplary embodiment, the present disclosure is directed to a computer-implemented method for creating and updating reputation records, each reputation record including a reputation score and a unique reputation key. The method includes receiving at least one incoming event notification, including an indexing reputation key; determining, based on the indexing reputation key, if a corresponding reputation record exists; creating, if the corresponding reputation record does not exist, a new reputation record including a default reputation score; storing, when the new reputation record is created, the default reputation score as the reputation score and the indexing reputation key as the unique reputation key; and updating the reputation score based on the at least one incoming event notification and a trust determination function.
  • In another exemplary embodiment, the present disclosure is directed to a computer-implemented method for calculating a reputation score and filtering electronic messages. The method includes receiving at least one incoming event notification, including an indexing reputation key; determining, based on the indexing reputation key and at least one event type, a trust determination function; calculating a reputation score based on the determined trust determination function; and filtering one or more electronic messages based on the calculated reputation score.
  • In another exemplary embodiment, the present disclosure is directed to a computer-implemented method for generating a reputation record and filtering electronic messages, each reputation record including a reputation score and a reputation key. The method includes receiving at least one incoming event notification, including a reputation key; determining, based on the reputation key, whether a corresponding reputation record exists; creating a new reputation record if the corresponding reputation record does not exist; determining a trust determination function based on the incoming event notification; calculating a reputation score based on the determined trust determination function, the incoming event notification, and an attribute associated with the reputation key; storing the calculated reputation score along with the reputation key in either the new reputation record or the corresponding reputation record; and filtering one or more electronic messages based on the calculated reputation score.
  • Additional objects and advantages will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the embodiments of the invention. For example, the objects and advantages may be realized and attained by means of the elements and combinations particularly pointed out in the appended claims.
  • It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate several embodiments of the invention and together with the description, serve to explain the principles of the invention.
  • FIG. 1 is a block diagram of an exemplary electronic communication and messaging system, consistent with certain embodiments of the present disclosure;
  • FIG. 2 is a block diagram of an exemplary system for creating and updating reputation records, consistent with certain embodiments of the present disclosure;
  • FIG. 3 is a block diagram of an exemplary system for creating and updating reputation records for anti-spam purposes, consistent with certain embodiments of the present disclosure;
  • FIG. 4 is a block diagram of an exemplary architecture for creating and updating reputation records, consistent with certain embodiments of the present disclosure;
  • FIG. 5 is a block diagram of an exemplary architecture for creating and updating reputation records for anti-spam purposes, consistent with certain embodiments of the present disclosure;
  • FIG. 6 is a flowchart of an exemplary method for creating and updating reputation records for anti-spam purposes, consistent with certain embodiments of the present disclosure; and
  • FIG. 7 depicts an exemplary embodiment of a reputation record.
  • DETAILED DESCRIPTION
  • Reference will now be made in detail to the present exemplary embodiments of the invention, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts.
  • Consistent with embodiments of the invention, an email service provider (“ESP”) or other facilitator of electronic communications may desire to filter or otherwise block certain communications that are identified as likely being spam based on a reputation of, or trust level associated with, the sender of the communication. For example, an ESP may monitor an electronic communications network through servers connected to the Internet and/or a plurality of email servers. The ESP may then calculate a reputation score associated with one or more senders of communications over the network, and then filter a senders communications if the sender's reputation is below a predetermined threshold. For example, the ESP may block the sender's email account or not deliver messages sent by the sender. Alternatively, or additionally, if the ESP provides messaging services to a recipient of the sender, the ESP may prevent the recipient from viewing messages sent from the sender, based on the sender's calculated reputation. In one embodiment, the ESP may perform all of the tasks of monitoring the network, calculating sender reputations, and/or filtering messaging based on the calculated reputations. In another embodiment, the ESP may share one or more of the tasks with another ESP, an Internet Service Provider (“ISP”), an advertiser, or any other third-party company configured to interact with the ESP and/or the electronic communications network.
  • Consistent with embodiments of the invention, the present disclosure relates to creating and updating a reputation record, including a trust level, as an attribute associated with one or more entities interacting with an electronic communication network, such as an email system. Essentially, it may be desirable to know who can be trusted and who cannot be trusted in the context of spam reporting in an email system. Those who cannot be trusted may include those that cannot be trusted due to known information about them, and those that cannot be trusted due to a lack of information about them. Thus, while an entity's trust level may be represented on a continuous scale, for purposes of using that information, a specific application may have the trust attribute divided into discrete categories or levels to make use of it. The number of such categories may be specific to the application, but in one embodiment, there may be three such categories: “trusted” for entities that have high reputations, “not trusted” for entities that have bad reputations, and “unknown trust” for entities that have no known reputation.
  • The presently disclosed systems and methods for performing reputation services may involve creating, storing, updating, and reporting an individual reputation value, or trust level, for each entity associated with a system. For purposes of the present disclosure, an “entity” may be a user account identified by a global user ID (“GUID”), an IP address, an internal domain, an external domain, or any other item for which a reputation level may be assigned. Moreover, for purposes of the present disclosure, the phrase “reputation key” may be used to define an entity-specific identifier, such as number, pin, or usemame, which may be assigned to each entity, for the purpose of identifying the entity with which a reputation value is associated. An “indexing reputation key” may be a particular instance of a reputation key, which may be temporarily assigned until updated with a reputation key which is identified as being unique to a particular entity. A reputation record may be any data file or text string, which includes a reputation key, reputation score, confidence factor, and trust determination function ID (TDF ID). For purposes of the present disclosure, information, such as event notifications, reputation-affecting events, attribute information, reputation queries, alerts, and/or reputation records, may be passed between servers and entities by any suitable messaging means, such as email, XML, or any other proprietary messaging protocol.
  • In certain embodiments of the present disclosure, reputation levels may then be used to, among other things: (I) determine whether a given user is spamming based on his reputation and behavior, and take appropriate action on the users account; (II) determine whether a spamming account is a compromised account versus one set up purely for spamming and then take appropriate action on the user's account; (Ill) improve spam detection and spam prevention through better bulk mailer scrubbing by using reputation levels of email recipients; (IV) improve identification of spam incorrectly delivered to the inbox and good mail incorrectly spam-foldered by using reports of trusted email recipients only, so that corrective measures can be put into place more quickly; and (V) improve spam detection by grouping users with similar reporting patterns in order to create group-centric spam filters.
  • FIG. 1 is a block diagram of an exemplary communication system 100. Communication system 100 may include an email and spam-filtering system, and may be configured to identify and process spam and/or spam campaigns using one or more of the embodiments disclosed herein. A spam campaign may be, for example, a group of highly similar electronic messages (e.g., electronic mail messages, Short Messaging System (SMS) messages, Multimedia Messaging System (MMS) messages, etc.). Communication system 100 may include any type of communication system, including, for example, a wired communication system, a wireless communication system, a local- or wide-area network, an Internet network, or any combination thereof.
  • As shown in FIG. 1, communication system 100 may include one or more email clients 102, a plurality of email servers 104, an anti-spam reputation server 106, a plurality of reputation provider servers 108, and a plurality of reputation client servers 110, all disposed in communication with an electronic network 110, such as the Internet. Communication system 100 may also include a spam reputation database 120 disposed in communication with anti-spam reputation server 106. Some of the email clients 102 may include valid Internet users who are individuals seeking to send and receive emails from known acquaintances for personal and/or professional purposes (i.e., “good senders”). Some of the email clients 102 may include “spammers,” who are entities seeking to send large quantities of emails to known and unknown individuals for commercial or other purposes. Email clients 102 may each interact with email servers 104 through computers connected to the electronic network 110 (such as the Internet), or through mobile communications devices, such as mobile phones and personal digital assistants (PDAs).
  • In general, servers 104, 106, 108, and 110 may be configured to receive, collect, analyze, evaluate, report, display, and distribute data related to determining a reputation score and confidence factor associated with an entity, and passing and/or filtering of electronic messages based on the reputation score, using one or more software components or applications accordingly. For example, the servers may be configured to manage and track: electronic messages, reports from users, system activity, patterns of messaging, information regarding system software, and the like, associated with the management, tracking, and collection of electronic messages. The servers may also be configured to perform filtering of electronic messages and/or determine a level of confidence associated with a user report.
  • FIG. 2 depicts a block diagram of an exemplary embodiment of a general reputation system 200. General reputation system 200 may include a general reputation framework 202, as well as one or more reputation-affecting event providers 204, attribute providers 208, and reputation customers 210. General reputation system 200 may be a cost-effective reputation system designed to be highly flexible and reusable by various types of electronic messaging applications desiring to incorporate reputation values. General reputation system 200 may provide the capability of creating and maintaining context-specific reputation data, using general interfaces that allow the input of trust-affecting events and attributes, and the output of queries and responses for trust level information. General reputation framework 202 may incorporate a trust determination function (“TDF”), which, in one embodiment, may be a mathematical formula that calculates a reputation score and a confidence factor, for a particular user (GUID), IP address, or any other key, based on a plurality of inputs, such as “attributes” and “seed data” created by event notifications. For example, the trust determination function may be of the variety disclosed by E. Zheleva et al. in “Trusting Spam Reporters: A Reporter-based Reputation System for Email Filtering,” ACM Transactions on Information Systems, Vol. V, No. N, December 2008, Pages 1-37.
  • In one embodiment, general reputation system 200 may manage context-specific trust levels for each key (i.e., for each entity). For example, a user may be assigned a first trust level based on parameters important to a first messaging system, such as an email system, and a second trust level for a second messaging system, such as an instant messaging system. General reputation system 200 may also be able to combine trust levels from different contexts to produce one aggregate trust level for a given key, to allow other applications to benefit from certain trust information without providing a specific trust determination function. General reputation system 200 may also support different types of entities, or keys, for which reputation is determined. For example, trust values could be maintained for users, identified by screenname or GUID; separately maintained for IP addresses; or separately maintained for internal domains and external domains.
  • In one embodiment, general reputation framework 202 may include an internal interface that is configured to provide input variables to a trust determination function and to receive the results of such a function. General reputation framework 202 may also include an internal interface that is configured to retrieve key attributes from attribute providers 208, for use as input variables to a trust determination function. General reputation framework 202 may also include an internal interface that is configured to provide a general external interface for receiving reputation-affecting events from reputation-affecting event providers 204. General reputation framework 202 may also include an internal interface that is configured to provide a general external interface for receiving reputation queries from and sending corresponding responses to reputation customers 210. General reputation framework 202 may also include an internal interface that is configured to provide a general external interface for sending reputation alerts to reputation customers 210. For example, an alert could be used to announce when a significant change in trust level has occurred. General reputation framework 202 may also include an internal interface that is configured to provide a mechanism for a server to subscribe to a reputation alert.
  • In certain embodiments, general reputation system 200 may detect sudden behavior changes of a key based on defined parameters provided by the specific application. When detected, these changes may cause the system to perform certain prescribed functions, such as providing alerts. General reputation system 200 may also be able to perform real-time reputation updates when receiving new inputs. General reputation system 200 may also provide a general mechanism by which discrete reputation categories, or trust levels, can be defined for a specific application. For example, using broad discrete levels, the categories might be “trusted,” “unknown,” and “untrustworthy.” These discrete categories may be mapped to an internal trust level, which may be defined on a continuous numeric scale. General reputation system 200 may also provide an additional level of secure access to control port commands that might output any personal user information, including commands that produce reports, as well as simple outputs to a control port.
  • General reputation system 200 may also support queries for providing historical events, trust level scores, and all contributing factors for a given key (e.g., user name). General reputation system 200 may also support queries on the reputation history for a given key, for example, to identify a timeframe during which an account was compromised. General reputation system 200 may also encrypt user names, attribute data, and event labels in the output for any queries providing a history of user events. General reputation system 200 may also include a separate offline decryption tool for decrypting any encrypted output from the system. General reputation system 200 may also provide plain text output for queries on user trust levels. General reputation system 200 may also provide an SQL-like query capability using multiple data variables as input to provide aggregate counts of how many keys meet the query. General reputation system 200 may also provide significant detailed logging as the trust level changes for a given key. When logging messages including keys, general reputation system 200 may encrypt the key value, which may be decrypted using the offline decryption tool. General reputation system 200 may also provide an operational command for deleting a specific key and its associated reputation data, as well as a capability to archive all reputation data for all keys, including deleted keys.
  • As will be described in more detail below, general reputation system 200 may be used to perform reputation creation, update, deletion, query, reporting, and alerting for any number or type of entities interacting with an electronic messaging system. Thus, as described above, general reputation system 200 may provide reputation information for any type of application or entity configured to interface with general reputation framework 202.
  • FIG. 3 depicts a block diagram of a specific instance of general reputation system 200, embodied in an exemplary anti-spam reputation system 300. Anti-spam reputation system 300 may include its own trust determination function that is specific to a given application, and any specific external interfaces to existing systems that can provide entity (key) attributes used as inputs to the trust determination function. For example, if account creation date is an input to the function and it can be retrieved from a known service using an already-existing interface, then the specific instance may include an interface for retrieval of that input.
  • In one embodiment, anti-spam reputation system 300 may include an anti-spam reputation framework 302; spam reputation-affecting event providers 304, such as spam actioning, adaptive filter training, and volume tracking systems; attribute providers 308, such as registration, seed data, and whitelist/blacklist providers; and spam detection and anti-spam actioning systems 310.
  • Anti-spam reputation framework 302 may define any internal project interfaces needed to store the results of its trust determination function as well as any specific inputs. Outputs from the trust determination function may be used for (1) more quickly detecting spam based on reports of trustworthy, reputable users only, and (2) for identifying potential sources of spam for which an action should be taken. In one embodiment, anti-spam reputation framework 302 may include interfaces configured to receive inputs form reputation-affecting event providers 304, such as spam actioning, adaptive filter training, and volume tracking systems. For example, anti-spam reputation framework 302 may receive inputs relating to various high volume behaviors (e.g., email sending, TINS reporting, etc.) as dictated by the trust determination function. Anti-spam reputation framework 302 may also include interfaces configured to receive attributes specific to the trust determination function for the anti-spam reputation framework 302 from attribute providers 308. For example, anti-spam reputation framework 302 may support new reputation seeding triggered by various events including: registration of a new member accounts, SPAM reports, and TINS reports. Anti-spam reputation framework 302 may also include interfaces configured to receive entity reputation queries from spam detection and anti-spam actioning systems 310, and send corresponding anti-spam reputation responses and alerts, as desired.
  • Any trust determination function implemented by anti-spam reputation framework 302 may incorporate any number or combination of variables as inputs, including, for example: registration attributes, such as account creation timestamp; SPAM reporting events and behavior (e.g., the number of member-submitted events in a given time period); spam report events that network spam filters agree with (and vice versa); TINS reporting events and behavior that network spam filters agree with (and vice versa); TINS report events overridden by member mail controls (and whether spam filters agreed or disagreed); email sending behavior; sent email attributes (e.g., the number of recipients per email, per hour, per day, number of emails per hour, number of mails sent to non-existent addresses, etc.); email listing behavior; email reading behavior; an instant messaging hostility score; action events on the account (e.g., image challenge); whitelist/blacklist history; mail volume data; number of mails hitting bait accounts; and feedback-loop behavior.
  • In one embodiment, the trust determination function may be defined such that it is resistant to intentional system manipulation, such as spammers deceiving the system to create “trusted” accounts that can work around the system. Similarly, the trust determination function may be defined in a manner that makes it difficult for users of unknown trust to become trusted as well. The trust determination function may also avoid falsely categorizing “good” entities as “bad” entities. Because those with a bad reputation may be acted upon, such as via a spam actioning system 310, the trust determination function may take into consideration many factors before placing a user in the “untrustworthy”, or “bad”, category. In many cases, if a user cannot be trusted, it may be more desirable to place them in the “unknown” category rather than a “bad” category, where they may be acted upon.
  • Referring now to FIG. 4, a block diagram is depicted for an exemplary top level architecture configuration of a reputation services system. Components of the architecture may include servers, databases, server-to-server interfaces, and server-to-database interfaces. As shown in FIG. 4, the exemplary architecture may generally include reputation clients 402 and a reputation service 404. Reputation clients 402 may include attribute providers 406, event providers 408, reputation clients 410, and alert subscriber clients 412, all consistent with the exemplary embodiments of the providers and clients described with respect to FIGS. 2 and 3, as well as reputation provider servers 108 and reputation client servers 110, as disclosed with respect to FIG. 1. For instance, attribute providers 406 and event providers 408 may be embodied in one or more of reputation provider servers 108 of FIG. 1. Likewise, reputation clients 410 and alert subscriber clients 412 may be embodied in one or more of reputation client servers 110. Reputation service 404 may generally include a cache complex 414, which may be embodied in a gateway server 416 and anti-spam reputation server 106; a spam reputation database 120; and a web server 428, which may be configured to operate as a query tool and report generator.
  • Gateway server 416 may include any type of gateway server configured to interact between anti-spam reputation server 106 and any outside providers and/or clients. Gateway server 416 may include a plurality of gateways 424 and an encryption/decryption library (EDL) 422, which may be configured to encrypt and decrypt keys that are passed in from the external clients. Gateway server 416 may also append the incoming service_type (e.g., spam, spim) and the key together to access the cache complex 414. For instance, if the service_type is SPAM and the key is GUID 1234567890, then EDL 422 may create the following “bat key” having both service_type and key: SPAM1234567890.
  • Encryption/Decryption Library (EDL) 422
  • Gateway server 416 may be configured to use EDL 422 to encrypt and decrypt incoming keys. An OpenSSL library, which uses EVP routines and a blowfish algorithm may be used for encryption and decryption. An interface to the EDL may be performed through two function calls (encrypt and decrypt), as follows: “encrypt (input_buf, key, iv, output_buf),” where “input_buf” is the text desired to be encrypted, “key” and “iv” are keys to use in encrypting, and “output_buf” is the returned encrypted text; and “decrypt (input_buf, key, iv, output_buf),” where “input_buf” is the encrypted text, “key” and “iv” are keys, and “output_buf” is the returned decrypted text. EDL 422 may use EVP cipher routines, which are a high level interface to certain symmetric ciphers. The public and private keys (“key” and “IV” above) may be stored in spam reputation database 120 to enable the encryption and decryption of data. The keys may be stored with start/end time periods, and new keys may be re-calculated (e.g., every month). EDL 422 may also determine which key was used to encrypt/decrypt the data based on the start/end date of the key's life and the insert time of the data record to be decrypted.
  • In addition to EDL 422, the gateways 424 may provide the following Tcl commands: RSGET_REPUTATION <service_type name> <key> <tdf id> for verifying that a key exists, and to determine if it is successfully accepting data; RS_DELETE_KEY <service_type name> <key> for deleting a reputation key and its associated reputation data; RS_GET_REPUTATION <service_type name> <key> <tdf id> for displaying a key's reputation score and confidence factor by service type; RS_GET_REPUTATION_HISTORY <service_type name> <key> for returning a history of events for service_type and key; and RS_ENCRYPTION_KEY <key value 1> <key value 2> <start date/time> <end date/time> for gateways 424 to read in a configuration file for setting the encryption keys.
  • Anti-Spam Reputation Server 106
  • Anti-spam reputation server 106 may include a trust determination function (TDF) engine 418, a reputation service mapping (RSM) engine 420, and various functions to create, update, delete, and re-synch a reputation value, based on event notifications received from clients 402 through gateways 424.
  • Trust Determination Function (TDF) Engine 418
  • As described above, the trust determination function (TDF) may be a mathematical formula that calculates a reputation score and confidence factor, of a particular user (GUID), IP address, or any other key, based on a plurality of inputs. TDF engine 418 may provide a general way to define trust functions and the variables that are input/output to the function. In one embodiment, Tcl language may be used to define the function and logic to allow for suitable maintenance and extensibility. The Tcl code may have the advantage of not needing to be recompiled to adjust trust functions. In addition, it may possible to provide multiple TDFs for each key, thereby providing context-specific reputations, whereby a key may have multiple reputation scores based on context. The multiple TDFs may be stored in memory and may produce multiple scores for each key (one score per formula). As a result, each key may have multiple TDFs associated with it in cache complex 414 and spam reputation database 120. In one embodiment, each TDF may be defined by a separate Tcl script in its own file which can be executed at runtime. The input constants needed by the script may be set in a Tcl interpreter prior to executing the TDF. A TDF version history may be kept to track when the TDF is changed. Events affecting trust scores may be buffered until one of the following conditions is met, at which point the trust score for the given key may be re-computed: e.g., a query occurs for this key; a configurable alert lag time expires for this key; or a configurable N number of events have been buffered for this key. In one embodiment, each TDF may output a score value, which may be a double-precision floating point number between 0 and 1, where 1 represents the highest score of 1.0; and each TDF may output a confidence factor, which may be a double-precision floating point number between 0 and 1, where 1 represents the highest score of 1.0.
  • Reputation Service Mapping (RSM) Engine 420
  • Reputation Service Mapping (RSM) engine 420 may be a general mapping list used by anti-spam reputation server 106 to define which input variables are needed for each particular TDF. In one embodiment, RSM engine 420 may have functions for adding, updating, and deleting service mappings and trust categories from the mapping list. The mapping list may be defined using Tcl language, which may allow for easy modification of the mapping list when new services desire to use the reputation system. RSM engine 420 may also allow for the definition of discrete reputation categories by which categories, or trust levels, can be defined for a specific application. For example, the categories “trusted,” “unknown,” and “untrustworthy” may be discrete categories which map to an internal trust level that may or may not be on a continuous numeric scale. Additionally, there may be thresholds set per service to determine which category (e.g., trusted, untrustworthy, etc.) a particular key falls into.
  • Cache Complex 414
  • Cache complex 414 may be any suitable type of general-purpose distributed memory caching system. In one embodiment, cache complex 414 may be used to manage, provide, and store reputation data to include the reputation score, confidence factor, and the input variables to TDF engine 418. Cache complex 414 may provide a general data framework in which to store data elements, including: a key, a reputation category, a reputation score, confidence factor, and a parameter list. The key may include a service type and a user-provided unique identifier. A key may be associated with any number of Type Length Value records (“TLVs”). The reputation category may be the trust level that can be defined for a specific application, such as, for example, “trusted,” “unknown,” and “untrustworthy.” The reputation score may be an integer, decimal, or percentage defining the reputation level within a given category. The parameter list may be a pointer to a list of Type Length Value (TLV) records, where “type” is an identifier or label for a piece of user data, “length” identifies the length of the data that follows, and “value” identifies the specific user data value for a given type. For instance, for service_type SPAM, the TLV may contain the input variables for the TDF that would have types such as A, B, C (equating to TINS, TIS, TIS_SPAM, for example), and the values may be the counts of those reputation event types. Thus, in some embodiments, cache complex 414 may provide the following functions of: interfacing with reputation data stored in spam reputation database 120; caching reputation data per key for each reputation service type; retrieving reputation data from a persistent storage system in the event of a cache miss; handling reputation data “get” requests and returning data to the requestor; and updating both the cache and the persistent storage system (spam reputation database 120) on an update.
  • Spam Reputation Database 120
  • Spam reputation database 120 may include any suitable type of physical, persistent data storage system, such as a Sybase or MySQL database, which may be provided in communication with anti-spam reputation server 106 and web server 428. Spam reputation database 120 may be configured to store reputation records created and/or updated by server 106. In one embodiment, the data structures stored in spam reputation database 120 may match those stored in cache complex 414, but may be broken out into separate physical database tables. For example, the key, reputation category, reputation score, and confidence factor, may be stored in a REPUTATION_SPAM table, whereas the TDF input variables, or training event counts for the service type SPAM, may be stored in a REPUTATION_VAR_SPAM table. Finally, a REPUTATIONHIST_SPAM table, whose data may not be cached, may store the raw event data that arrived from the various reputation event providers. In one embodiment, the REPUTATION_SPAM database containing the calculated score may be needed to (1) allow for efficient SQL-like queries on scores (thus avoiding a computation for every key), and (2) allow for simplified potential sharing of reputation information with other applications or entities. The table definitions may provide an efficient and general data framework in which to store data, utilizing keyValue, tagValue, and dataValue fields. For instance, the table definition for the reputation_spam table may contain a dataValue field which may be of double format to allow double-precision floating point values to be stored there for the reputation score and confidence factor; or the table definition for the reputation_var_spam table may contain a dataValue field which may be of integer format for input variables, since different services may have different numeric input variable formats for their TDF formulas. Furthermore, for the reputation_hist_spam table, the table may contain a varbinary field which allows for different data types to be stored. Allowing for different data types to be stored in the field may make the service more general. However, since the field is varbinary, a SQL “convert” function may be desired to convert numeric (integer and float) values to Hex, which may be stored in the varbinary field. For example, on an insert of a member named, John Smith, whose GUID is some number that when encrypted equals 1234567890, a reputation score may be converted to binary using, for example, a numeric precision of 5 and scale of 2 (which can support a number such as 0.67, or 100.00 for a score), as follows: insert into reputation_hist_spam (keyValue, tagValue, dataValue) VALUES (1234567890,2, convert(binary,convert(numeric(5,2), 0.67))); (where the 2 in the tagValue is the id for “trusted”).
  • FIG. 5 depicts a block diagram of an exemplary embodiment of the architecture of the anti-spam reputation service. As described above with respect to FIG. 4, the system may include a plurality of attribute providers 406, reputation event providers 408, reputation clients 410, and alert subscriber clients 412, all in communication with gateway server 416 of the cache complex 414. As shown now in FIG. 5, the attribute providers 406 may include a mailbox server 502 and an anti-spam seed server 504. The event providers 408 may include a volume server 506, a personal adaptive filter training (PAFT) complex 508, a spam actioning complex 510, and any other event provider 512. The reputation clients 410 may include a seed server 514, a spam collective server (SCOLL) 516, and a shared adaptive filter training (SAFT) system 518, among any other filters or spam systems.
  • Mailbox Server 502
  • Mailbox server 502 may be configured to communicate with gateways 424 of anti-spam reputation server 106, for providing mail behavior events and mailbox cancel alerts. For example, when a user subscribes to or cancels a mailbox, mailbox server 502 may be configured to send an event to anti-spam seed server 504, which may then send an RS_DELETE_KEY request to anti-spam reputation server 106.
  • Anti-Spam Seed Server 504
  • Anti-spam seed server 504 may be supplied with attribute information and seed data from, for example, a seed reputation database 520, a registration system 522, and/or a whitelist/blacklist database 524. In one embodiment, anti-spam seed server 504 may be a new server configured to handle spam-specific data gathering in order to create new spam reputations or to delete spam reputations. As will be described in more detail below, there may be at least three exemplary ways to initiate the creation of a reputation: (1) via a Tcl command from anti-spam seed server 504; (2) from a specified number of events of a given type; or (3) from incoming CREATE or UPDATE events with a “create_if_not_exists” flag. As a result, anti-spam seed server 504 may have a Tcl command configured to read in a configuration file of reputation keys to create (e.g., member GUIDs to create). Anti-spam seed server 504 may also be able to create a reputation based on a specified number of events of a given type. The number of events of a given type may be set in volume server 506, and an alert may be sent to anti-spam seed server 504 when the threshold is hit. This alert may cause anti-spam seed server 504 to send an RS_CREATE_KEY request to gateway server 416. Anti-spam seed server 504 may be able to obtain seed data for creating new reputations from one or more of the following sources: Td configuration files; account creation dates from registration system 522; an IP address from a member's registration; audio or image challenges from registration; and a number of failures for audio or image challenges on registration. In one embodiment, anti-spam seed server 504 may be able to receive cancel reputation events from the mailbox service 502. In one embodiment, anti-spam seed server 504 may be configured to provide an initial reputation score and confidence factor to be seeded. Such an initial seed reputation score and confidence factor, which may be sent via a create event, may then be used in a TDF formula as an “old score” variable, and “old confidence factor”.
  • Volume Server 506
  • Volume server 506 may include any suitable type of server that is configured to trigger alerts to anti-spam seed server 504 for reputation creation, when a number of events reaches a predetermined threshold. Volume server bridge 507 may accept volume server alerts and trigger a CREATE event notifications that may be sent to gateways 424. Such CREATE event notifications may have the “seed_data_provided” flag set to FALSE. Volume server 506 may be configured to send such event notifications and alerts to volume server bridge 507. Volume server bridge 507 may also be able to handle UPDATE events from volume server 506. Such UPDATE events may have the “create_if_not_exists” flag set to YES.
  • Personal Adaptive Filter Training (PAFT) Complex 508
  • PAFT complex 508 may be configured to communicate with a spam agreement server (SAGS) 509 for correlating event signatures to known spam signatures. Thus, PAFT complex 508 may be configured to send an RS_ADD_EVENT to gateways 424 via SAGS 509 for training events; and send a TINS or TIS event type along with the RS_ADD_EVENT. For a TINS or TIS event type, there may be multiple tags in the Tag Length Value (TLV) fields of the RS_ADD_EVENT request. SAGS 509 may be configured to correlate incoming event signatures from PAFT complex 508 with a known spam signature list, and based on the correlation, to determine whether the event is of the type TINS, TINS_SPAM, TIS, TIS_SPAM, or TIS_NOT_SPAM, and to modify an event tag accordingly before sending it to gateways 424. In particular, SAGS 509 may be configured to receive a spam signature list through a Tcl port command. When an incoming event arrives from PAFT 508, SAGS 509 may extract the signature and check it against the signature list, update the event type in the RS_ADD_EVENT based on the signature correlation, and send the event to one of the gateways 424.
  • Spam Actioning Server 510
  • Spam actioning server 510 may be configured to interact with gateways 424 of anti-spam reputation server 106, for providing actioning events and for querying reputations. For example, spam actioning server 510 may be configured to detect spamming, and then query anti-spam reputation server 106 to determine whether a user email account should be acted upon. If action is desired, spam actioning server 510 may be configured to suspend an account, permanently terminate an account, scramble the password for the account, etc. For example, spam actioning server 510 may interact with an e-mail server, such as the email server 104 depicted in FIG. 1.
  • Event Provider 512 & Seed Server 514
  • Event provider 512 may be any type of server that is disposed in communication with an electronic messaging or communications system, and configured to generate event notifications. Seed server 514 may be any type of server configured to obtain seed data from an external source, based on alerts created by event provider 512. The event provider 512 may be configured to send a seed request directly to its own “seed server” to have the seed server initiate the Create event notification, as depicted by the dashed lines between the “any event provider” 512 and “seed server” 514. Thus, any event provider 512 may send a CREATE event notification without seed data included to seed server 514, which may obtain seed data from any external source.
  • SCOLL Complex 516
  • Spam collective (“SCOLL”) complex 516 may be configured to interface with gateways 424 of anti-spam reputation server 106 for querying reputation data. SCOLL complex 516 may be configured to query the reputation system for each email recipient and log whether they are trustworthy vs. untrustworthy. For instance, SCOLL complex 516 may be configured to send an RS_GET_REPUTATION request to one of the gateways, and receive a RS_GET_REPUTATION_RESPONSE message containing the reputation category (e.g., Trusted, Untrusted, Unknown), the reputation score for the key (e.g., member GUID or IP address), the confidence factor for the reputation, and the TDF ID.
  • SAFT System 518
  • SAFT system 518 may be configured to interface with one of the gateways 424 of anti-spam reputation server 106, for querying reputation data to assist in determine whether training events should be used in training or not. Thus, SAFT system 518 may be a client system configured to benefit from reputation data that is created, updated, and stored by anti-spam reputation server 106.
  • Alert Subscribers 412
  • In one embodiment, alert subscribers 412 may be able to subscribe to alerts created by anti-spam reputation server 106. Anti-spam reputation server 106 may be able detect changes in the trust level for a key, and be able to log the change. For instance, if the trust level changes from the discrete category “trusted” to “untrustworthy”, anti-spam reputation server 106 may generate a report, or alert, to be sent to alert subscribers 412. In one embodiment, anti-spam reputation server 106 may provide an alert subscription function that allows for the adding/updating of subscriptions to alerts, and send alerts to those client systems that have subscribed.
  • Web Server 428
  • Web server 428 may be any suitable type of web server having a GUI and report generation capability configured to allow users to query the data, and report on the data. Web server 428 may be configured to interface with spam reputation database 120 to send queries and receive data. Web server 428 may also be configured to utilize the data encryption/decryption tool 422, as shown in FIG. 4, to decrypt data. In one embodiment, web server 428 may be an Apache server with a GUI front end. Thus, upon receipt of a query for the reputation score and confidence factor for a key, the key may not need to be encrypted.
  • For example, if it is desired to display the reputation level and score for key=John Smith, the GUI tool of web server 428 may call the EDL, encrypt the key, and then query the database for: REPUTATION_SPAM, which may return all the fields in the key's reputation record, such as, key, trust level ID, and trust score. In one embodiment, the GUI tool displays the reputation score as a double-precision floating point number and the confidence factor as a double-precision floating point number to the user. To display the input variables to the TDF formula for key=John Smith, the GUI tool may call the EDL, encrypt the key, and then query the database for REPUTATION_VAR_SPAM, which may return the reputation variables and their values that are input into the TDF. In one embodiment, the GUI tool displays as integers the static variables that went into the formula (e.g., alpha, beta scores).
  • Aggregate Reputation Service 550
  • Aggregate reputation service 550 may be configured to combine trust levels from different contexts to produce one aggregate trust level for a given key. Thus, aggregate reputation service 550 may allow other applications to reap the benefit of some trust information without providing its own trust determination function. As shown in FIG. 5, aggregate reputation service 550 may include an aggregate reputation score 552, which is calculated based on an aggregate formula 554, which receives inputs from a plurality of reputations systems, such as spim reputation complex 555 and spam reputation complex 560. In one embodiment, aggregate reputation service 550 may be configured to query each service type's complex to obtain key reputation scores and confidence factors and combine them using formula 554 to obtain aggregate reputation score and confidence factor 552. Aggregate reputation score and confidence factor 552 may then be used in any type of spam actioning system, alert system, and/or reporting system.
  • Exemplary Methods
  • In one embodiment, the systems described in FIGS. 1-5 may be used to perform a method of creating and updating reputation records, for use in managing electronic communications and messaging systems, such as e-mail and instant messaging systems. In one exemplary embodiment, the method may include six major functions: (1) reputation creation, which uses an application-specific trust determination function to create a reputation for a new key; (2) reputation update, which uses an application-specific trust determination function to update and maintain a key's reputation based on external inputs; (3) reputation query response, which handles external queries and provides a response that can include reputation information at the individual key level and/or the aggregate level; (4) reputation alerts, which provide the ability to alert subscribing servers that desire to be notified when there is a significant change in trust level for a given key; (5) reputation reports, which respond to queries or automated schedules with reputation reports at either the individual key level or the aggregate level; and (6) reputation deletion, which can either use an operation command or an application-specific trust determination function for defining when to delete a reputation record.
  • Exemplary Method: Reputation Creation
  • In one embodiment, there may be four ways to initiate the creation of a reputation record: (1) from a Tcl command in the anti-spam seed server; (2) from a specified number of events of a given type; (3) from incoming CREATE events with a “seed_data_provided” flag set; or (4) from incoming UPDATE events with a “create_if_not_exists” flag set.
  • If a Tcl command from anti-spam seed server 504 causes a CREATE event notification to be sent to anti-spam reputation server 106 (1st way), the Tcl command may specify a list of keys to create (e.g., from a whitelist/blacklist 524, registration system 522, etc.). The Tcl command may read in a list of keys and associated data, and send CREATE event notifications to the gateways 424 via a messaging interface. The CREATE event notification may have a “seed_data_provided” flag set to TRUE. The event notification may also allow for an initial score to be seeded. The gateway may process the event notification, extract the key, and encrypt the key. The encrypted key, along with other data associated with the event, may then be sent from the gateway to the anti-spam reputation server (ASRS) 106, where the server determines whether the reputation record already exists or not. If the record does not exist, any initial seed trust score and seed confidence factor may be used to create the reputation. Otherwise, the trust determination function (TDF) engine 418 may be called to calculate the reputation score and confidence factor. A reputation record having the reputation score, confidence factor, and key may then be created in cache and in the database (if it already exists, and this is a duplicate create event, an error may be returned). Additionally, for purposes of fighting spam, an initial set of keys may be seeded along with their training event counts. As a result, anti-spam seed server 504 may first send a create event to the anti-spam reputation server 106, followed by update events with the training event counts for the key created.
  • If a specified number of events of a given type triggers reputation creation (2nd way), volume server (VS) 506 may send an alert to VS bridge 507. VS bridge 507 may send a CREATE event notification to gateways 424. The CREATE event notification may have a “seed_data_provided” flag set to FALSE. The gateway may process the event notification, extract the key, and encrypt the key. The encrypted key, along with other data in the event, may then be sent from the gateway to the anti-spam reputation server (ASRS) 106, where the server determines whether the reputation already exists or not. If the reputation already exists, and this is a duplicate create event, an error may be returned. If the reputation does not already exist, then the server may check the “seed_data_provided” flag, which is set to FALSE, and then send a seed request off to anti-spam seed server 504. Anti-spam seed server 504 may obtain the desired seed data from external sources, such as registration system 522 and configuration seed files 520, and send a CREATE event notification, with the “seed_data_provided” flag set to TRUE, back to one of the gateways 424. The gateway may process the event notification, extract the key, and encrypt the key. The encrypted key, along with other data in the event, may then be sent from the gateway to the anti-spam reputation server 106, where the server may then use the event to create a new reputation. The Trust Determination Function (TDF) engine 418 may be called to calculate the reputation score and confidence factor and the reputation record may be created in cache and in spam reputation database 120 (if it already exists, and this is a duplicate create event, an error may be returned).
  • If reputation creation is initiated by an incoming CREATE event with a “seed_data_provided” flag set to FALSE (3rd way), the event may be sent from the external event provider 512 to one of the gateways 424. The gateway may process the event notification, extract the key, and encrypt the key. The encrypted key, along with other data in the event, may then be sent from the gateway to anti-spam reputation server 106, where the server determines whether the reputation already exists or not. If it already exists, and this is a duplicate create event, an error may be returned. If the reputation does not already exist, then the server may check the “seed_data_provided” flag, which is set to FALSE, and then send a seed request off to anti-spam seed server 504. Anti-spam seed server 504 may obtain the seed data, and send it back to one of the gateways in a CREATE event notification, with the “seed_data_provided” flag set to TRUE. The gateway may process the event notification, extract the key, and encrypt the key. The encrypted key, along with other data in the event notification, may then be sent from the gateway to anti-spam reputation server (ASRS) 106, where the server may use the event to create a new reputation, which is stored in cache and spam reputation database 120.
  • If reputation creation is initiated by an incoming CREATE event with a “seed_data_provided” flag set to TRUE (alt. 3rd way), the event may be sent from the external event provider 512 to one of the gateways 424. The gateway may process the event notification, extract the key, and encrypt the key. The encrypted key, along with other data in the event, may then be sent from the gateway to the anti-spam reputation server (ASRS) 106, where the server determines whether the reputation already exists or not. If it already exists, and this is a duplicate create event, an error may be returned. It the reputation does not already exist, then the server may check the “seed_data_provided” flag, which is set to TRUE, and then call the Trust Determination Function (TDF) engine 418 to calculate the reputation score and confidence factor. The resulting reputation record, including reputation score, confidence factor, and key, may be stored in cache and in the spam reputation database 120.
  • The ability for any event provider 512 to send a CREATE event notification with seed data included may allow other clients of the reputation service to bypass the need for a specific “Seed Server,” such as anti-spam seed server 504. In other words, an anti-spam client may use anti-spam seed server 504 to gather seed data from different, external sources and thus benefit from its use; however, other reputation clients may have all the seed data available locally and may not need a separate “Seed Sever” to send seed data with an initial CREATE event notification.
  • If reputation creation is initiated by an incoming UPDATE event with a “create_if_not_exists” flag set to TRUE, the event notification may be sent to one of the gateways 424. For example, an external event provider 512, such as PAFT 508, may have sent an event notification with a flag set that instructs anti-spam reputation server 106 to create a reputation record if one does not already exist. If the event notification is sent from PAFT 508, it may first go through SAGS 509 to correlate the event's signature to a list of known SPAM signatures. The gateway may process the event notification, extract the key, and encrypt the key. The encrypted key, along with other data in the event, may then be sent from the gateway to the anti-spam reputation server 106, where the server may determine whether the reputation record already exists or not. If it already exists, then the reputation record may be updated, by calling trust determination function (TDF) engine 418 and passing desired input variables for the formula, according to maps provided by RSM 420. TDF 418 may then calculate a reputation score and confidence factor, and return the score to ASRS 106, which may store the new reputation score and confidence factor in spam reputation database 120 for that key. If the record does not exist, then a new reputation may need to be created, by sending a seed request from ASRS 106 to anti-spam seed server 504. Anti-spam seed server 504 may obtain the seed data and return it to a gateway 424 of ASRS 106 in a CREATE event notification, with the “seed_data_provided” flag set to TRUE. The gateway may process the event notification, extract the key, and encrypt the key. The encrypted key, along with other data in the event, may then be sent from the gateway to ASRS 106, where the server may then use the event to create a new reputation. In particular, ASRS 106 may call TDF engine 418 and pass in the desired input variables for the formula, as defined by RSM engine 420. TDF engine 418 may calculate the reputation score and confidence factor and return the score to ASRS 106, which may then store the new reputation score and confidence factor in spam reputation database 120 for that key.
  • In the case of spam fighting, PAFT 508 may send UPDATE events to the gateways 424 of ASRS 106 with the “create_if_not_exists” flag set to TRUE, which causes ASRS 106 to trigger the seeding of the reputation via a message sent to the seed server 514. However, the architecture may also allow for any event provider to send an UPDATE event with the “create_if_not_exists” set to FALSE, and in the case where the ASRS does not find a record to update, it may return an error back to the event provider with a record-not-found error. The event provider may then send a seed request directly to its own “seed server” to have the seed server initiate the Create event notification, as depicted by the dashed lines between the “any event provider” 512 and “seed server” 514.
  • Exemplary Method: Reputation Update
  • If an UPDATE event notification, such as a PAFT training event, is sent from PAFT complex 508 to SAGS 509, SAGS 509 may determine the type of event, e.g. TINS, TINS_SPAM, TIS, TIS_SPAM, or TIS_NOT_SPAM, based on a list of signatures available to SAGS 509. SAGS 509 may then send an UPDATE event to one of the gateways 424. The gateway may process the event notification, extract the key, and encrypt the key. Anti-spam reputation server 106 may store the event that arrived from PAFT complex 508 in an event history table, and the event count may be incremented in an event count table. Anti-spam reputation server 106 may then query all the events for the key, and send the events and other input variables (input variables may be determined by checking RSM engine 420) to TDF engine 418 for re-calculating the key's reputation score and confidence factor. TDF engine 418 may then return the re-calculated reputation score and confidence factor to anti-spam reputation server 106 and store it in spam reputation database 120. In one embodiment, update events affecting reputation scores may be buffered until one of the following conditions is met, at which point the reputation score for the given key is re-computed: a query occurs for this key, a configurable alert lag time expires for this key, or a configurable N number of events have been buffered for this key.
  • Exemplary Method: Reputation Query/Response
  • In certain embodiments, reputation consumers, customers, or client may send a query (e.g., a “get reputation” request), to one of the gateways 424. The gateway may processes the incoming query, extract the key, and encrypt the key. The encrypted key may then be sent from the gateway to anti-spam reputation server 106. Anti-spam reputation server 106 may look-up the encrypted key in cache complex 414 and return the query results to the gateway, which decrypts the key, and sends it back to the reputation client, along with the reputation category (e.g., trusted, untrusted), the reputation score, the confidence factor, and the TDF ID.
  • Exemplary Method: Reputation Alerts
  • After a reputation update, anti-spam reputation server 106 may be configured to detect a change in the trust level, for that user. Anti-spam reputation server 106 may log this change and provide an alert to various systems that may have subscribed to such alerts. Such an alert may then be sent thru the gateway to decrypt the key. In one embodiment, an alert subscription function of anti-spam reputation server 106 may allow for the adding/updating of alert subscriptions.
  • Exemplary Method: Reputation Reports
  • Reputation reports may be generated as requested by an administrator using web server 428. For example, an operations administrator of an electronic communications system may make a request via a control port on one of the gateways 424 or web server 428 for a reputation report to be produced. The produced report may be output in encrypted format for the member's event history, and decrypted format for the member's reputation score.
  • Exemplary Method: Reputation Deletion
  • As described in more detail above, mailbox service 502 may be configured to provide alerts on a mailbox cancel. The mailbox cancel alert may then trigger a reputation delete. As a result, anti-spam reputation server 106 may be configured to delete the reputation from cache complex 414 and from spam reputation database 120.
  • In one embodiment, a Web API may be provided to allow HTTP Get and Post requests to interface with gateway server 416. For example, an HTTP Get request may be provided directly to the gateway server, with the Post occurring thru the Event Notification System (ENS) 513. In another embodiment, an HTTP Post may go directly to the gateway server 416.
  • FIG. 6 illustrates an exemplary embodiment of a method 600 for creating and updating reputation records, each reputation record including a reputation score, confidence factor, and a unique reputation key. According to the method, at least one incoming event notification, including an indexing reputation key, may be received from an event provider 408 (Step 610). Based on the indexing reputation key, it may be determined whether a corresponding reputation record exists in either cache complex 414 or spam reputation database 120 (Step 620). If the corresponding reputation record exists (Step 630, Yes), the reputation score and confidence factor may be updated using TDF engine 418, based on the at least one incoming event notification and a trust determination function (Step 660). If the corresponding reputation record does not exist (Step 630, No), a new reputation record, including a default reputation score, and default confidence factor, may be created by ASRS 106 (Step 640). When the new reputation record is created, the default reputation score and confidence factor may be stored as the reputation score and confidence factor and the indexing reputation key may be stored as the unique reputation key (Step 650). Finally, after the new reputations record is created, the reputation score and confidence factor may be updated based on the at least one incoming event notification and a trust determination function (Step 660). The new reputation record may then be stored in both the cache complex 414 and the spam reputation database 120 (Step 670). One or more of the reputation client servers 110 and email servers 104 may perform filtering of email messages sent by an entity, based on a reputation score stored in a reputation record associated with the entity's reputation key (Step 680). In one embodiment, an email service provider (“ESP”) may perform each step of method 600. Alternatively, an ESP may perform all or part of method 600 in combination with a third party company.
  • Following the creation or update of a reputation trust score, reputation alerts may be automatically provided to a subscriber or requestor. Spam may be filtered based on the calculated reputation trust score. Suspected spammers may be sanctioned based on the calculated reputation score. The default reputation score and confidence factor may be a pre-determined static value previously stored by the reputation server.
  • FIG. 7 depicts an exemplary embodiment of a table 700 containing a plurality of reputation records, each reputation record extending along a horizontal row of the table. Thus, as shown in FIG. 7 and described above, each reputation record may include a reputation key, a reputation category, a reputation score, a confidence factor, and a TDF ID. As described in more detail above, each reputation key may be a unique identification for each entity, such as GUID, IP address, etc. Each reputation category may define a general type of reputation, such as trusted, untrusted, or unknown trust. Each reputation score and confidence factor may be a number ranging from 0 to 1. Each TDF ID may be an integer or any other identifier that points to particular TDF to use in relation to the entity. FIG. 7 depicts only one exemplary embodiments of a way to store a reputation record table. Reputation records may be displayed and stored in any other way, such as a text file or any other data file, individually or in groups.
  • The above-disclosed systems and methods may be used to perform any number or combination of spam fighting techniques, as will be described below. In one embodiment, the present systems and methods may be used to determine the likelihood that a given user will send spam. For example, the system may be used to identify users that may be spamming or not spamming. For example, if a user has just sent 200 emails, which triggers rate limiting and a spam actioning event, the spam actioning system may check the user's reputation and determine this is a “trusted” user. In this case, the user may not be actioned, and the spam actioning system may allow this user to continue sending two to three times the normal amount of mail before actioning the account. Additionally, the different actioning system actions, such as scrambling the password for the account, blocking the account, etc., could be tied to the trust level of the user (e.g., more lenient action taken on a reliable user).
  • In another embodiment, the present systems and methods may be used to determine the likelihood that a given user account has been compromised and used for spamming. For example, the present systems and methods may be used to determine whether an account has been compromised, or if an account has been set up just for spamming. For example, if a spam actioning system detects a user spamming, but a query of the reputation system reveals the user has been reliable for a predefined period of time, it may be presumed that the account has been compromised. Alternatively, a query of the reputation system may reveal the account has only been used for spamming. Moreover, the reputation alert system may detect a drastic change in the user's reputation trust score and level, and an alert may be sent to the spam actioning system to action the account.
  • In another embodiment, the reputation system may be used to improve spam detection and bulk-mailer scrubbing by using trusted and untrusted email recipient ratios. In particular, the reputation system may be used to further improve spam detection by determining for each incoming mail, how many recipients are trustworthy vs. untrustworthy users. This information can be used to help determine if a given email is spam. For example, SCOLL complex 516 may query the reputation system for each email recipient and log whether they are trustworthy vs. untrustworthy, and store the counts in a table that can be used to write spam detection rules. This data may also be used to help scrub white list of bulk mailers. The TDF formula may also be revised to replace the input variables, such as TINS and TIS, with events that are more relevant to a scenario in which the reputation entity is an IP address.
  • In another embodiment, the reputation system may be used to improve the identification of incorrectly deposited email based on trusted user reports. For example, the reputation system may be used to help determine how many reports of spam come from trustworthy users vs. untrustworthy users for an entity (or key), and how many reports of this-is-not-spam come from trustworthy users vs. untrustworthy users, and then use that information for more quickly identifying actual spam being delivered through system, as well as good mail falsely spam-foldered. In some embodiments, this information may then be used to put corrective measures in place.
  • In another embodiment, the reputation system may be used to identify groups of users with similar reporting patterns. For example, there may be a group of individuals that only reports a certain type of spam and no other type of spam. The methods may further include taking the set of all trusted users and breaking them into groups based on their reporting patterns. The method may further include taking samples of those users' mail reported and use that set to train a “group” focused filter. For this capability, an off-line tool may be used to query the reputation system for data and then group and correlate the data to come up with the grouping of similar patterns. Then the tool may be used to gather samples of those reporting events from the group for the purpose of training a spam filter.
  • In this manner, the systems and methods disclosed herein may be configured to perform filtering of electronic messages to reduce spam and/or spam campaigns. In addition, the systems and methods disclosed herein may be configured to determine a level of confidence to associate with a user report to improve the reliability of a spam filtering system, which, in turn, improves performance and reduces costs.
  • It will be apparent to those skilled in the art that various modifications and variations can be made in the system and method for reception in communication networks. It is intended that the standard and examples be considered as exemplary only, with a true scope of the disclosed embodiments being indicated by the following claims and their equivalents.

Claims (21)

1.-20. (canceled)
21. A computer-implemented method for filtering electronic messages, the method comprising the following operations performed by at least one processor:
calculating a reputation score for a reputation key assigned to an entity based on a trust determination function and a received event notification, the trust determination function comprising a function for calculating the reputation score; and
filtering one or more electronic messages associated with the reputation key based on the calculated reputation score.
22. The method of claim 21, wherein calculating a reputation score for the reputation key includes calculating reputation scores associated with different types of messaging systems.
23. The method of claim 22, further comprising:
combining the reputation scores associated with the different types of messaging systems to determine an aggregate reputation score for the reputation key.
24. The method of claim 23, wherein combining the reputation scores associated with the different types of messaging systems to determine the aggregate reputation score includes calculating the aggregate reputation score based on an aggregate score function.
25. The method of claim 22, further comprising:
calculating the reputation scores associated with the different types of messaging systems based on trust determination functions associated with the different types of messaging systems, each trust determination function associated with a messaging system comprising a function for calculating a reputation score associated with the messaging system.
26. The method of claim 21, wherein filtering one or more electronic messages based on the calculated reputation score includes blocking, suspending, or scrambling a password associated with an account associated with the reputation key.
27. The method of claim 21, further comprising:
assigning a reputation category to the reputation key based on the calculated reputation score; and
filtering one or more electronic messages based on the assigned reputation category.
28. The method of claim 27, wherein the reputation category is selected among a plurality of discrete reputation categories, each of the plurality of discrete reputation categories determined based on reputation score thresholds.
29. The method of claim 21, further comprising:
determining whether a reputation score has been assigned to the reputation key; and
updating, when it is determined that a reputation score assigned to the reputation key, the assigned reputation score based on the calculated reputation score.
30. The method of claim 29, further comprising:
providing an alert to a reputation alert subscriber, the alert indicating that the reputation score assigned to the reputation key has been updated.
31. An apparatus, comprising:
a storage device that stores a program; and
at least one processor coupled to the storage device, the at least one processor being operative with the program to:
calculate a reputation score for a reputation key assigned to an entity based on a trust determination function and a received event notification, the trust determination function comprising a function for calculating the reputation score; and
filter one or more electronic messages associated with the reputation key based on the calculated reputation score.
32. The apparatus of claim 31, wherein the at least one processor is further configured to:
calculate, for the reputation key, reputation scores associated with different types of messaging systems.
33. The apparatus of claim 32, wherein the at least one processor is further configured to:
combine the reputation scores associated with different types of messaging systems to determine an aggregate reputation score for the reputation key.
34. The apparatus of claim 33, wherein the at least one processor is further configured to:
calculate the aggregate reputation score based on an aggregate score function.
35. The apparatus of claim 32, wherein the at least one processor is further configured to:
calculate the reputation scores associated with different types of messaging systems based on trust determination functions associated with the different types of messaging systems, each trust determination function associated with a reputation system comprising a function for calculating a reputation score associated with the messaging system.
36. The apparatus of claim 31, wherein the at least one processor is further configured to:
block, suspend, or scramble a password associated with an account associated with the reputation key.
37. The apparatus of claim 31, wherein the at least one processor is further configured to:
assign a reputation category to the reputation key based on the calculated reputation score; and
filter one or more electronic messages based on the assigned reputation category.
38. The apparatus of claim 31, wherein the at least one processor is further configured to:
determine whether a reputation score has been assigned to the reputation key; and
update, when it is determined that a reputation score assigned to the reputation key, the assigned reputation score based on the calculated reputation score.
39. The apparatus of claim 38, wherein the at least one processor is further configured to:
provide an alert to a reputation alert subscriber, the alert indicating that the reputation score assigned to the reputation key has been updated.
40. A tangible, non-transitory computer readable medium storing instructions that, when executed by at least one processor, cause the at least one processor to perform a method, comprising:
calculating a reputation score for a reputation key assigned to an entity based on a trust determination function and a received event notification, the trust determination function comprising a function for calculating the reputation score; and
filtering one or more electronic messages associated with the reputation key based on the calculated reputation score.
US14/847,490 2008-09-30 2015-09-08 Systems and methods for creating and updating reputation records Abandoned US20150381540A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/847,490 US20150381540A1 (en) 2008-09-30 2015-09-08 Systems and methods for creating and updating reputation records

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13675308P 2008-09-30 2008-09-30
US12/570,998 US8321516B2 (en) 2008-09-30 2009-09-30 Systems and methods for creating and updating reputation records
US13/620,409 US9160568B2 (en) 2008-09-30 2012-09-14 Systems and methods for creating and updating reputation records
US14/847,490 US20150381540A1 (en) 2008-09-30 2015-09-08 Systems and methods for creating and updating reputation records

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US13/620,409 Continuation US9160568B2 (en) 2008-09-30 2012-09-14 Systems and methods for creating and updating reputation records

Publications (1)

Publication Number Publication Date
US20150381540A1 true US20150381540A1 (en) 2015-12-31

Family

ID=42132813

Family Applications (3)

Application Number Title Priority Date Filing Date
US12/570,998 Active 2030-10-03 US8321516B2 (en) 2008-09-30 2009-09-30 Systems and methods for creating and updating reputation records
US13/620,409 Active 2030-01-02 US9160568B2 (en) 2008-09-30 2012-09-14 Systems and methods for creating and updating reputation records
US14/847,490 Abandoned US20150381540A1 (en) 2008-09-30 2015-09-08 Systems and methods for creating and updating reputation records

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US12/570,998 Active 2030-10-03 US8321516B2 (en) 2008-09-30 2009-09-30 Systems and methods for creating and updating reputation records
US13/620,409 Active 2030-01-02 US9160568B2 (en) 2008-09-30 2012-09-14 Systems and methods for creating and updating reputation records

Country Status (1)

Country Link
US (3) US8321516B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150088913A1 (en) * 2013-09-26 2015-03-26 International Business Machines Corporation Determining Criticality of a SQL Statement
US20160065518A1 (en) * 2012-01-13 2016-03-03 International Business Machines Corporation Transmittal of blocked message notification

Families Citing this family (110)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU7072900A (en) 1999-08-24 2001-03-19 Elance, Inc. Method and apparatus for an electronic marketplace for services having a collaborative workspace
US20060015942A1 (en) 2002-03-08 2006-01-19 Ciphertrust, Inc. Systems and methods for classification of messaging entities
US8561167B2 (en) 2002-03-08 2013-10-15 Mcafee, Inc. Web reputation scoring
US8578480B2 (en) 2002-03-08 2013-11-05 Mcafee, Inc. Systems and methods for identifying potentially malicious messages
US8635690B2 (en) 2004-11-05 2014-01-21 Mcafee, Inc. Reputation based message processing
US7779156B2 (en) * 2007-01-24 2010-08-17 Mcafee, Inc. Reputation based load balancing
US8214497B2 (en) 2007-01-24 2012-07-03 Mcafee, Inc. Multi-dimensional reputation scoring
US8763114B2 (en) 2007-01-24 2014-06-24 Mcafee, Inc. Detecting image spam
US10121153B1 (en) 2007-10-15 2018-11-06 Elance, Inc. Online escrow service
US8185930B2 (en) 2007-11-06 2012-05-22 Mcafee, Inc. Adjusting filter or classification control settings
US8589503B2 (en) 2008-04-04 2013-11-19 Mcafee, Inc. Prioritizing network traffic
US8825769B2 (en) * 2008-06-30 2014-09-02 Aol Inc. Systems and methods for reporter-based filtering of electronic communications and messages
US8700614B1 (en) * 2008-10-14 2014-04-15 Elance, Inc. Method of and a system for ranking members within a services exchange medium
US8380709B1 (en) 2008-10-14 2013-02-19 Elance, Inc. Method and system for ranking users
US8601547B1 (en) 2008-12-29 2013-12-03 Google Inc. Cookie-based detection of spam account generation
US8266158B2 (en) * 2009-01-30 2012-09-11 Yahoo! Inc. Systems and methods for calculating a just-in-time reputation score
US8255468B2 (en) * 2009-02-11 2012-08-28 Microsoft Corporation Email management based on user behavior
US8631080B2 (en) * 2009-03-12 2014-01-14 Microsoft Corporation Email characterization
US20100250949A1 (en) * 2009-03-31 2010-09-30 Torino Maria E Generation, requesting, and/or reception, at least in part, of token
US8650245B1 (en) * 2009-04-22 2014-02-11 Symantec Corporation Systems and methods for providing adaptive views of domain name system reputation data
US10650332B1 (en) 2009-06-01 2020-05-12 Elance, Inc. Buyer-provider matching algorithm
US20100318614A1 (en) * 2009-06-12 2010-12-16 Sager Florian Clemens Displaying User Profile and Reputation with a Communication Message
US8943211B2 (en) * 2009-07-02 2015-01-27 Microsoft Corporation Reputation mashup
US8856525B2 (en) * 2009-08-13 2014-10-07 Michael Gregor Kaplan Authentication of email servers and personal computers
US8412847B2 (en) * 2009-11-02 2013-04-02 Demandbase, Inc. Mapping network addresses to organizations
US9842312B1 (en) 2010-02-19 2017-12-12 Upwork Global Inc. Digital workroom
GB201004397D0 (en) * 2010-03-16 2010-04-28 Yates Andrew S A system and method for assessing a distributor of correspondence
US8621638B2 (en) * 2010-05-14 2013-12-31 Mcafee, Inc. Systems and methods for classification of messaging entities
US8966620B2 (en) * 2010-05-27 2015-02-24 Microsoft Technology Licensing, Llc Campaign detection
US9749176B2 (en) * 2010-06-29 2017-08-29 Nokia Technologies Oy Systems, methods, and apparatuses for providing adaptive user notifications
US8781984B2 (en) * 2010-08-05 2014-07-15 Ben Schreiner Techniques for generating a trustworthiness score in an online environment
US9253199B2 (en) * 2010-09-09 2016-02-02 Red Hat, Inc. Verifying authenticity of a sender of an electronic message sent to a recipient using message salt
US20130218999A1 (en) * 2010-12-01 2013-08-22 John Martin Electronic message response and remediation system and method
EP2490383B1 (en) * 2011-02-11 2014-08-27 Kaspersky Lab, ZAO Systems and methods of probing data transmissions for detecting spam bots
US9058592B2 (en) * 2011-04-28 2015-06-16 Microsoft Technology Licensing, Llc Reporting compromised email accounts
US9117074B2 (en) 2011-05-18 2015-08-25 Microsoft Technology Licensing, Llc Detecting a compromised online user account
US20120296965A1 (en) * 2011-05-18 2012-11-22 Microsoft Corporation Detecting potentially abusive action in an online social network
US9288528B2 (en) * 2011-05-26 2016-03-15 Electronic Imp Incorporated Modularized control system to enable networked control and sensing of other devices
US9118702B2 (en) 2011-05-31 2015-08-25 Bce Inc. System and method for generating and refining cyber threat intelligence data
US9858415B2 (en) * 2011-06-16 2018-01-02 Microsoft Technology Licensing, Llc Cloud malware false positive recovery
US9087324B2 (en) 2011-07-12 2015-07-21 Microsoft Technology Licensing, Llc Message categorization
US9065826B2 (en) 2011-08-08 2015-06-23 Microsoft Technology Licensing, Llc Identifying application reputation based on resource accesses
US9053416B1 (en) * 2012-01-03 2015-06-09 Google Inc. Systems and methods for screening potentially inappropriate content
US8825798B1 (en) * 2012-02-02 2014-09-02 Wells Fargo Bank N.A. Business event tracking system
US9473437B1 (en) 2012-02-13 2016-10-18 ZapFraud, Inc. Tertiary classification of communications
US8627469B1 (en) * 2012-03-14 2014-01-07 Symantec Corporation Systems and methods for using acquisitional contexts to prevent false-positive malware classifications
CN103313247A (en) * 2012-03-15 2013-09-18 百度在线网络技术(北京)有限公司 Method and device for acquiring spam call
US8458090B1 (en) * 2012-04-18 2013-06-04 International Business Machines Corporation Detecting fraudulent mobile money transactions
US9177129B2 (en) * 2012-06-27 2015-11-03 Intel Corporation Devices, systems, and methods for monitoring and asserting trust level using persistent trust log
US9432401B2 (en) * 2012-07-06 2016-08-30 Microsoft Technology Licensing, Llc Providing consistent security information
US9741259B2 (en) * 2012-10-31 2017-08-22 International Business Machines Corporation Identification for performing tasks in open social media
JP5314184B1 (en) * 2012-11-30 2013-10-16 株式会社ソフィア Data exchange system and data exchange method
DE102013001926A1 (en) * 2013-02-05 2014-08-07 Abb Ag System and method for event logging in a technical facility or technical process
US9398038B2 (en) 2013-02-08 2016-07-19 PhishMe, Inc. Collaborative phishing attack detection
US9253207B2 (en) * 2013-02-08 2016-02-02 PhishMe, Inc. Collaborative phishing attack detection
US8966637B2 (en) 2013-02-08 2015-02-24 PhishMe, Inc. Performance benchmarking for simulated phishing attacks
US9356948B2 (en) 2013-02-08 2016-05-31 PhishMe, Inc. Collaborative phishing attack detection
US9306887B1 (en) 2013-03-14 2016-04-05 Dana Brunetti Systems and methods for implementing email delivery
US9117180B1 (en) 2013-03-15 2015-08-25 Elance, Inc. Matching method based on a machine learning algorithm and a system thereof
US9594790B2 (en) * 2013-03-21 2017-03-14 Salesforce.Com, Inc. System and method for evaluating claims to update a record from conflicting data sources
US20140297887A1 (en) * 2013-04-01 2014-10-02 Whistle Talk Technologies Pvt. Ltd. Method for transmitting information on priority basis to one or more nodes in distributed network
US10320628B2 (en) 2013-06-19 2019-06-11 Citrix Systems, Inc. Confidence scoring of device reputation based on characteristic network behavior
US10277628B1 (en) 2013-09-16 2019-04-30 ZapFraud, Inc. Detecting phishing attempts
US10902004B2 (en) * 2013-10-16 2021-01-26 Salesforce.Com, Inc. Processing user-submitted updates based on user reliability scores
US9319423B2 (en) 2013-11-04 2016-04-19 At&T Intellectual Property I, L.P. Malware and anomaly detection via activity recognition based on sensor data
US10694029B1 (en) 2013-11-07 2020-06-23 Rightquestion, Llc Validating automatic number identification data
US20150135277A1 (en) * 2013-11-13 2015-05-14 Futurewei Technologies, Inc. Methods for Generating and Using Trust Blueprints in Security Architectures
US9262629B2 (en) 2014-01-21 2016-02-16 PhishMe, Inc. Methods and systems for preventing malicious use of phishing simulation records
US9325726B2 (en) 2014-02-03 2016-04-26 Intuit Inc. Method and system for virtual asset assisted extrusion and intrusion detection in a cloud computing environment
US20150304343A1 (en) 2014-04-18 2015-10-22 Intuit Inc. Method and system for providing self-monitoring, self-reporting, and self-repairing virtual assets in a cloud computing environment
US9342690B2 (en) 2014-05-30 2016-05-17 Intuit Inc. Method and apparatus for a scoring service for security threat management
US10049138B1 (en) * 2014-03-05 2018-08-14 Google Llc Reputation and engagement system for online community management
US9825899B2 (en) 2014-07-10 2017-11-21 Facebook, Inc. Systems and methods for directng messages based on social data
CN104090961B (en) * 2014-07-14 2017-07-04 福州大学 A kind of social networks junk user filter method based on machine learning
US10462156B2 (en) * 2014-09-24 2019-10-29 Mcafee, Llc Determining a reputation of data using a data visa
US9942182B2 (en) 2014-11-17 2018-04-10 At&T Intellectual Property I, L.P. System and method for cloud based IP mobile messaging spam detection and defense
US10083295B2 (en) * 2014-12-23 2018-09-25 Mcafee, Llc System and method to combine multiple reputations
US10834109B2 (en) 2014-12-23 2020-11-10 Mcafee, Llc Determining a reputation for a process
US9906539B2 (en) 2015-04-10 2018-02-27 PhishMe, Inc. Suspicious message processing and incident response
CN106161203B (en) * 2015-04-28 2020-02-07 阿里巴巴集团控股有限公司 Group message processing method and device
CN106295333B (en) * 2015-05-27 2018-08-17 安一恒通(北京)科技有限公司 method and system for detecting malicious code
US10305922B2 (en) * 2015-10-21 2019-05-28 Vmware, Inc. Detecting security threats in a local network
WO2017132170A1 (en) 2016-01-26 2017-08-03 ZapFraud, Inc. Detection of business email compromise
US10289642B2 (en) * 2016-06-06 2019-05-14 Baidu Usa Llc Method and system for matching images with content using whitelists and blacklists in response to a search query
US11936604B2 (en) 2016-09-26 2024-03-19 Agari Data, Inc. Multi-level security analysis and intermediate delivery of an electronic message
US10805270B2 (en) 2016-09-26 2020-10-13 Agari Data, Inc. Mitigating communication risk by verifying a sender of a message
US10880322B1 (en) 2016-09-26 2020-12-29 Agari Data, Inc. Automated tracking of interaction with a resource of a message
US10805314B2 (en) 2017-05-19 2020-10-13 Agari Data, Inc. Using message context to evaluate security of requested data
US11044267B2 (en) 2016-11-30 2021-06-22 Agari Data, Inc. Using a measure of influence of sender in determining a security risk associated with an electronic message
US11722513B2 (en) 2016-11-30 2023-08-08 Agari Data, Inc. Using a measure of influence of sender in determining a security risk associated with an electronic message
US10715543B2 (en) 2016-11-30 2020-07-14 Agari Data, Inc. Detecting computer security risk based on previously observed communications
US11019076B1 (en) 2017-04-26 2021-05-25 Agari Data, Inc. Message security assessment using sender identity profiles
US11102244B1 (en) 2017-06-07 2021-08-24 Agari Data, Inc. Automated intelligence gathering
US11757914B1 (en) 2017-06-07 2023-09-12 Agari Data, Inc. Automated responsive message to determine a security risk of a message sender
US11431745B2 (en) * 2018-04-30 2022-08-30 Microsoft Technology Licensing, Llc Techniques for curating threat intelligence data
US20200184511A1 (en) * 2018-12-05 2020-06-11 Oath Inc. Evaluating email activity
US11050793B2 (en) 2018-12-19 2021-06-29 Abnormal Security Corporation Retrospective learning of communication patterns by machine learning models for discovering abnormal behavior
US11824870B2 (en) 2018-12-19 2023-11-21 Abnormal Security Corporation Threat detection platforms for detecting, characterizing, and remediating email-based threats in real time
US11620608B2 (en) 2019-02-28 2023-04-04 Walmart Apollo, Llc System and method for providing uniform tracking information with a reliable estimated time of arrival
US11924232B2 (en) 2019-05-21 2024-03-05 Schneider Electric USA, Inc. Establishing and maintaining secure device communication
US11070572B2 (en) * 2019-07-09 2021-07-20 Mcafee, Llc Methods, systems, articles of manufacture and apparatus for producing generic IP reputation through cross-protocol analysis
US11392583B2 (en) * 2019-10-03 2022-07-19 Palantir Technologies Inc. Systems and methods for managing queries from different types of client applications
US11790060B2 (en) 2020-03-02 2023-10-17 Abnormal Security Corporation Multichannel threat detection for protecting against account compromise
WO2021217049A1 (en) 2020-04-23 2021-10-28 Abnormal Security Corporation Detection and prevention of external fraud
US11528242B2 (en) * 2020-10-23 2022-12-13 Abnormal Security Corporation Discovering graymail through real-time analysis of incoming email
US11687648B2 (en) 2020-12-10 2023-06-27 Abnormal Security Corporation Deriving and surfacing insights regarding security threats
CN112702352B (en) * 2020-12-28 2022-07-05 杭州趣链科技有限公司 Encrypted mail filtering method based on RSA
US11770409B2 (en) 2021-01-04 2023-09-26 International Business Machines Corporation Intrusion management with threat type clustering
US20220286419A1 (en) * 2021-03-02 2022-09-08 Proofpoint, Inc. System and method for improving detection of bad content by analyzing reported content
US11831661B2 (en) 2021-06-03 2023-11-28 Abnormal Security Corporation Multi-tiered approach to payload detection for incoming communications

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050080856A1 (en) * 2003-10-09 2005-04-14 Kirsch Steven T. Method and system for categorizing and processing e-mails
US20060253578A1 (en) * 2005-05-03 2006-11-09 Dixon Christopher J Indicating website reputations during user interactions
US20070244974A1 (en) * 2004-12-21 2007-10-18 Mxtn, Inc. Bounce Management in a Trusted Communication Network
US20090132689A1 (en) * 2007-11-15 2009-05-21 Yahoo! Inc. Trust based moderation
US7873695B2 (en) * 2004-05-29 2011-01-18 Ironport Systems, Inc. Managing connections and messages at a server by associating different actions for both different senders and different recipients
US7899866B1 (en) * 2004-12-31 2011-03-01 Microsoft Corporation Using message features and sender identity for email spam filtering

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393465B2 (en) * 1997-11-25 2002-05-21 Nixmail Corporation Junk electronic mail detector and eliminator
US7373385B2 (en) * 2003-11-03 2008-05-13 Cloudmark, Inc. Method and apparatus to block spam based on spam reports from a community of users
US20050204012A1 (en) * 2004-03-11 2005-09-15 Campbell Douglas C. Preventing acceptance of undesired electronic messages (spam)
US20080005064A1 (en) * 2005-06-28 2008-01-03 Yahoo! Inc. Apparatus and method for content annotation and conditional annotation retrieval in a search context
US8839418B2 (en) * 2006-01-18 2014-09-16 Microsoft Corporation Finding phishing sites
US8527592B2 (en) * 2006-10-31 2013-09-03 Watchguard Technologies, Inc. Reputation-based method and system for determining a likelihood that a message is undesired
US20080250106A1 (en) * 2007-04-03 2008-10-09 George Leslie Rugg Use of Acceptance Methods for Accepting Email and Messages
US20090013375A1 (en) * 2007-07-02 2009-01-08 Macintosh Paul Permissions management platform
US20090037546A1 (en) * 2007-08-02 2009-02-05 Abaca Technology Filtering outbound email messages using recipient reputation
US7783597B2 (en) * 2007-08-02 2010-08-24 Abaca Technology Corporation Email filtering using recipient reputation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050080856A1 (en) * 2003-10-09 2005-04-14 Kirsch Steven T. Method and system for categorizing and processing e-mails
US7873695B2 (en) * 2004-05-29 2011-01-18 Ironport Systems, Inc. Managing connections and messages at a server by associating different actions for both different senders and different recipients
US20070244974A1 (en) * 2004-12-21 2007-10-18 Mxtn, Inc. Bounce Management in a Trusted Communication Network
US7899866B1 (en) * 2004-12-31 2011-03-01 Microsoft Corporation Using message features and sender identity for email spam filtering
US20060253578A1 (en) * 2005-05-03 2006-11-09 Dixon Christopher J Indicating website reputations during user interactions
US20090132689A1 (en) * 2007-11-15 2009-05-21 Yahoo! Inc. Trust based moderation

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160065518A1 (en) * 2012-01-13 2016-03-03 International Business Machines Corporation Transmittal of blocked message notification
US10594639B2 (en) * 2012-01-13 2020-03-17 International Business Machines Corporation Transmittal of blocked message notification
US11528244B2 (en) 2012-01-13 2022-12-13 Kyndryl, Inc. Transmittal of blocked message notification
US20150088913A1 (en) * 2013-09-26 2015-03-26 International Business Machines Corporation Determining Criticality of a SQL Statement
US9703854B2 (en) * 2013-09-26 2017-07-11 International Business Machines Corporation Determining criticality of a SQL statement

Also Published As

Publication number Publication date
US20130018972A1 (en) 2013-01-17
US20100115040A1 (en) 2010-05-06
US9160568B2 (en) 2015-10-13
US8321516B2 (en) 2012-11-27

Similar Documents

Publication Publication Date Title
US9160568B2 (en) Systems and methods for creating and updating reputation records
US7849142B2 (en) Managing connections, messages, and directory harvest attacks at a server
US7263607B2 (en) Categorizing electronic messages based on trust between electronic messaging entities
US10129215B2 (en) Information security threat identification, analysis, and management
US9349016B1 (en) System and method for user-context-based data loss prevention
US7873695B2 (en) Managing connections and messages at a server by associating different actions for both different senders and different recipients
US7870200B2 (en) Monitoring the flow of messages received at a server
US10616247B1 (en) Identifying e-mail security threats
US9578060B1 (en) System and method for data loss prevention across heterogeneous communications platforms
US20190199745A1 (en) Using a measure of influence of sender in determining a security risk associated with an electronic message
US20170324767A1 (en) Systems and methods for detecting and/or handling targeted attacks in the email channel
US7761567B2 (en) Method and apparatus for scoring unsolicited e-mail
US7653695B2 (en) Collecting, aggregating, and managing information relating to electronic messages
US10326748B1 (en) Systems and methods for event-based authentication
US9564044B2 (en) Optimizing speed and reach of mass notification alert delivery
US11463441B2 (en) Systems and methods for managing the generation or deletion of record objects based on electronic activities and communication policies
US20080250106A1 (en) Use of Acceptance Methods for Accepting Email and Messages
US20070180031A1 (en) Email Opt-out Enforcement
US20090144329A1 (en) System and method for observing communication behavior
CN114761953A (en) Attack activity intelligence and visualization for countering network attacks
JP2008501296A (en) Electronic message source reputation information system
WO2010011180A1 (en) Method and system for securing against leakage of source code
US9990506B1 (en) Systems and methods of securing network-accessible peripheral devices
GB2461987A (en) Associating a unique identifier and a hierarchy code with a transmission record
US20160132799A1 (en) List hygiene tool

Legal Events

Date Code Title Description
AS Assignment

Owner name: AOL INC., VIRGINIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SARGENT, JAMES;ROMARY, SYLVIA MARGOT;MOORTGAT, JEAN-JACQUES;AND OTHERS;SIGNING DATES FROM 20091229 TO 20100107;REEL/FRAME:036511/0685

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION