JShellDetector: A Java Fileless Webshell Detector Based on Program Analysis
Source abstract
Abstract
Fileless webshell attacks against Java web applications have become more frequent in recent years as Java has gained market share. Webshell is a malicious script that can remotely execute commands and invade servers. It is widely used in attacks against web applications. In contrast to traditional file-based webshells, fileless webshells leave no traces on the hard drive, which means they are invisible to most antivirus software. To make matters worse, although there are some studies on fileless webshells, almost all of them are aimed at web applications developed in the PHP language. The complex mechanism of Java makes researchers face more challenges. To mitigate this attack, this paper proposes JShellDetector, a fileless webshell detector for Java web applications based on program analysis. JShellDetector uses method probes to capture dynamic characteristics of web applications in the Java Virtual Machine (JVM). When a suspicious class tries to call a specific sensitive method, JShellDetector catches it and converts it from the JVM to a bytecode file. Then, JShellDetector builds a Jimple-based control flow graph and processes it using taint analysis techniques. A suspicious class is considered malicious if there is a valid path from sources to sinks. To demonstrate the effectiveness of the proposed approach, we manually collect 35 test cases (all open source on GitHub) and test JShellDetector and only two other Java fileless webshell detection tools. The experimental results show that the detection rate of JShellDetector reaches 77.1%, which is about 11% higher than the other two tools.
Source: openalex_inverted_index · Quality: baseline
Research context
OpenAlex topics: Advanced Malware Detection Techniques · Security and Verification in Computing · Web Application Security Vulnerabilities
SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.
References (38)
Show source-provided references
1. OWASP Top 10 2021 team, Welcome to the OWASP Top 10-2021, 2021. [Online]. Available: https://owasp.org/Top10.
2. A survey on SQL injection: Vulnerabilities, attacks, and prevention techniques
3. Handling webshell attacks: A systematic mapping and survey10.1016/j.cose.2021.102366 ↗
4. WatchGuard Threat Lab, Internet Security Report-Q4 2020, 2020. [Online]. Available: https://www.watchguard.com/wgrd-resource-center/security-report-q4-2020.10.1016/S1353-4858(20)30039-8 ↗
5. J. Astle, K. Budnick, S. Clark, A. Dider, B. Donohue et al., 2022 Threat Detection Report, 2022. [Online]. Available: https://redcanary.com/resources/guides/threat-detection-report.
6. RF-AdaCost: WebShell detection method that combines statistical features and opcode
7. A webshell detection technology based on HTTP traffic analysis
8. Mitigating webshell attacks through machine learning techniques
9. TIOBE Software BV, TIOBE Index for July 2022, 2022. [Online]. Available: https://www.tiobe.com/tiobe-index.
10. A web shell detection method based on multiview feature fusion10.3390/app10186274 ↗
11. Classification of web backdoor malware based on function call execution of static analysis
12. Enhancing the feature profiles of Web shells by analyzing the performance of multiple detectors
13. CNN-webshell: Malicious Web shell detection with convolutional neural network
14. A method of detecting webshell based on multi-layer perception
15. Webshell detection based on random forest–gradient boosting decision tree algorithm
16. Detecting webshell based on random forest with FastText
17. Apache Software Foundation, Apache Tomcat, 2022. [Online]. Available: https://tomcat.apache.org.
18. Oracle Corporation, Oracle WebLogic Server, 2022. [Online]. Available: https://www.oracle.com/java/weblogic.
19. IBM Corporation, Java Servlets 3.0, 2022. [Online]. Available: https://www.ibm.com/docs/en/was-liberty/base?topic=features-java-servlets-30.
20. Javassist—a reflection-based programming wizard for java
21. Load-time structural reflection in java
22. Botsing, a search-based crash reproduction framework for java
23. S. Nusbaum, Dumping embedded Java classes, 2018. [Online]. Available: https://www.trustedsec.com/blog/dumping-embedded-java-classes.
24. BackFlow: Backward context-sensitive flow reconstruction of taint analysis results
25. TAJ: Effective taint analysis of web applications10.1145/1543135.1542486 ↗
26. The propagation strategy model of taint analysis
27. Condysta: Context-aware dynamic supplement to static taint analysis
28. The soot framework for java program analysis: A retrospective
29. Dexpler: Converting android dalvik bytecode to jimple for static analysis with soot
30. Control-flow analysis in scheme
31. tangxiaofeng7, SecExample, 2021. [Online]. Available: https://github.com/tangxiaofeng7/SecExample.
32. Cyber ranges and security testbeds: Scenarios, functions, tools and architecture10.1016/j.cose.2019.101636 ↗
33. National Vulnerability Database, CVE-2017-18349 Detail, 2017. [Online]. Available: https://nvd.nist.gov/vuln/detail/CVE-2017-18349.
34. mbechler, marshalsec, 2021. [Online]. Available: https://github.com/mbechler/marshalsec.
35. Webshell detection based on executable data characteristics of PHP code10.1155/2021/5533963 ↗
36. Session-based webshell detection using machine learning in web logs
37. LandGrey, copagent, 2021. [Online]. Available: https://github.com/LandGrey/copagent.
38. su18, MemoryShell, 2021. [Online]. Available: https://github.com/su18/MemoryShell.