APP下载

计量管理信息系统中的数据库安全

2014-10-15毛宇光

计算机与现代化 2014年1期
关键词:数据库安全防火墙加密

倪 庆,毛宇光

(1.南京航空航天大学计算机科学与技术学院,江苏 南京 210016;2.南京大学计算机软件新技术国家重点实验室,江苏 南京 210093)

0 引言

随着科技的进步和社会的发展,信息技术的革命使人们的工作模式越来越趋向于智能化和自动化。目前,以计算机和网络为基础的各种管理信息系统己成为当今社会运行的基础,数据库作为系统的核心,其安全问题也越来越引起人们的重视。在此背景下,计量行业结合自己的业务需求和特点进行计量信息管理系统的开发。本文以数据库安全理论为指导,采用用户身份认证、防火墙技术、基于角色的访问控制、数据加密,审计追踪与入侵检测、防数据库下载和防SQL注入攻击等技术来确保系统安全,防止不合法的使用造成数据泄漏、更改或破坏,给企业带来损失。

1 系统需求分析

1.1 架构设计

本系统采用Browser/Server模式,使用三层应用体系结构(如图1)。其中,表示层位于客户端,用于显示和接收用户提交的数据,为用户提供交互式的界面,其主要工具是Internet Explorer浏览器;业务逻辑层是系统的核心部分,主要根据计量业务处理逻辑,在表示层和数据访问层之间进行数据的传递和处理;数据访问层位于底层,主要实现对数据的读取、保存和更新等操作。

1.2 开发环境

本系统在Windows XP操作系统环境下,主要以Microsoft Visual Studio 2008为开发平台,SQL Server 2005为后台数据库,采用ASP.NET中间件技术,结合C#以及天开流程平台进行系统开发。

1.3 功能模块设计

图2 系统功能模块图

如图2所示,本系统可以分为检定校准业务模块、检验业务模块、查询及统计分析模块、基础数据维护模块和系统管理模块5大部分,各模块功能如下:

(1)检验校准业务模块。主要包含客户管理和合同管理、客户服务管理、检测服务管理以及物流管理等业务,可分为检定协议客户管理、现场检测业务计划、委托单业务、流转单打印、证书相关、完工确认、收费确认、延期、加急、客户取件和退件等子模块。

(2)检验业务。主要包含客户管理和合同管理、检测服务管理以及物流管理等业务,可分为检验协议客户管理、委托单业务、检验派工、资料审核、检验配时、报告相关、完工确认、收费确认和客户取件等子模块。

(3)查询及统计分析。主要对器具、证书的数量和业务完成情况以及回款情况进行数据统计分析,由器具明细、证书明细、超期器具查询、核算报表、按期检出率、强检报表、部门核算收入、未付款统计、到账汇总等子模块构成。

(4)基础数据维护。主要用于合同管理、业务派工、证书管理、器具管理、绩效考核等管理工作,可分为器具维护、标准报价库维护、器具报价维护、模板维护、标准器维护、标准设备维护、技术规程维护、仓库维护、考核项目管理等子模块。

(5)系统管理。主要是对资源进行分配和管理,可分为通知公告管理、有效工作日管理、单位用户管理、角色管理、系统日志管理等子模块。

2 数据库安全

如图3所示,本系统使用Web数据库,结合ASP中间件技术,通过Web方式访问数据库,在数据库端实现对数据库的操纵,服务器将结果以Web页的形式返回给客户。由于Web数据库处于网络环境中,存在很多安全隐患。因此,必须采取措施来保证系统的安全性。

图3 Web数据库访问方式

2.1 数据库安全模型

数据库的安全性是指保护数据库以防止非法使用所造成的数据泄露、更改或破坏。数据库安全模型是一种高层抽象、独立于软件实现的概念模型,用于精确地描述该系统的安全需求和安全策略。

