一、安全世界观

文章目录

  • 1、 Web安全简史
    • 1.1 中国黑客简史
    • 1.2 黑客技术的发展历程
    • 1.3 web安全的兴起
  • 2、黑帽子、白帽子
  • 3、安全的本质
  • 4、安全三要素
  • 5、如何实施安全评估
    • 5.1 资产等级划分
    • 5.2 威胁分析
    • 5.3 风险分析
    • 5.4 设计安全方案
  • 6、白帽子兵法
    • 6.1 Secure By Default
    • 6.2 纵深防御原则
    • 6.3 数据与代码分离原则
    • 6.4 不可预测性原则
  • 参考文献

1、 Web安全简史

   Hacker:即黑客,在计算机安全领域,黑客是一群破坏规则、不喜欢被约束的人,总想着能够找到系统的漏洞,以获得一些规则以外的权力。
   exploit:能够帮助黑客拿到“root”权限的漏洞利用代码。
   Script Kids:即脚本小子,只对攻击本身感兴趣,对计算机原理和各种编程能力了解粗浅,只懂得编译别人的代码的黑客。

1.1 中国黑客简史

  • 启蒙时代(20世纪90年代–21世纪初):这个时期的中国黑客与西方国家同期诞生的黑客精神一脉相承,他们崇尚分享、自由、免费的互联网精神,热衷分享自己的最新研究成果,
  • 黄金时代(21世纪初-2010年左右):中美黑客大战为标志,这一时期的黑客逐渐开始贩卖漏洞、恶意软件,开始出现以赢利为目的的攻击行为。
  • 黑暗时代(2010年左右-至今):黑客的功利性越来越强,黑色产业链开始成熟,此时期的黑客群体一位内互相之间缺失信任已经不再具有曾经free、open、share的黑客精神了。

1.2 黑客技术的发展历程

  早期互联网中,web并非互联网的主流应用,相对来说,基于SMTP、POP3、FTP等协议的服务拥有着绝大多数的用户。因此,这一阶段的黑客主要攻击网络、操作系统以及软件等。2003年的冲击波蠕虫是一个里程碑式的事件,此次事件使得网络运运营商加大了对网络的封锁,使得暴露在互联网上的非web服务越来越少,且wen技术的成熟使得web应用的功能越来越强大,最终成为互联网的主流。

1.3 web安全的兴起

  • web1.0时代:人们更加关注服务器端动态脚本的安全问题,比如将一个可执行脚本(俗称webshell)上传到服务器上,从而获取权限。
  • web2.0时代:XSS、CSRF等攻击变得更为强大、web攻击的思路也从服务端转向了客户端,转向了浏览器和用户。

❗️❗️❗️SQL注入、XSS是web安全史上的两个里程碑。

2、黑帽子、白帽子

  🌚黑帽子,指利用黑客技术造成破坏,甚至进行网络犯罪的群体;
  🌝白帽子,指精通安全技术,工作在反黑客领域的专家。

二者在工作时的心态完全不同🙀🙀🙀:
  - 对黑帽子而言,只要找到系统的一个弱点,就可以达到入侵系统的目的;
  - 对白帽子而言,必须找到系统的所有弱点,不能有遗漏,这样才能保证系统不会出问题。

3、安全的本质

安全的本质是信任问题!

  一切安全方案的设计基础,都是建立在信任关系上的。我们必须相信一些东西,必须有一些最基本的假设,安全方案才能得以建立;如果我们否定一切,安全方案就会如无源之水、无本之木,无法完成。

数据从高等级的信任域流向低等级的信任域,是不需要经过安全检查的;数据从低等级的信任域流向高等级的信任域,则需要经过信任边界的安全检查。

4、安全三要素

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

5、如何实施安全评估

一个安全评估过程,可分为4个阶段:

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

5.1 资产等级划分

  资产等等级划分是所有工作的基础,这项工作可以帮助我们明确目标是什么,要保护什么。在互联网已经完善的今天,互联网的核心其实是由用户数据驱动的——用户产生业务,业务产生数据。故:

互联网安全得核心问题是数据安全问题。

  对互联网公司拥有的资产进行等级划分,就是对数据做等级划分。在完成资产等级划分后,对要保护的目标有了一个大概的了解,接下来就需要划分信任域和信任边界。例如,假如最重要的数据放在数据库里,那么把数据库的服务器圈起来;Web应用可以从数据库在读/写数据,并对外提供服务,再把Web服务器圈起来;最外面就是不可信任的Internet。
在这里插入图片描述

5.2 威胁分析

  在安全领域,把可能造成危害的来源称为威胁(Threat)😨,把可能会出现的损失称为风险(Risk)😨。
  什么是威胁分析?威胁分析就是把所有的威胁找出来。这里介绍微软提出的STRIDE模型

