US20150052607A1 - Method and system for protecting web applications against web attacks - Google Patents
Method and system for protecting web applications against web attacks Download PDFInfo
- Publication number
- US20150052607A1 US20150052607A1 US14/461,021 US201414461021A US2015052607A1 US 20150052607 A1 US20150052607 A1 US 20150052607A1 US 201414461021 A US201414461021 A US 201414461021A US 2015052607 A1 US2015052607 A1 US 2015052607A1
- Authority
- US
- United States
- Prior art keywords
- rules
- application
- agent
- cloud service
- web
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
Definitions
- the present invention relates to methods and systems for protecting web applications against web attacks and is particularly concerned with using dynamic and in-application components.
- Web application attacks remain a major attack vector in cyber threats.
- Technology has matured to detect and prevent network and server level attacks, mainly through vulnerability management and firewall technologies, however, web application protection technologies have not matured as much. While there are a plethora of source-code scanning and black-box penetration testing products and services, they may fail to detect and stop an attack occurring in real time.
- WAF Web application firewalls
- RASP runtime application self-protection
- RASP The RASP technologies work mainly by instrumenting code via the runtime's instrumentation API (Java, .NET). RASPs allow for the detection of certain types of attacks. RASPs require certain features and APIs in the actual runtime to allow for the required code insertion, which is typically binary.
- the present invention provides an improved method and system for protecting web applications against web attacks.
- an agent library to be included into an application, either by the developer or at runtime by the runtime environment.
- the agent library is able to hook into various interfaces between the application and the different components in the environment.
- Such interfaces include, but are not limited to datastores (SQL/NoSQL/XML as well as other types of databases), caching services, other services exposed via an API mechanism, the application runtime environment, included application libraries, as well as other services that are components of a web application, such as templating engines, and email service.
- Each hook around an interface is able to call rules implementing various detection (of attacks) and action (response to an attack) functions. For example, hooks are placed around the Database API (DBAPI) interface, and those hooks call functions (rules) to determine if the query string matches a SQL injection (attack) pattern.
- DBAPI Database API
- the hooking mechanism is capable of working in cases where the runtime does not provide an instrumentation API.
- the hooking mechanism may use “monkey patching” techniques or utilize a plugin/middleware mechanism provided by the language, framework or runtime of the particular application.
- the present disclosure provides for these rules to be dynamic. That is, the code/logic implementing the detection/action functions (rules), which are in turn called by the hooks around particular interfaces, can be modified at runtime without intervention by the developer (user).
- These security functions of detection and/or defensive action are generated in the cloud service side of the platform, and delivered via a secure channel to the agent library, where they are implemented. Communication also flows in the other direction, from the agent library to the cloud service, and allows for the agent library to provide information about important events such as malicious users, threat level of site, database misconfiguration. This information can then be used for alerting the developer, or as factors into generating the detection or action functions dynamically. For example, a SQL injection detection function can be injected into a protected application via the cloud service.
- a generic malicious-user/session detection function can be enhanced over time by utilizing advanced algorithms using key application/user specific metrics (number of server faults generated in a time period, number of web requests in a time period, etc.), and pushed to the agent library to implement.
- This algorithm can be improved over time and the updates pushed to the agent library in real time, resulting in more accurate detection and protection without developer/operator/user intervention.
- a filter based on known-malicious-IP addresses or IP reputation can be updated in real time as the cloud side learns about these malicious IPs and blocks application access to these IP addresses.
- a security function can be provided where an attacker sets off a trigger. For example, if there is an attempted SQL injection string, or a session modification attack, then extra logging for that user is performed and that user session is streamed to the cloud service for further inspection by the application developer or additional automated analysis is performed before deciding on denying the user application access.
- a further example is the ability of the agent library to report to the cloud service about the different software components version information, e.g. libraries, frameworks, runtimes.
- the cloud service is then able to alert the developer of the application about known security issues relating to these software components, and where applicable, prevent known types of attacks against vulnerable components, for example, remote command execution attacks using object serialization features of certain web frameworks.
- application configuration issues such as database configuration
- secure hash storage can be detected by custom functions that are generated by the cloud service and alerts sent to the application administrator/developer.
- the system may or may not include a sandboxing mechanism to constrain the rules that may be executed.
- a sandboxing mechanism to constrain the rules that may be executed.
- the rules processor or rules engines
- disables all input/output operations such that rules or code injected into the web application cannot be compromised by a malicious agent to perform undesirable operations or export data.
- the rules processor may selectively disable some operations (such as input/output operations) to sandbox the new rules injected into the web application.
- the rules are executed by a rules engine (or rules processor), which places such constraints on the rules.
- a rules engine or rules processor
- This sandboxing effect can be achieved by use of a scripting engine, or alternatively, a full virtual machine and runtime environment with a restricted instruction set.
- a system for protecting web applications against web attacks comprising a cloud service for generating rules and receiving reports, an agent manager in communication with the cloud service receiving rules from the cloud service and passing reports thereto, and an in-application agent in communication with the agent manager for receiving rules therefrom and passing reports thereto for protecting an application in which the in-application agent is embedded.
- a method of protecting web applications against web attacks comprising the steps of embedding an in-application agent into a web application to be protected, generating rules in a cloud service, providing the rules generated to the in-application agent, the in-application agent, receiving rules for protecting the web application in which the in-application agent is embedded.
- FIG. 1 illustrates a system for protecting web applications against web attacks in accordance with an embodiment of the present disclosure
- FIG. 2 illustrates the in-application agent of FIG. 1 in further detail
- FIG. 3 illustrates in a flowchart a method of protecting web applications in accordance with another embodiment of the present disclosure
- FIG. 4 illustrates in a flowchart another method of protecting web applications in accordance with another embodiment of the present disclosure.
- FIG. 5 illustrates in a flowchart another method of protecting web applications in accordance with another embodiment of the present disclosure.
- the developer also has the ability to use the library functions to alert the cloud service about specific types of attacks that cannot be detected automatically, for example, a user session that skips a step in a multi-step process such as user signup. These types of alerts can be factored into determining a malicious user or malicious session.
- Complicated policies can be built using generic detection functions, real-time threat intelligence information, application-specific developer customization - allowing for a highly effective method of detecting application level attacks in real time.
- more than one application can be protected by the same set of policies (detection/action), managed by the same user interface, regardless of where the different applications reside.
- a rule is a collection of detection logic (code), action logic (code) and associated data e.g., list of bad IPs, malicious users, vulnerable components, which are generated in the cloud service side of the system, and implemented by the agent library.
- a rule may be as simple as pattern-match-and-alert or as complicated as performing a statistical analysis on a request and streaming data to the cloud service for further processing.
- a security policy is a collection of rules that define how the application is to detect and respond to cyber threats. Some policies may be computationally intensive but highly effective at detecting attacks, while others may be much less sophisticated initially, but raise the level of protection after an attacker is suspected.
- a cloud service is a set of remote servers exposing an endpoint that collects relevant data from authenticated agent libraries via a secure channel, and generate policies and rules to be implemented by the agent library.
- An agent library is a software component that is included by the developer into the application directly or by the runtime environment, that provides the base functionality on the agent side to receive and implement rules and policies, and is able to send requested information to the cloud service.
- FIG. 1 provides an overview of the system components.
- the system 100 includes a cloud service 110 coupled to a real-time web dashboard 120 and in communication with an agent manager 130 .
- the agent manager 130 communicates via the Internet 140 (e.g. via a persistent encrypted link) with an in-app agent 150 disposed in a protected application 160 .
- the in-app agent 150 is either included as a library by the developer or may be injected into the protected application 160 via the runtime environment. For example, this may be done by wrapping the application or by injecting the library directly into the application via available runtime methods.
- the in-app agent 150 receives rules 170 from the cloud service 110 via the agent manager 130 .
- the rules 170 provide the detection and protection functionality.
- the in-app agent 150 also sends reports 180 to the agent manager 130 .
- the agent manager 130 is responsible for the communications between the cloud service 110 and the protected application 160 .
- the real-time web dashboard 120 is provided to give the application developer or security operator an insight into the known vulnerabilities, attacks, and general state of security of the web application.
- the web dashboard 120 may display, present or output any suitable combination of data, metrics, information, settings, recommendations, etc.
- the real-time web dashboard 120 also provides a user interface having user interface elements (virtual buttons, menus, sliders, etc.) for customizing policies and rules.
- the cloud service 110 receives the reports 180 from the various agent managers 130 (only one shown in FIG. 1 ), as well as from other external sources, for example third party threat intelligence feeds and new algorithms developed by security researchers and generates new rules to be deployed to the in-app agents 150 via the agent manager 130 .
- the cloud service may dynamically update the rules based not only on the reports 180 but also based upon new threat information received from any external source.
- FIG. 2 shows the components of the in-app agent 150 .
- the in-app agent 150 includes a link manager 200 , an in-app library 210 for storing the rules 170 and a rules processor 220 for applying rules 170 and generating reports 180 .
- the agent library 210 uses a middleware mechanism 230 to hook into various points of the application 160 and the web application framework.
- the hooks 240 allow the rules processor 220 to inject rules 170 that it received from the cloud service 110 via the link manager 130 into these points in the program (web application) being protected.
- these rules 170 allow reports 180 to be generated by the rules processor 220 and to be sent by the in-app agent 150 back to the agent manager 130 .
- the agent manager 130 forwards these reports 180 to the cloud service 110 for the creation of new rules in response to information contained within the reports.
- Different rules 170 may be used for detecting session-tampering attacks, SQL injection attacks, HTTP parameter pollution attacks, and HTTP splitting attacks. These types of attacks are only some examples of the types of attacks that can be detected and thwarted using this invention.
- FIG. 2 also shows an application stack having various hooks 240 . All processing is handled locally based on the rules 170 supplied by the agent manager 130 . No additional network latency is added to the application stack shown in FIG. 2 .
- the method 300 begins with embedding the in-app agent 150 at step 310 . Once embedded, the in-app agent 150 receives rules from the cloud service 110 , via the agent manager 130 , at step 320 . The in-app agent 150 then applies the rules to protect the web application using the rules 170 at step 330 . When the in-app agent 150 detects suspicious activity at step 340 , it generates a report and sends it to the cloud service 110 via the agent manager 130 at step 350 .
- the cloud service analyzes the report and generates new rules to deal with the suspicious activity at step 360 and sends the new rules to the in-app agent 150 , via the agent manager 130 , at step 370 . Finally, the in-app agent applies the new rules to deal with the suspicious activity at step 380 .
- This example represents a reactive situation.
- the method 400 begins with embedding the in-app agent 150 at step 410 .
- the in-app agent 150 receives rules from the cloud service 110 , via the agent manager 130 , at step 420 .
- the in-app agent 150 then applies the rules to protect the web application using the rules 170 at 430 .
- the cloud service 110 receives new information at step 440 .
- there is no tripwire event in the in-app agent rather, there is an update to the rules (step 450 ) because of an improvement in the rule set, which could be a better algorithm, data external to the application (e.g., IP reputation, vulnerable library information).
- the flow is straight from the cloud service to the agent (step 460 ).
- the in-app agent applies the new rules to protect the web application in an enhanced way at step 470 .
- This example represents a proactive situation in which the cloud service 110 initializes the improved protection provided to the web application by the in-app agent.
- the dynamic nature of the method provides for altering the protection algorithms used based on what the cloud service 110 believes is most effective. Consequently, the cloud service is injecting code for new algorithms into the in-app agents, which changes how attacks are detected/stopped all without developer intervention.
- the in-app agent provides an empty container of rules at certain interfaces within the application, to be filled with rules that are generated dynamically cloud-side.
- the operation 500 begins with embedding the in-app agent 150 as represented by block 510 .
- the web application is started at block 520 .
- the In-App Agent 150 technology injects hooks into the various interfaces: for example, it injects code (a hook) into the database interface layer (DB API) that allows it to process requests before the DB API call is made at block 530 .
- the In-App agent 150 inserts default rules into these interfaces at block 530 .
- the In-App agent 150 requests an updated rule set for these interfaces at block 540 .
- the In-App agent 150 receives the rules from cloud service 110 .
- the in-app agent 150 applies the new rules to protect the web application in an enhanced way, as represented by block 570 .
- each server is a computing device having a processor coupled to a memory and to a data communication port (e.g. modem, network adapter, etc.) for data communication with a network to which the server is connected.
- the server may include various input/output (I/O) devices and peripherals.
- the processor and memory cooperate to execute instructions in the form of software code for causing the computing device (server, cluster or cloud service as the case may be) to perform the acts or operations of the novel methods described herein.
- any of the methods disclosed herein may be implemented in hardware, software, firmware or any combination thereof.
- the method steps, acts or operations may be programmed or coded as computer-readable instructions and recorded electronically, magnetically or optically on a non-transitory computer-readable medium, computer-readable memory, machine-readable memory or computer program product.
- the computer-readable memory or computer-readable medium comprises instructions in code which when loaded into a memory and executed on a processor of a computing device cause the computing device to perform one or more of the foregoing method(s).
- a computer-readable medium can be any means, memory device or medium that contains, records, or stores a computer program or application to be executed or run by a processor (or microprocessor) of a computer (or computing device or other instruction-execution apparatus).
- the computer-readable medium may be electronic, magnetic, optical, electromagnetic, infrared or any semiconductor system or device.
- computer executable code to perform the methods disclosed herein may be tangibly recorded on a non-transitory computer-readable medium including, but not limited to, a floppy-disk, a CD-ROM, a DVD, RAM, ROM, EPROM, Flash Memory or any suitable memory card, etc.
- the method may also be at least partially implemented in hardware.
- a hardware implementation might employ discrete logic circuits having logic gates for implementing logic functions on data signals, an application-specific integrated circuit (ASIC) having appropriate combinational logic gates, a programmable gate array (PGA), a field programmable gate array (FPGA), etc.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
The present disclosure provided a method and system for protecting web applications against web attacks comprising a cloud service for generating rules and receiving reports, an agent manager in communication with the cloud service receiving rules from the cloud service and passing reports thereto, and an in-application agent in communication with the agent manager for receiving rules therefrom and passing reports thereto for protecting an application in which the in-application agent is embedded.
Description
- This application claims priority from U.S. Provisional Patent Application 61/866,191 filed Aug. 15, 2013.
- The present invention relates to methods and systems for protecting web applications against web attacks and is particularly concerned with using dynamic and in-application components.
- Web application attacks remain a major attack vector in cyber threats. Technology has matured to detect and prevent network and server level attacks, mainly through vulnerability management and firewall technologies, however, web application protection technologies have not matured as much. While there are a plethora of source-code scanning and black-box penetration testing products and services, they may fail to detect and stop an attack occurring in real time.
- Web application firewalls (WAF) are a particular type of network devices that provide a lot of functionality to detect and prevent common web application attacks. However, WAF's have a number of limitations that have hampered their adoption and they are known to be not very effective against targeted, sophisticated attacks.
- An alternative class of solution is emerging, classified by some as “runtime application self-protection” (RASP). With RASPs some of the security functions of the WAF are moved into the application or runtime itself. Consequently, the application or runtime itself becomes the security perimeter.
- The RASP technologies work mainly by instrumenting code via the runtime's instrumentation API (Java, .NET). RASPs allow for the detection of certain types of attacks. RASPs require certain features and APIs in the actual runtime to allow for the required code insertion, which is typically binary.
- The systems and methods disclosed herein protect web applications against web attacks to obviate or mitigate at least some of the aforementioned disadvantages.
- In general, the present invention provides an improved method and system for protecting web applications against web attacks.
- In the present disclosure there is provided a method and system for an agent library to be included into an application, either by the developer or at runtime by the runtime environment. The agent library is able to hook into various interfaces between the application and the different components in the environment.
- Such interfaces include, but are not limited to datastores (SQL/NoSQL/XML as well as other types of databases), caching services, other services exposed via an API mechanism, the application runtime environment, included application libraries, as well as other services that are components of a web application, such as templating engines, and email service. Each hook around an interface is able to call rules implementing various detection (of attacks) and action (response to an attack) functions. For example, hooks are placed around the Database API (DBAPI) interface, and those hooks call functions (rules) to determine if the query string matches a SQL injection (attack) pattern.
- The hooking mechanism is capable of working in cases where the runtime does not provide an instrumentation API. For example, the hooking mechanism may use “monkey patching” techniques or utilize a plugin/middleware mechanism provided by the language, framework or runtime of the particular application.
- The present disclosure provides for these rules to be dynamic. That is, the code/logic implementing the detection/action functions (rules), which are in turn called by the hooks around particular interfaces, can be modified at runtime without intervention by the developer (user). These security functions of detection and/or defensive action are generated in the cloud service side of the platform, and delivered via a secure channel to the agent library, where they are implemented. Communication also flows in the other direction, from the agent library to the cloud service, and allows for the agent library to provide information about important events such as malicious users, threat level of site, database misconfiguration. This information can then be used for alerting the developer, or as factors into generating the detection or action functions dynamically. For example, a SQL injection detection function can be injected into a protected application via the cloud service. A generic malicious-user/session detection function can be enhanced over time by utilizing advanced algorithms using key application/user specific metrics (number of server faults generated in a time period, number of web requests in a time period, etc.), and pushed to the agent library to implement. This algorithm can be improved over time and the updates pushed to the agent library in real time, resulting in more accurate detection and protection without developer/operator/user intervention.
- For example, a filter based on known-malicious-IP addresses or IP reputation, can be updated in real time as the cloud side learns about these malicious IPs and blocks application access to these IP addresses. These are only examples of filters, and are not a list of all possible filters.
- A security function can be provided where an attacker sets off a trigger. For example, if there is an attempted SQL injection string, or a session modification attack, then extra logging for that user is performed and that user session is streamed to the cloud service for further inspection by the application developer or additional automated analysis is performed before deciding on denying the user application access.
- A further example is the ability of the agent library to report to the cloud service about the different software components version information, e.g. libraries, frameworks, runtimes. The cloud service is then able to alert the developer of the application about known security issues relating to these software components, and where applicable, prevent known types of attacks against vulnerable components, for example, remote command execution attacks using object serialization features of certain web frameworks.
- Finally, application configuration issues, such as database configuration, secure hash storage can be detected by custom functions that are generated by the cloud service and alerts sent to the application administrator/developer.
- The system may or may not include a sandboxing mechanism to constrain the rules that may be executed. As an example, it may not be desirable to allow the rules to contain generic input/output operations, for security reasons, and to be restricted to computation algorithms only. As such, in an embodiment, the rules processor (or rules engines) disables all input/output operations such that rules or code injected into the web application cannot be compromised by a malicious agent to perform undesirable operations or export data. In other embodiments, the rules processor may selectively disable some operations (such as input/output operations) to sandbox the new rules injected into the web application.
- The rules are executed by a rules engine (or rules processor), which places such constraints on the rules. This sandboxing effect can be achieved by use of a scripting engine, or alternatively, a full virtual machine and runtime environment with a restricted instruction set.
- In accordance with an aspect of the present disclosure there is provided a system for protecting web applications against web attacks comprising a cloud service for generating rules and receiving reports, an agent manager in communication with the cloud service receiving rules from the cloud service and passing reports thereto, and an in-application agent in communication with the agent manager for receiving rules therefrom and passing reports thereto for protecting an application in which the in-application agent is embedded.
- In accordance with another aspect of the present invention there is provided a method of protecting web applications against web attacks comprising the steps of embedding an in-application agent into a web application to be protected, generating rules in a cloud service, providing the rules generated to the in-application agent, the in-application agent, receiving rules for protecting the web application in which the in-application agent is embedded.
- This summary is provided to highlight certain significant inventive aspects but is not intended to be an exhaustive or limiting definition of all inventive aspects of the disclosure. Other inventive aspects may be disclosed in the detailed description and drawings.
- The present invention will be further understood from the following detailed description with reference to the drawings in which:
-
FIG. 1 illustrates a system for protecting web applications against web attacks in accordance with an embodiment of the present disclosure; -
FIG. 2 illustrates the in-application agent ofFIG. 1 in further detail; -
FIG. 3 illustrates in a flowchart a method of protecting web applications in accordance with another embodiment of the present disclosure; -
FIG. 4 illustrates in a flowchart another method of protecting web applications in accordance with another embodiment of the present disclosure; and -
FIG. 5 illustrates in a flowchart another method of protecting web applications in accordance with another embodiment of the present disclosure. - The developer also has the ability to use the library functions to alert the cloud service about specific types of attacks that cannot be detected automatically, for example, a user session that skips a step in a multi-step process such as user signup. These types of alerts can be factored into determining a malicious user or malicious session.
- Complicated policies can be built using generic detection functions, real-time threat intelligence information, application-specific developer customization - allowing for a highly effective method of detecting application level attacks in real time.
- Furthermore, more than one application can be protected by the same set of policies (detection/action), managed by the same user interface, regardless of where the different applications reside.
- Definitions:
- A rule is a collection of detection logic (code), action logic (code) and associated data e.g., list of bad IPs, malicious users, vulnerable components, which are generated in the cloud service side of the system, and implemented by the agent library. A rule may be as simple as pattern-match-and-alert or as complicated as performing a statistical analysis on a request and streaming data to the cloud service for further processing.
- A security policy is a collection of rules that define how the application is to detect and respond to cyber threats. Some policies may be computationally intensive but highly effective at detecting attacks, while others may be much less sophisticated initially, but raise the level of protection after an attacker is suspected.
- A cloud service is a set of remote servers exposing an endpoint that collects relevant data from authenticated agent libraries via a secure channel, and generate policies and rules to be implemented by the agent library.
- An agent library is a software component that is included by the developer into the application directly or by the runtime environment, that provides the base functionality on the agent side to receive and implement rules and policies, and is able to send requested information to the cloud service.
- Referring to
FIG. 1 there is illustrated a system for protecting web applications against web attacks in accordance with a first embodiment of the present disclosure.FIG. 1 provides an overview of the system components. Thesystem 100 includes acloud service 110 coupled to a real-time web dashboard 120 and in communication with anagent manager 130. Theagent manager 130 communicates via the Internet 140 (e.g. via a persistent encrypted link) with an in-app agent 150 disposed in a protectedapplication 160. The in-app agent 150 is either included as a library by the developer or may be injected into the protectedapplication 160 via the runtime environment. For example, this may be done by wrapping the application or by injecting the library directly into the application via available runtime methods. - In operation, the in-
app agent 150 receivesrules 170 from thecloud service 110 via theagent manager 130. Therules 170 provide the detection and protection functionality. The in-app agent 150 also sendsreports 180 to theagent manager 130. Theagent manager 130 is responsible for the communications between thecloud service 110 and the protectedapplication 160. - The real-
time web dashboard 120 is provided to give the application developer or security operator an insight into the known vulnerabilities, attacks, and general state of security of the web application. Theweb dashboard 120 may display, present or output any suitable combination of data, metrics, information, settings, recommendations, etc. The real-time web dashboard 120 also provides a user interface having user interface elements (virtual buttons, menus, sliders, etc.) for customizing policies and rules. - The
cloud service 110 receives thereports 180 from the various agent managers 130 (only one shown inFIG. 1 ), as well as from other external sources, for example third party threat intelligence feeds and new algorithms developed by security researchers and generates new rules to be deployed to the in-app agents 150 via theagent manager 130. In other words, the cloud service may dynamically update the rules based not only on thereports 180 but also based upon new threat information received from any external source. - Referring to
FIG. 2 , there is illustrated the in-app agent ofFIG. 1 in further detail.FIG. 2 shows the components of the in-app agent 150. The in-app agent 150 includes alink manager 200, an in-app library 210 for storing therules 170 and arules processor 220 for applyingrules 170 and generatingreports 180. - In an example of the present disclosure, in operation, the
agent library 210 uses amiddleware mechanism 230 to hook into various points of theapplication 160 and the web application framework. Thehooks 240 allow therules processor 220 to injectrules 170 that it received from thecloud service 110 via thelink manager 130 into these points in the program (web application) being protected. In turn, theserules 170 allowreports 180 to be generated by therules processor 220 and to be sent by the in-app agent 150 back to theagent manager 130. Theagent manager 130 forwards thesereports 180 to thecloud service 110 for the creation of new rules in response to information contained within the reports. -
Different rules 170 may be used for detecting session-tampering attacks, SQL injection attacks, HTTP parameter pollution attacks, and HTTP splitting attacks. These types of attacks are only some examples of the types of attacks that can be detected and thwarted using this invention. -
FIG. 2 also shows an application stack havingvarious hooks 240. All processing is handled locally based on therules 170 supplied by theagent manager 130. No additional network latency is added to the application stack shown inFIG. 2 . - Referring to
FIG. 3 there is illustrated in a flowchart a method of protecting web applications in accordance with another embodiment of the present disclosure. Themethod 300 begins with embedding the in-app agent 150 atstep 310. Once embedded, the in-app agent 150 receives rules from thecloud service 110, via theagent manager 130, atstep 320. The in-app agent 150 then applies the rules to protect the web application using therules 170 atstep 330. When the in-app agent 150 detects suspicious activity atstep 340, it generates a report and sends it to thecloud service 110 via theagent manager 130 atstep 350. The cloud service analyzes the report and generates new rules to deal with the suspicious activity atstep 360 and sends the new rules to the in-app agent 150, via theagent manager 130, atstep 370. Finally, the in-app agent applies the new rules to deal with the suspicious activity atstep 380. This example represents a reactive situation. - Referring to
FIG. 4 there is illustrated in a flowchart a method of protecting web applications in accordance with a further embodiment of the present disclosure. Themethod 400 begins with embedding the in-app agent 150 atstep 410. Once embedded, the in-app agent 150 receives rules from thecloud service 110, via theagent manager 130, atstep 420. The in-app agent 150 then applies the rules to protect the web application using therules 170 at 430. Thecloud service 110 receives new information atstep 440. In this scenario there is no tripwire event in the in-app agent, rather, there is an update to the rules (step 450) because of an improvement in the rule set, which could be a better algorithm, data external to the application (e.g., IP reputation, vulnerable library information). In this case, the flow is straight from the cloud service to the agent (step 460). Finally, the in-app agent applies the new rules to protect the web application in an enhanced way atstep 470. This example represents a proactive situation in which thecloud service 110 initializes the improved protection provided to the web application by the in-app agent. - The dynamic nature of the method provides for altering the protection algorithms used based on what the
cloud service 110 believes is most effective. Consequently, the cloud service is injecting code for new algorithms into the in-app agents, which changes how attacks are detected/stopped all without developer intervention. Thus the in-app agent provides an empty container of rules at certain interfaces within the application, to be filled with rules that are generated dynamically cloud-side. - Referring to
FIG. 5 there is illustrated in a flowchart further detail of the operation of the in-app agent 150. Theoperation 500 begins with embedding the in-app agent 150 as represented by block 510. The web application is started atblock 520. The In-App Agent 150 technology injects hooks into the various interfaces: for example, it injects code (a hook) into the database interface layer (DB API) that allows it to process requests before the DB API call is made atblock 530. The In-App agent 150 inserts default rules into these interfaces atblock 530. The In-App agent 150 requests an updated rule set for these interfaces atblock 540. The In-App agent 150 receives the rules fromcloud service 110. Finally, the in-app agent 150 applies the new rules to protect the web application in an enhanced way, as represented byblock 570. - Although the foregoing technology is best implemented using a
cloud service 110, in other embodiments the cloud service may be replaced by a server cluster or even a single server. Each server is a computing device having a processor coupled to a memory and to a data communication port (e.g. modem, network adapter, etc.) for data communication with a network to which the server is connected. The server may include various input/output (I/O) devices and peripherals. The processor and memory cooperate to execute instructions in the form of software code for causing the computing device (server, cluster or cloud service as the case may be) to perform the acts or operations of the novel methods described herein. - Any of the methods disclosed herein may be implemented in hardware, software, firmware or any combination thereof. Where implemented as software, the method steps, acts or operations may be programmed or coded as computer-readable instructions and recorded electronically, magnetically or optically on a non-transitory computer-readable medium, computer-readable memory, machine-readable memory or computer program product. In other words, the computer-readable memory or computer-readable medium comprises instructions in code which when loaded into a memory and executed on a processor of a computing device cause the computing device to perform one or more of the foregoing method(s).
- A computer-readable medium can be any means, memory device or medium that contains, records, or stores a computer program or application to be executed or run by a processor (or microprocessor) of a computer (or computing device or other instruction-execution apparatus). The computer-readable medium may be electronic, magnetic, optical, electromagnetic, infrared or any semiconductor system or device. For example, computer executable code to perform the methods disclosed herein may be tangibly recorded on a non-transitory computer-readable medium including, but not limited to, a floppy-disk, a CD-ROM, a DVD, RAM, ROM, EPROM, Flash Memory or any suitable memory card, etc. The method may also be at least partially implemented in hardware. A hardware implementation might employ discrete logic circuits having logic gates for implementing logic functions on data signals, an application-specific integrated circuit (ASIC) having appropriate combinational logic gates, a programmable gate array (PGA), a field programmable gate array (FPGA), etc.
- This invention has been described in terms of specific embodiments, implementations and configurations which are intended to be exemplary only. Persons of ordinary skill in the art will appreciate, having read this disclosure, that many obvious variations, modifications and refinements may be made without departing from the inventive concept(s) presented herein. The scope of the exclusive right sought by the Applicant(s) is therefore intended to be limited solely by the appended claims.
Claims (14)
1. A system for protecting a web application against a web attack, the system comprising:
an in-application agent for applying rules for protecting the web application in which the in-application agent is embedded and for generating reports of suspicious activity;
a cloud service for providing rules, receiving the reports and generating new rules in response to the reports received without user intervention in the in-application agent; and
an agent manager in communication with the cloud service for receiving the rules from the cloud service and passing the rules received to the in-application agent and for receiving the reports from the in-application agent and passing the reports received to the cloud service.
2. The system of claim 1 wherein the cloud service dynamically updates the rules based upon new threat information received from an external source.
3. The system of claim 1 wherein the in-application agent includes a link manager for communications with the agent manager.
4. The system of claim 1 wherein the in-application agent includes hooks into the web application.
5. The system of claim 1 wherein the cloud service generates and updates rules in response to both application-level and external data sources.
6. The system of claim 1 wherein, upon receiving the new rules, the in-application agent updates a web protection configuration to use the new rules.
7. The system of claim 1 wherein the in-application agent processes the rules locally to detect and respond to a threat.
8. A method of protecting a web application against a web attack, the method comprising:
embedding an in-application agent into the web application to be protected;
generating rules in a cloud service;
providing the rules generated to the in-application agent;
applying, by the in-application agent, the rules to protect the web application in which the in-application agent is embedded.
9. The method of claim 8 further comprising:
detecting suspicious activity by the in-application agent;
generating a report; and
sending the report to the cloud service.
10. The method of claim 9 further comprising, upon receiving the report at the cloud service:
generating a new rule; and
sending the new rule to the in-application agent.
11. The method of claim 8 further comprising:
receiving new threat information at the cloud service from an external source;
generating new rules; and
sending the new rules to the in-application agent; and
the in-application agent using the new rules to protect against a new threat.
12. A non-transitory computer readable medium comprising instructions in code which when stored in a memory of a computing device and executed by a processor of the computing device cause the computing device to:
execute an in-application agent embedded in a web application, the in-application agent including:
an in-app library for storing rules;
a rules processor for applying the rules and for generating one or more reports;
a link manager for receiving new rules from a cloud service generated in response to the one or more reports;
one or more hooks in the web application enabling the rules processor to inject the new rules into the web application.
13. The computer readable medium of claim 12 wherein the link manager communicates with the cloud service by communicating via an encrypted link with an agent manager.
14. The computer readable medium of claim 12 wherein the rules processor disables input/output operations to sandbox the new rules injected into the web application.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/461,021 US20150052607A1 (en) | 2013-08-15 | 2014-08-15 | Method and system for protecting web applications against web attacks |
US15/899,937 US10623440B2 (en) | 2013-08-15 | 2018-02-20 | Method and system for protecting web applications against web attacks |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361866191P | 2013-08-15 | 2013-08-15 | |
US14/461,021 US20150052607A1 (en) | 2013-08-15 | 2014-08-15 | Method and system for protecting web applications against web attacks |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/899,937 Continuation US10623440B2 (en) | 2013-08-15 | 2018-02-20 | Method and system for protecting web applications against web attacks |
Publications (1)
Publication Number | Publication Date |
---|---|
US20150052607A1 true US20150052607A1 (en) | 2015-02-19 |
Family
ID=52467819
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/912,023 Abandoned US20160196129A1 (en) | 2013-08-15 | 2014-08-15 | Method and system to dynamically alter application functionality at runtime in a constrained and secure manner |
US14/461,021 Abandoned US20150052607A1 (en) | 2013-08-15 | 2014-08-15 | Method and system for protecting web applications against web attacks |
US15/899,937 Active US10623440B2 (en) | 2013-08-15 | 2018-02-20 | Method and system for protecting web applications against web attacks |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/912,023 Abandoned US20160196129A1 (en) | 2013-08-15 | 2014-08-15 | Method and system to dynamically alter application functionality at runtime in a constrained and secure manner |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/899,937 Active US10623440B2 (en) | 2013-08-15 | 2018-02-20 | Method and system for protecting web applications against web attacks |
Country Status (5)
Country | Link |
---|---|
US (3) | US20160196129A1 (en) |
EP (2) | EP3033673A4 (en) |
CA (2) | CA2920908A1 (en) |
IL (2) | IL237953A0 (en) |
WO (2) | WO2015021555A1 (en) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170357805A1 (en) * | 2016-06-08 | 2017-12-14 | Cylance Inc. | Macro-Script Execution Control |
US10735291B2 (en) * | 2018-07-27 | 2020-08-04 | Centurylink Intellectual Property Llc | Method and system for implementing high availability (HA) web application firewall (WAF) functionality |
US11126723B2 (en) * | 2018-10-25 | 2021-09-21 | BitSight Technologies, Inc. | Systems and methods for remote detection of software through browser webinjects |
US11329878B2 (en) | 2019-09-26 | 2022-05-10 | BitSight Technologies, Inc. | Systems and methods for network asset discovery and association thereof with entities |
US11627109B2 (en) | 2017-06-22 | 2023-04-11 | BitSight Technologies, Inc. | Methods for mapping IP addresses and domains to organizations using user activity data |
US11652834B2 (en) | 2013-09-09 | 2023-05-16 | BitSight Technologies, Inc. | Methods for using organizational behavior for risk ratings |
US11671441B2 (en) | 2018-04-17 | 2023-06-06 | BitSight Technologies, Inc. | Systems and methods for external detection of misconfigured systems |
US11675912B2 (en) | 2019-07-17 | 2023-06-13 | BitSight Technologies, Inc. | Systems and methods for generating security improvement plans for entities |
US11689555B2 (en) | 2020-12-11 | 2023-06-27 | BitSight Technologies, Inc. | Systems and methods for cybersecurity risk mitigation and management |
US11720679B2 (en) | 2020-05-27 | 2023-08-08 | BitSight Technologies, Inc. | Systems and methods for managing cybersecurity alerts |
US11729176B2 (en) * | 2018-12-28 | 2023-08-15 | Imperva Inc. | Monitoring and preventing outbound network connections in runtime applications |
US11770401B2 (en) | 2018-03-12 | 2023-09-26 | BitSight Technologies, Inc. | Correlated risk in cybersecurity |
US11777983B2 (en) | 2020-01-31 | 2023-10-03 | BitSight Technologies, Inc. | Systems and methods for rapidly generating security ratings |
US11777976B2 (en) | 2010-09-24 | 2023-10-03 | BitSight Technologies, Inc. | Information technology security assessment system |
US11783052B2 (en) | 2018-10-17 | 2023-10-10 | BitSight Technologies, Inc. | Systems and methods for forecasting cybersecurity ratings based on event-rate scenarios |
US11949655B2 (en) | 2019-09-30 | 2024-04-02 | BitSight Technologies, Inc. | Systems and methods for determining asset importance in security risk management |
US11956265B2 (en) | 2019-08-23 | 2024-04-09 | BitSight Technologies, Inc. | Systems and methods for inferring entity relationships via network communications of users or user devices |
US12079347B2 (en) | 2021-03-31 | 2024-09-03 | BitSight Technologies, Inc. | Systems and methods for assessing cybersecurity risk in a work from home environment |
EP4455914A1 (en) * | 2023-04-26 | 2024-10-30 | Nagravision Sarl | Method for securing at least one application associated to an application protection agent, corresponding computer program product and devices |
US12166776B1 (en) | 2024-01-31 | 2024-12-10 | Netskope, Inc. | Middle-ware artificial intelligence (AI) engine |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9465714B1 (en) | 2015-09-22 | 2016-10-11 | International Business Machines Corporation | Adaptive runtime for a multiprocessing API |
US10326864B2 (en) * | 2017-02-15 | 2019-06-18 | Sap Se | Dynamic orchestration of microservices |
US11635972B2 (en) * | 2020-02-12 | 2023-04-25 | Cisco Technology, Inc. | Multi-tenant java agent instrumentation system |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030023857A1 (en) * | 2001-07-26 | 2003-01-30 | Hinchliffe Alexander James | Malware infection suppression |
US20050273861A1 (en) * | 2004-06-04 | 2005-12-08 | Brian Chess | Apparatus and method for monitoring secure software |
US20060277539A1 (en) * | 2005-06-07 | 2006-12-07 | Massachusetts Institute Of Technology | Constraint injection system for immunizing software programs against vulnerabilities and attacks |
US20090089629A1 (en) * | 2007-09-27 | 2009-04-02 | Microsoft Corporation | Capturing diagnostics in web browser applications |
US20110099482A1 (en) * | 2009-10-22 | 2011-04-28 | International Business Machines Corporation | Interactive management of web application firewall rules |
US20120260344A1 (en) * | 2009-12-15 | 2012-10-11 | Ofer Maor | Method and system of runtime analysis |
US20120304299A1 (en) * | 2003-04-11 | 2012-11-29 | Samir Gurunath Kelekar | Method and apparatus for detecting vulnerability status of a target |
US20130019314A1 (en) * | 2011-07-14 | 2013-01-17 | International Business Machines Corporation | Interactive virtual patching using a web application server firewall |
US8527860B1 (en) * | 2007-12-04 | 2013-09-03 | Appcelerator, Inc. | System and method for exposing the dynamic web server-side |
US20130318396A1 (en) * | 2012-05-24 | 2013-11-28 | Sap Ag | Runtime configuration checks for composite applications |
US20140189875A1 (en) * | 2012-12-31 | 2014-07-03 | International Business Machines Corporation | Hybrid analysis of vulnerable information flows |
US20140215344A1 (en) * | 2013-01-29 | 2014-07-31 | International Business Machines Corporation | Automatic extraction, modeling, and code mapping of application user interface display screens and components |
US8839441B2 (en) * | 2010-06-28 | 2014-09-16 | Infosys Limited | Method and system for adaptive vulnerability scanning of an application |
US20140282464A1 (en) * | 2013-03-18 | 2014-09-18 | Cloudmask | Systems and methods for intercepting, processing, and protecting user data through web application pattern detection |
US8844043B2 (en) * | 2010-03-19 | 2014-09-23 | Contrast Security, Llc | Detection of vulnerabilities in computer systems |
US20140289391A1 (en) * | 2013-03-19 | 2014-09-25 | Cognizant Technology Solutions India Pvt. Ltd. | Framework for facilitating implementation of multi-tenant saas architecture |
US8849985B1 (en) * | 2007-12-03 | 2014-09-30 | Appcelerator, Inc. | On-the-fly instrumentation of Web applications, Web-pages or Web-sites |
US20150033341A1 (en) * | 2013-07-24 | 2015-01-29 | Webroot Inc. | System and method to detect threats to computer based devices and systems |
US20160119344A1 (en) * | 2013-07-04 | 2016-04-28 | Jscrambler S.A. | System and method for web application security |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5732275A (en) * | 1996-01-11 | 1998-03-24 | Apple Computer, Inc. | Method and apparatus for managing and automatically updating software programs |
US6553507B1 (en) * | 1998-09-30 | 2003-04-22 | Intel Corporation | Just-in-time software updates |
US6915513B2 (en) * | 2001-11-29 | 2005-07-05 | Hewlett-Packard Development Company, L.P. | System and method for dynamically replacing code |
AU2003284800A1 (en) * | 2002-11-12 | 2004-06-03 | Tianjin Kinsly Pharmaceutical Co., Ltd. | A new crystal form of adefovir dipivoxil and its composition |
US7784044B2 (en) * | 2002-12-02 | 2010-08-24 | Microsoft Corporation | Patching of in-use functions on a running computer system |
US7526753B2 (en) * | 2003-06-18 | 2009-04-28 | Microsoft Corporation | System and method for creating, managing and using code segments |
US7305672B2 (en) * | 2004-01-06 | 2007-12-04 | International Business Machines Corporation | Dynamic software update system, method and program product |
DE502005008211D1 (en) * | 2005-02-02 | 2009-11-05 | Schukra Geraetebau Ag | LORDOSE SUPPORT |
US8352935B2 (en) * | 2005-05-19 | 2013-01-08 | Novell, Inc. | System for creating a customized software distribution based on user requirements |
US7849448B2 (en) * | 2005-06-01 | 2010-12-07 | Crosscheck Networks | Technique for determining web services vulnerabilities and compliance |
CA2644386A1 (en) * | 2006-03-03 | 2007-09-07 | Art Of Defence Gmbh | Distributed web application firewall |
US8286238B2 (en) * | 2006-09-29 | 2012-10-09 | Intel Corporation | Method and apparatus for run-time in-memory patching of code from a service processor |
KR20080036706A (en) * | 2006-10-24 | 2008-04-29 | 박재철 | Web security module using web attack regular expression and script file inclusion |
WO2008094540A1 (en) * | 2007-01-29 | 2008-08-07 | Mashery, Inc. | Methods for analyzing limiting, and enhancing access to an internet api, web service, and data |
DE602007006475D1 (en) * | 2007-08-09 | 2010-06-24 | Sap Ag | Input and output validation to protect database servers |
US20090260004A1 (en) * | 2008-04-10 | 2009-10-15 | Palm, Inc. | Computer program updates for mobile computing device |
US8806630B2 (en) * | 2008-05-13 | 2014-08-12 | At&T Intellectual Property, I, L.P. | Methods and apparatus for intrusion protection in systems that monitor for improper network usage |
US9110690B2 (en) * | 2010-04-28 | 2015-08-18 | General Electric Company | Systems, methods, and apparatus for deploying application code change configurations for multiple target controllers |
US9461996B2 (en) * | 2010-05-07 | 2016-10-04 | Citrix Systems, Inc. | Systems and methods for providing a single click access to enterprise, SAAS and cloud hosted application |
US9282097B2 (en) * | 2010-05-07 | 2016-03-08 | Citrix Systems, Inc. | Systems and methods for providing single sign on access to enterprise SAAS and cloud hosted applications |
KR101005927B1 (en) * | 2010-07-05 | 2011-01-07 | 펜타시큐리티시스템 주식회사 | How to detect web application attacks |
JP5325177B2 (en) * | 2010-08-09 | 2013-10-23 | 株式会社日立製作所 | Web application operation recording method and system |
US8573545B2 (en) * | 2011-07-25 | 2013-11-05 | Holm-Quist Designs Llc | Mounting bracket means for solar arrays and the like |
CN103067344B (en) * | 2011-10-24 | 2016-03-30 | 国际商业机器公司 | The noninvasive method of automatic distributing safety regulation and equipment in cloud environment |
US9223978B2 (en) * | 2011-10-28 | 2015-12-29 | Confer Technologies, Inc. | Security policy deployment and enforcement system for the detection and control of polymorphic and targeted malware |
WO2013111547A1 (en) | 2012-01-24 | 2013-08-01 | 日本電気株式会社 | Route control device, control information generating method, and non-transitory computer-readable medium in which program is stored |
US9185125B2 (en) * | 2012-01-31 | 2015-11-10 | Db Networks, Inc. | Systems and methods for detecting and mitigating threats to a structured data storage system |
US8850420B2 (en) * | 2012-03-22 | 2014-09-30 | Sap Ag | Dynamically updating on-demand runtime platforms executing business applications |
US9158563B2 (en) * | 2012-03-27 | 2015-10-13 | Microsoft Technology Licensing, Llc | Dynamic plugin(s) for cloud application(s) |
US8997045B2 (en) * | 2013-01-03 | 2015-03-31 | International Business Machines Corporation | Processing proposed program code libraries in a networked computing environment |
US9658941B2 (en) * | 2013-01-28 | 2017-05-23 | Rackspace Us, Inc. | Methods and systems of function-specific tracing |
US9207920B2 (en) * | 2013-05-30 | 2015-12-08 | Veracode, Inc. | Systems and methods for remote analysis of software applications |
US9363190B2 (en) * | 2013-07-31 | 2016-06-07 | Manjrasoft Pty. Ltd. | System, method and computer program product for energy-efficient and service level agreement (SLA)-based management of data centers for cloud computing |
US20150040112A1 (en) * | 2013-08-01 | 2015-02-05 | Qualcomm Incorporated | Enabling Interoperability Between Software Applications By Utilizing Partial Binaries |
-
2014
- 2014-08-15 EP EP14836621.4A patent/EP3033673A4/en not_active Withdrawn
- 2014-08-15 US US14/912,023 patent/US20160196129A1/en not_active Abandoned
- 2014-08-15 EP EP14836342.7A patent/EP2951955B1/en active Active
- 2014-08-15 WO PCT/CA2014/050774 patent/WO2015021555A1/en active Application Filing
- 2014-08-15 WO PCT/CA2014/050773 patent/WO2015021554A1/en active Application Filing
- 2014-08-15 CA CA2920908A patent/CA2920908A1/en active Pending
- 2014-08-15 CA CA2884321A patent/CA2884321C/en active Active
- 2014-08-15 US US14/461,021 patent/US20150052607A1/en not_active Abandoned
-
2015
- 2015-03-26 IL IL237953A patent/IL237953A0/en unknown
-
2016
- 2016-02-11 IL IL244092A patent/IL244092A0/en unknown
-
2018
- 2018-02-20 US US15/899,937 patent/US10623440B2/en active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030023857A1 (en) * | 2001-07-26 | 2003-01-30 | Hinchliffe Alexander James | Malware infection suppression |
US20120304299A1 (en) * | 2003-04-11 | 2012-11-29 | Samir Gurunath Kelekar | Method and apparatus for detecting vulnerability status of a target |
US20050273861A1 (en) * | 2004-06-04 | 2005-12-08 | Brian Chess | Apparatus and method for monitoring secure software |
US20060277539A1 (en) * | 2005-06-07 | 2006-12-07 | Massachusetts Institute Of Technology | Constraint injection system for immunizing software programs against vulnerabilities and attacks |
US20090089629A1 (en) * | 2007-09-27 | 2009-04-02 | Microsoft Corporation | Capturing diagnostics in web browser applications |
US8849985B1 (en) * | 2007-12-03 | 2014-09-30 | Appcelerator, Inc. | On-the-fly instrumentation of Web applications, Web-pages or Web-sites |
US8527860B1 (en) * | 2007-12-04 | 2013-09-03 | Appcelerator, Inc. | System and method for exposing the dynamic web server-side |
US20110099482A1 (en) * | 2009-10-22 | 2011-04-28 | International Business Machines Corporation | Interactive management of web application firewall rules |
US20120260344A1 (en) * | 2009-12-15 | 2012-10-11 | Ofer Maor | Method and system of runtime analysis |
US8844043B2 (en) * | 2010-03-19 | 2014-09-23 | Contrast Security, Llc | Detection of vulnerabilities in computer systems |
US8839441B2 (en) * | 2010-06-28 | 2014-09-16 | Infosys Limited | Method and system for adaptive vulnerability scanning of an application |
US20130019314A1 (en) * | 2011-07-14 | 2013-01-17 | International Business Machines Corporation | Interactive virtual patching using a web application server firewall |
US20130318396A1 (en) * | 2012-05-24 | 2013-11-28 | Sap Ag | Runtime configuration checks for composite applications |
US20140189875A1 (en) * | 2012-12-31 | 2014-07-03 | International Business Machines Corporation | Hybrid analysis of vulnerable information flows |
US20140215344A1 (en) * | 2013-01-29 | 2014-07-31 | International Business Machines Corporation | Automatic extraction, modeling, and code mapping of application user interface display screens and components |
US20140215343A1 (en) * | 2013-01-29 | 2014-07-31 | International Business Machines Corporation | Automatic extraction, modeling, and code mapping of application user interface display screens and components |
US20140282464A1 (en) * | 2013-03-18 | 2014-09-18 | Cloudmask | Systems and methods for intercepting, processing, and protecting user data through web application pattern detection |
US20140289391A1 (en) * | 2013-03-19 | 2014-09-25 | Cognizant Technology Solutions India Pvt. Ltd. | Framework for facilitating implementation of multi-tenant saas architecture |
US20160119344A1 (en) * | 2013-07-04 | 2016-04-28 | Jscrambler S.A. | System and method for web application security |
US20150033341A1 (en) * | 2013-07-24 | 2015-01-29 | Webroot Inc. | System and method to detect threats to computer based devices and systems |
Cited By (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12010137B2 (en) | 2010-09-24 | 2024-06-11 | BitSight Technologies, Inc. | Information technology security assessment system |
US11882146B2 (en) | 2010-09-24 | 2024-01-23 | BitSight Technologies, Inc. | Information technology security assessment system |
US11777976B2 (en) | 2010-09-24 | 2023-10-03 | BitSight Technologies, Inc. | Information technology security assessment system |
US11652834B2 (en) | 2013-09-09 | 2023-05-16 | BitSight Technologies, Inc. | Methods for using organizational behavior for risk ratings |
US10191831B2 (en) * | 2016-06-08 | 2019-01-29 | Cylance Inc. | Macro-script execution control |
US20190095312A1 (en) * | 2016-06-08 | 2019-03-28 | Cylance Inc. | Macro-Script Execution Control |
US10649877B2 (en) * | 2016-06-08 | 2020-05-12 | Cylance Inc. | Macro-script execution control |
US20170357805A1 (en) * | 2016-06-08 | 2017-12-14 | Cylance Inc. | Macro-Script Execution Control |
US11627109B2 (en) | 2017-06-22 | 2023-04-11 | BitSight Technologies, Inc. | Methods for mapping IP addresses and domains to organizations using user activity data |
US11770401B2 (en) | 2018-03-12 | 2023-09-26 | BitSight Technologies, Inc. | Correlated risk in cybersecurity |
US11671441B2 (en) | 2018-04-17 | 2023-06-06 | BitSight Technologies, Inc. | Systems and methods for external detection of misconfigured systems |
US11438253B2 (en) * | 2018-07-27 | 2022-09-06 | Centurylink Intellectual Property Llc | Method and system for implementing high availability (HA) web application firewall (WAF) functionality |
US12040961B2 (en) | 2018-07-27 | 2024-07-16 | Centurylink Intellectual Property Llc | Method and system for implementing high availability (HA) web application firewall (WAF) functionality |
US10735291B2 (en) * | 2018-07-27 | 2020-08-04 | Centurylink Intellectual Property Llc | Method and system for implementing high availability (HA) web application firewall (WAF) functionality |
US11722394B2 (en) * | 2018-07-27 | 2023-08-08 | Centurylink Intellectual Property Llc | Method and system for implementing high availability (HA) web application firewall (WAF) functionality |
US20220417125A1 (en) * | 2018-07-27 | 2022-12-29 | Centurylink Intellectual Property Llc | Method and system for implementing high availability (ha) web application firewall (waf) functionality |
US11783052B2 (en) | 2018-10-17 | 2023-10-10 | BitSight Technologies, Inc. | Systems and methods for forecasting cybersecurity ratings based on event-rate scenarios |
US20230325502A1 (en) * | 2018-10-25 | 2023-10-12 | BitSight Technologies, Inc. | Systems and methods for remote detection of software through browser webinjects |
US12099605B2 (en) * | 2018-10-25 | 2024-09-24 | BitSight Technologies, Inc. | Systems and methods for remote detection of software through browser webinjects |
US11727114B2 (en) | 2018-10-25 | 2023-08-15 | BitSight Technologies, Inc. | Systems and methods for remote detection of software through browser webinjects |
US11126723B2 (en) * | 2018-10-25 | 2021-09-21 | BitSight Technologies, Inc. | Systems and methods for remote detection of software through browser webinjects |
US11729176B2 (en) * | 2018-12-28 | 2023-08-15 | Imperva Inc. | Monitoring and preventing outbound network connections in runtime applications |
US12223060B2 (en) | 2019-07-17 | 2025-02-11 | BitSight Technologies, Inc. | Systems and methods for generating security improvement plans for entities |
US11675912B2 (en) | 2019-07-17 | 2023-06-13 | BitSight Technologies, Inc. | Systems and methods for generating security improvement plans for entities |
US11956265B2 (en) | 2019-08-23 | 2024-04-09 | BitSight Technologies, Inc. | Systems and methods for inferring entity relationships via network communications of users or user devices |
US11329878B2 (en) | 2019-09-26 | 2022-05-10 | BitSight Technologies, Inc. | Systems and methods for network asset discovery and association thereof with entities |
US11949655B2 (en) | 2019-09-30 | 2024-04-02 | BitSight Technologies, Inc. | Systems and methods for determining asset importance in security risk management |
US11777983B2 (en) | 2020-01-31 | 2023-10-03 | BitSight Technologies, Inc. | Systems and methods for rapidly generating security ratings |
US11720679B2 (en) | 2020-05-27 | 2023-08-08 | BitSight Technologies, Inc. | Systems and methods for managing cybersecurity alerts |
US12099608B2 (en) | 2020-05-27 | 2024-09-24 | BitSight Technologies, Inc. | Systems and methods for managing cybersecurity alerts |
US12200006B2 (en) | 2020-12-11 | 2025-01-14 | BitSight Technologies, Inc. | Systems and methods for cybersecurity risk mitigation and management |
US11689555B2 (en) | 2020-12-11 | 2023-06-27 | BitSight Technologies, Inc. | Systems and methods for cybersecurity risk mitigation and management |
US12079347B2 (en) | 2021-03-31 | 2024-09-03 | BitSight Technologies, Inc. | Systems and methods for assessing cybersecurity risk in a work from home environment |
EP4455914A1 (en) * | 2023-04-26 | 2024-10-30 | Nagravision Sarl | Method for securing at least one application associated to an application protection agent, corresponding computer program product and devices |
WO2024223611A1 (en) * | 2023-04-26 | 2024-10-31 | Nagravision Sarl | Method for securing at least one application associated with an application protection agent, corresponding computer program product and devices |
US12166776B1 (en) | 2024-01-31 | 2024-12-10 | Netskope, Inc. | Middle-ware artificial intelligence (AI) engine |
Also Published As
Publication number | Publication date |
---|---|
CA2884321C (en) | 2015-06-30 |
US20160196129A1 (en) | 2016-07-07 |
WO2015021555A1 (en) | 2015-02-19 |
EP2951955B1 (en) | 2017-11-15 |
CA2884321A1 (en) | 2015-02-19 |
IL244092A0 (en) | 2016-04-21 |
EP2951955A4 (en) | 2016-07-20 |
US20180189052A1 (en) | 2018-07-05 |
CA2920908A1 (en) | 2015-02-19 |
WO2015021554A1 (en) | 2015-02-19 |
EP3033673A4 (en) | 2017-03-08 |
IL237953A0 (en) | 2015-05-31 |
EP2951955A1 (en) | 2015-12-09 |
EP3033673A1 (en) | 2016-06-22 |
US10623440B2 (en) | 2020-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10623440B2 (en) | Method and system for protecting web applications against web attacks | |
US10893068B1 (en) | Ransomware file modification prevention technique | |
Shabtai et al. | Google android: A state-of-the-art review of security mechanisms | |
US10839052B2 (en) | Method and system of hardening applications against security attacks | |
KR101700552B1 (en) | Context based switching to a secure operating system environment | |
CN107016283B (en) | Android privilege-escalation attack safety defense method and device based on integrity verification | |
US11411965B2 (en) | Method and system of attack detection and protection in computer systems | |
US20120210434A1 (en) | Security countermeasure management platform | |
US20070169192A1 (en) | Detection of system compromise by per-process network modeling | |
CA2968201A1 (en) | Systems and methods for malicious code detection | |
US20240223537A1 (en) | Encrypted cache protection | |
Ficco et al. | Modeling security requirements for cloud‐based system development | |
CN112995236B (en) | Internet of things equipment safety management and control method, device and system | |
CN101872400A (en) | Establishing a computer information security protection method for judging the security of computer operation requests based on the association relationship of computing system operation requests | |
CN113111347A (en) | Threat disposal method and safety monitoring probe for Android application | |
Gokkaya et al. | Software supply chain: review of attacks, risk assessment strategies and security controls | |
CN102819703B (en) | For protecting the method and apparatus of web page attacks | |
Agarwal et al. | First, Do No Harm: Studying the manipulation of security headers in browser extensions | |
Jeong et al. | SafeGuard: a behavior based real-time malware detection scheme for mobile multimedia applications in android platform | |
Powers et al. | Whitelist malware defense for embedded control system devices | |
US20250061190A1 (en) | Zero Trust File Integrity Protection | |
CN111538990B (en) | An Internet analysis system | |
US11457020B2 (en) | Method for integrity protection in a computer network | |
Jakobsson et al. | Mobile malware: Why the traditional AV paradigm is doomed, and how to use physics to detect undesirable routines | |
Cahill et al. | An Adaptive and Layered Approach to Endpoint Security |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: IMMUN.IO INC., CANADA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AL HAMAMI, AHMAD ZAID;REEL/FRAME:033547/0584 Effective date: 20140812 |
|
AS | Assignment |
Owner name: TREND MICRO INCORPORATED, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:IMMUN.IO INC.;REEL/FRAME:044777/0462 Effective date: 20180128 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |