Web安全 - 阶段性总结回顾_风险评估

news/2024/10/9 6:16:00/

文章目录

  • OWASP 2023 TOP 10
  • 用户数据的威胁评估
    • 密码盗窃
    • XSS 漏洞
    • SQL 注入
    • CSRF 漏洞
  • 资产数据的威胁评估
    • SSRF 漏洞
    • 反序列化漏洞
    • 插件漏洞
    • 后门
  • 认证和授权的安全防护
    • 检测与过滤
    • 加强认证
    • 补丁管理
  • 进一步防护手段
    • 最小权限原则
    • WAF
    • IDS
  • 小结

在这里插入图片描述

OWASP 2023 TOP 10

在这里插入图片描述

OWASP Top 10 概述

OWASP (Open Web Application Security Project) Top 10 是一份最常见和最危险的Web应用安全风险列表,由安全专家定期更新。 旨在提高开发人员、测试人员以及组织的安全意识并帮助他们预防这些漏洞。

2023年OWASP Top 10 列表

在这里插入图片描述

主流防范措施

  1. Broken Access Control

    • 描述:未能正确执行访问控制,允许用户访问他们不应该拥有的权限或资源。这可能导致数据泄露、数据篡改等问题。
    • 防御措施:严格实施基于角色的访问控制(RBAC),并确保敏感操作具有足够的授权检查。
  2. Cryptographic Failures

    • 描述:不当的加密实践或加密算法的使用不当,可能导致敏感数据(如密码、信用卡信息)被暴露或窃取。
    • 防御措施:使用最新的加密标准(如AES-256-GCM、RSA-2048),并避免使用弱或过时的加密算法。
  3. Injection

    • 描述:应用未能对用户输入进行有效的验证或转义,导致恶意代码注入(如SQL注入、命令注入)并执行在服务器上。
    • 防御措施:使用参数化查询、输入验证、输出转义技术,避免拼接SQL或动态代码。
  4. Insecure Design

    • 描述:系统在设计阶段未考虑安全问题,导致应用架构中的基本安全漏洞。
    • 防御措施:在开发生命周期中引入威胁建模、攻击面分析等设计阶段的安全审查。
  5. Security Misconfiguration

    • 描述:错误的配置(如不安全的默认设置、过时的软件或未配置的安全功能),可能使应用程序面临攻击。
    • 防御措施:定期审计和测试系统配置,使用自动化工具识别和修复配置问题。
  6. Vulnerable and Outdated Components

    • 描述:使用了具有已知漏洞或未及时更新的第三方库和组件,可能被攻击者利用。
    • 防御措施:确保使用依赖管理工具(如Maven、npm),并定期更新组件,避免使用过时的版本。
  7. Identification and Authentication Failures

    • 描述:认证和身份验证流程中的缺陷,可能导致用户冒充、会话劫持等问题。
    • 防御措施:实施强密码策略、使用多因素认证(MFA)和加固会话管理机制。
  8. Software and Data Integrity Failures

    • 描述:未能保证软件更新和数据的完整性,可能使攻击者篡改关键数据或上传恶意更新。
    • 防御措施:使用签名机制来验证更新包的完整性,确保数据在传输和存储过程中的可靠性。
  9. Security Logging and Monitoring Failures

    • 描述:缺乏适当的日志记录和监控,无法有效检测、响应或追踪安全事件。
    • 防御措施:实施集中化的日志记录、主动的监控和告警系统,确保能够及时发现并响应异常行为。
  10. Server-Side Request Forgery (SSRF)

    • 描述:攻击者通过伪造服务器端的请求来获取未授权的内部资源或数据,通常利用未受限制的服务器端请求机制。
    • 防御措施:限制服务器端可以发起的请求范围,避免允许用户输入直接控制服务器端的请求参数。

重点风险与防御措施建议

  1. Broken Access Control:最重要的防御措施是定期审查权限设计,确保每个用户只能访问必要的资源。建议结合应用的访问控制系统与自动化测试工具,确保权限配置不被篡改。

  2. Cryptographic Failures:确保敏感数据加密和密钥管理机制符合行业标准,如使用硬件安全模块(HSM)来保护密钥。避免明文传输或存储敏感数据。

  3. Injection:对于Web应用来说,防止注入攻击的最佳实践是始终使用参数化查询和预编译的语句。严禁直接拼接用户输入构建SQL或命令。

  4. Security Misconfiguration安全配置管理应作为持续改进的一部分,尤其是在引入新服务或更新系统时,保持自动化的安全配置审计机制至关重要。

  5. SSRF:严格限制后端服务器能够访问的网络和资源,禁止对内部资源(如metadata或本地IP)发起请求。


用户数据的威胁评估

在设计安全体系时,首先需要考虑对用户数据的威胁评估。用户数据包含个人信息、博文信息、互动数据等。以下是几种常见的攻击方式:

密码盗窃

用户密码管理不当,比如使用弱密码或社工手段被盗,可能导致身份盗窃。防护措施包括:

  • 密码强度限制:强制要求用户设置复杂密码。
  • 多因素认证:通过短信验证码或应用验证器添加额外安全层。

XSS 漏洞

  • 黑客嵌入恶意 JavaScript 脚本篡改网页行为,可能窃取用户 Cookie,模拟用户操作。
  • 防护措施:对输入输出数据进行编码处理,确保浏览器不会执行恶意代码。

在这里插入图片描述


SQL 注入

  • 黑客通过“万能密码”攻击,篡改 SQL 语句绕过登录认证。
  • 防护措施:使用参数化查询,避免将用户输入直接嵌入 SQL 语句。

在这里插入图片描述


CSRF 漏洞

  • 黑客通过跨域请求伪造用户请求,执行未授权操作。
  • 防护措施:引入防御 Token,确保请求是由合法用户发起。

在这里插入图片描述


资产数据的威胁评估

资产数据尤其在金融行业至关重要,黑客可能会通过攻击内网服务器来窃取数据:

SSRF 漏洞

  • 通过服务端请求伪造,黑客控制服务器向内网发起恶意请求。
  • 防护措施:对内网请求进行严格的身份验证,限制对外服务的访问。

在这里插入图片描述


反序列化漏洞

  • 黑客通过恶意输入控制服务端执行任意命令。
  • 防护措施:禁止不可信数据的反序列化操作,或使用安全的序列化库。
    在这里插入图片描述

插件漏洞

  • 常用框架(如 Struts)中的安全漏洞可能被黑客利用。
  • 防护措施:及时更新插件,使用自动化补丁管理工具。

在这里插入图片描述


后门

  • 黑客可能在服务器中植入 WebShell 或 Rootkit 作为后门,以便随时访问。
  • 防护措施:定期检查服务器运行的进程和定时任务,确保无异常行为。

在这里插入图片描述


认证和授权的安全防护

检测与过滤

  • 对用户输入进行过滤和编码,防止 XSS 和 SQL 注入攻击。
  • 例子:通过正则表达式限制输入长度、字符类型等。

对于应用来说,一切由用户生成的信息,都是不可信的。因此,我们要对这些信息进行检测和过滤。比如,在页面渲染输出的时候,对信息进行编码;在用户输入的时候,对关键词进行过滤;对用户的输入进行白名单的限制等。通过这些方法,我们就能够对基于 XSS、SQL 注入和 SSRF 等漏洞的攻击进行一定的防护。

加强认证

  • 在关键操作(如转账)时进行二次认证,增加操作的可信度。
  • 例子:要求输入一次性密码(OTP)或支付密码。

大多数情况下,为了用户体验,应用会在用户进行一次登录后,在前端对用户的身份信息进行保存。这样,用户在进行后续操作时就不需要再次登录认证了。但是,这种设计,会对应用的安全性造成一定的影响。因为黑客可能控制用户的前端,来仿冒用户进行操作。为此,对于某些关键性的操作(比如转账等),应用需要通过一次性Token 和安全性更高的支付密码等手段进行二次认证,来保障操作的可信.

补丁管理

  • 及时监控和修复插件的已知漏洞,防止黑客利用“0 Day”漏洞。
  • 工具:自动化补丁管理工具如 Dependabot。

为了避免应用受到各类插件漏洞的影响,我们需要使用各种自动化的插件管理工具,对公开的插件漏洞进行监控,及时更新补丁


进一步防护手段

最小权限原则

  • 通过限制用户、应用的最低权限来减少攻击面。
  • 例子:在数据库访问权限上只允许读写必要的数据表。

通过给各类应用和插件配置最小的权限,虽然不能够对异常的身份认证进行识别。但是,通过最小权限原则,我们能够在最大程度上,减少黑客在窃取到用户身份后产生的危害,也就保护了数据的安全

WAF

  • Web 应用防火墙通过检测和拦截可疑输入来防止攻击。
  • 例子:输入数据的特征分析可识别 SQL 注入企图。

WAF 的主要作用,就是对用户的输入进行检测,拦截可疑地输入。检测原理就是,普通用户在应用中的输入可预测,基本不会去输入类似单引号这样可能对应用功能产生影响的输入.因此,我们只要对各类攻击类型的输入进行分析,提取出来其特征,就可以准确地识别出黑客的攻击行为并进行拦截了。

IDS

  • 入侵检测系统(IDS - Intrusion Detection System) 通过分析内网异常行为(如扫描、探测),及时告警潜在攻击。
  • 例子:基于网络流量和日志的异常检测机制。

当黑客进入内网或者控制了服务器之后,其行为往往也会区别于内部员工。比如,黑客可能会对内网发起探测扫
描,而内部员工只会按照工作需要访问特定的地址。因此,我们可以对内网和服务器中的各类行为进行收集,对异常的行为进行“挖掘”,从而对已发生的入侵进行检测和告警。这就是 IDS.


小结

在这里插入图片描述

在Web安全防护中,基于威胁评估的体系化记忆方法有助于系统掌握XSS、SQL注入、CSRF等漏洞防护,以及内网攻击防护手段(如SSRF、反序列化攻击)。通过检测、过滤、加强认证及最小权限原则,我们能够有效降低系统被攻击的风险。

在这里插入图片描述


http://www.ppmy.cn/news/1536503.html

相关文章

k8s 之安装metrics-server

作者:程序那点事儿 日期:2024/01/29 18:25 metrics-server可帮助我们查看pod的cpu和内存占用情况 kubectl top po nginx-deploy-56696fbb5-mzsgg # 报错,需要Metrics API 下载 Metrics 解决 wget https://github.com/kubernetes-sigs/metri…

imx6q 的 header.s的理解

首先是 非设备树的。 就是这三个文件。 header 是配置文件。 .c 文件应该是对这个文件的操作。 那么 header 怎么生成呢? 它这里调整好的 应该参数 应该就是 这个 header.s 了。 但是 这个程序 是 设备树的 流程 ,不知道 对于 非设备树 是不是 适用。 然后是设备树的。 设…

使用node+prisma+socket+vue3实现一个群聊功能,拓展功能:使用lottie实现入场动画

使用nodeprisma和vue3实现一个群聊功能 后端代码编写 node环境初始化 新建一个空文件夹node,初始化node环境 npm init -y修改 packages.json,添加 type 为 module,删除 main {"name": "node","version": …

优先级队列 ( PriorityQueue )

文章目录 前言一、优先级队列 1.1、概念二、优先级队列的模拟实现 2.1、堆的概念2.2、堆的存储方式 2.3、堆的创建2.4、堆的插入与删除三、常用接口介绍 3.1、Top-k问题3.2、使用PriorityQueue创建大小堆,解决TOPK问题 前言 前几篇我们讲解过队列,其是一…

三层网络与三层组网

"三层组网"和"三层网络"虽然名字相似,但它们的含义却有所不同 三层网络 三层网络指的是网络层的概念,它工作在OSI模型的第三层——网络层。网络层的主要功能是通过IP地址进行路由和转发数据包。三层网络设备,如路由器或…

怎样查局域网里的所有ip?

如果想高效管理网络设备,识别配置、更新和维护各类连接设备,排查网络故障,提升网络安全性,监控异常 IP 活动,发现潜在威胁等需要知道局域网。那么怎样查局域网里的所有ip呢? 一、局域网IP是什么&#xff1…

npm仓库镜像源

修改镜像源为淘宝镜像:输入以下命令并回车 npm config set registry https://registry.npmmirror.com 修改镜像源为腾讯镜像源:输入以下命令并回车 npm config set registry http://mirrors.cloud.tencent.com/npm/ 修改镜像源为华为镜像源:输入以下命…

Web和UE5像素流送、通信教程

一、web端配置 首先打开Github地址:https://github.com/EpicGamesExt/PixelStreamingInfrastructure 找到自己虚幻引擎对应版本的项目并下载下来,我这里用的是5.3。 打开项目找到PixelStreamingInfrastructure-master > Frontend > implementat…