一、安全世界观

文章目录

  • 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.rhkb.cn/news/80691.html

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

相关文章

iOS永久签名工具 - 轻松签使用教程

轻松签是一款IOS端免费的IPA签名和安装工具,最新版可以不用依赖证书对ipa永久签名,虽然现在用上了巨魔(TrollStore)- 是国外iOS开发人员opa334dev发布的一款工具,可以在不越狱的情况下,安装任何一款APP。 …

科大讯飞分类算法挑战赛2023的一些经验总结

引言: ResNet是he kaiming大佬的早年神作,当年直接刷榜各大图像分类任务。ResNet是一种残差网络,咱们可以把它理解为一个子网络,这个子网络经过堆叠可以构成一个很深的网络,而ResNext在其基础上,进行了一定修改完善&am…

【vim 学习系列文章 4 - vim与系统剪切板之间的交互】

文章目录 背景1.1.1 vim支持clipboard 检查1.1.2 vim的寄存器 上篇文章:【vim 学习系列文章 3 - vim 选中、删除、复制、修改引号或括号内的内容】 背景 从vim中拷贝些文字去其它地方粘贴,都需要用鼠标选中vim的文字后,Ctrlc、Ctrlv&#x…

集成学习:机器学习模型如何“博采众长”

前置概念 偏差 指模型的预测值与真实值之间的差异,它反映了模型的拟合能力。 方差 指模型在不同的训练集上产生的预测结果的差异,它反映了模型的稳定性。 方差和偏差对预测结果所造成的影响 在机器学习中,我们通常希望模型的偏差和方差都…

c++11 标准模板(STL)(std::basic_fstream)(一)

定义于头文件 <fstream> template< class CharT, class Traits std::char_traits<CharT> > class basic_fstream : public std::basic_iostream<CharT, Traits> 类模板 basic_fstream 实现基于文件的流上的高层输入/输出。它将 std::basic_i…

2023牛客暑期多校训练营6 A-Tree (kruskal重构树))

文章目录 题目大意题解参考代码 题目大意 ( 0 ≤ a i ≤ 1 ) , ( 1 ≤ c o s t i ≤ 1 0 9 ) (0\leq a_i\leq 1),(1 \leq cost_i\leq 10^9) (0≤ai​≤1),(1≤costi​≤109) 题解 提供一种新的算法&#xff0c;kruskal重构树。 该算法重新构树&#xff0c;按边权排序每一条边…

【IMX6ULL驱动开发学习】01.IMX6ULL驱动开发_编写第一个hello驱动(不涉及硬件操作)

目录 一、驱动程序编写流程 二、代码编写 2.1 驱动程序hello_drv.c 2.2 测试程序 2.3 编写驱动程序的Makefile 三、上机实验 3.1 NFS 挂载 3.2 测试示例 一、驱动程序编写流程 构造file_operations结构体 在里面填充open/read/write/ioctl成员 注册file_operations结…

使用IDEA操作Mysql数据库

idea中自带了关于数据库的连接 首先要确保你的MySQL正在运行中 打开idea找到database&#xff08; view —> Tool Windows —> database&#xff09;&#xff0c;大家也可以定个快捷键&#xff0c;方便以后日常操作 就是这个样子&#xff0c;然后点加号 然后就可以编写执…

HCIA---TCP/UDP协议

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 目录 文章目录 一.UDP协议简介 UDP协议的特点&#xff1a; 二.TCP协议简介 TCP协议特点 三.TCP和UDP的区别 四.TCP/IP结构详解 五.TCP运输连接的阶段 ​编…

删除这4个文件夹,流畅使用手机无忧

在现代社会中&#xff0c;手机已经成为我们生活中不可或缺的一部分。然而&#xff0c;随着使用时间的增长&#xff0c;我们可能会遇到手机卡顿和内存不足的问题&#xff0c;让我们感到十分困扰。手机卡顿不仅影响使用体验&#xff0c;还可能导致应用程序运行缓慢&#xff0c;甚…

ChatGPT已闯入学术界,Elsevier推出AI工具

2022年11月&#xff0c;OpenAI公司发布了ChatGPT&#xff0c;这是迄今为止人工智能在现实世界中最重要的应用之一。 当前&#xff0c;互联网搜索引擎中出现了越来越多的人工智能&#xff08;AI&#xff09;聊天机器人&#xff0c;例如谷歌的Bard和微软的Bing&#xff0c;看起来…

war和war exploded

war和war exploded的区别 war模式&#xff1a;将WEB工程以包的形式上传到服务器 &#xff1b; war exploded模式&#xff1a;将WEB工程以当前文件夹的位置关系上传到服务器&#xff1b;>> war包是自己打包生成的&#xff0c;如pom文件中<packaging>war</packag…

南卡签约游泳冠军傅园慧,创造防水运动耳机的新天花板!

近日&#xff0c;国内骨传导运动耳机龙头品牌NANK南卡&#xff0c;正式官宣知名游泳冠军傅园慧出任品牌形象大使。在此之外&#xff0c;南卡品牌方还特邀了同样作为游泳冠军的孙杨&#xff0c;以及知名演员张新成、流行歌手段奥娟等多位明星来体验旗下的运动耳机&#xff0c;皆…

【从零学习python 】04. Python编程基础:变量、数据类型与标识符

文章目录 变量以及数据类型一、变量的定义二、变量的类型三、查看数据类型 标识符和关键字标识符命名规则命名规范 关键字进阶案例 变量以及数据类型 一、变量的定义 对于重复使用&#xff0c;并且经常需要修改的数据&#xff0c;可以定义为变量&#xff0c;来提高编程效率。…

中间件插件机制

一、插件 在mybatis一类中间件在处理的时候&#xff0c;提供了插件机制&#xff0c;类似于aop机制&#xff0c;可以在方法前、方法后进行拦截并且修改入参获得改变其方法的行为。那么调用的的方法应该也需要使用动态代理活动被插件进行aop的对象。

django处理分页

当数据库量比较大的时候一定要分页查询的 在django中操作数据库进行分页 queryset models.PrettyNum.objects.all() #查询所有 queryset models.PrettyNum.objects.all()[0:10] #查询出1-10列 queryset models.PrettyNum.objects.filter(mobile__contains136)[0:10] …

sentinel简单使用

核心demo&#xff1a; 1 引入依赖: <dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-core</artifactId><version>1.8.0</version> </dependency>2 核心代码&#xff1a; 3 限流保护代码&#xff1a;…

Delphi Professional Crack,IDE插件开发和扩展IDE

Delphi Professional Crack,IDE插件开发和扩展IDE 构建具有强大视觉设计功能的单源多平台本机应用程序。 Delphi帮助您使用Object Pascal为Windows、Mac、Mobile、IoT和Linux构建和更新数据丰富、超连接、可视化的应用程序。Delphi Professional适合个人开发人员和小型团队构建…

uniapp scroll-view 隐藏滚动条

/*清除滚动条 - 适配安卓*/::-webkit-scrollbar {width: 0;height: 0;color: transparent;}/*清除滚动条 - 适配IOS*/::-webkit-scrollbar {display: none;}

uni——tab切换

案例展示 案例代码 <view class"tablist"><block v-for"(item,index) in tabList" :key"index"><view class"tabItem" :class"current item.id?active:" click"changeTab(item)">{{item.nam…