IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 读《白帽子讲web安全》笔记 -> 正文阅读

[网络协议]读《白帽子讲web安全》笔记

我的安全世界观

前言

  • 互联网本来是安全的,自从有了研究安全的人以后,就变得不安全了。
  • 只要还有人研究漏洞,利用漏洞,网络安全问题将会一直存在,就会有人需要解决安全问题。有人的地方就会有需求,有需求的地方就会有市场,网络安全行业将会一直存在。
  • 事实上,所有的安全问题都能这么修复,只是需要付出的成本过于巨大
  • 漏洞是系统中可能被威胁利用以造成危害的地方
  • 漏洞只是对破坏性功能的一个统称而已。
  • 我们定义一个功能是否是漏洞,只看后果,而不应该看过程。
  • 所有的程序本来也没有漏洞,只有功能,但当一些功能被用于破坏,造成损失时,也就成了漏洞
  • 最大的漏洞就是人,安全问题往往发生在意想不到的地方。
  • 写的再好的程序,在有人参与的情况下,就可能出现各种不可预知的情况。
  • 安全是一门朴素的学问,也是一种平衡的艺术。

安全工程师的核心竞争力

安全工程师的核心竞争力不在于他能拥有多少个0day,掌握多少种安全技术,而是在于他对安全理解的深度,以及由此引申的看待安全问题的角度和高度。(有道无术,术尚可求;有术无道,则止于术。术是方法是操作,道是思想是理解。懂得他的底层逻辑,抓住他的本质,无论遇到任何安全问题也能无往不利,快速解决)

白帽子的使命

  • 以建设更安全的互联网为己任

现状

  • 浏览器安全是web安全的重要组成部分。
  • PHP语言至今依然只能靠较好的代码规范来保证没有文件包含漏洞,而无法从语言本身杜绝此类安全问题的发生

里程碑

  • SQL注入的出现是Web安全史上的一个里程碑。
    最早出现时间:1999
  • XSS(跨站脚本攻击)的出现则是Web安全史上的另一个里程碑。
    引起重视:2003

安全的本质

  • 安全问题的本质是信任的问题
  • 我们必须有一些最基本的架设,安全方案才能得以建立;
  • 如果我们否定一切,安全方案就会如无垠之水,无根之木,无法设计,也无法完成。

安全三要素

  1. 机密性:要求保护数据内容不能泄露,"加密"是实现机密性要求的常见手段。
  2. 完整性:完整性则要求保护数据内容是完整、没有被篡改的。常见的保证一致性的技术手段是"数字签名"。
  3. 可用性:要求保护资源是“随需而得”。DoS(拒绝服务攻击)破坏的是安全的看可用性

后来又有扩充(可审计性,不可抵赖性)

如何防范安全问题?

将安全检查贯穿于整个软件生命周期中

对每一个产品,都要持续地实施严格的安全检查,这是微软通过自身的教训传授给业界的宝贵经验。而安全检查本身也需要不断更新,增加针对新型攻击方式的检测与防御方案。

安全评估步骤

  1. 资产等级划分
  2. 威胁分析
  3. 风险分析
  4. 确认解决方案

资产等级划分

  • 帮助我们明确目标是什么,要保护什么
  • 对互联网公司拥有的资产等级划分就是对数据做等级划分。
  • 先进行资产等级划分然后进行信任域名和信任边界划分

互联网核心问题

  • 互联网的核心是由用户数据驱动的:用户产生业务,业务产生数据。
  • 互联网安全的核心问题是,是数据安全的问题。
  • 互联网公司最核心的价值就是其拥有的用户数据。

威胁分析(确定攻击面)

  • 威胁:把可能造成危害的来源称为威胁(Threat)
  • 风险:把可能会出现的损失称为风险(Risk)。风险一定是和损失联系在一起的

风险分析

DREAD模型,由微软提出

image-20220320230146029

模型是死的,人是活的,再好的模型也需要人来使用,不同的标准对应不同的模型。

设计安全方案

一个优秀的安全方案应该具备以下特点

  1. 能够有效解决问题;
  2. 用户体验好;
  3. 高性能;
  4. 低耦合;
  5. 易于扩展与升级。

注意

  • 安全也应该是产品的一种属性。
  • 安全是要为产品的发展与成长保驾护航的。
  • 没有不安全的业务,只有不安全的实现方式。

白帽子兵法

一、Secure By Default 原则

1、黑名单、白名单

  • 黑名单的意思就是拒绝的名单。
  • 白名单就是值得信任允许访问或者允许通过验证的名单。

注意:在使用白名单时,需要注意避免出现类似通配符“*”的问题

2、最小权限原则

最小权限原则要求系统只授予主体必要的权限,而不要过度授权,这样能有效地减少系统、网络、应用、数据库出错的机会。

二、Defense in Depth(纵深防御) 原则

纵深防御包含两层含义:

  1. 要在各个不同层面、不同方面实施安全方案,避免出现疏漏,不同安全方案之间需要相互配合,构成一个整体;
  2. 要在正确的地方做正确的事情,即:在解决根本问题的地方实施针对性的安全方案。

三、数据与代码分离原则

这一原则广泛适用于各种由于“注入”而引发安全问题的场景。

实际上,缓冲区溢出,也可以认为是程序违背了这一原则的后果——程序在栈或者堆中,将用户数据当做代码执行,混淆了代码与数据的边界,从而导致安全问题的发生。

四、不可预测性原则

不可预测性(Unpredictable),能有效地对抗基于篡改、伪造的攻击。
不可预测性的实现往往需要用到加密算法、随机数算法、哈希算法,好好使用这条原则,在设计安全方案时往往会事半功倍。
例如使用 token防御 CSRF

总结

  1. Secure By Default,是时刻要牢记的总则;
  2. 纵深防御,是要更全面、更正确地看待问题;
  3. 数据与代码分离,是从漏洞成因上看问题;
  4. 不可预测性原则,是从克服攻击方法的角度看问题。
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-22 20:58:43  更:2022-03-22 21:00:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:47:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码