1. 弱口令——一个安全隐患
SQL Server(以下简称SS)是一种关系型数据库管理系统,由微软公司开发和维护,广泛应用于中小型企业和个人的数据库管理工作。而在SS这样的数据库系统中,口令是用户鉴别身份的最基本和最重要的手段之一。运用强口令,是我们保证SS数据库系统的安全的一个重要方式。因为对于运用弱口令的SS数据库,攻击者可以借助一些特定工具轻易地从中提取数据,影响企业或个人的信息安全和业务连续性。加强对SS数据库的口令安全,已经变得非常必要。
2. 什么是口令弱口令
2.1 弱口令的定义
弱口令,指口令的熵值比较低,即由于组成口令的字符集较小或字符长度较短,使得该口令容易被破解。在弱口令的情况下,攻击者可以通过暴力破解攻击、字典攻击、社工、恶意软件等多种方式轻易地获取到口令,进而可以登录被攻击方的系统或业务程序,进行非法操作或数据窃取等一系列危害活动。
2.2 弱口令的类型
根据当前应用范围,口令弱口令主要可以分为以下三种类型:
基于字典式的弱口令——攻击者以一些可能使用的口令为模板,生成各个口令的各种组合方式,逐一验证,直到找到正确的口令,实际上就是一种带有暴力攻击思想的破解手段。
基于模式的弱口令——攻击者通过从已有口令中找出规律,寻找下一个合适口令的方式破解口令。
基于智能算法的弱口令——攻击者借助一些具有智能能力的计算机程序,并通过分析目标口令的特征、熵值等技术特征或其他有效信息,对口令的可能组合方式进行高效而跨平台的暴力破解。
3. 如何提高口令安全性
3.1 口令设置原则
设置口令的原则是框架性的,应根据实际环境作出针对性的修改。下面是一些基本原则:
稳定性——口令应该易于记忆且不易变更,才能确保应用的稳定性。通常建议口令至少要保持90天不变更。
熵值——口令的熵值越高,破解难度越大,也越安全。
随机性——口令应该是随机生成的,以较高的概率避免加密散列后出现重复口令而影响安全。
组合方式——口令应该由多种符号、大小写字母、特殊符号等组合而成,确保口令具有更高的安全性。
初始设置——如SS的初始化设置,安全性要求着重考虑配置实例的安全性,因此在初始化设置时,尽量采用与默认值不同的特殊口令,保证实例安全。
记忆性——口令应该简单、易于记忆。太多的特殊符号、数字串等会降低口令的记忆性,从而影响实际安全运用。
3.2 口令安全规范
在设置口令的过程中,我们还需要根据美国国家标准和国际协议对口令的规范进行参考,并应用到实际操作中,以下是常用的口令安全规范:
长度——对于口令,长度是决定安全性的主要因素之一。标准的口令长度应该在8~16位之间。
符号多样性——口令中应包含不能被模拟的各种随机的字符,如不常用的符号,也可以倍增的使用某些字符,比如:AABBCCDD等。
可读性——口令中应包含大小写的字母,以便于口令的记忆和快速输入,密码中不应该出现和账户名相同的单词或短语。
长度变化——口令应该每隔90天或3个月被改变一次,以便于更好的保证口令的安全性。
3.3 加强数据库管理
除了加强口令的安全设置,还可以通过一些数据库管理方式提高数据库系统的安全性,具体包括:
关闭默认账户——修改默认超级管理员密码,在安装SQL Server的过程中,像sa这类默认用户名都有相应的默认的口令,为了避免被恶意入侵,一定要立即修改口令。
加强远程访问控制——关闭SQL Server的远程作业,限制一些重要账户的远程登陆等。
加强加密保护——在交换数据时,应采用加密保护方式,比如:传输层安全性(TLS)等。
启用不要使用本地用户帐户托管服务——如果这个设置选项开启,即使用了LocalSystem账户服务。介绍使用此服务的漏洞是:攻击者可以得到完全的管理员权限,从而可以获得在该服务器上的几乎所有文件和资源。
4. 实践案例
下面将演示一个简单的实践案例,建议读者在本地SQL Server实例上进行尝试。为了控制操作风险,强烈建议大家建立一个新的实验用的数据库。
4.1 环境准备
为了验证SS数据库的口令弱口令问题,我们先要准备好实验环境:
-- 创建测试账户
CREATE LOGIN test_login WITH PASSWORD='123456', CHECK_POLICY=OFF;
GO
4.2 验证案例
我们在SQL Server Management Studio中输入登陆口令验证是否弱口令:
-- 验证弱口令
USE AdventureWorks2017;
GO
EXEC sp_addsrvrolemember 'test_login', 'sysadmin';
GO
我们也可以通过Netsparker等网络扫描工具验证测试账户的口令是否为弱口令。
5. 总结
SQL Server是一种重要的关系型数据库管理系统,采用强口令是保证其系统安全的一个重要手段。常见的口令弱口令主要包括基于字典式、基于模式的、基于智能算法的三种类型。为了提高口令的安全性,应该配置标准的口令设置规则和规范,同时通过相关管理方式加强数据库管理的安全性。最后还演示了如何简单验证测试账户的口令安全性。