IT系统在带来极大的信息传播与共享能力、提高生产效率、丰富人们的业务生活外,也不可避免的带来安全问题,安全随人们的依赖程度提高而越严峻。针对IT系统的攻击逐步由技术炫耀向有组织犯罪甚至组织和国家之间半军事化对抗演变。
在日常现实生活中,人们的人生与物理安全,很多时候是依赖于事后追查机制。通过事后追查,提高犯罪者法律风险来降低安全事件发生的概率,只有一些重要事件需要保护时才提供额外的事前安全保护机制;事后追查机制用较低的成本获得一个能被大众接受的安全度。但是IT系统特别是网络化之后,单纯的事后追查防范风险的机制已经很难有效针对IT系统,主要原因在于:
1)接触成本低:在现实犯罪中,罪犯想要实施犯罪,则必须物理接触被实施对象,因此其接触成本大大提高。而在网络系统中,任意在网络上连接的两点都可以实现虚拟接触,罪犯的接触成本大大降低。
2)取证困难:在现实犯罪中,物理接触必然会留下大量的物理证据和目击人证,取证更容易;而在网络犯罪中,都是电磁信号等非持续保留信号,即使可以持续保留的文件日志等信息也都可以被罪犯绕过或无痕删除,而且最后也只能指认锁定的IP和主机,无法确认实施人员。
3)地域受限:国家是由界限的,在现实犯罪中,罪犯实施犯罪必须接触被侵犯目标,在追查的一定时空域内,还属于一个国家的管辖权内,实施取证与执法都比较容易。而网络上,可以轻易跨越国界实施犯罪,导致取证和执法都相当困难。
4)侵害获知的实时性:在现实犯罪中,侵害的都是实体资产,一旦侵害发生,被害人可以及时获知然后通过报案启动事后追查体系。然而针对IT系统的犯罪,大部分侵害的是信息资产,用户很难及时获知被侵害已经发生。即使侵害的是实体资产,也可以通过信息欺骗滞后被发现的时间,典型的案例就是震网在2006年左右就已经入侵伊朗核设施后修改参数导致核设施生产不出可以制造核武器的物质,然而显示却一切正常,直到2010年才被发现。
基于以上原因,采用现实生活中的事后追责处置的方式来应对IT系统的安全问题,是很难降低IT系统的安全风险。要求IT系统必须拥有更多主动的事前、事中与事后的防御与检测措施。于是各类IT系统安全防护与检测产品应运而生:防护墙、入侵检测、病毒检测等等,这些系统降低了IT系统的部分安全风险但也带来了很多其他的问题,但是始终难以从根源上缓解IT系统面临的安全威胁。究其原因:虽然数学已经证实了可以在两个不可靠的系统之上构建可靠的系统,但还无法证实在多个不安全或不可信的系统之上可以构建可信的系统。不可靠是物理客观而且可以清晰界定范围,可信则是主观范畴,安全虽然是物理客观但却属于未知范畴。要想让IT系统更加安全,还必须从IT系统自身的安全着手,让安全成为IT系统的基础属性。
让安全成为IT系统的基础属性,实际上包含了如下的要求:
1) IT系统的自主开发的代码必须是达到一定安全度的:针对IT系统的代码安全漏洞发起攻击日益成为当前针对IT系统发起远程攻击的重要手段。相对来说:管理等问题带来的侵害基本都是接触式的攻击,而远程非接触式的侵害基本都需要配合IT系统的安全漏洞来发起。而安全开发的意识基本还未普遍形成,导致安全漏洞在IT系统中普遍大量存在。必须强化系统设计与开发人员的意识,采用一定的技术手段,来降低IT系统开发时引入大量的安全漏洞和其他各种安全瑕疵。
2) 针对IT系统的外部来源组件必须有一定的安全监控和管理手段:IT系统是在一个开放式架构复杂组合而成,大多数IT系统必然需要采购或者本身就是建立在其他第三方的外部组件之上来构建的。针对这些第三方来源的组件,必须有一套准入、验收、保证、响应与追责的体系,来保证第三方来源的组件进入时初步的安全,安全问题产生时的快速响应与修复,对第三方来源的组件的安全问题追责和管理。
3) IT系统的外部防御体系:目前业界已经建立了一套IT系统的外部防御体系,但是在目前IT系统的安全风险与威胁之下,也遭受着各种各样的挑战,原因正在于:
a) 检查滞后性:缺乏及时发现最新攻击和被入侵的能力。IDS/IPS依赖对漏洞和攻击代码的已知信息上,杀毒产品依赖于对病毒和木马的样本和具体行为信息上。难以针对0DAY和特马做出及时的响应。
b) 缺乏智能分析和关联能力:一般做法要么粗暴的阻断导致由于误报导致可用性大幅度降低,要么将非常专业的信息递交给无专业技能的用户做决断,用户既不能正确判断也非常烦恼频繁的提示导致的易用性损失,最后可能导致用户关闭相关安全功能。
要想达到以上几个目标,最终让安全成为IT系统的基础属性,整个IT产业界和安全业界必须做出以下的努力:
1) 树立安全意识:通过越来越多的安全事件,IT系统的安全的重要性开始被越来越多的人们所重视。但是如何来解决IT系统的安全问题,很多人都抱有简单的幻想,希望用一个简单的改善就能获取安全;必须认识到安全是一个非常复杂的体系,需要全方面的投入和改善,每一个安全的措施只能提高一点攻击者的成本或降低特定情况的风险而不能大幅度改善安全境况。用户信息泄密事件之后,很多厂商号称自己换用了MD5加密存储用户的密码手段,因此是安全的就非常可笑。问题在于攻击者是通过安全漏洞获得用户敏感信息的,解决方案并没有解决自身的安全漏洞问题,只是让攻击者拿到的是MD5加密的信息,攻击者通过彩虹表就已经能查询出大部分强度不够的密码,攻击者甚至可以入侵服务器修改代码,让用户密码在做MD5运算之前就传递给攻击者等等。当然有了改善总比没有改善要好,至少攻击者需要做出更多额外的工作增加了攻击成本。所以针对有重要信息资产的系统,安全投入会不断增高,很多企业不愿意在安全上做投入,认为安全只是成本没有正向收益,但是企业需要想一想,如果没有安全来保障IT系统的运营,引入IT系统带来的效益或者依赖IT系统带来的效益,就只是空中楼阁,在罪犯和竞争对手攻击之下飞灰湮灭。以安全为看点可能为你争取到更大的蛋糕,但即使安全不能为你增加什么,但没有安全你就无法守住你已经获得的蛋糕。当然,安全也必须在可能的损失、成本、用户体验、系统可用性等各种竞争性需求之下寻求一个平衡,但安全必须成为一个重要的考虑因素。
2) 改善学校的计算机教育体系:在我们传统的开发能力教育中,强调性能和用户友善性为主,但是缺乏安全的部分。未来的程序员从学校中学习不到安全,了解不到安全的重要性,掌握不了安全问题的机制和编码的相关性,自然编写出来的代码千疮百孔,漏洞遍地。在我们传统的软件工程教育中,对软件安全设计的原则缺乏描述,对关键的软件安全开发管理过程也缺乏讲解。自然难以在未来软件设计和软件工程管理中,将安全作为一个考量的重要因素。
3) 用安全开发过程(SDL)来保障代码安全:微软从2003年开始认识到必须改进自身开发产品的安全性必须从开发过程着手,之后引入了安全开发过程(SDL),WIN7、OFFICE2010、IE8等产品都是在SDL过程下开发出来的。这些产品虽然未能完全解决安全漏洞,但是相对于以前的系统,安全性得以大幅度的提高,在安全业界也获得了好评。微软的实践证实:即使是在超大型软件开发背景下,通过安全开发过程的管控,结合安全能力与安全意识的培育,是可能在开发级上就非常有效的提升IT系统的安全性的。当然采用SDL意味着需要付出很大的成本,而且对既有的开发模式、人员冲击都比较大。可以通过采用循序渐进的方式,但是基础的人员安全能力与意识的培训、系统上线前的安全测试、漏洞及时响应修复与公告等措施还是必须具备的。
4) 建立供应链安全管理体系:供应链安全最近越来越被注重,但如何控制好供应链的安全还需要各种各样的管理规范和技术体系支撑,但至少,要求供应商承诺实施安全开发过程、对安全漏洞实施响应承诺是必须的,在此基础上,还需要对供应商交付的组件特别是非大众公共的组件实施必要的安全验收和安全监理,依据供应商自身组件安全问题和响应评估供应商的安全能力和安全性,顶起淘汰不合格的供应商。才能有效地在供应链源头控制安全风险。
5) 外部防御体系需要不断依据攻防发展作出技术变革:针对现有防护体系的不足,业界已经在反思,从技术到策略都在作出调整。下一代防护墙(NGFW),下一代入侵检测系统(NGIDS)都提出了应对IT安全问题的新的方向,他们都在综合安全事件智能分析、对未知安全漏洞攻击的检测、对未知入侵事件的及时感知等能力上有所加强。配合这些外部防御体系,可以更有效地对IT系统当前的安全状态进行感知和发现基于未知漏洞的攻击。
6) 实现防护方共享攻击信息机制:安全本身是一种状态,当用比较低的成本垒高攻击者攻击成本导致攻击者收益小于攻击者成本时可以获得最高的安全性。从防护者角度,要每个IT系统都单独且面面俱到发现IT系统的所有未知安全问题并及时分析响应作出对抗策略需要付出太高的成本而且高端安全人力资源也极为短缺,如果防御方能共享攻击信息,共享专业安全攻防团队的分析和响应支持,可以大大降低所有IT系统防护未知安全问题和攻防对抗的成本,针对黑客最新的攻击手法和安全漏洞作出快速响应,以较小的代价变相推高攻击者成本来实现IT系统的安全性。
无论如何,二十一世纪是信息网络时代的世纪,在这个世纪,架构在互联网之上的各种IT系统将更加深刻的勾画人类的未来,无论移动互联、物联网、云计算,安全会成为这些IT系统面临的最迫切需要改进的问题。努力实现让安全成为IT系统的基础属性,或许会付出很高昂的代价,但是相对未来可能因安全问题引起的损失,是我们必须要面对和付出的努力。