如图4所示,当用户向Web服务器发出请求时,首先要进行身份验证,只有当验证通过时才能进行访问权限的分配和访问控制的限制,否则服务器拒绝请求。当用户获得访问权限后,先通过防火墙过滤,然后再对服务器进行访问。访问期间对每个用户的行为都要进行审计追踪和日志记录,对于敏感数据进行加密。此外,为了更好地保护数据库的安全,要对数据库进行加密存储。

图4 数据库安全模型

2.2 常规安全措施

2.2.1 用户身份认证

为了防止用户未经授权非法访问数据库,本系统采用用户身份认证机制,涉及客户端、Web应用程序和后台数据库3个方面。

(1)客户端:采用基于口令的身份认证机制,用用户名标识用户身份,经系统验证用户的合法性后,再用口令进一步核实用户身份。为了保证用户名和口令的安全性,首先对用户名和口令进行加密,然后再向服务器传输;服务器收到信息后进行解密。

(2)Web应用程序:可用身份认证机制保护被限制的ASP内容。只有拥有合法的Windows NT账号的用户名和密码的用户才能对限制的ASP内容进行访问,否则拒绝。

(3)后台数据库:用户在客户端输入用户名、口令,服务器端在收到浏览器端的请求后与数据库建立连接,将用户输入信息与数据库中用户表中记录(含用户名、密码和访问权限等)进行比较,若合法,则允许其根据访问权限对数据库进行访问,否则拒绝。为了进一步完善ASP的安全机制,本系统利用ASP提供的Session内置对象来保存特定用户的信息。当用户合法登录进入系统后,将Session对象的ID保存起来,每次当用户向服务器发出请求时,将当前Session ID与保存的ID进行比较,若相符,则服务器给予响应,否则拒绝。

2.2.2 防火墙技术

防火墙是一种高级访问控制设备,置于不同网络安全域之间的一系列部件的组合,它是不同网络安全域之间通信流的唯一通道,能根据有关的安全策略控制(允许、拒绝、监视、记录)进出网络的访问行为。在数据库应用中,防火墙技术一般分为2种:包过滤和代理。包过滤作用在协议组的网络层和传输层,根据包过滤规则确定是否允许数据包通过。代理作用在应用层,通过对每种应用服务编制专门的代理程序,实现监视和控制应用层通信流的作用。本系统中使用复合型防火墙技术,如图5所示,当从内部网向外部网发出请求时,直接通过包过滤型防火墙和外部网建立连接即可;当从外部网向内部网发出请求时,则要先通过包过滤型防火墙,再通过代理型防火墙的检查确定是否接受其请求。这样就结合了包过滤和代理两者的优点,既保证了一定的安全性,又不影响信息传输速度。

图5 复合型防火墙

2.2.3 基于角色的访问控制

为了让经过身份认证的合法用户根据权限来访问数据库系统,本系统采用基于角色的访问控制机制,其核心思想是将角色和权限相联系,通过用户分配的角色,让用户与访问权限相联系。结合计量事业单位的组织结构,系统管理员可以给用户分配技术负责人、质量负责人、各科室负责人和检定人员等角色,再给各角色赋予相应的访问权限。用户在登录系统时输入用户名和密码,通过身份验证后激活相应的角色,并依据其权限对系统进行访问。

一个用户可以拥有一个或多个角色,一个角色对应一组权限。角色可以根据需要产生或取消,当一个人的职位发生变化时,只要将该用户与当前的角色分离,再把他赋予新的角色即可。系统管理员重点关注用户和角色之间的映射,简化了用户的权限管理。

2.2.4 数据加密

数据加密的基本思想是根据一定的算法将原始数据(明文)加密成为不可直接识别的格式(密文)文件,数据以密文的形式存储和传播。数据库的保密问题不仅包括在传输过程中采用加密保护的控制非法访问,还包括对存储的敏感数据进行加密保护。

(1)数据传输的加密。

