企业/政府信息化-谁为信息安全把关
(这条文章已经被阅读了次) 时间:2002年09月07日 15:06 来源:曹政 原创-IT
一:问题的简述
ERP,CRM,SCM,OA,相信不少人对这些名词已经耳闻能详,在电脑以及网络越来越普及的今天,企业,政府对信息化建设的热情正在不断升温,信息化建设已经当前国内各行各业所共同面临的课题,而信息化所必然带来的问题就是,信息的安全是否得到了足够的重视并且得到了足够的保障。
相信很多企业和政府部门都对这个问题满怀信心,那些急于套现的开发商和集成商更是迫不及待的大拍胸脯,但是事实上,问题远非如此简单。我曾经和别人开过这样的玩笑,如果你想鉴别一个信息化建设项目的开发商是否诚实,你就问他一个简单的问题,他们产品是否绝对安全,如果他承诺绝对,那么他肯定是骗子,道理很简单,信息领域永远没有绝对的安全,安全隐患永远会在某个角落存在,关键是,你是否能在别有用心的人发现它之前把它解决掉。
安全问题没有得到足够的重视,其根本原因还是认识上,不可能奢求每个人都是安全专家,但是如果每个人都重视安全,那么很多麻烦就不会发生了。
一般的安全认识是,防火墙=网络安全,信息系统完全靠一台或几台高档次的防火墙来维系,这样的人典型的话是“我们很重视安全,我们配备了最贵的防火墙了”,他们的信息系统,不可能是安全的,因为他们对网络安全的认识局限在这里了。
稍微有一些安全常识的人,他们会知道用不同的安全产品组合,进行多角度的安全防护和监控,比如他们会采用防火墙与NIDS(网络入侵检测系统)联动,会用HIDS(主机入侵检测系统)监控重要数据库,会有一套网络监控管理软件,甚至会有一套安全扫描系统来主动进行系统防护,并且购买一套也许是1024位的,具有公开密钥,私有密钥组合的加密安全证书。这样一套组合,对于纯IDC(网络数据中心)这样的应用应该是差不多了,但是如果是维护一个内部信息系统(也许是几十,几百人的企业信息系统,也许是几万人,几十万人的行业信息系统)。恐怕就显得过于片面了。
读者看到这里可能不耐烦,既然有那么多安全设备和举措,怎么可能还有问题呢?实际上,这里核心的问题是,所有的安全设备,安全软件工具,所面向的都是公开的,广泛使用的应用系统和软件,对于一些专有的,面向企业/行业/政府机关所定制的应用系统,他们的安全漏洞,不可能被包容在这些设备与工具里。
安全工具通常是用安全规则库来对安全问题进行探测和处理,安全规则库和病毒库一样也是需要不断完善和更新才能保持其可靠性和准确性,而维持和更新这些规则库的安全公司,他们通常只关注系统级和通用应用软件的安全问题,通常不会把注意力放在专业软件上,更不可能预知和专注到大量定制的信息化应用系统中去。
事实上,相当部分的应用系统,包括办公自动化系统,CRM系统,ERP系统都是极不安全的,之所以没有大量安全问题产生,主要原因是别有用心的操作者往往技能水平不够,无法发现这些漏洞而已,因为这些应用系统往往仅在局域网面向少数人服务,安全问题就不会象互联网那样暴露的那么快,但是如果运营者总是怀着这种侥幸心态,安全问题的出现就是不可避免的了。
二:问题具体表现,危害性
专有信息系统的安全问题通常包括三个不同层面,
第一是这种信息系统的设计是否安全,比如权限设计,职能设计,文档目录的授权设计,工作/审批流程的节点授权设计,数据备份及灾难恢复设计。对于设计不良的系统,一些普通身份的员工就可以很轻易的看到公司核心的机密信息,如果这个员工被竞争对手收买,那么公司的信息系统就成了竞争对手的资料库。如果是政府机关,那么后果可能就会更加严重。由于目前的公司结构日益复杂化,实际上很多权限职能很难用简单的分级形式来处理,如何兼顾和统筹这些权限职能分配,应该是系统设计之初,系统的使用者需要着重提出并参与分析的。
第二是代码安全,即便是设计极为优秀的系统,因为代码编写者安全素质的原因,或者开发单位对时间,进度以及测试标准,测试样例局限的原因,可能会使得代码编写员不能按照高安全,高容错的标准去编写代码,另外,大部分信息化系统的开发商,他们或者没有专门的测试部门,或者测试部门没有关于安全性方面的测试经验和测试能力,这些隐患将无法在第一时间得到判别和处理。从而使带有隐患的系统进入实际应用中去。
目前常见的代码安全漏洞有,特殊字符SQL合成漏洞(不管什么平台,什么操作系统,什么数据库,什么开发语言),特殊字符跨目录(../)文件打开漏洞(不管什么平台,什么操作系统,什么开发语言),跨站脚本执行漏洞(通常限于B/S结构的应用系统),至于不常见的,更是五花八门,千奇百怪。而这些漏洞,没有一个防火墙和IDS是能够完全屏蔽的,即便是一些防火墙,IDS开始加载了一些规则对特别常见的特征字符串(比如http协议下出现的“cmd.exe”,或者“../”的unicode编码)进行监控,也很容易通过碎片技术进行突破,而那些有针对性的,不属于通用性的特殊攻击字符串,更是可以堂而皇之的突破重重封锁,直接完成入侵/攻击使命。
不安全的代码,会使得很多安全设计形同虚设,比如系统使用了128位的加密算法来判别审批签名,使用了高可靠性的加密传输协议进行文档传输,看上去牢不可破,但是如果代码编写者贪图效率和简单性,从而忽略了一些必要的安全准则,就可能使这套防线形同虚设,好比马其顿防线一样,不攻而破。入侵者完全可以不理会这些外在的安全措施,以加密体系认可的,“合法”的身份进行文件读取和审批篡改。
第三是管理安全,最安全的系统上,未必跑着安全的应用,管理者对安全的认识及态度将极大影响信息系统运营的安全性,具几个简单例子,1,系统本身对文档目录设计了完全严格的认证体系,管理者图方便设置为完全共享。2,系统设计了完善的数据备份体系,管理者却从来没有启动过。3,系统的初始管理密码管理者从未更改,即使系统管理员已经辞职了依然如此。管理安全不但要求管理者意识到需要通过安全制度,安全思想来进行系统的运营和维护,还要求管理者能够让每个用户都建立安全意识,比如公司老总已经非常注意安全了,系统的安全维护也非常得力,但是一个财务经理,依然用123作为系统登陆的口令,这个系统的隐患也就依然不小。
三.解决途径及发展前瞻
安全专家以顾问形式参与信息系统建设,应该是未来信息化建设的一个发展趋势。实际上现在也有很多安全专家参与其中,但是他们的职能往往局限于推荐某种品牌,功用的安全产品,介绍某种安全拓扑结构以及组织一些面向系统的安全培训,这些固然重要,但是并不能解决以上的种种问题。因此,这不但是企业信息化所面临的问题,也是网络安全行业所需要重视和面对的问题。
一个真正合格的安全专家在企业信息化建设过程中所起的作用,除了如上所描述的以外,还应包括,了解企业管理运营模式,为信息化平台软件的设计和选型提供安全参考;指导和监督开发商的代码编写,必要时为有关软件工程师提供代码安全培训;组织人力为信息化平台软件进行安全测试,必要时进行代码校验(仅针对安全问题);组织安全管理培训和安全制度培训;定期跟踪系统运营状态并汇报总结安全隐患。
当然,企业/政府对安全管理给予足够的重视,对安全专家给予充分的信任和支持,也是必不可少,因此加强企业/政府安全意识和安全思想,也就是我们必须强调的。
总结:目前信息化建设的确并没有大规模爆发安全问题,这是当前信息化建设所面对的使用者普遍电脑技能不高有关的,但是我们不能一直这么侥幸下去,未雨绸缪总比亡羊补牢好些。