Application Protection Overview
Based on runtime application self-protection (RASP), the application protection feature provides security check and protection for running applications. You do not need to modify application files. You simply need to inject probes to applications to enjoy powerful security protection capabilities.
Technical Principles
Probes (monitoring and protection code) are added to the checkpoints (key functions) of applications through dynamic code injection. The probes identify attacks based on predefined rules, data passing through the checkpoints, and contexts (application logic, configurations, data, and event flows).
Detection Capabilities
Table 1 describes the types of attacks that can be detected by application protection.
Attack Type |
Description |
Rule Name |
Detection |
---|---|---|---|
SQL injection |
SQL injection is an attack technology. Attackers exploit the vulnerabilities of dynamic SQL query in web applications to insert malicious code into user input fields and trick the database into executing SQL commands to steal, tamper with, or damage sensitive data, or run dangerous system-level commands on the database server. Most websites and web applications need to use SQL databases. Therefore, SQL injection attacks become one of the oldest and most widely launched network attacks. |
SQLI |
Detect and defend against SQL injection attacks, and check web applications for related vulnerabilities. |
OS command injection |
OS command injection is a web program vulnerability that is usually found in applications that require user input. If there is no effective filtering and verification mechanism for user input, this vulnerability may be exploited. It allows attackers to execute arbitrary OS commands on the server where an application is running. |
CMDI |
Detect and defend against remote OS command injection attacks and check web applications for related vulnerabilities. |
XSS |
Cross-site scripting (XSS) is a typical web program vulnerability exploit attack. Attackers can inject executable malicious scripts into websites or web applications where web programs do not check user input. When users access web pages, the malicious scripts are executed to steal users' personal data, display advertisements, or even tamper with web page content. |
XSS |
Detect and defend against stored XSS attacks. |
Log4j RCE vulnerability |
Log4j RCE is a major security vulnerability in Apache Log4j 2.x. This vulnerability allows attackers to inject and execute remote code through Java Naming and Directory Interface (JNDI). |
Log4jRCE |
Detect and defend against remote code execution and intercept attacks. |
Web shell upload |
Uploading web shells is a network attack method. Attackers upload malicious code such as web shells to a server through vulnerability exploit or other methods to obtain the control permission for the server. |
WebShellUpload |
Detect and defend against attacks that upload dangerous files, change file names, or change file name extension types; and check web applications for related vulnerabilities. |
Memory injection |
Memory injection is an advanced network attack technology. Attackers inject malicious code into the memory, bypassing the traditional security defense mechanism and controlling the target system. |
FilelessWebshell |
Detect and defend against memory injection attacks. |
XXE |
XXE refers to the XML External Entity Injection vulnerability. If external entity reference is not disabled when an application parses XML files, attackers can construct malicious XML content to read arbitrary files and execute system commands. |
XXE |
Detect and defend against XXE injection attacks, and check web applications for related vulnerabilities. |
Deserialization input |
Deserialization is a process of restoring serialized data (such as strings and byte streams) to original objects. In the process of generating a deserialized object, an attacker may construct specific serialized data input to control the generated object and launch attacks. |
UntrustedDeserialization |
Detect deserialization attacks that exploit unsafe classes. |
File directory traversal |
File directory traversal means that an attacker accesses or reads any file or folder on a server by modifying URLs or using special characters to bypass the security check of an application. |
FileDirAccess |
Check whether sensitive directories or files are accessed. |
Struts2 OGNL |
Struts2 OGNL refers to the Object-Graph Navigation Language (OGNL) in Struts2 in the Java web framework. If OGNL expressions are externally controllable, attackers can construct malicious OGNL expressions to make programs perform malicious operations. |
Struts2OGNL |
Detect OGNL code execution. |
Command execution using JSP |
Java Server Pages (JSP) is a technology for developing dynamic web pages. Attackers may exploit JSP security vulnerabilities to execute invalid OS commands, causing data leakage and service interruption. |
SuspiciousBehavior |
Detect command execution using JSP. |
File deletion using JSP |
Attackers may exploit JSP security vulnerabilities to delete files from a server. |
SuspiciousBehavior |
Detect file deletion using JSP. |
Database connection exception |
Database connection exceptions include but are not limited to network exceptions, configuration errors, and permission exceptions. These exceptions may indicate that applications are being attacked. |
SuspiciousException |
Detect authentication and communication exceptions thrown by database connections. |
0-day vulnerability |
0-day vulnerabilities, also called zero-day attacks, usually refers to security vulnerabilities that have not been patched. If such vulnerabilities are detected, hackers can exploit these vulnerabilities to launch zero-day attacks. |
|
|
SecurityManager permission exception |
SecurityManager is a Java security manager class that manages and controls the security of applications. When the SecurityManager detects that the code performs an operation that is not allowed, an exception is thrown. |
SuspiciousException |
Detect exceptions thrown by SecurityManager. |
JNDI injection |
When an application uses the lookup method of JNDI, if the queried URL can be controlled externally, an attacker can construct a malicious URL to make the server load malicious payloads and implement remote code execution. |
JNDI |
Detect and defend against JNDI injection attacks, and check web applications for related vulnerabilities. |
Expression injection |
Expression Language (EL) injection. If EL expressions are externally controllable, attackers can construct malicious EL expressions to make programs perform malicious operations. |
ExpressionInject |
Detect and defend against expression injection attacks, and check web applications for related vulnerabilities. |
Application Scenarios and Advantages
- Context awareness: Application protection can provide accurate detection results based on application context.
- Complementary with WAF: Application protection can detect the data written in the memory and unauthorized database access when applications are running.
- 0-day vulnerability defense: Application protection can dynamically detect and defend against attacks in real time when applications are running, blocking 0-day vulnerability exploits.
Constraints and Limitations
- Application protection is available in HSS premium, WTP, and container editions. For details about how to purchase and upgrade HSS, see Purchasing an HSS Quota and Upgrading Protection Quotas.
- Application protection can only protect web applications that meet the following conditions:
- JDK: JDK 8, JDK 11, JDK 17
- Web applications:
- Windows (64-bit): Tomcat
- Linux (64-bit): Tomcat, WebLogic, Netty, and Jetty
The version requirements are as follows:
- Tomcat 7.0.55 or later
- WebLogic 12C or later
- Netty 4.1.0.Final or later
- Jetty 9.3.19 or later
Process of Using Application Protection
![](https://support.huaweicloud.com/intl/en-us/usermanual-hss2.0/en-us_image_0000001903316470.png)
Operation |
Description |
---|---|
Enable application protection for a server to assess application security in real time. |
|
Analyze triggered events, harden application protection measures, and improve application security. |
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot