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

news2024/12/23 13:55:21

文章目录

  • 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.coloradmin.cn/o/2186268.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

类似 o1 的推理-Llama3.1-70b 提供支持的 g1 创建推理链

g1简介: g1 是一个利用 Llama 3.1 70b 模型在 Groq 硬件上实现类似 OpenAI o1 推理链能力的开源项目。它通过精心设计的提示策略来引导语言模型进行逐步推理,从而解决了传统语言模型在逻辑推理方面的不足。g1 项目的目标是探索如何利用提示策略来提高语言模型的推理…

InfoGAN:通过信息最大化生成对抗网络进行可解释的表示学习

系列文章目录 一 Conditional Generative Adversarial Nets 二 cGANs with Projection Discriminator 三 Conditional Image Synthesis with Auxiliary Classifier GANs 四 InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial…

python 棒棒糖图

结果: import matplotlib.pyplot as plt import matplotlib.ticker as ticker import numpy as npdef lolly_plot(x, y, color_lis, breaks, back_color,title, sub_title):# 获取每个点的颜色colors [assign_color(temperature, breaks, color_lis) for temperatu…

想学道家智慧,误打误撞被儒家引导读《道德经》?这是怎么回事?

想学道家智慧,却误打误撞被儒家引导读《道德经》?这是怎么回事? 原来,这其中的缘由可以追溯到汉代。董仲舒等人在整理文献时,对《老子》进行了修改和补充,形成了所谓的《道德经》。这一版本不仅颠覆了原本…

【玩转 JS 函数式编程_004】1.4 如何应对 JavaScript 的不同版本

本节目录 1.4 如何应对 JavaScript 的不同版本 How do we work with JavaScript?1.4.1. 使用转译工具 Using transpilers1.4.2. 应用在线环境 Working online1.4.3. 测试环境 Testing 1.4 如何应对 JavaScript 的不同版本 How do we work with JavaScript? 上面介绍的语言特…

netty之Netty传输文件、分片发送、断点续传

前言 1:在实际应用中我们经常使用到网盘服务,他们可以高效的上传下载较大文件。那么这些高性能文件传输服务,都需要实现的分片发送、断点续传功能。 2:在Java文件操作中有RandomAccessFile类,他可以支持文件的定位读取…

【递归】13. leetcode 1457. 二叉树中的伪回文路径

1 题目描述 题目链接:二叉树中的伪回文路径 2 解答思路 第一步:挖掘出相同的子问题 (关系到具体函数头的设计) 第二步:只关心具体子问题做了什么 (关系到具体函数体怎么写,是一个宏观的过…

【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化

【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化 阿里 MySQL 命名规范MySQL8 DDL的原子化 阿里 MySQL 命名规范 【强制】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价…

使用 Elastic 将 AI 摘要添加到你的网站

作者:来自 Elastic Gustavo Llermaly 我们目前所知道的搜索(搜索栏、结果、过滤器、页面等)已经取得了长足的进步,并实现了多种不同的功能。当我们知道找到所需内容所需的关键字或知道哪些文档包含我们想要的信息时,尤…

云计算SLA响应时间的matlab模拟与仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 用matlab模拟,一个排队理论。输入一堆包,经过buffer(一个或者几个都行)传给server,这些包会在buffer里…

热网无线监测系统/config.aspx接口存在反射性XSS漏洞

漏洞描述 热网无线监测系统/config.aspx接口存在反射性XSS漏洞 漏洞复现 FOFA body"Downloads/HDPrintInstall.rar" || body"skins/login/images/btn_login.jpg" POC IP/config.aspx POC <script>alert(1)</script> 点击确认成功弹窗1

C++继承与菱形继承(一文了解全部继承相关基础知识和面试点!)

目的减少重复代码冗余 Class 子类(派生类) &#xff1a; 继承方式 父类&#xff08;基类&#xff09; 继承方式共有三种&#xff1a;公共、保护、私有 父类的私有成员private无论哪种继承方式都不可以被子类使用 保护protected权限的内容在类内是可以访问&#xff0c;但是在…

kubernetes-强制删除命名空间

一、故障现象 1、删除命名空间卡住、强制删除也卡住 2、其他终端显示命名空间下无资源 二、处理步骤 1、kubectl get namespace cilium-test -o json > temp.json 获取你需要删除的命名空间json描述文件。 2、修改finalize字段 3、替换 kubectl replace --raw "/api/v1…

csdn加目录,标题

最简单的办法是&#xff0c; 目录 先写文章&#xff0c; 在给需要加标题的&#xff0c; 给他添加格式为标题一&#xff0c; 在点目录 先写文章&#xff0c; 在给需要加标题的&#xff0c; 给他添加格式为标题一&#xff0c; 最后点目录就会生成目录在文章前面了&#x…

AMD GPU推理:三步让你了解AI推理的游戏规则

我们常听到“AI推理”这个词,但很多朋友可能只了解个大概。如果你对AI有基本的认识,可能会好奇:AMD的GPU怎么在推理中大展拳脚?它跟常见的NVIDIA相比又如何?今天,我们就来聊聊这个问题。你可能在考虑选购GPU或者在项目中使用AMD,本文将带你从实际应用出发,一步步拆解。…

云原生(四十一)| 阿里云ECS服务器介绍

文章目录 阿里云ECS服务器介绍 一、云计算概述 二、什么是公有云 三、公有云优缺点 1、优点 2、缺点 四、公有云品牌 五、市场占有率 六、阿里云ECS概述 七、阿里云ECS特点 阿里云ECS服务器介绍 一、云计算概述 云计算是一种按使用量付费的模式&#xff0c;这种模式…

Stable Diffusion绘画 | 来训练属于自己的模型:炼丹参数调整--步数设置与计算

要想训练一个优质的模型&#xff0c;一定要认识和了解模型训练中&#xff0c;参数的作用和意义。 整个模型训练的过程&#xff0c;参数并不是一成不变的&#xff0c;也没有固定的模板&#xff0c; 当我们修改了模型训练里面的某个参数&#xff0c;很可能就需要连带其他一系列…

USB外设的Device与Host的差异

USB&#xff0c;Universal Serial Bus。 USB协会&#xff1a; USB-IF协会认证&#xff1a;USB IF全称USB Implementers Forum&#xff0c;是由一群开发通用串行总线规范的公司创立的非营利性组织。USB-IF组织的成立旨在推广通用串行总线技术并提供相应的技术规范&#xff0c;…

手机使用指南:如何在没有备份的情况下从 Android 设备恢复已删除的联系人

在本指南中&#xff0c;您将了解如何从 Android 手机内存中恢复已删除的联系人。Android 诞生、见证并征服了 80% 的智能手机行业。有些人可能将此称为“非常大胆的宣言”&#xff0c;但最近的统计数据完全支持我们的说法。灵活性、高度改进的可用性和快速性是 Android 操作系统…

【C语言】内存函数的使用和模拟实现

文章目录 一、memcpy的使用和模拟实现二、memmove的使用和模拟实现三、memset的使用四、memcmp的使用 一、memcpy的使用和模拟实现 在之前我们学习了使用和模拟实现strncpy函数&#xff0c;它是一个字符串函数&#xff0c;用来按照给定的字节个数来拷贝字符串&#xff0c;那么问…