数据加密技术包括对称加密和非对称加密2大类。对称加密即加密和解密均采用同一把密钥,数据传输速度较快,但是通信双方必须事先统一密钥,一旦发送途中丢失,接收方就不可能重新得到密文的内容,而且当多人通信时密钥的组合的数量会急剧增多,增加了分发密钥的代价和难度。非对称加密即收信人生成2把数学上相互关联但又不同的公钥和私钥,私钥自己保存,将公钥公布出去,发信人用收信人公布的公钥对数据进行加密,收信人收到数据后用自己的私钥进行解密;非对称加密可以公布公钥,避免了密钥分配带来的麻烦,但是数据传输的速度较慢。结合两者的优点,本系统采用混合密码,用对称加密算法DES对明文进行加密,用非对称加密算法RSA对给明文加密的密钥进行加密。这样,在通信前就不用再进行秘密的密钥分配,而且数据传输的速度很快。

(2)数据存储的加密。

数据库中存在一些敏感数据,即不应公开的数据。本系统对这些敏感数据采取基于字段的加密技术,以不同记录的不同字段为基本单位进行加密。该方法可以对数据库中单个数据元素进行加密,具有最小的加密粒度,更好的灵活性和适应性。

2.2.5 审计追踪与入侵检测

为了确保可查性,当用户在操作数据库时,数据库管理系统(DBMS)将用户操作的相关信息如操作类型(修改、查询、删除)、操作时间、站点使用情况和服务器使用情况等信息记录在审计日志中给系统管理员查阅分析,一旦出现安全问题,管理员可以迅速找出非法操作人员。

攻击检测主要是对网络和计算机系统进行有效的监控,根据审计数据分析检测内部和外部攻击者的攻击企图,找出系统安全的弱点,能够及时有效地反映出是否有入侵或滥用的情况。

2.3 非常规安全措施

2.3.1 数据库路径安全保护

数据库的安全不仅包括数据库中数据对象的安全,还包括数据库路径的安全。一旦数据库路径暴露,用户就可以进行下载,数据库信息泄露。为了防止这种情况的发生,可以采取以下措施:

(1)在IIS中,找到系统的虚拟目录,右键单击,选择“属性”->“虚拟目录选卡”->“配置”->“应用程序配置”,在应用程序映射中为.mdb添加一个可执行程序即可。

(2)数据库文件默认的后缀名为.mdb,为了增加用户识别的难度,可以将后缀名改为.aspx等,避免后台数据库被用户从客户端下载。

(3)给数据库文件起一个复杂的非常规名字,并把它放在几个目录下,这样增加了用户找到该文件的代价和难度。

2.3.2 防SQL注入攻击

SQL注入攻击就是向服务器提交一段事先准备好的数据,拼凑出攻击者想要的SQL语句,以改变程序预期的执行结果。其本质就是攻击者利用构造的畸形SQL语句,通过开放的Web服务器输入端口,把其发送到数据库去执行。

(1)SQL注入攻击过程。

如图6所示,首先在有参数传入的地方添加诸如“or 1=1”、“’”等一些特殊字符,通过浏览器返回的错误信息来判断是否存在SQL注入点,若存在则对SQL注入点进行验证,然后判断存在注入点的数据库是否支持多语句查询、子查询、数据库用户账号、数据库用户权限等。若注入的数据库用户为SA,则可以直接添加管理员账号、开放远程终端服务等,否则只能通过字段内容的猜测来破解用户和密码。

图6 SQL注入攻击实现过程

(2)SQL注入攻击防范模型。

本系统在前人提出的检测/防御/备案模型的基础上进行优化,如图7所示。对于用户提交的信息,系统在客户端不做处理,而在服务器端未提交处理之前进行检测。

服务器获得用户提交的IP后,首先在攻击备案数据库中查找是否存在该IP地址记录,若存在,则拒绝用户请求,在客户端提示出错,并将相关信息添加到攻击备案数据库中,否则继续进行非法字符检测。将用户提交的字符串与非法字符库中的字符进行比较,若存在则在客户端提示出错,并发送短信通知系统管理员进行处理,否则处理提交用户信息并将结果以Web页面的形式返回给客户端。

将所有代码存放在injection.asp文件中,只在需要防范的页面中包含该文件即可,使用起来十分便利。

图7 优化的检测/防御/备案模型

