web安全问题-1.安全世界观

http://coderbee.net/index.php/readingnote/20130722/309

 

白帽子讲web安全-1.安全世界观 摘记

一些词汇

exploit: 黑客使用的漏洞利用代码。

黑客精神: open, free, share .

安全世界观

黑帽子、白帽子

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

对于黑帽子,只要找到系统的一个弱点,就可以达到入侵系统的目的;对于白帽子来说,必须找到系统的所有弱点,不能有遗漏,才能保证系统不会出现问题。

从对待问题的角度,黑帽子为了完成一次入侵,需要利用各种不同漏洞的组合来达到目的,是在不断组合问题;而白帽子在设计解决方案时,如果只看到各种问题组合后产生的效果,就会把事情变复杂,难以细致入微地解决根本问题,所以白帽子必然是在不断地分解问题,再对分解后的问题逐个予以解决。

安全的本质

被划分出来的具有不同信任级别的区域,称之为信任域,划分两个不同信任域之间的边界,称为信任边界。

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

安全问题的本质是信任的问题。

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

一旦我们作为决策依据的条件被打破、被绕过,那么就会导致安全假设的前提条件不再可靠,变成一个伪命题。
把握住信任条件的度,使其恰到好处,正是设计安全方案的难点所在,也是安全这门学问的艺术魅力所在。

破除迷信,没有银弹

安全是一个持续的过程。

安全三要素

安全三要素是安全的基本组成要素,分别是机密性(Confidentiality )、完整性(Integrity)、可用性(Availability )。

  • 机密性要求保护数据内容不能泄露,加密是实现机密性要求的常见手段。
  • 完整性要求保护数据内容是完整、没有被篡改的。常见的保证一致性的技术手段是数字签名。
  • 可用性要求保护资源是“随需而得”。

如何实施安全评估

一个安全评估的过程,可以简单地分为4个阶段:资产等级划分、威胁分析、风险分析、确认解决方案。

资产等级划分

资产等级划分是所有工作的基础,这项工作能够帮助我们明确目标是什么,要保护什么。

互联网安全的核心问题,是数据安全的问题
对互联网公司拥有的资产进行等级划分,就是对数据做等级划分。

当完成资产等级划分后,对要保护的目标已经有了一个大概的了解,接下来就是要划分信任域和信任边界。
最简单的划分方式,就是从网络逻辑上来划分。

威胁分析

在安全领域,把可能造成危害的来源称为威胁(threat),而把可能会出现的损失称为风险(Risk)。风险一定是和损失联系在一起的。

威胁分析就是要把所有的威胁都找出来。一般是采用头脑风暴法。

微软提出STRIDE模型:


威胁                                        定义                              对应的安全属性

Spoofing(伪装)                            冒充他人的身份                    认证

Tampering (篡改)                          修改数据或代码                    完整性

Repudiation (抵赖)                        否认做过的事情                    不可抵赖性

InformationDisclosure(信息泄露)           机密信息泄露                      机密性

Denial of Service(拒绝服务攻击)           拒绝服务                          可用性

Elevation of Privilege(提升权限)          未经授权许可                      授权

威胁分析是非常重要的一件事情,很多时候还需要经常回顾和更新现有的模型。

风险分析

Risk = Proabality * Damage Potential

微软的DREAD模型:


等级                    高(3)                            中(2)                                          低(1)

Damage Protential       获取完全验证权限;                 敏感信息泄露                                     泄露其他信息
                        执行管理员操作;非法上传文件                     

Reproducibility         攻击者可以随意再次攻击             攻击者可以重复估计,但有时间限制                 攻击者很难重复估计

Exploitability          初学者在短期内能掌握估计方法       熟练的攻击者才能完成这次估计                     漏洞利用条件非常苛刻

Affected users          所有用户,默认配置,关键用户       部分用户,非默认配置                             极少用户,匿名用户

Discoverability         漏洞很显眼,估计条件很容易获得     在私有区域,部分人能看到,需要深入挖掘漏洞        发现该漏洞极其困难

设计安全方案

解决方案一定要有针对性,这种针对性是由资产等级划分、威胁划分、风险分析等阶段的结果给出的。

没有不安全的业务,只有不安全的实现方式。

好的解决方案对用户应该是透明的,尽可能不要改变用户的使用习惯。

一个好的安全解决方案应该具备以下特点:

  • 能够有效解决问题;
  • 用户体验好;
  • 高性能;
  • 低耦合
  • 易于扩展和升级。

白帽子兵法

Secure By Default 原则

在设计安全方案时,最基本也最重要的原则就是“Secure By Default ”。一个方案设计得是否足够安全,与有没有应用这个原则有很大的关系。“Secure By Default ”原则也可以归纳为白名单、黑名单的思想。如果更多地使用白名单,那么系统会更安全。

黑名单、白名单

黑名单:列出一个清单,在这个清单上的都是不允许的,在清单以外的都是允许的。
白名单:列出一个清单,在这个清单上的都是允许的,在清单以外的都是不允许的。

当出现新威胁时,黑名单一般不能应付。而白名单默认是不允许新事物,所以更安全点。
当然,还得确保白名单上的本身是安全的。

最小权限原则

Secure By Default 的另一层含义就是“最小权限原则”。最小权限原则也是安全设计的基本原则之一。

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

纵深防御原则

Defense in Depth

纵深防御包含两层含义:

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

设计安全方案时最怕出现短板。

数据与代码分离原则

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

在web安全中,由“注入”引起的问题比比皆是,如XSS、SQL Injection、 CRLF Injection 、X-Path Injection 等。此类问题均可以根据“数据与代码分离原则”设计出真正安全的解决方案,因为这个原则抓住了漏洞形成的本质原因。

不可预测性原则

即使无法修复code,但是如果能够使得攻击的方法无效,那么也算是成功的防御。

不可预测性(Unpredictable),能够有效地对抗基于篡改、伪造的攻击。

不可预测性的实现往往需要用到加密算法、随机数算法、哈希算法,好好使用这条原则,在设计安全方案时往往会事半功倍。

小结

Secure By Default ,是时刻要牢记的总则;纵深防御,是要更全面、更正确地看待问题;数据与代码分离,是从漏洞成因上看问题;不可预测性则是从客服攻击方法的角度看问题。

安全是一门朴素的学问,也是一门平衡的艺术。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
应用背景为变电站电力巡检,基于YOLO v4算法模型对常见电力巡检目标进行检测,并充分利用Ascend310提供的DVPP等硬件支持能力来完成流媒体的传输、处理等任务,并对系统性能做出一定的优化。.zip深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值