互联网世界的魔鬼克星
为了击败赛伯恐怖分子,计算机系统必须技高一筹,顶住形形色色的捣乱与破坏。David A.Fisher新推出的编程语言将有助于实现这一目标。
W. Wayt Gibb
卡内基梅隆大学“计算机危机处理小组”(CERT)协调中心是抗击黑客、赛伯恐怖分子以及各色网上罪犯的主要防线之一,因此它理所当然地成了恐怖袭击的一个目标。在骇人听闻的“9·11事件”之后,同其它许多名气很大的组织一样,该中心也加强了其安全措施。要进入该中心所在的这座钢骨玻璃帷幕的大楼,我必须先向一个对讲电话装置说明来意,并对着前门的摄像机微笑一下,然后当着两位穿制服保安的面签下我的名字,并等待一位陪同人员将她的扫描卡划过一台读卡机(由另一只摄像机监视着)之后,才允许我进入“保密”区。这一道又一道的安全关卡与我在机场登机前必须通过的安检和我在启动便携式电脑之前必须输入的一连串密码有异曲同工之妙,然而它多半只是一种虚幻的安全感,而非实实在在的铜墙铁壁、固若金汤。归根到底,在一个开放的社会里,绝对的安然无恙只是一个可望而不可及的梦想。
计算机系统尤其如此。其复杂性、相互关联性、不可或缺性正迅速地与日俱增,因而更容易遭受黑客的袭击。CERT的研究人员David A.Fisher指出,控制交通、银行、电力网络的计算机以及联入因特网的任何东西,这一串计算机连成了无边无界的系统。他说:“没有任何人能毫发无差地洞悉计算机系统的拓扑布局或状态的所有细节,甚至系统的‘主人’也没有这种本领。中央控制要么根本不存在,要么就是起不了什么作用。”
这些特性令计算机科学家大伤脑筋,他们难以算出关键的基础构架以顶住黑客攻击的能力。Fisher指出:“我们对无界系统的认识还有限。”看来这个问题令他深为烦恼。在Fisher的40年职业生涯中,他始终主张运算之道贵在严谨。他很早就开始研究计算机科学了(当时这门科学还只是数学的一个分支)。20世纪70年代,在美国国防部开发Ada这种高级计算机语言的过程中,Fisher曾发挥了核心作用。开发Ada是为了取代一大批不够严密的编程语言。
到了80年代,Fisher创办了一家专门经营软件的高科技公司,是软件行业中首批尝试开发“可替换部件”的企业之一,这类互换部件能够大大加快软件的开发进程。90年代初,在他的主导下,美国国家标准与技术研究所(NIST)推动软件工业以计算机硬件市场的模式运作,即由多家互相竞争的公司生产标准软件部件,而后组合成无数的最终产品。
Fisher努力想让无序的系统变为有序,但他的这一努力常常遭到阻力。五角大楼下令其所有编程人员均使用Ada语言,而承包商们却阳奉阴违。Fisher创办的那家公司因缺乏创业资金而垮掉了。国会对Fisher的事业横竖看不顺眼,因此他在NIST推行的先进技术计划屡遭阻挠。不过,到了1995年,即Fisher进入CERT的那一年,安全专家们开始意识到,正如CERT的主任Richard D.Pethia所说那样,“我们传统的安全技术再也支持不了多久了。”
CERT成立于1988年,起因是一名科内尔大学的研究生放出了一种能自行传播的病毒,致使因特网的很大一部分陷于瘫痪。现在全世界已有100多个这样的应急小组,卡内基梅隆大学的CERT中心,负责协调遍布全球的这些应急小组,以抗击Pethia所说的那些“造成很大冲击的事件,例如不久前横扫数十万个网站的尼姆达(Nimda)和红色代码等网络蠕虫病毒的露面,对因特网基础构架本身的袭击,以及可能威胁网站生存或危及国防安全的其它任何计算机攻击。”
然而,道高一尺,魔高一丈。每年发生的计算机袭击事件差不多都会翻番,袭击的手法和技巧越来越“高明”,而防御方似乎是技逊一筹,在这场较量中略居下风。因此,虽然CERT仍要筹建一个反黑客精英小组来对付大规模袭击,但它的大部分经费(约有一半的经费由国防部提供)都用于研究上。
因计算机系统是无界的,“天生”就不安全,因此对Fisher来说,最紧迫的问题是如何设计出具有“生存能力”的计算机系统。也就是即使计算机系统遭到破坏,它仍能设法发挥其核心功能,必要时可能“牺牲”某些部分。研究人员现在还不知道如何建造这样一种有复原能力的系统,但该小组今年2月推出的一种新的编程语言或许会大有帮助。
Fisher在开始研究主宰无界系统的级联效应具有什么样的数学性质时,就认定开发一种新的编程语言是必不可少的。我们举例来说明级联效应。鼠标的点击传到调制解调器上,调制解调器启动路由器与一个网上服务器通信,服务器指挥某仓库的机器人取出一本书,并于当天发出。另一个例子是一节树枝使电力线出了故障,导致变压器过载,继而使一座变电站陷于瘫痪,结果不出几个钟头6个州先后停电,陷于一片黑暗之中。
工程师通常都知晓系统必须执行何种任务。例如,电力网络应持续传输频率60赫兹、电压l10伏的电力。Fisher问道:“问题在于,电力网络中的每个节点应当遵循什么样的简单规则,才能确保即使出现意外情况——如设备故障、自然灾害和蓄意袭击等——电力网络仍能正常供电?”他把这类规则称为“应急运算法”,因为异常复杂的行为(如建造一座蚁丘)很可能是从一个简单的程序开始,通过许多独立自主的参与者(例如成千上万只蚂蚁)来执行。
Fisher及其同事意识到,运用传统的计算机语言,他们永远也不可能确切地回答这个问题,“因为传统的计算机语言要求我们对系统做出完整和精确的描述,但是对电力网络或其它任何无界系统,我们并没有掌握完整的信息。”于是他们创造出了一种名为Easel的全新程序设计语言。
Fisher说,“即使无界系统状态的信息不完整,但凭借Easel语言,我们仍能对无界系统进行模拟,写出适当的程序,帮助控制电力网络或预防Ddos(分布式拒绝服务)攻击。”几年前就是这种攻击使CNN和雅虎网站陷于了瘫痪。
由于Easel所用的逻辑与以往的编程语言不同,因此它使抽象推理变得比较容易。Fisher解释说:“传统上的计算强调用专有名词——如皮皮、小花、小黑(给动物起的昵称)等进行交流,而Easel却用统称——如狗,不用皮皮。”这一差别使程序完全变了样。在用传统语言编写的程序中,编程人员只会把含有狗的属性的,判定为“重要”程序。Fisher说:“这样程序设计语言的逻辑就增加了一条假定,即狗的其它所有特性都无足轻重。这样的假定使你能够进行任何一项关于狗的虚拟实验,但它也会得出错误的答案。”因此,模拟现实世界的任何计算机模型,都必须随时对照观测结果进行检验。
Fisher说,用Easel编程时,“只需考虑狗的那些已确定无疑的特性。例如,狗有4条腿,2只眼睛,身高l5厘米到1.2米等。编程人员不需要规定计算机必须如何表示某一条具体的狗。当然,有得必有失,这一方法的缺点就是有时系统会回答说:‘我没有掌握足够的信息来回答这个问题。
有了Easel语言,就更容易预测一种新的赛伯病毒或软件“害虫”如何搞垮一个电脑系统。例如,CERT的研究人员Timothy J.Shimeall最近编写了一个有250行的Easel程序,模拟红色代码网络蠕虫的网上攻击。该模型可以轻而易举地塞入另一个模拟大型公司网络的模型中,以检验各种制止红色代码网络蠕虫复制的策略是否有效。
Fisher等人已开始利用Easel发展紧急运算法,希望能提高各种关键基础构架生存能力。Fisher说:“你可以想象对手就是一个有其自己生存目标的竞争系统。在这场战争中,你的取胜之道不是构筑可能干扰你目标的围墙,而是设法防止对手达到它的目标。”
【郭凯声/译 李爱珺/校】
请 登录 发表评论