2. 人为使用漏洞
·过于宽泛的权限授予
在很多系统维护中,数据库管理员并未细致地按照最小授权原则给予数据库用户授权,而是根据最为方便的原则给予了较为宽泛的授权。
例如,一个普通的数据库维护人员被授予了任意表的创建和删除、访问权限,甚至是给予DBA角色;
例如,一个大学管理员在工作中只需要能够更改学生的联系信息,不过他可能会利用过高的数据库更新权限来更改分数。
·口令复杂度不高
弱口令:非默认的数据库口令也是不安全的,通过暴力破解,攻击者不断地输入用户名和密码组合,直到找到可以登录的一组。暴力过程可能是靠猜想,也可能是系统地枚举可能的用户名/密码组合。通常,攻击者会使用自动化程序来加快暴力过程的速度。口令破解的工具有很多,并且通过Google搜索或sectools.org等站点就可以轻易地获得,这样就会连接到Cain、Abel或John the Ripper等流行的工具。
密码曝光:一些公众权限的存储过程、表的调用会导致密码曝光。例如,通过执行公众权限的存储过程msdb.dbo.sp_get_sqlagent_properties可以获得SQL Agent密码;通过查询公众权限的表RTblDBMProps可查看DTS密码;Microsoft SQL Server允许本地用户通过数据转换服务(DTS)包属性对话框获得数据库密码。
例如,Oracle 10.1及早期版本,sysman用户的密码明文存储在emoms.properties中,10.2后,虽加密存储,但密钥也存在该文件中,且用DES算法,很容易解密。
因此建议管理员细致地按照最小授权原则给予数据库用户授权;数据库用户口令长度应大于等于10,并且应该包括字母和数字,应该通过一个口令检验函数来实施这一点。
(责任编辑:)