在这里插入图片描述
  在进行威胁分析时,要尽可能地不遗漏威胁,头脑风暴地过程可以确定攻击面(Attack Surface)。

5.3 风险分析

  这里主要介绍微软提出的DREAD模型:
在这里插入图片描述

5.4 设计安全方案

  安全评估的产物,就是安全解决方案。解决方案一定要有针对性,这种针对性是由资产等级划分、威胁分析、风险分析等阶段的结果给出的。
  从产品的角度来看,安全是产品的一种属性,一个从未考虑过安全的产品,至少是不完整的。

6、白帽子兵法

  安全评估最后的产物是安全方案,这一部分主要讲具体设计安全方案时会用到的技巧。

6.1 Secure By Default

  在设计安全方案时,最基本也是最重要的原则就是“Secure By Dafault”,其主要有两层含义:白名单、黑名单思想和最小权限原则。

(1)白名单、黑名单
  以用户访问网站为例,白名单是设置能访问的用户,白名单以外的用户不能访问;黑名单则是设置不能访问的用户,黑名单以外的用户都能访问。
(2)最小权限原则
  最小权限原则要求系统只授予主体必要的权限,而不要过度授权。例如,在linux系统中,用户分为普通用户和root用户。

6.2 纵深防御原则

  纵深防御原则包含两层含义:

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

6.3 数据与代码分离原则

  数据与代码分离原则是重要的安全准则,这一原则广泛适用于各种由于“注入”而引发安全问题的场景。

6.4 不可预测性原则

  上述:Secyre By Defualt,是时刻要牢记的总则;纵深防御,是要更全面、更正确地看待问题;数据与代码分离,是从漏洞成因上看问题;而,不可预测性是从克服攻击方法的角度看问题。
  比如,windows中使用的ASLR技术,使得程序在启动时,每次地栈基址都不同,具有一定的随机性,对于攻击者来说,这就是不可预测性。不可预测性,能有效对抗基于篡改、伪造的攻击。不可预测性地实现往往需要使用到加密算法、随机数算法、哈希算法。

参考文献

  • 《白帽子讲web安全》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/33089.shtml

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

相关文章

java的junit之异常测试、参数化测试、超时测试

1.对可能抛出的异常进行测试 异常本身是方法签名的一部分测试错误的输入是否导致特定的异常 summary 测试异常可以使用Test(expectedExceptio.class)对可能发生的每种类型的异常进行测试 2.参数化测试 如果待测试的输入和输出是一组数据: 可以把测试数据组织起…

Oracle时间查询使用笔记:sysdate用法

Oracle的sysdate用法 通常会有 sysdate - 1 / 12这种,或者sysdate - 1 / 24/3 这两种用法,表示从当前时间往前推若干时间 下面就用sysdate - A/B,sysdate - A/B/C代替 第一种 sysdate - A/B型,这种结果是小时,A代表天数,B代表小时…

学习51单片机怎么开始?

学习的过程不总是先打好基础,然后再盖上层建筑,尤其是实践性的、工程性很强的东西。如果你一定要先全面打好基础,再学习单片机,我觉得你一定学不好,因为你的基础永远打不好,因为基础太庞大了,基…

Spring AOP 切点表达式

参考博客: 参考博客

Oracle 知识篇+会话级全局临时表在不同连接模式中的表现

标签:会话级临时表、全局临时表、幻读释义:Oracle 全局临时表又叫GTT ★ 结论 ✔ 专用服务器模式:不同应用会话只能访问自己的数据 ✔ 共享服务器模式:不同应用会话只能访问自己的数据 ✔ 数据库驻留连接池模式:不同应…

探索数据之美:初步学习 Python 柱状图绘制

文章目录 一 基础柱状图1.1 创建简单柱状图1.2 反转x和y轴1.3 数值标签在右侧1.4 演示结果 二 基础时间线柱状图2.1 创建时间线2.2 时间线主题设置取值表2.3 演示结果 三 GDP动态柱状图绘制3.1 需求分析3.2 数据文件内容3.3 列表排序方法3.4 参考代码3.5 运行结果 一 基础柱状图…

谷粒商城第十二天-基本属性销售属性管理功能的实现

目录 一、总述 二、前端部分 三、后端部分 四、总结 一、总述 前端的话,依旧是直接使用老师给的。 前端的话还是那些增删改查,业务复杂一点的话,无非就是设计到多个字段多个表的操作,当然这是后端的事了,前端这里…

Nodejs安装及环境变量配置(修改全局安装依赖工具包和缓存文件夹及npm镜像源)

