冉福祥 张超
摘要:本文以项目开发为背景,分析了MIS开发及应用过程中存在的信息安全问题,并就此提出了相应的解决方案和对策。
关键词:MIS;信息安全;对策
● 引言
随着管理信息系统(MIS)的广泛应用,各企事业单位的信息处理方式发生了根本性的变化,信息管理效率得到了很大的提高。然而,管理信息系统在开发及应用过程中的信息安全问题却往往被开发人员所忽视,由此给用户带来了不可估量的损失,并且安全事件的发生呈现出逐渐增长的态势。如何保证和加强管理信息系统中的信息安全,已成为开发人员和用户迫切需要解决的问题。
● 信息安全问题分析
伴随着企事业单位信息化进程的加快,信息资源的价值也在快速体现出来。与此同时,MIS的安全问题日渐凸显,已成为信息时代人们必须要面临的挑战。分析其原因,有恶意攻击、安全缺陷、软件漏洞、结构隐患和环境因素等,而对于系统开发人员,安全问题产生的具体原因主要表现在以下几个方面。
1.开发人员的安全意识薄弱
在MIS的开发过程中,开发人员由于各种原因,把精力主要放在了系统是否能够满足用户的需要、是否具备用户要求的各项功能、是否能够按照约定时间完成开发任务等方面,却忽视了安全性这一关键问题。如此,难免会给用户将来管理各类信息留下安全隐患。究其原因,主要是由于开发人员对于信息的安全防范存在惰性,安全意识、观念比较淡薄。
2.系统设计中存在漏洞
系统安全的首要防线是建立完善的访问控制体系,阻止非法用户对系统敏感信息的访问。安全设计包括对后台数据的安全访问控制和通过前端界面对数据进行访问。然而,开发人员在系统设计过程中,可能由于某些原因没有充分考虑到这些问题,最终导致用户权限的分配不合理,模块间信息共享存在漏洞等问题,为信息安全留下诸多隐患。
3.开发的技术方法落后
半个多世纪以来,软件开发技术在理论、观念、目标和技术方法等方面都发生了巨大变化。
在软件分析与设计方面,从最初的单一程序开发发展到应用系统的结构化方法(DFD图、IDEF0图、软件结构图等),从结构化方法发展到面向对象方法(类、UML);在软件开发语言方面,从最初的汇编语言发展到各种高级与中级语言,从平台有关到平台无关;在软件开发工具方面,从命令行调试到集成界面调试,再到可视化编程;在软件开发支撑环境方面,近年来出现了各种分布式软件开发技术(.NET、COM/DCOM、CORBA、Java RMI、JMS、EJB等),也涌现出各种中间件、各种数据库管理系统的新功能、两层及多层C/S体系、SOA、Web Service等。所有这些,都为软件开发的效率和质量带来了有力的保障。
然而,到目前为止,在大多数软件项目实施中完全采用新技术(如面向对象的方法),来分析与设计软件系统的情况远不如我们所想象的普遍,尽管大家都一再表示它应该是最佳的选择。但自顶而下,根据需求进行模块划分的方法仍然是现阶段软件行业的主流技术手段。
● 应对策略研究
MIS的开发是一个长期、复杂、庞大的系统工程,在开发过程中需要投入大量的人力、财力、物力等资源。为了最大限度地满足用户对信息管理的需求,提高信息管理的效率,保证信息的安全,我们提出了以下对策。
1.提高开发人员的安全意识
软件的安全性已经深深地影响到大众的生活、工作甚至国家安全,软件企业和开发人员需要承担起提供安全和保护隐私的责任,这也要求软件企业充分意识到风险的存在。第二届中国软件安全峰会就曾经把主题确定为“软件安全:意识比技术更重要”,彰显了会议主办方和策划者们对提高软件安全意识的迫切心情。
随着软件安全问题的日益突出,虽然各种解决方法被陆续提出。但是,作为软件项目开发人员首先应该通过提高安全意识来解决软件的安全问题。只有思想上引起足够重视,开发人员才会意识到软件安全的必要性和迫切性,才会去分析安全问题的产生原因,才会去研究安全问题的解决方法并提出解决方案。
2.加强系统的安全设计
(1)系统的访问权限设计
①后台数据库的安全访问控制。
数据库是MIS的后台,也是信息系统的核心。实现数据库的安全,也就是保证数据库中信息的完整、可用,并防止非授权用户窃取或篡改信息。保证数据库的安全是一项非常重要的工作,如果没有完整的安全性设计,就可能因数据库遭到破坏而导致整个系统瘫痪。
大中型的数据库管理系统(如SQL Server)都具有功能强大的数据安全体系。数据对象的增、删、改、查、运行等操作权限都可以分配给相应的用户。通过后台的权限分配设计,用户对数据对象进行操作时只能行使允许范围内的权限,而不能越权。
②前端软件界面的访问权限控制。
为了防止非法用户通过前端用户界面访问数据,信息系统在开发的过程中,也应该采取用户权限分配策略,即根据用户的身份,按照要求赋予其不同的用户类型和用户权限。这样,系统将允许具有相应权限的用户登录系统,访问或者修改指定的数据对象。
作者开发的项目基本上都是采用基于角色的访问控制方式(Role-Based Access Control,RBAC)对数据进行访问,即根据角色确定权限并对具体用户进行角色指派和许可指派。RBAC模型如图1所示。
(2)信息的安全加密设计
数据加密设计是将前端用户要存储的数据使用加密算法或者密钥进行加密生成密文之后再进行传递和存储的安全策略。在传递过程中,即使有人得到了密文,如果不知道解密算法或者密钥依然无法推测出明文信息,这样就保证了信息传递和存储的安全。信息加密解密的过程如图2所示。
(3)数据的备份、恢复功能设计
数据备份与恢复是保障信息安全的重要技术之一,是保护信息安全的最后一道防线,保证信息系统因各种原因遭到破坏时能尽快恢复使用。任何一个数据库在使用的过程中,都有可能因各种因素的影响而受到破坏,导致系统崩溃。这时,就需要对数据库进行恢复操作。
为了防止自然或者人为因素对系统数据造成破坏,在系统开发时应该进行数据备份、恢复功能的设计。具体而言,系统可以在用户执行了某项重要操作时,触发备份机制,自动或者手动进行数据备份。当发现数据丢失、损坏等问题时,可以及时恢复数据,以挽回损失。
(4)系统的运行日志设计
在MIS中,通过系统运行日志记录每位登录用户的登录时间、登录计算机的IP地址、操作的数据对象、操作内容、执行操作的时间等。这样,不仅可以随时了解用户的操作行为,还可以根据系统记录的日志内容,自动检索安全责任人,甚至实时触发安全警告,并及时通知系统管理员和用户。
3.应用先进的安全技术
(1)采用安全性较高的企业级数据库管理系统
数据库管理系统(Database Management System,DBMS)是对数据库进行统一管理和控制,以保证数据库的安全性和完整性的大型软件。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。它可使多个应用程序和用户使用不同的方法同时或在不同时刻去建立,修改和访问数据库。
目前,常见的数据库管理系统有Sybase、DB2、MySQL、Access、Informix、Microsoft SQL Server、Visual FoxPro、Oracle等,每款产品都有自己的特点和优势。
开发人员在选择数据库的时候,除了要考虑构造数据库的难易程度、程序开发的难易程度、数据库管理系统的性能、对分布式应用的支持能力、并行处理能力、可移植性和可扩展性、数据完整性约束、并发控制功能、容错能力、支持汉字处理能力等,更要考虑数据库的安全性能,包括账户管理、用户权限、网络安全控制、数据约束及安全保密的程度等。
(2)应用信息加密技术
加密是防止数据信息泄露、保障数据机密性、完整性、可用性的重要措施,是保护数据安全的有效手段。所谓数据加密(Data Encryption)技术是指将一个信息(或称明文,plain text)经过加密钥匙(Encryption key)及加密函数转换,变成无意义的密文(cipher text),而接收方则将此密文经过解密函数、解密钥匙(Decryption key)还原成明文的技术过程。
在众多的常规密码算法中,比较著名的有:美国的DES及其各种变形,如Triple DES、GDES、New DES和DES的前身Lucifer;欧洲的IDEA;日本的FEALN、LOKI91、Skipjack、RC4、RC5以及以代换密码和转轮密码为代表的古典密码等。其中,影响最大的是DES密码。
数据加密是现今信息安全防护的主力军,开发人员进行软件开发时,可以在不改变用户原有的使用习惯时使用先进的加密技术对数据进行加密,从而保护敏感信息的安全。
● 小结
MIS是一个由多种要素构成的复杂的人机交互系统,在开发和应用的过程中均存在各种不安全的因素,都会威胁到系统中信息的安全。但是,作为系统的开发人员,应该充分地认识到MIS中信息安全的重要性,必须全方位、多层次地注意到安全问题的存在,并尽最大可能地采取有效的应对策略和技术手段,切实满足用户各方面的信息安全需求,保证MIS的安全、稳定运行。
参考文献:
[1]何小朝.不是三维——软件项目的设计、开发与管理[M].北京:电子工业出版社,2010.
[2]杜文才.旅游管理信息系统[M].北京:清华大学出版社,2010.
[3]查良松,陆均良,罗仕伟.旅游管理信息系统[M].北京:高等教育出版社,2006.
课题项目:甘肃省教育科学“十二五”规划课题,甘肃省教育科学规划课题研究成果(课题编号:GS[2013]GHB1074)。