安全漏洞的终极秘密

admin 2022年3月17日03:05:22评论31 views字数 1456阅读4分51秒阅读模式

引子

最近这两天某个和笔者有相同从业经历的朋友,在工作了15年以后突然宣布要离职了,让笔者大为惊讶,笔者在和这位朋友聊了几句后,为这个企业深感惋惜,这个企业到底损失了一位怎样的人才。这位朋友说他还要去继续读书学习,也让笔者深有感触。

这篇短文来聊聊笔者沉淀下来的一些安全攻防思维,当然这些思维也仅限思考方式,想想问题、分析问题就行,要真正知行合一解决问题,笔者也没有实践经验,仅供读者参考。


关于安全漏洞

万事万物自然发展,不刻意控制,都会归于混沌无序。这些是热力学第二定律早早就告诉我们的,在不可逆热力过程中熵的微增量总是大于零。而熵是对混沌不确定状态的测量,是对混沌的一种研究方法。

下面笔者要说说所有安全漏洞和安全问题的认知:

  • 首先,我们要有一个初级认知,只要是人写的代码都有错误,所有的程序在运行过程中都要不断捕捉错误、考虑处理错误,一旦有不可预期控制的错误即可能产生安全漏洞。

  • 然后,我们要有一个核心认知,安全漏洞是不可避免的。以软件工程为例,一个复杂软件工程可能是上千人维护的,只要它在维护更新就不可避免的是一个熵增的过程,安全漏洞和安全问题无法停止。


关于安全防御

当我们能够意识到安全问题是混沌的产物,那就应该明白安全研究和安全防御就是在寻找熵和控制熵增的过程。


这两天,笔者和一位资深的安全漏洞专家聊起Google的一篇文章“在野0day是怎么回事?另外,我们正在做什么。”,其中一些Google的论点引起了我们的话题。


Google认为“不管安全漏洞修复的速度有多快,任何疯狂的漏洞利用都无法禁止,而Google正在努力使攻击者实现其攻击目的变得昂贵且困难。同时Google认为目前Chome的“内存安全”漏洞占可利用安全漏洞的70%,想使用新的现代内存安全语言编写Chrome的新组件“。


我们俩的看法是,不同组件不同编程语言的安全特性差异化也会造成安全问题,比如在某软件工程里现代内存安全语言编写的代码模块没有CFI安全保护措施,反而让漏洞的利用更容易了。关于安全防御,这也是另外一个认知,安全问题从来就是一体两面,新的东西和旧的东西造成的差异自然也会产生安全漏洞。而另外一个认知是Google的安全理念,是让攻击者漏洞利用难度越来越大,始终朝着增加攻击者成本的方向在进行安全防御。


关于安全漏洞的核心概念

笔者发现一些安全从业者似乎自己对安全漏洞的核心概念都认识模糊,这里摘抄一部分笔者研判安全漏洞的方法:


安全漏洞有且只有两种类型:

Weakless(基线漏洞):在已有安全基线上的弱点

Vulnerable(安全漏洞):在已有运行状态上的漏洞


安全漏洞最基本的利用条件是权限和身份:

- Authentication(验证)

    - pre-auth:不需要身份验证

    - auth-only:需要身份验证

- Authorization(授权)

    - authority-only:需要特定权限

    - pre-authorized:不需要特定权限


安全漏洞都是在控制程序的执行流,将数据变为代码执行,内存安全漏洞的4种常规利用方法:

- ROP - 面向返回,控制堆栈返回地址

- COP- 面向调用,控制函数指针

- COOP - 伪造对象,控制C++虚函数表

- JOP - 控制跳转,控制跳转指令,自定义跳转代码


结语

这篇短文稍微有些标题党,戛然而止,碎片文是笔者一贯的风格:)

最后,回到安全漏洞的终极秘密,安全问题是混沌的产物,安全研究是找寻研究熵的过程,与君共勉。








安全漏洞的终极秘密安全漏洞的终极秘密

↑↑↑长按图片识别二维码关註↑↑↑




原文始发于微信公众号(全栈网络空间安全):安全漏洞的终极秘密

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月17日03:05:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   安全漏洞的终极秘密http://cn-sec.com/archives/827556.html

发表评论

匿名网友 填写信息