防不住的东西[安全类]

    技术2022-05-11  31

    防不住的东西 [ 安全类 ]                                      作者:裴学文   都知道,目前安全问题很重要,但目前大部分人都只把安全防御局限在黑客啊,木马啊,病毒啊等等,以为关掉几个端口、装个防火墙、装个杀毒软件就万事大吉了,事实呢?其实不然,首先你已经站在了一个高层去防御了,而忽略了基础防御,所以你什么也没有防住。 为什么这么说,下面听我细细解析。   目前很多软件,都留了后门,在你运行的时候,在干一些与本软件不相关的事情;随便举一例:Adobe Reader,都知道它的主要作用是阅读pdf电子书,但是, 当你在使用它的时候,它却在静静的与外界通信,比如检测是否有更新的版本等等,当然这些我称之为良性连接,不会对你造成任何破坏,反而还下载更新更高的版本;反之,如果它通信的目的是搜集你本机的秘密数据往外发送或者控制你本机搞破坏就叫恶性连接;这种情况太多了,几乎所有防盗版意识或者有某种政治因素的公司都会在它的软件里加上这个隐藏物,包括一些是带有恶意的。 以上这些只是目前比较普遍的方式,还处于肤浅层,都是可以防得住的。 什么是防不住的呢? 从先从初层讲起,逐步往深层讲: 目前几乎所有软件开发人员都喜欢用标准库函数,如Win32 API,或者第三方库,并且毫无顾及,以为那些函数都是单纯功能的函数,除了完成使用说明里说的功能外,就没有干别的事情了,这种想法是大意的想法,为什么这样说,随便举一例: 某库函数:function StrCopy(var sDest:string;sSource:string):boolean;{或者char *StrCopy(char*,char*)};学计算机的都会想到,这是一个复制,把sSource内容复制到sDest里去,不错,Guide或者Reference文档也正是这样写的,事实呢?带不明显意图的人会把它这样实现(当然microsoft不一定会干这种事,也不排除):   function StrCopy (var sDest:string;sSource:string):boolean; begin //1. 公开的:先完成它公开的复制功能;sDest <— sSource; //2.未公开的:把数据进行关键字检查,并往指定目的发送; //3.未公开的:建立一个供外界入侵的环境; //4. 未公开的:…… end;   看到了吧,一般人以为它真的只干完了1,后面的2、3、4等都是没有的;是否有后面的操作我们不知道,它也没公开具体实现,由于这种疏忽思想的存在,导致了美国等发达国家通过各种隐蔽手段,可以轻易获取大量情报,而不需要任何特务间谍,达到零危险零伤亡。   这仅只是我随便举的很简单例子,也许很多人说,这还不简单,用一些监听软件不就可以发觉吗?是不是这样简单?呵呵,很多人又忽略一个基础条件,监听软件是靠什么来完成监听的?都知道,一堆现成的高层API函数,还遵守一系列的协议规范;估计已经可以知道我想说什么了;我想说的是,首先你监听软件本身就不是安全的,其次监听软件本身就已经被局限在了一个很小的范围内监视了,再者监视到本身就只是以同样通信方式并同样局限在这个范围内的通信了,何况这些通信本来就是公开的,监听到的并不是什么重大机密,一个国家安全机构当然不会采集这些没用是数据;试着把思路放开一点,如果别人的信号不是以平常信号传输的你能监听到吗?信号本身就是通过无线震荡波发出去的?或者别人的协议没有用任何一种公开的协议,数据绕过驱动自行调用网卡芯片自行组织信号格式等等,方法穷举不尽;试问,这种做法你的软件在数据链路层是不是能嗅到呢?答案已经很明然了。现实中就是这样;上面说的,估计有人说人了,那些都是软体上的小动作,硬体不支持那不等于白搭,说到点上了,硬体就是一个更大的隐患了,甚至比软体小动作更可怕,防不胜防。 看来我不得不在说一说硬件了;眼前,拆开机器,你会发现除了箱壳是自己生产的,里面关键一点的东西都是美日制造的,各种各样的芯片等。   好了,重大隐患马上就被我挖掘出来了。   芯片又是我们国家的一个薄弱环节;别人的芯片是不是可靠的呢?当然这里的可靠不是指它运行过程中会不会跳bug,而是安全问题,首先我们得肯定,老美的芯片是非常稳定的,但是那不是我要废话的,我要说的是,面对这个黑盒子,它公开的使用说明是不是完备的也就值得怀疑了,它提供的指令是不是安全的或者全面的更是值得怀疑了。 首先,按照我的思路,我会认为:芯片是可靠但不安全的,谁叫我们用别人的呢?不是他逼我们用的。我可以大胆猜测,芯片的指令集是分两部分的,一部分是公开的,是商业机构用来进行二次开发的工具,还有一部分则是不公开的,更保密一点,而且还要靠某个未公开的开关指令启用之后才可以使用的秘密指令,这样即使泄露的秘密指令也不要紧。这部分指令通常是安全部门用来进行机密盗窃用的,既然有两套指令,当然,形成多种不同的数据组织格式以不同的信号通过不同方式往外发送就是很简单的事情了。 最大的安全隐患在哪里?计算机本身算一个,但是不能有上最字,该夺此头衔的应该是网络设备,比如说路由器,交换机等。他们才是真正控制网络数据流向的东西,这些设备在中途修改一下你的包头,或者复制一份副本补上它包头,就可以轻而易举的把包发到它指定的目标了,这样谁能发觉?根据这种思路,网络传输又可以分为两种,一种叫光明传输,一种相反,叫秘密传输。当然,既然人家有目的有准备的盗窃秘密,这种秘密传输当然不能像上面所说的,仅仅复制修改一下包头而已,方法更是穷举不尽,只要你大胆发挥你的想象力。   好了,我就抛砖到此,剩下的留给大家去发挥想象吧!    2005-9

    最新回复(0)