网站首页 > 开源技术 正文
介绍
日志注入(也称为日志伪造)攻击的原因是将不可信的输入引入到应用程序或系统日志文件中,从而损害其中数据的完整性。实施该技术的恶意行为者可以篡改或伪造日志,以误导日志审计过程,篡改应用程序记录以掩盖攻击的痕迹,在最极端的情况下,还可以在应用程序上实现远程代码执行。日志注入攻击只是众多注入攻击中的一种,在OWASP web应用程序安全风险的TOP 10列表中占据了一席之地。
可审计的、按时间顺序排列的事件和事务列表由web应用程序、服务和操作系统记录,可以用于许多用价值的场景,例如;性能优化、数据收集、日志记录和调试。例如,SIEM系统摄取日志文件以识别可能需要标记和警报的行为模式。不幸的是,如果开发人员在读取和写入应用程序日志之前不考虑在有效的过滤和验证,那么这个历史记录的功能所带来的危害可能远大于其价值。
如果允许不受信任的数据进入应用程序,或者将数据写入此类应用程序或其系统日志文件,就会发生这种性质的攻击。
影响及危害
不同类型的日志注入攻击会有不同的结果:
- 日志可能会被篡改或添加,这可能是反数字取证调查的手段,来避免被溯源调查;
- 客户端注入攻击,如XSS攻击,可以设计这样一种方式,以日志的形式保存恶意的XSS代码,然后客户端执行;
- 如果应用程序允许对日志记录进行解析,那么可能将可执行代码注入到web应用程序中。
这种关于日志伪造的案例可能对系统的影响相对较小。然而,如果类似的日志伪造被用于改变犯罪分子甚至国家安全调查的路径,那就后果很严重了。
但在2021年12月,一个影响Log4j框架的漏洞被发现并披露给了Apache基金会,Log4J是该基金会负责维护的开源软件,并且被全球无数个组织的核心基础设施使用。报道援引美国网络安全和基础设施安全局(CISA)负责人的话说,“这是我在整个职业生涯中见过的最严重的漏洞之一“这个说法并不算夸张,因为该漏洞会导致数以亿计的应用程序瞬间就容易受到这样一个易于执行的RCE的攻击。
远程命令执行漏洞的原因是什么?一个特别制作的日志消息,如果启用了消息查找替代选项(默认情况下是这样),则触发远程类加载、消息查找和内容执行。
场景
假设应用程序具有记录失败登录尝试的功能,并在记录了一定数量的具有相同登录标识的失败尝试后触发警报;这些日志可以提醒分析师这里可能存在暴力破解的攻击。假设事件管理系统上的配置设置为:如果在一分钟内同一登录出现10条类似下面日志,则产生告警:
May 20:2022:16:35:47: ApplicationName:Failed Login, Id=admin
如果在达到告警阈值之前发生登录成功事件,系统将重置。然而,如果恶意行为者能够在日志文件中添加信息,那么恶意行为者就能够使用伪造的ID登录,将日志修改成以下内容:
otheruser\r\nMay 20:2022:16:35:47: ApplicationName:Successful Login, Id=admin
如果应用程序无法验证传入值的登录id并成功记录它,则日志文件将显示两个条目;第一个不成功,第二个成功:
May 20:2022:16:35:47: ApplicationName:Failed Login, Id=adminotheruser
May 20:2022:16:35:47: ApplicationName:Successful Login, Id=admin
伪造的记录就可以重置监控系统中关于失败的登录尝试的计数,从而防止产生任何警报。
如何防护
应用程序对这种攻击的敏感性高度依赖于对日志写入的权限控制和内容过滤。针对日志注入攻击的一个主要防御措施是通过实现一个允许字符列表来严格清除出站日志消息。这可能包括所有日志中字母数字字符和空格,并限制其他控制、转移符号等。
猜你喜欢
- 2025-05-02 GrayLog开源日志管理平台技术文章合集【共58篇】
- 2025-05-02 AI大模型 MiniMax 基于 Apache Doris 的日志系统,PB 级秒级查询响应
- 2025-05-02 互联网大厂后端必看!手把手教你替换 Spring Boot 中的日志框架
- 2025-05-02 一共81个,开源大数据处理工具汇总(下),包括日志收集系统
- 2025-05-02 Spring Boot 2.x基础教程:使用tinylog记录日志
- 2025-05-02 性能优越的轻量级日志收集工具,微软、亚马逊都在用
- 2025-05-02 【运维必看】从 CI/CD 到监控,一款开源平台搞定所有运维痛点!
- 2025-05-02 lnav:基于 Linux 的高级控制台日志文件查看器
- 2025-05-02 开源工具!在Ubuntu上配置日志查询系统
- 2025-05-02 基于 Delta lake、Hudi 格式的湖仓一体方案
你 发表评论:
欢迎- 最近发表
-
- 10款鲜为人知的PHP框架(10款鲜为人知的php框架代码)
- 3分钟搞懂反弹shell(反弹shell的常用命令)
- 计算机专业必须掌握的脚本开发语言—shell
- shell 基本语法(shell基本语法set)
- 学习Shell 教程(shell编程学习)
- 一个有意思的PHP Webshell,利用伪协议执行代码
- Linux入门-shell编程-适合小白(linux shell编程是什么)
- GrayLog开源日志管理平台技术文章合集【共58篇】
- AI大模型 MiniMax 基于 Apache Doris 的日志系统,PB 级秒级查询响应
- 互联网大厂后端必看!手把手教你替换 Spring Boot 中的日志框架
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)