浅谈信息安全

安全是什么

所谓的安全,大体可以理解为通过一个安全的检查(过滤或者净化)的过程,梳理出未知的人和物,使其变得可以信任。就像古代的城门检查,现今的机场安检,就是过滤排除一些危险的人和物品;如果按照信任的程度划分等级,那么往往高等级的信任区域流向低等信任区域是不需要经过检查的,而从低等区域流向高等区域,基本就需信任边界的检查( (´▽`)走过那扇门,从此衣服是路人 )。

绝对安全存在吗

这世界没有攻不破的系统,只有付不起的代价。自从互联网有了安全的问题已经,攻击和防御技术就在不断的碰撞,往往一个漏洞才发现,就被堵上,虽然某个时期可能某一方占了上风,但是,开玩笑,大家都这么高傲,虐完了就想跑,美得你。

威胁分析

在安全的领域,我们把可能造成威胁的来源称Thread,而把可能会出现的损失称为Risk。而威胁建模就是为了寻找可能存在的威胁,这种模型比较出名的是微软早期提出的STRIDE模型,分别为Spoofing(伪装:冒充身份),Tampering(篡改:篡改数据或者代码),Repudiation(抵赖:否认行为),InfomationDisclosure(信息泄漏),Denial of Service(拒绝服务),Elevation of Privilege(提升权限:未经允许提升权限)。在进行威胁分析的时候,尽可能地不要遗漏威胁,而威胁的程度就需要风险分析来确认

风险分析

风险由以下组成
Risk= Probability * Damage Protential
风险的程度可以分为5个等级,Damage Protential(破坏潜力:如果漏洞被利用损失有多大?),Reproducibility(再现性:重复被利用的难度有多大?),Exploitability(可利用性:漏洞被利用的难度有多大?),Affected users(受影响的用户:多少用户可能受到影响?),Discoverability(可发现性:漏洞容易被发现吗)。如果我们对每个等级记高(3),中(2),低(1)。如果现在韩国正面打朝鲜,对于韩国来说
Risk=D(3)+R(3)+E(3)+A(3)+D(3)=3+3+3+3+3=15
如果韩国叫来了美国,二打一那么
Risk=D(2)+R(1)+E(1)+A(2)+D(1)=2+1+1+2+1=7(毕竟小金也是有核武的,给个面子 (´▽`))
也就是说高危的范围是12至15分,中危的范围是8至12分,低危的范围是0至7分,那么叫来美国的韩国危险就是低危了

安全设计

安全设计可以分为4大原则:Secure By Default原则,Defense in Depth原则,数据与代码分离原则,不可预测性原则

Secure By Default原则:

说白了就是白名单,黑名单的思想,比如在自定安全策略,只提供了80端口对外服务,屏蔽到其他端口,这就是白名单。至于黑名单,比如将某个IP片段屏蔽,所有这些IP片段的都不能访问,这就是黑名单。同时Secure By Default原则也有另一层含义"最小权限原则",最小权限原则要求系统只授权主体必要的权限,而不要过度授权,这样能减少系统、网络、应用、数据库出错的机会

Defense in Depth原则:

就是从不同层面,不同角度实施安全方案。比如木桶理论,短板就绝对你系统漏洞的威胁程度,就像分析一个人一样,从长相,性格,爱好方方面面入手,你才能更好的了解一个人,纵深防御原则也是一样道理。

数据与代码分离原则:

在安全领域,如XSS,SQL Injection,CRLF Injection,X-Path Injection等的代码注入引发的安全问题也是较为常见,将数据和代码分离可以避免一些用户能控制的变量引发的安全问题

不可预测性原则:

没有系统是没有漏洞的,我们能做的就是让攻击者漏洞的方法实效,比如缓冲区溢出(程序在栈或者堆中将用户数据当作代码执行,混淆了代码与数据的边界,从而导致安全问题的发生),使用DEP来保证堆栈不可执行,使用ASLR让进程的栈地址随机变化,从而使攻击程序无法准确的猜测到内存地址

你可能感兴趣的:(浅谈信息安全)