• 日志说明
    • 日志类型
    • 日志格式
      • 1. 攻击日志格式
      • 2. 安全基线检查报警日志

    日志说明

    日志类型

    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,一个完整的日志样例如下

    1. {
    2. "event_type" : "attack",
    3. "event_time" : "2017-10-13T10:03:27",
    4. "request_id" : "56e5ee656ea6458d8b343b96b9fb3257",
    5. "attack_source" : "192.168.2.100",
    6. "attack_params" : {
    7. "command" : [
    8. "ls"
    9. ]
    10. },
    11. "server_type" : "Tomcat",
    12. "plugin_confidence" : 100,
    13. "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)",
    14. "plugin_message" : "发现命令执行后门",
    15. "attack_type" : "command",
    16. "intercept_state" : "block",
    17. "target" : "example.com",
    18. "referer" : "baidu.com",
    19. "server_ip" : "192.168.1.100",
    20. "server_hostname": "my-bloodly-hostname",
    21. "path" : "/vulns/004-command-1.jsp",
    22. "plugin_name" : "offical",
    23. "url" : "http://example.com:8080/vulns/004-command-1.jsp?cmd=ls",
    24. "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",
    25. "server_version" : "7.0.78"
    26. }
    2. 安全基线检查报警日志

    当检测到不符合安全规范的配置时,OpenRASP 将会记录以下信息:

    字段 说明
    event_type 日志类型,固定为 security_policy 字样
    event_time 事件发生时间
    server_hostname 服务器主机名
    server_nic 服务器IP
    server_type 应用服务器类型
    server_version 应用服务器版本
    policy_id 匹配的策略编号
    message 不符合规范的配置说明
    stack_trace 当前调用堆栈,某些情况可能为空

    一个完整的日志样例如下,

    1. {
    2. "event_type": "security_policy",
    3. "event_time" : "2017-04-01T08:00:00Z",
    4. "policy_id": "3002",
    5. "server_hostname": "my-bloodly-hostname",
    6. "server_nic": {
    7. {
    8. "name": "eth0",
    9. "ip": "10.10.1.131"
    10. },
    11. {
    12. "name": "eth0",
    13. "ip": "192.168.1.150"
    14. }
    15. },
    16. "server_type": "Tomcat",
    17. "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"
    18. "server_version": "7.0.15",
    19. "message": "Tomcat 不应该以root权限启动"
    20. }

    原文: https://rasp.baidu.com/doc/setup/log/main.html