本机环境:win11家庭中文版 一、官网下载 二、安装 三、查看nodejs及npm版本号 1、查看node版本号 node -v 2、查看NPM版本号(安装nodejs时已自动安装npm) npm -v 四、配置npm全局下载工具包和缓存目录 1、查看安装目录 在本目录下创建no…

瓴羊发布All in One 产品,零售SaaS的尽头是DaaS?

“打破烟囱、化繁为简,让丰富的能力、数据和智能All in One”,这是瓴羊新发布的产品瓴羊One承担的使命,也意味着瓴羊DaaS事业迈入了一个新阶段。 成立伊始,瓴羊就打出了“Not SaaS,But DaaS”旗号,将自己的…

小程序裂变怎么做?小程序裂变机制有哪些?

做了小程序就等于“生意上门”?其实并不是这样。小程序跟流量平台较为明显的区别就在于小程序并非“自带流量”,而是需要企业利用自己的营销推广能力来建立引流渠道,从而完成用户的拉新和留存、转化。因此,想要用小程序来增加自己…

[虚幻引擎] UE DTBase64 插件说明 使用蓝图对字符串或文件进行Base64加密解密

本插件可以在虚幻引擎中使用蓝图对字符串,字节数组,文件进行Base64的加密和解密。 目录 1. 节点说明 String To Base64 Base64 To String Binary To Base64 Base64 To Binary File To Base64 Base64 To File 2. 案例演示 3. 插件下载 1. 节点说…

centos如何配置IP地址?

CentOS如何查看和临时配置IP地址 CentOS系统中,可以通过使用ifconfig命令来查看当前本机的IP地址信息。输入ifconfig即可显示当前网络接口的IP地址、网络掩码和网关信息。如果需要设置临时IP地址,可以使用ifconfig命令后接网卡名称和需要设置的IP地址、网…

自定义element-plus的弹框样式

项目中弹框使用频繁,需要统一样式风格,此组件可以自定义弹框的头部样式和内容 一、文件结构如下: 二、自定义myDialog组件 需求: 1.自定义弹框头部背景样式和文字 2.自定义弹框内容 3.基本业务流程框架 components/myDialog/index.vue完整代码: &…

采用pycharm在虚拟环境使用pyinstaller打包python程序

一年多以前,我写过一篇博客描述了如何虚拟环境打包,这一次有所不同,直接用IDE pycharm构成虚拟环境并运行pyinstaller打包 之前的博文: 虚拟环境venu使用pyinstaller打包python程序_伊玛目的门徒的博客-CSDN博客 第一步&#xf…

山西电力市场日前价格预测【2023-08-12】

日前价格预测 预测明日(2023-08-12)山西电力市场全天平均日前电价为330.52元/MWh。其中,最高日前电价为387.00元/MWh,预计出现在19: 45。最低日前电价为278.05元/MWh,预计出现在13: 00。 价差方向预测 1: 实…

伯俊ERP对接打通金蝶云星空表头表体组合查询接口与采购订单新增接口

伯俊ERP对接打通金蝶云星空表头表体组合查询接口与采购订单新增接口 数据源平台:伯俊ERP 伯俊科技,依托在企业信息化建设方面的领先技术与实践积累,致力于帮助企业实现全渠道一盘货。伯俊提供数字经营的咨询与系统实施,助力企业信息化升级、加…

vue3使用pinia和pinia-plugin-persist做持久化存储

插件和版本 1、安装依赖 npm i pinia // 安装 pinia npm i pinia-plugin-persist // 安装持久化存储插件2、main.js引入 import App from ./App.vue const app createApp(App)//pinia import { createPinia } from pinia import piniaPersist from pinia-plugin-persist //持…

tomcat多实例与动静分离

实验:在一台虚拟机上配置多台tomcat 1.配置 tomcat 环境变量 vim /etc/profile.d/tomcat.sh source /etc/profile.d/tomcat.sh 2.修改 tomcat2 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号 vim /usr/local/tomcat/tomcat2/conf/…

篇二十一:中介者模式:解耦对象之间的交互

篇二十一:"中介者模式:解耦对象之间的交互" 开始本篇文章之前先推荐一个好用的学习工具,AIRIght,借助于AI助手工具,学习事半功倍。欢迎访问:http://airight.fun/。 另外有2本不错的关于设计模式…

CAP理论与MongoDB一致性,可用性的一些思考

正文 大约在五六年前,第一次接触到了当时已经是hot topic的NoSql。不过那个时候学的用的都是mysql,Nosql对于我而言还是新事物,并没有真正使用,只是不明觉厉。但是印象深刻的是这么一张图片(后来google到图片来自这里&…