日志说明
日志类型
OpenRASP 包含四类日志,均存放于 <app_home>/rasp/logs
目录下
文件名 | 文件内容 |
---|---|
plugin/plugin-DATE.log | 检测插件的日志,e.g 插件异常、插件调试输出 |
rasp/rasp-DATE.log | rasp agent 调试日志 |
alarm/alarm-DATE.log | rasp 报警日志,JSON 格式,一行一个 |
policy_alarm/policy_alarm-DATE.log | 安全基线检查报警日志,JSON 格式,一行一个 |
若要以 syslog
方式传输日志,或者进行其他高级配置,请参考高级配置选项
日志格式
报警日志包含两类,一类是攻击日志 (位置 alarm/alarm-DATE.log),一类是安全基线、编码规范检查日志 (位置 policy_alarm/policy_alarm-DATE.log)
1. 攻击日志格式
当发生攻击事件时,OpenRASP 将会记录以下信息,
字段 | 说明 |
---|---|
event_type | 日志类型,固定为 attack 字样 |
event_time | 事件发生时间 |
request_id | 当前请求ID |
intercept_state | 拦截状态 |
attack_source | 攻击来源 IP |
target | 被攻击目标域名 |
server_hostname | 被攻击的服务器主机名 |
server_ip | 被攻击目标 IP |
server_type | 应用服务器类型 |
server_version | 应用服务器版本 |
path | 当前URL,不包含参数 |
referer | 当前请求头的 Referer 字段 |
url | 当前URL,包含完整GET参数 |
attack_type | 攻击类型 |
attack_params | 攻击参数 |
plugin_name | 报告攻击插件名称 |
plugin_confidence | 检测结果可靠性,插件返回 |
plugin_message | 检测结果信息 |
user_agent | 浏览器 User-Agent 信息 |
stack_trace | 当前调用堆栈 |
上述信息以json格式记录到日志中,日志可以输出到文件或者syslog,一个完整的日志样例如下
{
"event_type" : "attack",
"event_time" : "2017-10-13T10:03:27",
"request_id" : "56e5ee656ea6458d8b343b96b9fb3257",
"attack_source" : "192.168.2.100",
"attack_params" : {
"command" : [
"ls"
]
},
"server_type" : "Tomcat",
"plugin_confidence" : 100,
"stack_trace" : "java.lang.ProcessBuilder.start(ProcessBuilder.java)\njava.lang.Runtime.exec(Runtime.java:620)\njava.lang.Runtime.exec(Runtime.java:450)\njava.lang.Runtime.exec(Runtime.java:347)\norg.apache.jsp._004_002dcommand_002d1_jsp._jspService(_004_002dcommand_002d1_jsp.java:94)\norg.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)\njavax.servlet.http.HttpServlet.service(HttpServlet.java:731)\norg.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)\norg.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)\norg.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)\njavax.servlet.http.HttpServlet.service(HttpServlet.java:731)\norg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)\norg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)\norg.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\norg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)\norg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)\norg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)\norg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)\norg.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)\norg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)",
"plugin_message" : "发现命令执行后门",
"attack_type" : "command",
"intercept_state" : "block",
"target" : "example.com",
"referer" : "baidu.com",
"server_ip" : "192.168.1.100",
"server_hostname": "my-bloodly-hostname",
"path" : "/vulns/004-command-1.jsp",
"plugin_name" : "offical",
"url" : "http://example.com:8080/vulns/004-command-1.jsp?cmd=ls",
"user_agent" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/57.0.1453.93 Chrome/57.0.1453.93 Safari/537.36",
"server_version" : "7.0.78"
}
2. 安全基线检查报警日志
当检测到不符合安全规范的配置时,OpenRASP 将会记录以下信息:
字段 | 说明 |
---|---|
event_type | 日志类型,固定为 security_policy 字样 |
event_time | 事件发生时间 |
server_hostname | 服务器主机名 |
server_nic | 服务器IP |
server_type | 应用服务器类型 |
server_version | 应用服务器版本 |
policy_id | 匹配的策略编号 |
message | 不符合规范的配置说明 |
stack_trace | 当前调用堆栈,某些情况可能为空 |
一个完整的日志样例如下,
{
"event_type": "security_policy",
"event_time" : "2017-04-01T08:00:00Z",
"policy_id": "3002",
"server_hostname": "my-bloodly-hostname",
"server_nic": {
{
"name": "eth0",
"ip": "10.10.1.131"
},
{
"name": "eth0",
"ip": "192.168.1.150"
}
},
"server_type": "Tomcat",
"stack_trace": "org.apache.catalina.startup.Catalina.start(Catalina.java)\nsun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\nsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)\nsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\njava.lang.reflect.Method.invoke(Method.java:606)\norg.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)\norg.apache.catalina.startup.Bootstrap.main(Bootstrap.java:428)\n"
"server_version": "7.0.15",
"message": "Tomcat 不应该以root权限启动"
}