SA帐户和其他已知帐户名称对安全构成了哪些安全威胁?


10

诸如sa之类的已知帐户名称是否会对数据库造成安全威胁?在SQL Server上使用Windows身份验证时,它是否采用相同的密码策略(如果设置为5次后表示帐户锁定)?


你能改善你的问题吗?1)使标题成为一个问题。2)您可以缩小问题范围吗?您是否对暴力攻击或已知帐户的漏洞感兴趣?您对什么安全领域感兴趣?
Brian Ballsun-Stanton 2011年

我在写过的一本书中对此进行了更多讨论,该书应在大约一个月内出版。我将其分开放置,因为买书并不是答案。 amazon.com/Securing-SQL-Server-Protecting-Attackers/dp/…–
mrdenny

@Mrdenny您能从书中给我们一些有用的报价吗?这可能有助于回答您的问题,并且可以将其作为参考来源是可以接受的:)
Brian Ballsun-Stanton 2011年

@Brian我必须检查合同以查看是否可以这样做。我可能必须换个说法,但我会看看我能做什么。
mrdenny

Answers:


11

诸如sa之类的已知帐户名称是否会对数据库造成安全威胁?

具有已知名称的“上帝”用户帐户通常被认为比具有较低名称的“上帝”用户更糟糕。它使暴力攻击变得容易一些,因为攻击者只需猜测密码,而不必猜测用户名密码。

无论如何,拥有上帝用户也是很危险的。通常,最好让特定用户拥有他们需要执行的特定权限。这种基于特权的安全性比从头开始在环境中进行重新安装要容易地实现。

基本上,与在Linux和类似操作系统下根据root需要禁用和分发管理员权限一样,禁用sa并根据SQL Server的需要向特定用户授予特定的管理员权限sudosa一旦出了什么问题,您始终可以以足够的特权直接连接到计算机,然后重新启用它,而最终您放弃了用户操作(并解决问题)所需的所有权限,就像可以对Linux进行root访问一样如果您可以对该框进行物理访问,则禁用该帐户并不是万能的选择(但是,一旦攻击者可以对您的计算机进行物理访问,或者通过RDC或SSH进行完全的管理访问,则无论如何都无法使用)。

在SQL Server上使用Windows身份验证时,它是否采用相同的密码策略(如果设置为5次后表示帐户锁定)?

使用Windows集成身份验证时,SQL Server无法控制帐户锁定等,它仅将Windows用户映射到SQL用户,并要求OS担保用户已提供了适当的凭据。对于交互式人类用户,这意味着任何锁定都将在用户尝试通过Windows进行身份验证时发生,而不是在用户登录SQL Server时发生。


4

做到这一点并不是一个坏主意,这样默认的admin用户(admin / root / postgres / sa / etc)实际上就不会出现在您的系统中。您始终可以使用其他名称创建特权帐户。

如果没有别的,尝试利用您的系统的人就不会像盲目工作一样容易(例如,SQL注入没有一些交互式shell,也无法从命令中看到直接输出)

至于帐户锁定-如果某人设法设法甚至可以尝试登录到您的计算机,除非您明确允许用户直接登录,否则您就已经输了。就个人而言,我在很大程度上不赞成使用锁定,因为如果某人设法获得您任何用户的姓名,它就会使某人能够创建拒绝服务。(让他们锁定超级用户?不好玩)。

我建议您查看CIS基准测试 ...并非每个数据库都有这些基准测试,但是它们对Oracle,MS SQL,DB2和MySQL都有建议。如果您要执行其他操作,则仍然值得查看他们推荐的一般内容。


4

我没有看到其他人提及此内容,因此我将其添加。使用SQL Server 2005+,如果您的服务器是域的一部分,并且该域具有密码策略,则可以启用对SQL登录名强制执行的密码策略。这包括密码复杂性要求以及在登录时强制更改密码的能力。

请注意,这有时可能会导致某些软件安装程序出现问题,而这些软件安装程序尚未更新以与SQL 2005+一起使用,并使用不安全的密码创建SQL登录名。


3

SQL Server中使用两种身份验证模式:Windows身份验证和混合模式(同时启用Windows身份验证和SQL Server身份验证)

第一种模式不太容易受到暴力攻击,因为攻击者在进行了有限次数的攻击尝试后很可能会遇到登录锁定(帐户锁定策略功能)。如果使用Windows身份验证模式,则每个生产环境都应使用锁定策略功能,因为它使暴力攻击无法进行

当涉及到SQL Server身份验证暴力破解漏洞时,情况就不太理想了。SQL Server身份验证没有允许检测系统何时受到暴力攻击的功能。而且,SQL Server在验证SQL Server身份验证凭据时反应非常快。它可以轻松处理重复,激进,强力的登录尝试,而不会降低可能表明此类攻击的总体性能。这意味着SQL Server身份验证是通过蛮力攻击破解密码的理想目标

而且,蛮力方法随着每个新引入的加密和密码复杂性方法而发展。例如,使用彩虹表(用于对每个可能的字符组合反转密码哈希值的预先计算的表)的攻击者可以轻松快速地破解任何哈希密码

为了保护您的SQL Server免受暴力攻击,应考虑以下事项:

  • 不要使用SQL Server身份验证模式-强制攻击者通过Windows身份验证击中登录锁定
  • 如果您需要使用SQL Server身份验证模式,请禁用或删除SA登录名-这样攻击者就必须猜测并配对用户名和密码

1

启用sa帐户后,可以在SQL Server上执行任何操作。如果攻击者使用此帐户,则他们可以在SQL Server实例(可能还有主机OS)上执行所需的任何操作。


1

SA(以及其他知名帐户名)是黑客可以攻击的知名点。一些Oracle的文档记录不善,因此默认密码并不会总是更改。一旦控制了SQL Server中的SA帐户,就可以控制该服务器在其上运行,并且可以运行任何代码或安装所需的任何内容。在我比较牛仔的日子里,我记得当时不允许(它需要做一些我不打算填写的文件)在还托管SQL Server的Web服务器上安装ActiveX控件-所以我使用xp_cmdshell复制并安装该控件。


1
Oracle SYS的默认密码为change_on_install,您会惊讶地发现没有密码!
Gaius
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.