webgoat-Security Logging Failures

2023-11-07 01:44

本文主要是介绍webgoat-Security Logging Failures,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概念

日志记录对于现代系统非常重要。我们出于各种原因使用它:

应用程序监视和调试。

审计日志记录:例如,记录用户和系统的特定操作。

安全事件监控:例如,向 SIEM 或 SOAR 系统提供信息,该系统将根据这些日志中提供的信息触发。

目标

用户应该对日志记录和日志记录的位置有基本的了解。

用户了解日志欺骗和日志信息泄露的风险。

用户将能够进行简单的日志欺骗攻击。

用户将能够分辨日志记录所涉及的基本风险。

有关日志记录的更多信息

正如您现在所知道的,当用户尝试欺骗日志时,日志欺骗可能会成为一个问题。除了表单发布之外,还有多种方法可以做到这一点。例如,考虑 URL 参数或精心制作的 JSON 有效负载。因此,做很重要

1、应用适当的输入过滤
2、确保您可以建立源真实性并实施完整性控制以检测日志篡改。
3、确保用户无法从任何通道注入日志
4、确保日志存储受到保护

但是,记录安全性不仅仅是针对欺骗攻击的清理。让我们看一下记录敏感信息。

记录敏感信息

在上一个练习中,我们只看到用户名经过,但没有密码。为什么?因为我们希望确保应用程序日志不包含任何敏感信息。让我们确保当我们的日志被泄露时,我们不必担心身份验证信息被重用。

同样,我们不应记录任何其他敏感信息,例如对称密钥或私钥、访问令牌等。

记录个人信息
记录个人信息时要小心。例如:不要记录银行帐户详细信息,用户不同意将其记录的个人身份信息。不要记录可以确定被记录对象身份的事实。

你基本上要防止的是,人们使用日志来分析人们或监视他们。您希望保护使用系统的受试者的隐私。

特殊情况:访问日志
一种特殊情况是入口和/或应用程序服务器提供的访问日志。这些日志应至少包含以下内容:请求来自何处、何时发出请求,以及响应代码可能是什么。可以在访问日志中共享其他信息,具体取决于日志的安全性。例如:您不希望在访问日志中共享原始请求以保护用户的隐私。

这里经常出现问题:访问日志有时会捕获用于请求的完整 URL。这可能包括敏感的 URL 参数。因此:小心你作为参数放入URL中的内容,并确保你没有将这些内容记录在可公开访问的日志中。


想了解更多关于日志记录的信息吗?看一看:

OWASP 日志记录备忘单https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html
维基百科上的GDPR文章https://en.wikipedia.org/wiki/General_Data_Protection_Regulation#Principles

更多关于日志记录 (2)

现在应该很清楚,使用简单的编码/解码不是保护日志中敏感信息的方法。相反,最好使用不同的技术:完全不记录数据、将其清空或使用另一个共享密钥对其进行加密。

日志级别
解释日志级别

异常处理
exception handling (maybe an example of logging exception towards the client with cryptography and why this is a bad idea)
审核日志记录、安全事件监控和应用程序日志
请注意,日志记录通常不仅仅用于应用程序调试。应用程序日志通常用作其他目的的源,请考虑:

审核日志记录:应用程序日志需要记录特定事件,以创建可用于重建代表用户/由用户执行的操作的跟踪。例如,这以后可以在法庭上用于证明在发生争议时发生了什么。

安全事件监视 (SEM):安全部门通常可以使用应用程序生成的事件来了解组织的应用程序环境中发生的情况。有各种类型的事件以及各种属性可以发挥作用,以检测组织是否陷入困境。例如:仅用作破玻璃过程的特权管理登录对他们来说已经是一个非常有价值的事件。另一个示例:虽然经常使用的管理登录可以很好地记录,但它们本身可能不会触发安全部门的事件,除非为该管理角色使用完全不同的位置。与安全部门一起进行威胁模型练习通常有助于了解他们需要哪些类型的日志,以及它们应立即触发安全警报的内容。

欺诈检测:您的应用程序日志可以帮助进行欺诈检测。例如:日志显示有人试图转移比他们拥有的更多的钱,这可能表明出了问题。

业务流程监控:您的应用程序日志可用于查看业务流程是否仍在按预期进行。例如:在流程的下游缺少新事件可能表明业务流程已停止。在指导公司时,这对企业来说可能是有价值的信息。

请注意,这些日志记录目的中有很多彼此之间有很大不同!因此,最好将应用程序(调试)日志记录与 SEM 和审核日志分开,以处理应用程序的输出、组织内日志的存储和处理。

更多阅读
OWASP 日志记录备忘单 https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html

这篇关于webgoat-Security Logging Failures的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/360407

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

Security OAuth2 单点登录流程

单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一注销(single sign-off)就是指

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

ImportError: cannot import name ‘print_log‘ from ‘logging‘

mmcv升级到2.+后删除了很多 解决 查FAQ文档,找到 添加到mmcv.utils下即可

图解可观测Metrics, tracing, and logging

最近在看Gophercon大会PPT的时候无意中看到了关于Metrics,Tracing和Logging相关的一篇文章,凑巧这些我基本都接触过,也是去年后半年到现在一直在做和研究的东西。从去年的关于Metrics的goappmonitor,到今年在排查问题时脑洞的基于log全链路(Tracing)追踪系统的设计,正好是对这三个话题的实践。这不禁让我对它们的关系进行思考:Metrics和Loggi

spring security 中的授权使用

一、认证     身份认证,就是判断一个用户是否为合法用户的处理过程。Spring Security 中支持多种不同方式的认证,但是无论开发者使用那种方式认证,都不会影响授权功能使用。因为 SpringSecurity 很好做到了认证和授权解耦。   二、授权     授权,即访问控制,控制谁能访问哪些资源。简单的理解授权就是根据系统提前设置好的规则,给用户分配可以访问某一个资源的

spring security 中的异常

一、简介 Spring Security 中异常主要分为两大类: 1、AuthenticationException: 认证异常 2、AccessDeniedException:  授权异常 AuthenticationEntryPoint 该类用来统一处理  AuthenticationException 异常 AccessDeniedHandler 该类用来统一处理  AccessDe