最近客户在安装某款国内著名ERP管理软件时,我在现场指导过程发现了一个有意思的问题,虽然该软件是由具有数十年经验,并占有财务软件绝对市场控制权的企业开发的,但是从其安装过程看,还是有很多漏洞的。
其系统安装时需要MS SQLSERVER的SA帐号进行配置,厂商的安装人员想都没想就配置了个空SA密码,经提醒后倒是设了个密码,不过设置完后发现已经在客户端安装的软件都没法用了,又无奈改回了空SA密码...
从其安装过程看,作为C/S架构的软件,其最起码有如下问题:
1. 这种现象说明其在安装过程中没有创建数据库专用管理账户,而是使用了数据库服务器的最高管理员账户。如果数据库服务器存在多个软件系统的数据库,只要破解了连接帐号,就可以通吃了。
2. 该软件客户端的数据库连接字符串应该时记录在客户端的,早期的版本据说配置文件连加密都没做,直接将sa密码敞开口供应。此种做法一方面不安全,另一方面一旦DB管理员修改了SA密码,所有客户机都将无法连接。
其实,改变这种问题的方法很简单,开发难度也不大,只要做好两件事即可:
1. 安装过程中的数据库配置处理
服务器端安装过程中,很容易做到仅使用一次数据库服务器管理员密码,创建号数据库后,自动为数据库设置专用的操作账户,并自动生成账户密码,记录在配置文件中,这样做就可以由软件系统负责数据库连接帐号的安全管理(为了提高安全性,所创建的帐号应禁用帐号的登录功能)。
2. 客户端的数据库连接字符串获取处理
C/S模式的SQL数据库连接必须配置数据库连接字符串,而该字符串包含了数据库名,帐号及密码,目前的做法主要有如下几种:
1)直接明码的方式写入客户端配置文件中,安全性就不说它了。
2)使用SSPI集成认证方式,但对于此方式,客户端自动就具有数据库的操作权

本文讨论了一款ERP软件在安装过程中暴露的数据库安全问题,包括使用SA账号、未创建专用数据库账户以及客户端数据库连接字符串的安全隐患。提出了改进方案,如服务器端配置专用账户、加密通信和动态连接字符串,以提升C/S架构软件的数据库安全性。

177