本系统采用ASP+IIS+SQL Server 2005的平台架构,为了防止SQL注入攻击,对系统做如下设置:

(1)IIS的设置。

①修改IIS返回的异常信息:把IIS默认的异常提示页面由500~100改为500即可,这样无论程序运行中出现什么错误都将只提示“HTTP 500”错误。

②控制网站的权限分配:一般情况下对于动态网站只授予“纯脚本”权限,静态网站不授予“脚本和可执行”权限,而那些通过网站上传的文件存放的目录,则将权限设为“无”。

③目录最小化权限设置:给静态目录网页和动态目录网页分别设置不同权限,尽量不给写权限。

(2)SQL Server的设置。

①配置数据库权限:严格控制SA级别的权限,不能随意配置。对于用于连接程序和数据库的用户则使用数据库用户角色组成员,只给予数据库读和写权限,遇到需要备份的用户最好另行新建用户。

②加密数据库连接文件。

③改变SQL Server的端口:用防火墙关闭TCP 1433/UDP 1434端口对外的连接,避免被非法利用。

3 结束语

本文介绍计量信息管理系统的设计与实现,重点讨论了系统数据库安全问题。系统中不仅使用了常见的用户标识和鉴别、防火墙技术、基于角色的访问控制、数据加密、审计追踪与入侵检测等技术,还考虑了数据库路径安全,并使用防SQL注入攻击等方法来提高数据库的安全性。该系统已应用于计量事业单位中,有效地提高了工作效率,保证了数据的安全性。然而,系统中还存在一些不完善之处,如用户身份认证中基于口令的身份认证机制中的漏洞、数据库安全模型的优化和防火墙的选择等,需要进一步地提高。

[1]朱建冰.基于ASP_NET的计量管理信息系统[J].计量与测试技术,2011,38(1):15-16.

[2]高少杰.SQL注入攻击防御方法研究[D].昆明:云南大学,2010.

[3]刘海勇.基于B_S模式的Web数据库安全机制应用研究[J].科技情报开发与经济,2007,17(12):229-130.

[4]Lee Inyong,Jeong Soonki,Yeo Sangsoo,et al.A novel method for SQL injection attack detection based on removing SQL query attribute values[J].Mathematical and Computer Modelling,2011,55(1):58-68.

[5]Carles Martinez-Garcia,Guillermo Navarro-Arribas,Joan Borrell.F-uzzy role-based access control[J].Information Processing Letters,2011,111(1):483-487.

[6]Sreelaja N K,Vijayalakshmi Pai G A.Ant colony optimization based approach for efficient packet filtering in firewall[J].Applied Soft Computing,2010,10(4):1222-1236.

[7]Zhang Haixia,Su Purui,Feng Dengguo.A network security analysis model based on the increase in attack ability[J].Journal of Computer Research and Development,2007,44(12):2012-2019.

[8]Dusan Petkovic.Microsoft SQL Server 2005:A Beginner’s Guide[M].McGraw-Hill Osborne Media,2005.

[9]Sylvia Osborn.Database security integration using role-based access control[J].Data and Application Security,2002,73:245-257.

[10]张敏,徐震,冯登国.数据库安全[M].北京:科学出版社,2005.

[11]吕金秋.Web数据库安全技术研究与应用[D].长春:吉林大学,2009.

[12]李华.计量系统中数据库安全审计技术的应用研究[D].北京:北方工业大学,2008.

[13]郜激扬.基于Web服务的数据库注入攻击与防范[J].华北水利水电学院学报,2008,29(1):89-91.

猜你喜欢

数据库安全防火墙加密
构建防控金融风险“防火墙”
一种基于熵的混沌加密小波变换水印算法
管理信息系统中数据库安全实现方法
浅谈高速公路数据库安全审计
高职院校计算机网络安全研究与分析
认证加密的研究进展
在舌尖上筑牢抵御“僵尸肉”的防火墙
高校数据库安全技术教学实践探索
基于ECC加密的电子商务系统
基于格的公钥加密与证书基加密