【悟空云课堂】第十期:日志伪造漏洞(CWE-117: Improper Output Neutralization for Logs)

关注公众号“中科天齐软件安全中心”(id:woocoom),一起涨知识!

该栏目为中科天齐全新规划的悟空云课堂,每周五下午18:00准时上线,旨在科普软件安全相关知识,助力企业有效防范软件安全漏洞,提升网络安全防护能力。

【悟空云课堂】第十期:日志伪造漏洞(CWE-117: Improper Output Neutralization for Logs)

什么是日志伪造漏洞?

应用程序通常使用日志文件来存储事件或事务的历史,以供以后查看、收集统计信息或调试。根据应用程序的性质,检查日志文件的任务可以根据需要手动执行,也可以使用工具自动筛选重要事件或趋势信息的日志。

当日志条目包含未经过授权的用户输入时,会造成日志伪造。

日志伪造漏洞的构成条件有哪些?

满足以下条件,就构成了一个日志伪造的安全漏洞:

1、数据是从不可靠的来源(包括但不局限于不可靠用户的输入信息或是不可靠用户可能更改的文件)进入应用程序;
2、数据写入到应用程序或是系统日志文件。

日志伪造漏洞会造成哪些后果?

关键词:修改应用程序的数据;隐藏活动;执行未授权的代码或命令

如果攻击者向记录到日志文件的应用程序提供恶意数据,则可能会妨碍或误导日志文件的解读。最理想的情况是,攻击者可能通过向应用程序提供包括适当字符的输入,在日志文件中插入错误的条目。如果日志文件是自动处理的,那么攻击者可以破坏文件格式或注入意外的字符,从而使文件无法使用。通过伪造或其他方式,可能会导致日志文件中的统计信息发生偏差,受到破坏的日志文件可用于掩护攻击者的跟踪轨迹,甚至还可以牵连第三方来执行恶意行为。最糟糕的情况是,攻击者可能向日志文件注入代码或者其他命令,利用日志处理实用程序中的漏洞。

日志伪造漏洞的防范和修补方法有哪些?

1、输入验证:对输入的信息进行验证。假设所有输入都是恶意的,使用“接受已知好的数据”输入验证策略,即,使用严格符合规范的可接受输入列表。拒绝任何不严格符合规范的输入,或者将其转换为符合规范的输入。
2、输出编码:对要写入日志文件的信息进行编码,使之符合日志文件的编码格式要求。常见的编码格式包括ISO-8859-1, UTF-7, 和UTF-8。

日志伪造导致的代码缺陷:

…
String val = request.getParameter("val");
try {

int value = Integer.parseInt(val);
}
catch (NumberFormatException) {
log.info("Failed to parse val = " + val);
}

用Wukong(悟空)软件代码安全检测修复系统检测上述程序代码,则可以发现代码中存在着日志伪造导致的代码缺陷,如下图:
Wukong(悟空)软件代码安全检测修复系统
日志伪造在CWE中被编号为CWE-117: Improper Output Neutralization for Logs

更多的信息请参考CWE官网:
http://cwe.mitre.org/data/definitions/117.html

了解更多安全资讯 请关注公众号 中科天齐软件安全中心

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值