AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 32142
Accepted
SQLRockstar
SQLRockstar
Asked: 2009-06-27 04:34:33 +0800 CST2009-06-27 04:34:33 +0800 CST 2009-06-27 04:34:33 +0800 CST

默认公共设置

  • 772

有谁知道 sql 2005/8 的默认 PUBLIC 设置存在任何安全风险?

我运行了 sp_helprotect,它列出了 PUBLIC 授权,现在我有一位审计员告诉我,我有安全风险,因为 PUBLIC 可以访问系统信息。在我开始介绍我的案例之前,我想看看是否有人可以提供任何链接或信息,这些链接或信息将详细说明默认设置如何导致安全风险。

作为记录,审计员提到这些设置允许破解密码的能力,因为他们可以查看密码哈希。我无法验证该设置是否允许通过 sys 目录视图查看该信息。

提前致谢

sql-server sql-server-2005 sql-server-2008 security sql
  • 2 2 个回答
  • 823 Views

2 个回答

  • Voted
  1. Best Answer
    Paul Randal
    2009-06-27T06:58:37+08:002009-06-27T06:58:37+08:00

    2000 年以来,公共角色所获得的权限比 2005 年以后要多得多——这可能是审计师问题的根源。用户/模式分离应该解决大多数问题,但您应该创建一个具有最小权限的用户并查看它可以看到什么。你会想尝试:

    master.sys.databases(以及任何其他可能泄露实例中存储内容的信息)master.dbo.syslogins(其中包含密码散列 - sysxlogins on 2000)

    而且您还想更改 master 中的所有 XP,以便公共角色对其中任何一个都没有执行权限。这里有一篇文章和一段代码可以做到这一点。

    请注意,不建议以任何方式更改公共角色本身。

    希望这可以帮助!

    PS 如果您在 syslogins 表中返回 NULL 密码,那是因为登录没有使用 SQL 身份验证。仅使用 Windows 是消除此风险的好方法,但您仍需要为(已禁用)SA 帐户设置密码。

    • 1
  2. user13734
    2009-07-23T04:26:20+08:002009-07-23T04:26:20+08:00

    这是一个 BOL 文章,解释了公共角色如何影响所有用户的元数据可见性:http: //msdn.microsoft.com/en-us/library/ms187113 (SQL.90).aspx

    有些东西通常需要对每个人都可见,否则事情会中断(sys.databases 就是示例之一,即使它没有在本文中列出 - 由于历史原因,每个人都可以检索服务器上所有数据库的列表,但是您当然可以撤销此权限)。当您开始撤销对某些元数据的公共访问时,事情往往会变得有趣。

    给你举个例子:如果你撤销从 sys.databases 中选择的公共权限,事情就会大受打击。正确的方法是从公共撤销查看任何数据库 - 然后 sys.databases 将被“过滤”,您将只能看到您有权访问的数据库。但它并没有给您任何真正的安全性,因为任何人仍然可以通过执行 SELECT DB_NAME(X) 并为 X 提供任意值(这是一个已知的漏洞)来枚举所有数据库。

    而在密码方面,在SQL2005和SQL 2008的默认配置下,通过public角色只能通过sys.syslogins看到两个登录名:yourself和sa。而且您不会看到任何一个的密码哈希。因此,以这种方式获取用于破解的哈希不是一种选择。无论如何破解这些哈希都需要蛮力方法,因此它仅适用于弱密码或字典密码。

    我对审计师的经验是,他们倾向于对公共权限等小事感到困惑,但却错过了大事。YMMV。

    高温高压

    • 1

相关问题

  • 保护新的 Ubuntu 服务器 [关闭]

  • Vanilla Powershell 是否足以成为 Windows 和 DB 服务器管理员的语言?

  • 在 SQL Server 中,何时应将 PRIMARY Data FileGroup 拆分为辅助数据文件?

  • 如何从 SQL Server 2008 中的备份中排除索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve