不足的日志记录和监控漏洞

目录

(一)漏洞简介

(二)CRLF 注入漏洞

(三)未记录可审计性事件

日志记录方式包括以下两种

(四)对日志记录和监控的安全建议

总结


(一)漏洞简介


不足的日志记录和监控,以及事件响应缺失或无效的集成,这类漏洞使攻击者能够进一步攻击系统、保持持续性或转向更多系统,以及篡改、提取或销毁数据。大多数缺陷研究显示,缺陷被检测出的时间会超过 200 天,且通常通过外部检测方检测,而不是通过内部流程或监控检测。

(二)CRLF 注入漏洞


CRLF 的缩写是指回车和换行操作,其中 CR ASCII 中的第 13 个字符,也 写作 \r , LF ASCII 中的第 10 个字符,也写作 \n ,因此 CRLF 一般翻译为回车换行注入漏洞。博主将通过下述例子简介 CRLF 漏洞
<%@ page contentType="text/html;charset=UTF-8" language="Java" %> 
<%@ page import="Java.util.logging.Logger" %> 
<%@ page import="Java.util.logging.Level" %> 
 
     
     日志注入 
 
      
     <% 
             String val=request.getParameter("val"); 
             Logger log = Logger.getLogger("log"); 
             log.setLevel(Level.INFO); 
     try{ 
             int value = Integer.parseInt(val); 
             System.out.print(value); 
             }catch(Exception e){ 
                 log.info("Filed to parse val = " + val); 
                 } 
     %> 
  
如果用户为“ val ”提交字符串“ twenty-one ”(数字 21 的英文),则日志会记录以下条目:
INFO:Failed to parse val=twenty-one
然而,如果攻击者提交字符串“twenty-one%0a%0aINFO:+User+logged+out%3dbadguy”(“%0a”是“换行符”的 URL 编码,“%3d”是“=”的 URL 编码),则日志中就会记录以下条目
INFO:Failed to parse val=twenty-one 
INFO:User logged out=badguy
运行结果如图 2 -1  所示。
不足的日志记录和监控漏洞_第1张图片 图 2-1   运行结果

         显然,攻击者可以通过将未经验证的用户输入写入日志文件,使日志条目被伪造或者恶意信息被注入日志。

        此外,CRLF 漏洞有两种常见的攻击手法:HTTP 请求走私(HTTP Request

Smuggling )和 HTTP 响应拆分( HTTP Response Splitting ),这里先不再介绍。

(三)未记录可审计性事件


对“可审计性事件”进行记录有利于安全运维、回溯审计。在对某些重要业务或数据信息进行溯源时,日志的记录越详细越好,但出于对性能等因素的考虑,侧重点会有不同。最基础的日志记录可涵盖以下信息。
  1. 事件发生的时间。
  2. 用户 ID
  3. 访问发起端地址或标识(如关联终端、端口、网络地址或通信设备)
  4. 事件类型。
  5. 被访问的资源名称。
  6. 事件的结果。

日志记录方式包括以下两种

  1. 高度代码耦合:在业务逻辑中直接调用日志记录接口。
  2. 采用 AOP 方式:AOP 方式能与业务逻辑解耦

(四)对日志记录和监控的安全建议


为了做好“日志记录和监控”的安全工作,建议读者进行以下几方面的考虑:
  1. Web 应用服务器须对安全事件及操作事件进行日志记录。
  2. Web 应用须保证日志记录完整。
  3. Web 应用须限定用户对日志的访问权限。
  4. Web 应用须对日志模块所占用的资源进行限制。
  5. Web 应用须保证日志文件不与操作系统存储于同一个分区。
  6. Web 应用须保证只有在调试模式下才能输出调试日志。

总结

若将 Web 应用的安全管理划分成“事前”“事中”与“事后”这 3 个阶段,那么日志记录与监控则是“事后”这一阶段的重点。做好日志记录和监控对“安全运维”工作的意义重大。在实践过程中,也需谨防“日志注入”等风险较低的问题,以免遭受攻击者的误导与侵害

你可能感兴趣的:(渗透与攻防,安全,web安全,安全威胁分析)