US20200228566A1 - Mitigating automated attacks in a computer network environment - Google Patents

Mitigating automated attacks in a computer network environment Download PDF

Info

Publication number
US20200228566A1
US20200228566A1 US16/827,065 US202016827065A US2020228566A1 US 20200228566 A1 US20200228566 A1 US 20200228566A1 US 202016827065 A US202016827065 A US 202016827065A US 2020228566 A1 US2020228566 A1 US 2020228566A1
Authority
US
United States
Prior art keywords
script
attack
automated
automated script
transaction
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
US16/827,065
Inventor
Sreenath Kurupati
Sridhar Machiroutu
Prajakta Bhurke
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.)
Akamai Technologies Inc
Original Assignee
Akamai Technologies 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 Akamai Technologies Inc filed Critical Akamai Technologies Inc
Priority to US16/827,065 priority Critical patent/US20200228566A1/en
Publication of US20200228566A1 publication Critical patent/US20200228566A1/en
Assigned to AKAMAI TECHNOLOGIES, INC. reassignment AKAMAI TECHNOLOGIES, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BHURKE, PRAJAKTA, KURUPATI, SREENATH, MACHIROUTU, SRIDHAR
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/564Static detection by virus signature recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/02Computing arrangements based on specific mathematical models using fuzzy logic
    • G06N7/023Learning or tuning the parameters of a fuzzy system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/144Detection or countermeasures against botnets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Definitions

  • This application relates generally to protecting websites and mobile applications (apps) from automated attacks by scripts or bots.
  • a detector is configured to discriminate whether particular attack-like activity is a true attack, or simply a hacker “testing” his or her automated attack script. This discrimination is carried out based on one or more detection mechanisms, such as transaction rate checks, analytical checks, user history checks, aggregate analysis, IP location checks, and other behavioral checks. Machine learning may be used to facilitate this process and the attack versus test detection.
  • the detector Upon a determination that an automated attack script is being tested, and in lieu of blocking the automated attack script, the detector actually permits the test script to continue running, e.g., by providing limited access to a resource on the site.
  • the hacker receives a false indication that his or her automated attack script is already working.
  • the detector later detects a launch of an actual attack based on or otherwise associated with the automated attack script (previously under test)
  • the attack fails either because the script was not a working script in the first instance, or because information learned about the script is used to adjust the site as necessary to then prepare adequately for a true attack.
  • FIG. 1 shows a typical client-server configuration where a human being is performing an authorized action on a website/mobile app
  • FIG. 2 depicts a malicious situation where a script is being used to perform an automated action
  • FIG. 3 depicts a large scale attack where the malicious script used in FIG. 2 is deployed across multiple computers;
  • FIG. 4 depicts a configuration where a security tool is deployed on a separate threat detection and response server to protect the site or application;
  • FIG. 5 depicts an alternative configuration where the security tool is deployed as being integrated with the web/mobile server itself
  • FIG. 6 depicts augmenting a threat detector with an attack versus test detector tool to facilitate the mitigation technique of this disclosure
  • FIG. 7 depicts an alternate embodiment wherein the attack versus test detector is integrated with a decision unit
  • FIG. 8 depicts another yet alternative embodiment wherein the threat detector is integrated with the decision unit, and wherein the attack versus test detector is operated in a standalone manner;
  • FIG. 9 depicts yet another alternative embodiment of the security tool implementation of this disclosure.
  • FIG. 10 depicts processing modules that may be used in the detector of this disclosure.
  • the notion of an “actual attack” relates to an act of running large scale automated activity (e.g., testing millions of login/password combinations).
  • a “testing phase” relates to a process in which the attacker creates a script and then tests its efficacy.
  • This notion is sometimes referred to herein as a “script-under-test.”
  • the script may be an automated program that can successfully login using valid/test credentials.
  • an attacker engages in the testing phase prior to the actual attack to ensure the script successfully works; otherwise, it is a significant waste of resources (and a wasted expense) for an attacker to deploy an actual attack with a non-working script.
  • the testing phase can also be called training or any other term to describe the process of creating a working script.
  • automated activity may include form transactions (e.g., logins, signup, payments transactions), clicking, or even simple navigations (web-scraping, or the like).
  • form transactions e.g., logins, signup, payments transactions
  • simple navigations web-scraping, or the like.
  • the technique herein is described in the context of an example embodiment of logging into a website. This embodiment, however, is merely representative, as the mitigation technique herein may be used irrespective of the type of automated attack vector.
  • Creating a “working” login script typically involves two steps. First, the script should be able to functionally login to a website in an automated fashion without any human assistance. A known technique often exploited is application programming interface (API) reverse-engineering on the part of the attacker, and directly passing credentials to the API interface. A more advanced technique might involve going through the full web-experience, e.g., by using a headless browser or other tools. Second, and apart from being able to functionally pass credentials, the script needs to be able to circumvent or bypass security technologies.
  • API application programming interface
  • a security tool detects an automated login, typically it will block the script by either rejecting the login (even if the credentials are valid), or by asking for additional verifications (e.g., solving a test, such as a test using the CaptchaTM technology).
  • CaptchaTM technology is a program or system intended to distinguish human from machine input, typically as a way of thwarting spam and automated extraction of data from websites.
  • a “working” login script thus also needs to be able to successfully fool a security tool and not get detected by such security technology. An attacker of course can tweak, train, or test the script until he or she has achieved this goal.
  • a security tool e.g., a threat detector, a threat detection and response server, etc. detects and distinguishes an actual attack from the testing phase.
  • the security tool detects testing phase activity, and instead of blocking the attacker, the security tool lets the attacker through. This gives an artificial illusion to the attacker that he or she has a working script.
  • the attack is blocked easily either because the script was not a working script in the first place, or because the site is adapted in advance as necessary to then block the actual script.
  • the latter situation may be implemented for example when the test script exhibits some degree of efficacy. In this manner, and in addition to the value of blocking the attack, the security tool slows down or blocks the attacker from developing a successful working script.
  • the operations of the security tool can be implemented in various configurations other than in a threat detector, or threat detection and response server.
  • the security tool can be deployed in a web server or a mobile server.
  • the security tool of this disclosure may be implemented as processing logic that may comprises software, firmware, hardware, or any combination thereof.
  • FIG. 4 depicts a known configuration where a security tool 405 is deployed on a separate threat detection and response server 400 to protect the site/mobile app server application 406 .
  • the security tool is deployed in a co-located manner, but this is not a limitation, as the security tool operations may be carried as a managed service (e.g., in a cloud-based environment) by a service provider dedicated to provide such service, by a third party (e.g., a content delivery network (CDN) service provider, or the like.
  • FIG. 5 depicts an alternative configuration where the security tool 505 is deployed as being integrated with the web/mobile server 506 itself.
  • the security tool is implemented as computer software (one or computer programs executed in one or more hardware processors).
  • FIG. 6 depicts conventional processing of the security tool 600 with respect to an incoming transaction 602 .
  • the notion of a transaction here typically refers to one or more actions initiated by the automated script, e.g., an HTTP request for a particular resource, an operation triggered by scripting code, an AJAX request-response interaction, or any other activity initiated from the client and directed to the server.
  • the transaction is processed by a threat detector, and a decision is returned based on the likelihood that the transaction is a threat.
  • Techniques for discriminating human versus automated script behavior are described, for example, in commonly-owned U.S. Pat. No.
  • the security tool threat detector 600 is paired with an attack versus test detector process/module 604 and a decision entity process/module 606
  • the attack versus test detector 604 determines whether the transaction 602 is coming as part of an actual attack (such as that in FIG. 3 ), or whether it is a training/testing attempt on part of the attacker. Based on this determination, the detector 604 notifies the decision unit 606 accordingly.
  • the decision unit 606 takes in the input from both the threat detector 600 and from the attack versus test detector 604 .
  • the decision unit 606 may choose not to block or otherwise flag the transaction (unlike a conventional system that would block/flag the transaction). Accordingly, the attacker obtains or develops the false notion that he or she has a working attack script. Thus, when the attack script is deployed later in an actual attack (such as that in FIG. 3 ), the attack versus threat detector 604 then marks the transaction as an actual attack. The decision unit 606 then takes this information and blocks or otherwise mitigates the transaction.
  • the security tool thus slows down, confuses, or blocks the attacker from testing or training in a manner that would be effective (to the attacker).
  • FIG. 7 depicts an alternate embodiment of an implementation of the security tool shown in FIG. 6 .
  • the attack versus test detection and then decision unit are integrated into a combined unit 700 , which also receives the output generated by the threat detector 702 .
  • the threat detector 702 first performs threat analysis, followed by the attack versus test detector analysis.
  • FIG. 8 depicts yet another alternative embodiment of an implementation of the security tool, wherein the attack versus test detector 800 operates first and in a standalone manner. The output is then provided to a combined threat detector/decision unit 802 .
  • FIG. 9 depicts yet another alternative embodiment. In this embodiment, and like in FIG.
  • the threat detector 900 the attack versus threat detector 902 , and the decision unit 904 operate independently, with the decision unit 904 augmented to receive other conventional components 908 to facilitate the decision making.
  • these other components include, without limitation, knowledge sources, databases, expert systems, and the like.
  • FIG. 10 shows a detailed view of an embodiment of various processing modules that comprise the attack versus test detector 1000 .
  • These processing modules are exemplary, and one or more of them may be used.
  • the attack versus test detector 1000 determines whether the transaction is part of an attack, or rather just a training/test attempt.
  • the method or sub-modules that facilitate this determination include, a transaction rate check 1002 that can be applied to see the frequency of incoming transactions. A higher frequency is indicative of an attack vs a training/test attempt.
  • a user history check 1004 can be applied to see patterns from the specific user.
  • An IP/Location history check 1006 can be applied to see a history of training/testing activity and other malicious behavior. Additionally, evidence of multiple IP's sending malicious transactions is indicative of an actual attack.
  • General behavioral checks 1008 can be applied on various flags, and a module 1010 may also perform one or more custom analytical checks 1012 .
  • the output(s) from these various sub-modules preferably are sent to an aggregate analysis sub-module/unit 1012 .
  • Unit 1012 uses statistical/machine learning or other artificial intelligence techniques to classify the transaction either as an actual attack or, instead, a test/training attempt.
  • Representative analysis technique may include, among others, nearest neighbor, Manhattan distance, Euclidean distance, neural networks, fuzzy logic, k-means, support vector machines (SVM) or other statistical/pattern matching/machine learning techniques.
  • the transaction rate check 1002 is described in more detail with an example of a possible implementation.
  • the system maintains a counter or counters that a) increment based on certain events, and b) get reset at periodic intervals.
  • the counter is incremented when a scripted login is detected.
  • multiple parallel counters can be created, and where a signature/pattern is associated with each counter.
  • the signature/pattern can be based on the script device fingerprint or other behavioral attributes (e.g., mouse/keystroke characteristic of the script). Assuming there are multiple counters (each with an associated signature), the counter that is associated with the training script is incremented at a much lower rate, as the attacker is just testing the script.
  • the counter Periodically, the counter is reset (with the periodic interval being configurable). At any point of time, the value of the counter is compared to a programmable threshold. If the value exceeds the threshold, this implies an actual attack has been initiated; otherwise, it is a training attempt. Resetting the counter at periodic intervals ensures the counter for a training attempts does not artificially hit the threshold.
  • the user history check 1004 is described with an example of a possible implementation.
  • the attacker typically uses credentials that he/she personally created as a throwaway account.
  • the system e.g., using technique 1002
  • this module tabulates the user credentials used in the training activity. These user credentials are then stored in a table as attacker credentials. Subsequently, and in a new training phase, if the module then sees multiple hits to this table the system marks this as a training phase and not a real attack.
  • a given attack versus test determination may have a confidence level (or weight) associated therewith.
  • the type of response generated by the decision unit may also be based on the confidence level value and its relationship to one or more confidence levels, which levels may be pre-configured or hard-coded.
  • cloud computing is a model of service delivery for enabling on-demand network access to a shared pool of configurable computing resources (e.g. networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with a provider of the service.
  • configurable computing resources e.g. networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services
  • SaaS Software as a Service
  • PaaS Platform as a service
  • IaaS Infrastructure as a Service
  • the platform may comprise co-located hardware and software resources, or resources that are physically, logically, virtually and/or geographically distinct.
  • Communication networks used to communicate to and from the platform services may be packet-based, non-packet based, and secure or non-secure, or some combination thereof.
  • the techniques described herein are provided using a set of one or more computing-related entities (systems, machines, processes, programs, libraries, functions, or the like) that together facilitate or provide the described functionality described above.
  • a representative machine on which the software executes comprises commodity hardware, an operating system, an application runtime environment, and a set of applications or processes and associated data, that provide the functionality of a given system or subsystem.
  • the functionality may be implemented in a standalone machine, or across a distributed set of machines.
  • module or sub-module preferably is implemented in computer software as a set of program instructions executable in one or more processors, as a special-purpose machine.
  • Representative machines on which the subject matter herein is provided may be Intel Pentium-based computers running a Linux or Linux-variant operating system and one or more applications to carry out the described functionality.
  • One or more of the processes described above are implemented as computer programs, namely, as a set of computer instructions, for performing the functionality described.
  • This apparatus may be a particular machine that is specially constructed for the required purposes, or it may comprise a computer otherwise selectively activated or reconfigured by a computer program stored in the computer.
  • a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including an optical disk, a CD-ROM, and a magnetic-optical disk, a read-only memory (ROM), a random access memory (RAM), a magnetic or optical card, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
  • a given implementation of the computing platform is software that executes on a hardware platform running an operating system such as Linux.
  • a machine implementing the techniques herein comprises a hardware processor, and non-transitory computer memory holding computer program instructions that are executed by the processor to perform the above-described methods.
  • Any computing entity may act as the client or the server. While given components of the system have been described separately, one of ordinary skill will appreciate that some of the functions may be combined or shared in given instructions, program sequences, code portions, and the like. Any application or functionality described herein may be implemented as native code, by providing hooks into another application, by facilitating use of the mechanism as a plug-in, by linking to the mechanism, and the like.
  • the platform functionality may be co-located or various parts/components may be separately and run as distinct functions, perhaps in one or more locations (over a distributed network).
  • One preferred implementation of the detector is in a managed service such as a content delivery network (CDN) or, more generally, an “overlay network” that is operated and managed by a service provider.
  • the service provider typically provides the content delivery service on behalf of third parties (customers) who use the service provider's shared infrastructure.
  • a distributed system of this type typically refers to a collection of autonomous computers linked by a network or networks, together with the software, systems, protocols and techniques designed to facilitate various services, such as content delivery, web application acceleration, or other support of outsourced origin site infrastructure.
  • a CDN service provider typically provides service delivery through digital properties (such as a website), which are provisioned in a customer portal and then deployed to the network.
  • a digital property typically is bound to one or more edge configurations that allow the service provider to account for traffic and bill its customer.

Abstract

A technique to slow down or block creation of automated attack scripts uses a detector configured to discriminate whether particular attack-like activity is a true attack, or simply a hacker “testing” an automated attack script, and then permitting any such test script to continue working (attacking) the site, albeit on a limited basis. In this manner, the hacker receives an indication that his or her automated attack script is already working. Thereafter, when the detector later detects a launch of an actual attack based on or otherwise associated with the automated attack script (previously under test), the attack fails either because the script was not a working script in the first instance, or because information learned about the script is used to adjust the site as necessary to then prepare adequately for a true attack.

Description

    BACKGROUND Technical Field
  • This application relates generally to protecting websites and mobile applications (apps) from automated attacks by scripts or bots.
  • Brief Description of the Related Art
  • Over a billion user credentials (usernames, passwords, email addresses) were stolen during large breaches in 2014 and 2015. Hackers are now monetizing those stolen credentials across a wide range of popular web and mobile services. E-commerce, e-banking, online sharing, social networks, travel web sites, online ticketing, educational services, healthcare, insurance, gaming, etc. have become targets of the use of stolen credentials. Hackers know that people commonly reuse their credentials across the web. Most people use about three usernames/handles and have two to three passwords. They exploit this knowledge by writing a variety of sophisticated scripts exercising multiple attack vectors to compromise popular web properties. These automated attacks are known variously as malicious bots or malicious scripts.
  • There are many significant challenges in detecting attacks with stolen credentials. Often the credentials themselves are legitimate. Hackers also hide within regular web and mobile user traffic by attacking during normal service hours and distributing attacks from commonly used devices with IP addresses across multiple geographic regions. It is increasingly difficult for many of the usual checks/detection methods to distinguish between real customers and attackers. Hackers adapt and change continuously, rotating through their arsenal of attack vectors, scripts, and/or deployment schemes, allowing them to evolve against standard detection schemes.
  • Current methods to deter and block attacks include employing Captchas, device identification, browser identification, IP address tracking, and network log analysis. While these approaches provide significant benefits, there remains a need in the art to provide new techniques, especially with respect to mitigating unauthorized automated attacks, which remain a significant problem for websites and mobile apps, primarily because an attacker can easily create and test his attack scripts before deploying a large scale attack.
  • BRIEF SUMMARY
  • This disclosure describes a technique to slow down or block creation of these attack scripts in the first instance. To this end, and according to this disclosure, a detector is configured to discriminate whether particular attack-like activity is a true attack, or simply a hacker “testing” his or her automated attack script. This discrimination is carried out based on one or more detection mechanisms, such as transaction rate checks, analytical checks, user history checks, aggregate analysis, IP location checks, and other behavioral checks. Machine learning may be used to facilitate this process and the attack versus test detection. Upon a determination that an automated attack script is being tested, and in lieu of blocking the automated attack script, the detector actually permits the test script to continue running, e.g., by providing limited access to a resource on the site. In this manner, in effect the hacker receives a false indication that his or her automated attack script is already working. Thus, when the detector later detects a launch of an actual attack based on or otherwise associated with the automated attack script (previously under test), the attack fails either because the script was not a working script in the first instance, or because information learned about the script is used to adjust the site as necessary to then prepare adequately for a true attack.
  • The foregoing has outlined some of the more pertinent features of the subject matter. These features should be construed to be merely illustrative. Many other beneficial results can be attained by applying the disclosed subject matter in a different manner or by modifying the subject matter as will be described.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • For a more complete understanding of the subject matter and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
  • FIG. 1 shows a typical client-server configuration where a human being is performing an authorized action on a website/mobile app;
  • FIG. 2 depicts a malicious situation where a script is being used to perform an automated action;
  • FIG. 3 depicts a large scale attack where the malicious script used in FIG. 2 is deployed across multiple computers;
  • FIG. 4 depicts a configuration where a security tool is deployed on a separate threat detection and response server to protect the site or application;
  • FIG. 5 depicts an alternative configuration where the security tool is deployed as being integrated with the web/mobile server itself;
  • FIG. 6 depicts augmenting a threat detector with an attack versus test detector tool to facilitate the mitigation technique of this disclosure;
  • FIG. 7 depicts an alternate embodiment wherein the attack versus test detector is integrated with a decision unit;
  • FIG. 8 depicts another yet alternative embodiment wherein the threat detector is integrated with the decision unit, and wherein the attack versus test detector is operated in a standalone manner;
  • FIG. 9 depicts yet another alternative embodiment of the security tool implementation of this disclosure; and
  • FIG. 10 depicts processing modules that may be used in the detector of this disclosure.
  • DETAILED DESCRIPTION
  • By way of background, and as used herein, the notion of an “actual attack” relates to an act of running large scale automated activity (e.g., testing millions of login/password combinations). In contrast, a “testing phase” relates to a process in which the attacker creates a script and then tests its efficacy. This notion is sometimes referred to herein as a “script-under-test.” For example, the script may be an automated program that can successfully login using valid/test credentials. Typically, an attacker engages in the testing phase prior to the actual attack to ensure the script successfully works; otherwise, it is a significant waste of resources (and a wasted expense) for an attacker to deploy an actual attack with a non-working script. The testing phase can also be called training or any other term to describe the process of creating a working script.
  • As is well-known, automated activity may include form transactions (e.g., logins, signup, payments transactions), clicking, or even simple navigations (web-scraping, or the like). To simplify the following description, the technique herein is described in the context of an example embodiment of logging into a website. This embodiment, however, is merely representative, as the mitigation technique herein may be used irrespective of the type of automated attack vector.
  • Creating a “working” login script typically involves two steps. First, the script should be able to functionally login to a website in an automated fashion without any human assistance. A known technique often exploited is application programming interface (API) reverse-engineering on the part of the attacker, and directly passing credentials to the API interface. A more advanced technique might involve going through the full web-experience, e.g., by using a headless browser or other tools. Second, and apart from being able to functionally pass credentials, the script needs to be able to circumvent or bypass security technologies. If a security tool detects an automated login, typically it will block the script by either rejecting the login (even if the credentials are valid), or by asking for additional verifications (e.g., solving a test, such as a test using the Captcha™ technology). As is well-known, Captcha™ technology is a program or system intended to distinguish human from machine input, typically as a way of thwarting spam and automated extraction of data from websites. A “working” login script thus also needs to be able to successfully fool a security tool and not get detected by such security technology. An attacker of course can tweak, train, or test the script until he or she has achieved this goal.
  • The technique of this disclosure, however, is designed to convince the attacker that such further tweaking, training or testing is no longer required. Thus, the notion here in effect is to fool the attacker into believing that the script-under-test is actually working and, as a consequence, does not necessarily need further refinement. In this way, the system can learn and adapt its security measures appropriately.
  • To this end, the embodiments described herein use an approach to confuse the attacker during this second step (the testing phase). In one embodiment, a security tool (e.g., a threat detector, a threat detection and response server, etc.) detects and distinguishes an actual attack from the testing phase. When the security tool detects testing phase activity, and instead of blocking the attacker, the security tool lets the attacker through. This gives an artificial illusion to the attacker that he or she has a working script. Then, when an actual attack is later launched, the attack is blocked easily either because the script was not a working script in the first place, or because the site is adapted in advance as necessary to then block the actual script. The latter situation may be implemented for example when the test script exhibits some degree of efficacy. In this manner, and in addition to the value of blocking the attack, the security tool slows down or blocks the attacker from developing a successful working script.
  • The operations of the security tool can be implemented in various configurations other than in a threat detector, or threat detection and response server. For example, the security tool can be deployed in a web server or a mobile server. More generally, the security tool of this disclosure may be implemented as processing logic that may comprises software, firmware, hardware, or any combination thereof.
  • FIG. 1 shows a typical client-server configuration where a human being 100 is performing an authorized action from his or her client machine browser 102 or mobile device app 104 with respect a web/mobile app server 106. FIG. 2 depicts the same scenario but instead shows a malicious script 200 is being used to perform an automated action (e.g., via the client machine browser or mobile device app) on the remote web/mobile app server 206. Creation of an attack script is typically done in this configuration. A larger attack can also be done by running the script repetitively with high frequency. As previously noted, this type of automated activity can be very damaging, especially if the hacker learns that his or her test script is efficacious. To that end, FIG. 3 depicts a large scale attack where the malicious script used in FIG. 2 is deployed across multiple computers 300, and among other serious security problems, this type of attack can lead to a denial-of-service at the web/mobile app server 306.
  • FIG. 4 depicts a known configuration where a security tool 405 is deployed on a separate threat detection and response server 400 to protect the site/mobile app server application 406. In this example scenario, the security tool is deployed in a co-located manner, but this is not a limitation, as the security tool operations may be carried as a managed service (e.g., in a cloud-based environment) by a service provider dedicated to provide such service, by a third party (e.g., a content delivery network (CDN) service provider, or the like. FIG. 5 depicts an alternative configuration where the security tool 505 is deployed as being integrated with the web/mobile server 506 itself. Typically, the security tool is implemented as computer software (one or computer programs executed in one or more hardware processors).
  • FIG. 6 depicts conventional processing of the security tool 600 with respect to an incoming transaction 602. The notion of a transaction here typically refers to one or more actions initiated by the automated script, e.g., an HTTP request for a particular resource, an operation triggered by scripting code, an AJAX request-response interaction, or any other activity initiated from the client and directed to the server. In a conventional system such as described above, the transaction is processed by a threat detector, and a decision is returned based on the likelihood that the transaction is a threat. Techniques for discriminating human versus automated script behavior are described, for example, in commonly-owned U.S. Pat. No. 9,639,699, titled “Detecting non-human users on computer systems,” the disclosure of which is incorporated herein by reference. According to this disclosure, preferably the security tool threat detector 600 is paired with an attack versus test detector process/module 604 and a decision entity process/module 606 In operation, the attack versus test detector 604 determines whether the transaction 602 is coming as part of an actual attack (such as that in FIG. 3), or whether it is a training/testing attempt on part of the attacker. Based on this determination, the detector 604 notifies the decision unit 606 accordingly. The decision unit 606 takes in the input from both the threat detector 600 and from the attack versus test detector 604. If it is determined that this is a test/training transaction, the decision unit 606 may choose not to block or otherwise flag the transaction (unlike a conventional system that would block/flag the transaction). Accordingly, the attacker obtains or develops the false notion that he or she has a working attack script. Thus, when the attack script is deployed later in an actual attack (such as that in FIG. 3), the attack versus threat detector 604 then marks the transaction as an actual attack. The decision unit 606 then takes this information and blocks or otherwise mitigates the transaction.
  • In this manner, the security tool thus slows down, confuses, or blocks the attacker from testing or training in a manner that would be effective (to the attacker).
  • FIG. 7 depicts an alternate embodiment of an implementation of the security tool shown in FIG. 6. In this embodiment, the attack versus test detection and then decision unit are integrated into a combined unit 700, which also receives the output generated by the threat detector 702. Thus, the threat detector 702 first performs threat analysis, followed by the attack versus test detector analysis. FIG. 8 depicts yet another alternative embodiment of an implementation of the security tool, wherein the attack versus test detector 800 operates first and in a standalone manner. The output is then provided to a combined threat detector/decision unit 802. FIG. 9 depicts yet another alternative embodiment. In this embodiment, and like in FIG. 6, the threat detector 900, the attack versus threat detector 902, and the decision unit 904 operate independently, with the decision unit 904 augmented to receive other conventional components 908 to facilitate the decision making. These other components include, without limitation, knowledge sources, databases, expert systems, and the like.
  • FIG. 10 shows a detailed view of an embodiment of various processing modules that comprise the attack versus test detector 1000. These processing modules are exemplary, and one or more of them may be used. As noted above, the attack versus test detector 1000 determines whether the transaction is part of an attack, or rather just a training/test attempt. The method or sub-modules that facilitate this determination include, a transaction rate check 1002 that can be applied to see the frequency of incoming transactions. A higher frequency is indicative of an attack vs a training/test attempt. A user history check 1004 can be applied to see patterns from the specific user. An IP/Location history check 1006 can be applied to see a history of training/testing activity and other malicious behavior. Additionally, evidence of multiple IP's sending malicious transactions is indicative of an actual attack. General behavioral checks 1008 can be applied on various flags, and a module 1010 may also perform one or more custom analytical checks 1012. The output(s) from these various sub-modules preferably are sent to an aggregate analysis sub-module/unit 1012. Unit 1012 uses statistical/machine learning or other artificial intelligence techniques to classify the transaction either as an actual attack or, instead, a test/training attempt. Representative analysis technique may include, among others, nearest neighbor, Manhattan distance, Euclidean distance, neural networks, fuzzy logic, k-means, support vector machines (SVM) or other statistical/pattern matching/machine learning techniques.
  • The transaction rate check 1002 is described in more detail with an example of a possible implementation. In particular, the system maintains a counter or counters that a) increment based on certain events, and b) get reset at periodic intervals. Preferably, the counter is incremented when a scripted login is detected. Optionally, multiple parallel counters can be created, and where a signature/pattern is associated with each counter. The signature/pattern can be based on the script device fingerprint or other behavioral attributes (e.g., mouse/keystroke characteristic of the script). Assuming there are multiple counters (each with an associated signature), the counter that is associated with the training script is incremented at a much lower rate, as the attacker is just testing the script. Periodically, the counter is reset (with the periodic interval being configurable). At any point of time, the value of the counter is compared to a programmable threshold. If the value exceeds the threshold, this implies an actual attack has been initiated; otherwise, it is a training attempt. Resetting the counter at periodic intervals ensures the counter for a training attempts does not artificially hit the threshold.
  • The user history check 1004 is described with an example of a possible implementation. During the training process the attacker typically uses credentials that he/she personally created as a throwaway account. In a prior training session, the system (e.g., using technique 1002) may have detected the training attempts and. at that point, this module tabulates the user credentials used in the training activity. These user credentials are then stored in a table as attacker credentials. Subsequently, and in a new training phase, if the module then sees multiple hits to this table the system marks this as a training phase and not a real attack.
  • Of course, the above techniques are merely exemplary.
  • Other statistical, probabilistic or combined techniques may be implemented to facilitate the attack versus test determination.
  • A given attack versus test determination may have a confidence level (or weight) associated therewith. The type of response generated by the decision unit may also be based on the confidence level value and its relationship to one or more confidence levels, which levels may be pre-configured or hard-coded.
  • Enabling Technologies
  • The techniques herein may be implemented in a computing platform, such as variously depicted in FIGS. 6-9, although other implementations may be utilized as well. One or more functions of the computing platform may be implemented conveniently in a cloud-based architecture. As is well-known, cloud computing is a model of service delivery for enabling on-demand network access to a shared pool of configurable computing resources (e.g. networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with a provider of the service. Available services models that may be leveraged in whole or in part include: Software as a Service (SaaS) (the provider's applications running on cloud infrastructure); Platform as a service (PaaS) (the customer deploys applications that may be created using provider tools onto the cloud infrastructure); Infrastructure as a Service (IaaS) (customer provisions its own processing, storage, networks and other computing resources and can deploy and run operating systems and applications).
  • The platform may comprise co-located hardware and software resources, or resources that are physically, logically, virtually and/or geographically distinct. Communication networks used to communicate to and from the platform services may be packet-based, non-packet based, and secure or non-secure, or some combination thereof. More generally, the techniques described herein are provided using a set of one or more computing-related entities (systems, machines, processes, programs, libraries, functions, or the like) that together facilitate or provide the described functionality described above. In a typical implementation, a representative machine on which the software executes comprises commodity hardware, an operating system, an application runtime environment, and a set of applications or processes and associated data, that provide the functionality of a given system or subsystem. As described, the functionality may be implemented in a standalone machine, or across a distributed set of machines.
  • Each above-described process, module or sub-module preferably is implemented in computer software as a set of program instructions executable in one or more processors, as a special-purpose machine.
  • Representative machines on which the subject matter herein is provided may be Intel Pentium-based computers running a Linux or Linux-variant operating system and one or more applications to carry out the described functionality. One or more of the processes described above are implemented as computer programs, namely, as a set of computer instructions, for performing the functionality described.
  • While the above describes a particular order of operations performed by certain embodiments of the disclosed subject matter, it should be understood that such order is exemplary, as alternative embodiments may perform the operations in a different order, combine certain operations, overlap certain operations, or the like. References in the specification to a given embodiment indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic.
  • While the disclosed subject matter has been described in the context of a method or process, the subject matter also relates to apparatus for performing the operations herein. This apparatus may be a particular machine that is specially constructed for the required purposes, or it may comprise a computer otherwise selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including an optical disk, a CD-ROM, and a magnetic-optical disk, a read-only memory (ROM), a random access memory (RAM), a magnetic or optical card, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus. A given implementation of the computing platform is software that executes on a hardware platform running an operating system such as Linux. A machine implementing the techniques herein comprises a hardware processor, and non-transitory computer memory holding computer program instructions that are executed by the processor to perform the above-described methods.
  • There is no limitation on the type of computing entity that may implement the client-side or server-side of the connection. Any computing entity (system, machine, device, program, process, utility, or the like) may act as the client or the server. While given components of the system have been described separately, one of ordinary skill will appreciate that some of the functions may be combined or shared in given instructions, program sequences, code portions, and the like. Any application or functionality described herein may be implemented as native code, by providing hooks into another application, by facilitating use of the mechanism as a plug-in, by linking to the mechanism, and the like.
  • The platform functionality may be co-located or various parts/components may be separately and run as distinct functions, perhaps in one or more locations (over a distributed network).
  • One preferred implementation of the detector is in a managed service such as a content delivery network (CDN) or, more generally, an “overlay network” that is operated and managed by a service provider. The service provider typically provides the content delivery service on behalf of third parties (customers) who use the service provider's shared infrastructure. A distributed system of this type typically refers to a collection of autonomous computers linked by a network or networks, together with the software, systems, protocols and techniques designed to facilitate various services, such as content delivery, web application acceleration, or other support of outsourced origin site infrastructure. A CDN service provider typically provides service delivery through digital properties (such as a website), which are provisioned in a customer portal and then deployed to the network. A digital property typically is bound to one or more edge configurations that allow the service provider to account for traffic and bill its customer.

Claims (11)

What is claimed is as follows:
1. A method to mitigate automated attacks directed to a computing platform environment, comprising:
upon occurrence of a transaction associated with an automated script configured to initiate an actual automated attack on the computing platform environment, detecting whether the transaction is associated with testing of the automated script;
upon a detection that the transaction is associated with testing of the automated script, executing the automated script in the computing platform environment;
generating an indication that the automated script executed correctly;
thereafter, identifying a subsequent use of the automated script in the computing platform environment; and
responsive to identifying the subsequent use, blocking or mitigating operation of the automated script.
2. The method as described in claim 1 carried out as a managed service.
3. The method as described in claim 1 wherein detecting includes performing a set of one or more detections to detect whether the transaction is associated with testing of the automated script.
4. The method as described in claim 3 wherein the set of detections include one of: a transaction rate check, a user history check, an IP address/location check, a behavior check, and an analytical check.
5. The method as described in claim 4 wherein the detection is based on an aggregate analysis of the set of one or more detections.
6. The method as described in claim 5 wherein the aggregate analysis implements a statistical or machine learning algorithm.
7. A computer program product in a non-transitory computer readable medium comprising computer program instructions executable in a computing platform environment by a hardware processor to:
upon occurrence of a transaction associated with an automated script configured to initiate an actual automated attack on the computing platform environment, detect whether the transaction is associated with testing of the automated script;
upon a detection that the transaction is associated with testing of the automated script, execute the automated script in the computing platform environment;
generate an indication that the automated script executed correctly;
thereafter, identify a subsequent use of the automated script in the computing platform environment; and
responsive to identifying the subsequent use, block or mitigate operation of the automated script.
8. The computer program product as described in claim 7 wherein the computer program instructions that detect includes instructions further configured to perform a set of one or more detections to detect whether the transaction is associated with testing of the automated script.
9. The computer program product as described in claim 8 wherein the set of detections include one of: a transaction rate check, a user history check, an IP address/location check, a behavior check, and an analytical check.
10. The computer program product as described in claim 9 wherein the detection is based on an aggregate analysis of the set of one or more detections.
11. The computer program product as described in claim 10 wherein the aggregate analysis implements a statistical or machine learning algorithm.
US16/827,065 2016-07-15 2020-03-23 Mitigating automated attacks in a computer network environment Abandoned US20200228566A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/827,065 US20200228566A1 (en) 2016-07-15 2020-03-23 Mitigating automated attacks in a computer network environment

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662363175P 2016-07-15 2016-07-15
US15/652,020 US10601862B1 (en) 2016-07-15 2017-07-17 Mitigating automated attacks in a computer network environment
US16/827,065 US20200228566A1 (en) 2016-07-15 2020-03-23 Mitigating automated attacks in a computer network environment

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US15/652,020 Continuation US10601862B1 (en) 2016-07-15 2017-07-17 Mitigating automated attacks in a computer network environment

Publications (1)

Publication Number Publication Date
US20200228566A1 true US20200228566A1 (en) 2020-07-16

Family

ID=69902573

Family Applications (2)

Application Number Title Priority Date Filing Date
US15/652,020 Active 2037-10-13 US10601862B1 (en) 2016-07-15 2017-07-17 Mitigating automated attacks in a computer network environment
US16/827,065 Abandoned US20200228566A1 (en) 2016-07-15 2020-03-23 Mitigating automated attacks in a computer network environment

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US15/652,020 Active 2037-10-13 US10601862B1 (en) 2016-07-15 2017-07-17 Mitigating automated attacks in a computer network environment

Country Status (1)

Country Link
US (2) US10601862B1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10673895B2 (en) * 2017-12-01 2020-06-02 KnowBe4, Inc. Systems and methods for AIDA based grouping
US11184390B2 (en) 2017-12-18 2021-11-23 Akamai Technologies, Inc. Bot detection in an edge network using transport layer security (TLS) fingerprint
KR20210099564A (en) * 2018-12-31 2021-08-12 인텔 코포레이션 Security system using artificial intelligence
US11165809B2 (en) * 2019-07-15 2021-11-02 Barak TAWILY Systems methods and computer storage media for detection of potential cyber security vulnerabilities in computer networks by premediated exterior intrusion through log-based pre-mapped entrance points
CN112306862A (en) * 2020-10-14 2021-02-02 北京健康之家科技有限公司 Front-end automatic test system and method, storage medium and computing equipment

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020184362A1 (en) * 2001-05-31 2002-12-05 International Business Machines Corporation System and method for extending server security through monitored load management
US9407602B2 (en) * 2013-11-07 2016-08-02 Attivo Networks, Inc. Methods and apparatus for redirecting attacks on a network
US10298598B1 (en) * 2013-12-16 2019-05-21 Amazon Technologies, Inc. Countering service enumeration through imposter-driven response
US9497215B2 (en) * 2014-07-23 2016-11-15 Cisco Technology, Inc. Stealth mitigation for simulating the success of an attack
US9906539B2 (en) * 2015-04-10 2018-02-27 PhishMe, Inc. Suspicious message processing and incident response
US10064006B2 (en) * 2016-08-26 2018-08-28 Microsoft Technology Licensing, Llc Location based access control for artificial conversational entities

Also Published As

Publication number Publication date
US10601862B1 (en) 2020-03-24

Similar Documents

Publication Publication Date Title
US20200228566A1 (en) Mitigating automated attacks in a computer network environment
JP6432210B2 (en) Security system, security method, security device, and program
US10382454B2 (en) Data mining algorithms adopted for trusted execution environment
EP3101865B1 (en) Detection of anomalous administrative actions
US10015185B1 (en) Risk score aggregation for automated detection of access anomalies in a computer network
US20140122343A1 (en) Malware detection driven user authentication and transaction authorization
Chen et al. A model-based validated autonomic approach to self-protect computing systems
US20170366571A1 (en) Asset protection apparatus, system and method
US10885162B2 (en) Automated determination of device identifiers for risk-based access control in a computer network
US9998482B2 (en) Automated network interface attack response
CN111385270A (en) WAF-based network attack detection method and device
US10860719B1 (en) Detecting and protecting against security vulnerabilities in dynamic linkers and scripts
US10587629B1 (en) Reducing false positives in bot detection
Djanali et al. SQL injection detection and prevention system with raspberry Pi honeypot cluster for trapping attacker
US11870804B2 (en) Automated learning and detection of web bot transactions using deep learning
US11082442B1 (en) Automated setting of risk score aggregation weights for detection of access anomalies in a computer network
ES2937143T3 (en) Procedure for monitoring and protecting access to an online service
US20150172310A1 (en) Method and system to identify key logging activities
Shah et al. Implementation of user authentication as a service for cloud network
Veprytska et al. AI powered attacks against AI powered protection: Classification, scenarios and risk analysis
Yadav et al. A complete study on malware types and detecting ransomware using API calls
Vishnani et al. An in-depth analysis of the epitome of online stealth: keyloggers; and their countermeasures
Singh et al. A survey on Malware, Botnets and their detection
Yun et al. Miguard: detecting and guarding against malicious iframe through API hooking
US20220303293A1 (en) Methods of monitoring and protecting access to online services

Legal Events

Date Code Title Description
STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STCB Information on status: application discontinuation

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

AS Assignment

Owner name: AKAMAI TECHNOLOGIES, INC., MASSACHUSETTS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KURUPATI, SREENATH;MACHIROUTU, SRIDHAR;BHURKE, PRAJAKTA;REEL/FRAME:058827/0639

Effective date: 20170821