分享

后门、漏洞与木马杂谈(2)

 看见就非常 2015-03-02

作者:南京翰海源CEO 方兴(FlashSky)

版权申明:该文版权属于南京翰海源公司,任何人或单位、网站转载、引用都必须标记南京翰海源公司。否则视为侵权。

 

安全研究者的安全视角

         要理解安全研究者的视角,就需要脱离开单纯从加密这个视角思维来看待安全,而要从结合计算机体系角度来看待安全,这个角度看待,其实更容易理解我们安全研究者的视角,其实本质不应该如此吗?

计算机体系是基于代码逻辑控制,处理信息和对外控制的系统,虽然核心资产主要落脚在信息(控制系统不一定落在这里),但信息只是被动体,运算与控制才是是主动体。控制失手,信息亦失手,很多信息领域的谈it安全,只侧重信息角度,以为加密是安全的全部至少大部,但我观点正好相反,基于计算机控制的安全问题才是it安全核心。它很难靠加密体系解决。因为在计算机体系下,信息是参与条件,处理对象,处理结果。信息很难在控制处理的过程中保持加密状态,信息对控制必须无密化,攻击者拿到了控制,自然获得控制处理过程里的信息和篡改流经的信息。加密保障的是信息在存储,认证,传输中的安全,但难以保安全障控制处理中的信息安全

因此IT系统的安全,未结合计算机体系的控制视角而只是从数学加密体系的信息视角看待,是导致我们当前安全体系如此脆弱的一个重大原因。

 

  从计算机架构角度看安全

我们现在通用的计算机体系,都来自冯诺伊曼。冯诺伊曼体系的关键特点如下

1)把计算机要执行的指令和要处理的数据都采用二进制表示(指令也是数据,数据也可以当指令)

2)把要执行的指令和要处理的数据按照顺序编成程序存储到计算机内部让它自动执行。(数据和控制体系、指令混杂,数据可以影响指令和控制)

3)程序依据程序员代码设定的逻辑,接受外部的输入进行计算,并对结果进行输出(程序的行为取决程序员编码逻辑与外部输入数据驱动的分支路径选择)

 

在冯诺伊曼体系下,我们可以看到安全相关的特性

1)指令也是数据,数据也可以当指令:意味着指令是可以被数据篡改(病毒感染)、外部数据可以做指令植入(木马植入、数据区执行、程序自修改)

2)数据和控制体系、指令混杂:意味着数据区域的紊乱越界可以影响控制与指令(数据处理边界缺乏检查越界可以导致代码执行的安全问题)

3)程序的行为取决程序员编码逻辑与外部输入数据驱动的分支路径选择:意味着程序员可以依据自己的主观意志实现功能与逻辑(后门)、输入者通过数据触发特定分支也是可能(后门、业务逻辑漏洞)

 

可以看到,基于冯诺伊曼体系下的计算机体系的基础架构里,就天然决定了安全漏洞、木马、后门这些安全问题是难以根除的。通过漏洞、后门,攻击者可以完全获得控制代码执行和程序行为,通过木马可以长期控制系统行为,通过业务逻辑漏洞可以获得攻击者特定的业务目的,这些安全问题,最多只能用加密来部分缓解但无法根本解决。加密保护针对的是信息,因此比较适合的领域是存储数据、传输数据、登录认证这些领域,但并非计算机的执行与控制这个领域。

 

 

  从操作系统角度看安全

操作系统是管理和控制计算机硬件与软件资源的计算机程序,操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。

操作系统会配合CPU的体系结构实现了权限分层,一般分为2层:用户层与内核层。用户层对其他软件和用户提供支持,内核层为OS核心、硬件驱动、基础的关键核心任务。这些权限实体的划分,也没有具体的标准,除了OS自己配置好后,也来自于管理权限用户的授权。

操作系统实现了多用户下的认证、授权与访问控制体系。这个体系是在计算机基础架构上一个重要的安全举措,极大地提升了系统的安全性,但这套体系是基于用户权限和资源受信和控制的,他针对的是操作系统可以鉴别的用户实体而非程序实体以及外部数据提供者实体。针对程序实体的授权,是由用户判定授权的,但是程序本身是一个非常复杂的权限体系,他的代码逻辑来自开发者/厂商,数据驱动逻辑来自外部数据提供者的(很多应用还支持外部用户提供可执行的脚本,如浏览器之类),但是一旦授权后,代表的却是用户的信用,这要求用户对自己完全不可控制的开发者/厂商和外部数据提供者的信用做背书。用户其实根本无法鉴别程序的全部逻辑分支是否符合自身安全需要,代码与逻辑是否足够安全可以抵御外部数据提供者的攻击,很多用户其实连自己的安全需求都是不明确的,这种情况下,通过用户鉴别来给程序授权,以防止程序和外部数据提供者的恶意攻击的机制,基本为零。这是当前后门、木马、漏洞能够轻易绕过权限机制的一个本质性因素。

 

  总结

    计算机体系下程序行为实质由代码和外部数据决定,代码数据可混杂,决定了后门(代码触发行为),漏洞(数据触发行为)的基础。而os基于用户权限的授权体系无法甄别程序行为与用户行为授权意愿,这是后门漏洞木马得以突破acl获得控制权的本原。不从这些基础上,让it人员清楚我们说的安全与他们传统理解的信息安全也就是数据安全的区别,想让他们从我们视角来看安全,可能很难。

      其实传统安全也一样,比如瞎子国里所有管理者都是眼瞎的长官(用户)必须依赖贴身秘书(厂商提供的硬件与软件,实质是程序代码)和工作实施人员(外部数据提供者)来读绝密文件并处理相关工作,但秘书和工作实施人员其他时间做什么的都无法监督和控制,甚至无法鉴别今天来的和昨天来的秘书是不是同一个人,再强的加密,再好的对高级长官的权限控制,都挡不住安全问题。

    可悲的是计算机领域的现实安全问题,正如上面的情形,但是很多安全研究者、IT信息从业者者往往只认为,解决好对对每位瞎子长官的身份认证、信息存储和传送加密,以及对每位瞎子长官权限的控制管理就能解决所有的安全问题。丝毫就没意识到所有瞎子长官依赖的秘书和工作人员这里的问题。

这个论述不是用来否定加密体系的作用,是要阐述解决数据安全为主的加密体系和解决控制安全为主的现有安全对抗体系是计算机安全里并重的东西。前者已有理论和很多应用并走到大多数攻击者前面,但后者,攻击者远远走到我们的前面。我们的很多高级安全专家,信息从业人员,还有学校教材,对安全理解有太多误区和偏差,偏偏他们认为自己对安全的认识很透彻深入,认为搞安全的不就是加密和权限控制这些已有很好方法与成果的玩意就能解决,不理解安全实际面临的复杂性和紧迫性。

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多