In the online retail market, online retailers will often offer products from one or more manufacturers. Additionally, some online retailers may use unused space on a network page for advertisement (or other) purposes of third parties who may or may not offer goods through the online retailer. As a nonlimiting example, if a business wishes to place an advertisement on the network site of the online retailer (or otherwise conduct business with the online retailer), the business may contact the online retailer for this purpose. Similarly, the online retailer may employ sales people to facilitate sales of advertisement space on the network site of the online retailer. Once an agreement for advertising on the network site of the online retailer is reached (or otherwise conducting business), the advertiser may send advertisement computer code to the online retailer that will be incorporated on the network site according to the terms agreed upon by the third party and the online retailer.
While the use of this space for third party advertisements may generate additional revenue for the online retailer, the online retailer may be at risk for nefarious activity, such as malware or other harmful code that is embedded in the advertisement code. Among other results, this code may be harmful to online shoppers and/or others that access the online retailer network site.
Many aspects of the present disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
Embodiments disclosed herein include systems and methods for providing one or more security checks for potential sales contacts. The potential sales contacts may include potential advertisers and/or others that conduct business with the online retailer. More specifically, in at least one nonlimiting example, when a sales contact sends information to an online retailer, a sales contact security application may perform a check based on one or more criteria to determine if the sales contact is likely to be a security risk (e.g. that they intend to upload malware hidden in an advertisement on the online retailer's network site). The one or more checks may include a configurable scoring system where each criterion is individually weighted. The weighted score for a particular sales contact may be compared to a predetermined threshold score. If, based at least upon the sales contact score in comparison to the threshold score, it is determined that the sales contact is a potential security risk, further security measures may be taken.
Similarly, some embodiments may be configured for training the sales contact security application to dynamically adapt security checks based on previous security requests. Such a configuration may include a sales contact security training application on a computing device that is configured for analyzing previous security requests to determine patterns of criteria not currently utilized in security checks currently performed.
Referring now to the drawings,
Also included in the computing environment 100 are one or more computing devices 104. The computing device 104 may comprise, for example, a server computer or any other computing device or system providing computing capability. The computing device 104 may represent multiple computer systems arranged, for example, in one or more server banks or other arrangements. To this end, the computing device 104 may comprise, for example, a cloud computing resource, a grid computing resource, and/or any other distributed computing arrangement. Such computer systems may be located in a single installation or may be dispersed among many different geographical locations. In at least one embodiment, the computing device 104 represents a virtualized computer system executing on one or more physical computing systems. For purposes of convenience, the computing device(s) 104 is referred to herein in the singular. However, in one embodiment, the computing device 104 represents a plurality of computer systems arranged as described above.
Various applications and/or other functionality may be executed in the computing device 104 according to various embodiments. Also, various data is stored in a data store 106 that is accessible to the computing device 104. The data store 106 may be representative of a plurality of data stores as can be appreciated. The data stored in the data store 106, for example, is associated with the operation of the various applications and/or functional entities described below. As a nonlimiting example, stored in the data store 106 are rules based checklists 108, sales contact based checklists 110, historical data 112, and other data.
The components executed on the computing device 104, for example, include an electronic commerce application 113, a sales contact input application 114, a sales contact security application 115, a sales contact security training application 116, and other applications, services, processes, systems, engines, or functionality. In at least one nonlimiting example, the electronic commerce application 113 may be configured to receive sales contact application data from a sales client 118, described in more detail below. The sales contact input application 114 may be configured to receive the request from the electronic commerce application 113 and analyze the received data related to the potential sales contact (such as an advertiser) for processing the sales contact application. Similarly, the sales contact security application 115 may include an application program interface (API) and may be executed to determine whether a sales contact is a potential security risk to an online retailer and/or visitors of the online retailer. Similarly, the sales contact security training application 116 may also include an API and may be configured to analyze data related to previous sales contact applicants to determine common information related to security risks, as well as common information related to non-security risks. After making these determinations, the sales contact security training application 116 may communicate with the sales contact security application 115 to adapt the criteria utilized by the sales contact security application to determine potential security risks.
Also included in the computing environment 100 are the sales client(s) 118, sales client system(s) 120, and user system(s) 122 (also referred to herein in the singular). The sales contact system 120 may include one or more client devices that are operated by potential sales contacts. Similarly, the sales client 118 may include one or more client devices that are operated by sales people of the online retailer. The sales client 118 may be representative of a plurality of client devices that may be coupled to the network 102. The sales client 118 may comprise, for example, a processor-based system such as a computer system. Such a computer system may be embodied in the form of a desktop computer, a laptop computer, a personal digital assistant, a cellular telephone, set-top box, music players, web pads, tablet computer systems, or other devices with like capability. Similarly, the user system 122 may include a browser (not explicitly illustrated in
The sales client 118 may be configured to execute various applications such as a browser 124, and/or other applications. Depending on the particular embodiment, browser 124 may include and/or be configured to utilize an email application and/or other application for facilitating communications. As described in more detail below, the browser 124 may be configured to receive information regarding a potential sales contact and send the data to the computing device 104 to determine whether the potential sales contact likely has malicious intent for nefarious activity. The browser 124 may also be configured to access and render network pages (such as network page 126), such as web pages, or other network content served up by the computing device 104 and/or other servers.
Additionally included in the nonlimiting example of
Also included in the nonlimiting example of
More specifically, to determine whether the sales contact is a security risk, the sales contact security application 115 may also determine whether the email address submitted is a valid email address, or whether this sales contact has advertised or otherwise conducted business with the online retailer in the past. The sales contact security application 115 may also determine whether this sales contact has a valid telephone number. The sales contact security application 115 may further determine whether the sales contact email address is conspicuously close to other valid email addresses (such as an advertiser having an email “john@probascetball.com” instead of john@probasketball.com”). Similarly, the sales contact security application 115 may determine whether this sales contact has contact information or an Internet protocol (IP) address that links the sales contact to undesirable geographic regions that are notorious for malware and other malicious activities. In some embodiments, the sales contact security application 115 may determine whether an Internet search of online communities includes any disparaging comments regarding this sales contact. Similarly, a determination can be made whether the fee for the business (such as placing advertisement on the network site of the online retailer) is sufficiently low to indicate an increased risk of malware. The sales contact security application 115 may determine whether the timeframe of the business arrangement (e.g., placing the advertisement on the network site of the online retailer) indicates a greater likelihood of this sales contact being a security risk (e.g., if this sales contact wants the advertisement posted in two days, when the average time to post an advertisement is two weeks, the sales contact might be a security risk). Based on these criteria and/or other criteria, which are weighted, as discussed in more detail below, the sales contact security application 115 can determine whether the sales contact is a security risk. In response to this determination, the sales contact security application 115 sends data regarding this analysis, which is displayed in section 402 in the client development interface 126b.
In the nonlimiting example of client development interface 126b, the section 402 indicates that the sales contact “Pro Basketball” with the contact person “John Doh” is a security risk. As indicated, the contact email address is suspect, as well as the fact that this is a new advertiser, the advertisement begin date is very short, the advertisement duration is short, and the quoted price is small. One or more of these issues may contribute to a determination that this potential advertiser is a security risk. Accordingly, in order for this sales contact to be approved for advertising with the online retailer, further security measures may be performed. As a nonlimiting example, the additional security measures may include analysis of the advertisement code, interacting with the contact person (e.g., John Doh) to determine additional company information, and/or performing other security measures.
Regardless, a particular filter may be customized according to a plurality of options, including whether to apply the filter to all sales contacts, to a particular company, to a particular type of potential sales contact, and/or to other criteria. As a nonlimiting example, if a company indicates to the online retailer that all advertisement requests will include a secret password, such a requirement may be created only for that company.
As discussed above, options that the administrator may select include checking for a valid email address, checking for whether this sales contact has advertised (or otherwise conducted business) with the online retailer previously, checking whether the telephone number is valid, and/or other options. Some embodiments may include checking whether there are conspicuously close valid email addresses, checking whether there are any network complaints, checking the time of the request, checking the dollar amount of the business, and/or checking the time of the request and potentially other options.
In addition to the plurality of security check options that may be selected, a weight option 506 may also be included. More specifically, in at least one nonlimiting example, the sales contact security administration interface 132a may be configured to receive weightings for one or more of the selected security checks. As a nonlimiting example, if a valid email address is essential to this particular online retailer for sales contacts, the administrator may select a weight of 100 or other appropriate value. However, if the time of request for an advertisement is important, but less so than other criteria, the administrator may select a weight of 20 or other appropriate value.
Also included in the sales contact security administration interface 132a is an enable automatic training option 508. As discussed in more detail below, automatic training can provide dynamic security checks that adapt based on common criteria of previously determined security risks. After selecting the desired options in the sales contact security administration interface 132a, the administrator may select a save option 510 to save the selected criteria.
Upon receipt of the email message by the sales client 118, browser 124 (with the assistance of the sales contact input application 114, the sales contact security application 115 and/or other applications) can analyze the metadata and/or payload data of the email message to determine characteristics of the email sender. More specifically, a determination may be made regarding whether the sender is a sales contact. Similarly, the contact information of the sender and/or other information may also be determined. The data from the email message may be sent to the sales contact security application 115 to determine whether this sales contact is a security risk. The sales contact security application 115 may make this determination and send data regarding the results of the security check back to the sales client 118. Accordingly, when the message is received at the sales client 118, the email interface 126d may provide an indicator 602 regarding whether the sender is a security risk, not a security risk, or whether there is not enough information to determine whether the sender is a security risk. Such a configuration could preclude the necessity of manually entering this information, such as in the client development interface 126b from
One should note that while the description regarding
Once a determination is made regarding whether a contact is a security risk, indicators 702a, 702b, and 702c can be associated with the respective contacts. As illustrated, if it is determined that the contact is not a security risk, the indicator 702a may be provided. If it is determined that a contact is a security risk, the indicator 702b may be provided. If it is determined that the risk for a contact cannot be determined, the indicator 702c may be provided.
Referring next to
As illustrated in block 852, the sales contact input application 114, as executed by the computing device 104, can receive the data from the sales client related to a security check. The received data may be in response to an incoming message, an outgoing message and/or a contact from the sales client 118. Additionally, in block 854, a determination can be made whether information on the sales contact is currently stored. This determination can include determining whether the information is stored locally on the computing device 104 and/or determining whether the information is stored remotely. In block 856, if the information regarding the sales contact is currently stored, data may be provided for a user interface (e.g., client development interface 126b in
If however, in block 858, the information is not currently stored, a security check may be performed on the sales contact. As discussed in detail above, this security check can include any of a plurality of different criteria. In block 860, the results from the security check can be stored, which may include local and/or remote storage. In block 862, data for a user interface (e.g., client development interface 126b in
As illustrated in block 952, the sales contact security application 115, as executed by the computing device 104 can receive data related to a security check from the sales client 118. As discussed above, this data may be received in response to an incoming message, an outgoing message and/or a contact analysis. Additionally in block 954, a determination can be made whether any previous security checks have been performed on the email sender. If so, the data from those previous security checks may be utilized and the process may end. If not, in block 958, a determination can be made whether any sales contact based checks apply to this sales contact. In block 960, if there are sales contact specific checks, the sales contact based security checks may be performed, such as via the sales contact based checklists 110. If however, there are no sales contact based security checks, in block 962, the rules based checklists 108 can be accessed and the general security checks can be applied. Regardless, in block 964, data related to the results of the one or more security checks can be sent to the browser 124 of the sales client 118. In block 966, the email and/or contact can be marked according to the received data.
As illustrated in block 1052, the sales contact security training application 116 via the computing device 104 can receive historical data regarding previous security checks of sales contacts. In block 1054, at least one check may be performed to determine whether there are any common features of the sales contacts that were not considered in the security checks. In block 1056, in response to a determination that there is at least one common feature for previously identified security threats, the sales contact security training application 116 can indicate the common feature to the administrator client 128 and/or automatically adjust the sales contact security application to check for this common feature. In block 1058, in response to a determination that there is at least one common feature for previously identified non-security threats that are not also present in the previously identified security threats, the sales contact security training application 116 can indicate the common feature to the administrator client 128 and/or automatically adjust the sales contact security training application 116 to allow new sales contacts that include this common feature.
With reference to
Stored in the memory 1104 are both data and several components that are executable by the processor 1102. In particular, stored in the memory 1104 and executable by the processor 1102 are sales contact security application 115, sales contact security training application, historical data 112, and potentially other applications. Also stored in the memory 1104 may be a data store 106 and other data. In addition, an operating system may be stored in the memory 1104 and executable by the processor 1102.
It is understood that there may be other applications that are stored in the memory 1104 and are executable by the processor 1102 as can be appreciated. Where any component discussed herein is implemented in the form of software, any one of a number of programming languages may be employed such as, for example, C, C++, C#, Objective C, Java, Java Script, Perl, PHP, Visual Basic, Python, Ruby, Delphi, Flash, or other programming languages.
A number of software components are stored in the memory 1104 and are executable by the processor 1102. In this respect, the term “executable” means a program file that is in a form that can ultimately be run by the processor 1102. Examples of executable programs may be, for example, a compiled program that can be translated into machine code in a format that can be loaded into a random access portion of the memory 1104 and run by the processor 1102, source code that may be expressed in proper format such as object code that is capable of being loaded into a random access portion of the memory 1104 and executed by the processor 1102, or source code that may be interpreted by another executable program to generate instructions in a random access portion of the memory 1104 to be executed by the processor 1102, etc. An executable program may be stored in any portion or component of the memory 1104 including, for example, random access memory (RAM), read-only memory (ROM), hard drive, solid-state drive, USB flash drive, memory card, optical disc such as compact disc (CD) or digital versatile disc (DVD), floppy disk, magnetic tape, or other memory components.
The memory 1104 is defined herein as including both volatile and nonvolatile memory and data storage components. Volatile components are those that do not retain data values upon loss of power. Nonvolatile components are those that retain data upon a loss of power. Thus, the memory 1104 may comprise, for example, random access memory (RAM), read-only memory (ROM), hard disk drives, solid-state drives, USB flash drives, memory cards accessed via a memory card reader, floppy disks accessed via an associated floppy disk drive, optical discs accessed via an optical disc drive, magnetic tapes accessed via an appropriate tape drive, and/or other memory components, or a combination of any two or more of these memory components. In addition, the RAM may comprise, for example, static random access memory (SRAM), dynamic random access memory (DRAM), or magnetic random access memory (MRAM) and other such devices. The ROM may comprise, for example, a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or other like memory device.
Also, the processor 1102 may represent multiple processors 1102 and the memory 1104 may represent multiple memories 1104 that operate in parallel processing circuits, respectively. In such a case, the local interface 1106 may be an appropriate network that facilitates communication between any two processors, between any processor 1102 and any of the memories 1104, or between any two of the memories 1104, etc. The local interface 1106 may comprise additional systems designed to coordinate this communication, including, for example, performing load balancing. The processor 1102 may be of electrical or of some other available construction.
Although the sales contact security application 115, the sales contact security training application 116, the historical data 112, and other various systems described herein may be embodied in software or code executed by general purpose hardware as discussed above, as an alternative the same may also be embodied in dedicated hardware or a combination of software/general purpose hardware and dedicated hardware. If embodied in dedicated hardware, each can be implemented as a circuit or state machine that employs any one of or a combination of a number of technologies. These technologies may include, but are not limited to, discrete logic circuits having logic gates for implementing various logic functions upon an application of one or more data signals, application specific integrated circuits having appropriate logic gates, or other components, etc. Such technologies are generally well known by those skilled in the art and, consequently, are not described in detail herein.
One should also note that while
The flowcharts of
Although the flowcharts of
Also, any logic or application described herein, including electronic commerce application 113, sales contact input application 114, sales contact security application 115, sales contact security training application 116, sales contact input application 114, and browser 124, that comprises software or code can be embodied in any computer-readable medium for use by or in connection with an instruction execution system such as, for example, a processor 1102 in a computer system or other system. In this sense, the logic may comprise, for example, statements including instructions and declarations that can be fetched from the computer-readable medium and executed by the instruction execution system. In the context of the present disclosure, a “computer-readable medium” can be any medium that can contain, store, or maintain the logic or application described herein for use by or in connection with the instruction execution system. The computer-readable medium can comprise any one of many physical media such as, for example, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor media. More specific examples of a suitable computer-readable medium would include, but are not limited to, magnetic tapes, magnetic floppy diskettes, magnetic hard drives, memory cards, solid-state drives, USB flash drives, or optical discs. Also, the computer-readable medium may be a random access memory (RAM) including, for example, static random access memory (SRAM) and dynamic random access memory (DRAM), or magnetic random access memory (MRAM). In addition, the computer-readable medium may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or other type of memory device.
It should be emphasized that the above-described embodiments of the present disclosure are merely possible examples of implementations set forth for a clear understanding of the principles of the disclosure. Many variations and modifications may be made to the above-described embodiment(s) without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.
Number | Name | Date | Kind |
---|---|---|---|
9679304 | Kim | Jun 2017 | B1 |
20040143756 | Munson et al. | Jul 2004 | A1 |
20050197894 | Fairbanks | Sep 2005 | A1 |
20060253581 | Dixon | Nov 2006 | A1 |
20070016951 | Piccard et al. | Jan 2007 | A1 |
20090094175 | Provos et al. | Apr 2009 | A1 |
20090099913 | Jiang | Apr 2009 | A1 |
20090158141 | Bauchot et al. | Jun 2009 | A1 |
20090327849 | Kavanagh | Dec 2009 | A1 |
20110119218 | Lay et al. | May 2011 | A1 |
20110246278 | Kubo | Oct 2011 | A1 |
20130061326 | Bennett | Mar 2013 | A1 |
Entry |
---|
Ion Androutsopoulos, John Koutsias, Konstantinos V. Chandrinos and Constantine D. Spyropoulos “An Experimental Comparison of Naive Bayesian and Keyword-Based Anti-Span Filtering with Personal E-mail Messages”, Software and Knowledge Engineering Laboratory, Institute of Informatics and Telecommunications (2000), pp. 160-167. |