Java RASP (Runtime Application Self-Protection) 典型案例
什么是RASP
RASP是一种在应用运行时嵌入的安全保护技术,能够实时监测和阻止攻击,与传统的WAF(Web应用防火墙)不同,RASP运行在应用内部,可以获取完整的上下文信息。

典型案例场景
案例1:SQL注入防护
攻击场景:
// 存在漏洞的代码
String username = request.getParameter("username");
String query = "SELECT * FROM users WHERE username = '" + username + "'";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(query);
RASP防护实现:
// RASP Hook实现SQL注入检测
public class SQLInjectionDetector {
@Hook(targetMethod = "java.sql.Statement.executeQuery")
public static void beforeExecuteQuery(String sql) {
// 检测SQL注入特征
if (containsSQLInjectionPatterns(sql)) {
// 记录攻击日志
SecurityLogger.logAttack("SQL Injection detected: " + sql);
// 阻断执行
throw new SecurityException("SQL Injection attack blocked");
}
}
private static boolean containsSQLInjectionPatterns(String sql) {
// 检测常见的SQL注入模式
String[] patterns = {
"'.*OR.*'1'='1",
"'.*UNION.*SELECT",
"'.*DROP.*TABLE",
"'.*DELETE.*FROM",
"'.*INSERT.*INTO",
"'.*UPDATE.*SET",
"--",
"/*",
"*/",
"1=1",
"sleep\\(",
"waitfor\\s+delay"
};
for (String pattern : patterns) {
if (sql.toUpperCase().matches(".*" + pattern + ".*")) {
return true;
}
}
return false;
}
}
案例2:命令执行防护
攻击场景:
// 存在漏洞的代码
String cmd = request.getParameter("command");
Runtime.getRuntime().exec(cmd);
RASP防护实现:
// RASP Hook实现命令执行检测
public class CommandExecutionDetector {
@Hook(targetClass = "java.lang.Runtime", targetMethod = "exec")
public static void beforeExec(String command) {
// 检测危险命令
if (isDangerousCommand(command)) {
SecurityLogger.logAttack("Command Injection detected: " + command);
throw new SecurityException("Command execution blocked");
}
}
private static boolean isDangerousCommand(String command) {
// 黑名单命令列表
String[] dangerousCommands = {
"rm", "del", "format", "shutdown",
"reboot", "chmod", "chown",
"wget", "curl", "nc", "netcat",
"bash", "cmd", "powershell",
"eval", "exec", "system",
"rundll32", "regsvr32"
};
String lowerCommand = command.toLowerCase();
for (String dangerous : dangerousCommands) {
if (lowerCommand.contains(dangerous)) {
return true;
}
}
return false;
}
}
案例3:文件上传防护
攻击场景:
// 存在漏洞的代码
MultipartFile file = request.getFile("file");
String fileName = file.getOriginalFilename();
file.transferTo(new File("/uploads/" + fileName));
RASP防护实现:
// RASP Hook实现文件上传检测
public class FileUploadDetector {
@Hook(targetMethod = "org.springframework.web.multipart.MultipartFile.transferTo")
public static void beforeTransferTo(File destFile) {
// 检查文件路径
if (isPathTraversalAttack(destFile.getPath())) {
SecurityLogger.logAttack("Path Traversal detected: " + destFile.getPath());
throw new SecurityException("File upload blocked");
}
// 检查文件类型
if (!isAllowedFileType(destFile.getName())) {
SecurityLogger.logAttack("Unsafe file type: " + destFile.getName());
throw new SecurityException("File type not allowed");
}
}
private static boolean isPathTraversalAttack(String filePath) {
return filePath.contains("..") ||
filePath.contains("../") ||
filePath.contains("..\\");
}
private static boolean isAllowedFileType(String fileName) {
Set<String> allowedExtensions = new HashSet<>(Arrays.asList(
"jpg", "jpeg", "png", "gif", "pdf", "doc", "docx", "xls", "xlsx"
));
String extension = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
return allowedExtensions.contains(extension);
}
}
商业RASP产品案例
OpenRASP (百度)
- 特点:开源免费
- 关键功能:
// OpenRASP的配置示例 { "hook": { "sql_database": { "enabled": true, "action": "block", "stack": true }, "command_execution": { "enabled": true, "action": "block", "blacklist": ["rm", "del", "format"] } } }
Contrast Security
- 特点:商业产品,IAST+RASP结合
- 关键功能:
// Contrast RASP的注解式防护 @Secure public class UserController { @Secure({SecureType.SQL_INJECTION, SecureType.XSS}) public User getUser(@SecureParam String id) { // 自动包含安全防护 } }
RASP与传统防护对比
| 特性 | RASP | WAF | 传统代码审计 |
|---|---|---|---|
| 检测位置 | 应用内部 | 网络边界 | 代码层面 |
| 上下文理解 | 完全理解 | 有限理解 | 静态分析 |
| 实时性 | 实时 | 实时 | 非实时 |
| 误报率 | 低 | 中 | 高 |
| 部署复杂度 | 中 | 低 | 高 |
实际应用案例
某电商平台RASP部署效果:
- 场景:防止SQL注入攻击订单系统
- 实现:在JDBC层注入Hook
- 效果:成功拦截了日均200+次的SQL注入尝试
- 性能影响:<5ms的延迟增加
某金融系统RASP部署效果:
- 场景:防止命令执行漏洞
- 实现:在Runtime.exec方法处注入Hook
- 效果:发现并修复了3个隐藏的命令注入漏洞
- 告警准确率:99.7%
建议
- 选择适当的Hook点:关注关键的API调用
- 性能优化:使用缓存、异步处理等方式
- 精细策略:区分不同场景的安全策略
- 日志记录:完整的攻击记录和审计功能
- 灰度发布:逐步部署,减少影响
RASP技术通过运行时监控,能够有效补充传统安全防护的不足,为企业提供更深层次的防护能力。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播