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 / 问题 / 17038
In Process
davidmytton
davidmytton
Asked: 2009-06-02 10:03:10 +0800 CST2009-06-02 10:03:10 +0800 CST 2009-06-02 10:03:10 +0800 CST

检测数据库入侵的最佳策略是什么?

  • 772

文件系统入侵可以使用诸如 Snort 之类的工具进行检测,但更难检测对数据库的入侵,例如删除行、修改表等。监控这一点以检测数据库中不需要的更改的最佳方法是什么?

我正在使用 MySQL,所以任何与数据库无关的东西都应该理想地针对 MySQL。

mysql security database intrusion-detection
  • 8 8 个回答
  • 739 Views

8 个回答

  • Voted
  1. sucuri
    2009-06-03T04:17:30+08:002009-06-03T04:17:30+08:00

    这取决于您如何连接到数据库。如果您使用的是 Web 应用程序,Snort(和其他 NIDS)将能够检测通过 HTTP 发生的 SQL 注入和其他攻击。

    问题是如果您使用 SSL 或加密连接到您的数据库,您的 NIDS 将对流量视而不见。

    这就是为什么日志分析非常重要的原因。您的数据库与您对话的唯一方式是通过日志,许多 DBA 并不熟悉它。我真的不明白为什么每个人都像熟悉的那样接受 Web 日志记录,而忽略了 db 日志记录(我将在另一次咆哮更多)。

    要启用 mysql 日志: http ://www.ossec.net/wiki/index.php/SQL_Logging#MySQL_Logging

    我还使用开源 OSSEC 来监控我的 MySQL 日志,它运行良好。

    • 2
  2. Evan Anderson
    2009-06-02T11:01:43+08:002009-06-02T11:01:43+08:00

    我不使用 MySQL,所以我无法谈论该平台的任何特定功能。

    听起来您想要某种审计跟踪。从一般的 RDBMS 意义上讲,您可能能够使用触发器来获得您正在寻找的一些功能。我认为您不会获得模式修改的审计跟踪,除非 MySQL 将模式表示为表,而这些表又可以在其上放置触发器。

    当然,如果有人获得对数据库的“root”级别访问权限,并且在他们开始对数据进行监视之前解开触发器,那么所有这些触发废话都是没有意义的。到那时,所有赌注都取消了。(......这甚至还没有开始处理某人获得“root”级别访问托管数据库的操作系统......数据库文件的字节级操作,将它们安装在具有安全性的数据库实例上特征“被黑”出来,等等......微笑)

    • 1
  3. Mike Conigliaro
    2009-06-02T11:02:43+08:002009-06-02T11:02:43+08:00

    如果你真的想跟踪你的表的每一个变化,你将不得不做一些疯狂的事情,比如启用 MySQL 查询日志并使用像 Simple Event Correlator 这样的东西来扫描坏东西。但是不要这样做,因为它会降低服务器的性能。

    老实说,您最好的选择是首先通过使用 MySQL 权限来防止不必要的更改。

    • 1
  4. K. Brian Kelley
    2009-06-02T11:53:28+08:002009-06-02T11:53:28+08:00

    Snort 仍然很有帮助。关键是知道您的数据库流量应该来自哪里。如果它来自未经批准的来源,您显然可以在 MySQL 中阻止它。但是,您也可以在 IDS 中设置警报以查看此类内容。

    对于来自授权 IP 地址的攻击,这是一个挑战。关键问题是应该允许连接做什么,不应该做什么?这可以追溯到正确设置权限。如果合法用户从合法 IP 连接并需要 DELETE 权限并且想要恶意,那么在实际修改期间您无能为力。有人提出了审计建议,但这会损害您的绩效。如果用户可以直接访问数据库并进行更改,我不确定您是否有有效的控制。所有数据库平台,不仅仅是 MySQL,都在为此苦苦挣扎。您有一个受信任的用户进行授权更改。你能做的只有这么多。

    • 1
  5. bobwood
    2009-06-02T13:13:44+08:002009-06-02T13:13:44+08:00

    有为此设计的商业产品。我认为我们查看了 DbProtect (www.appsecinc.com) 并实施了大笔资金,但我们最终没有这样做。我也看过 Guardium (www.guardium.com)。两者都声称支持某些版本的 MySQL。

    • 1
  6. gtapscott
    2009-06-02T11:36:10+08:002009-06-02T11:36:10+08:00

    SQL Server 2005 引入了 DDL 触发器,只要有人运行数据定义语言代码(如更改表、添加索引或删除视图),就可以触发这些触发器。

    • 0
  7. Kyrian
    2009-06-02T13:02:23+08:002009-06-02T13:02:23+08:00

    我不相信在 MySQL 中有任何合适的方法可以做到这一点。您应该确保使用某种密钥对所有合法修改应用某种安全校验和,因此如果行数据与校验和不同,您就知道进行了未经授权的修改。

    至于你如何校验和,以及你如何保持密钥的秘密,那就是另一回事了,如果你从这个网站或通过这个网站弄清楚,你可以随时给我发电子邮件(我是新来的,没有设置正确的)。

    实际上,只有异地备份才能帮助您防止删除行,并注意使用 mysqldump 是唯一“官方”支持的方法。

    尽管复制底层(MyISAM)文件在绝大多数情况下都适用于该表类型,但有时它确实会失败,所以我不会单独相信它来完成任何关键任务。

    • 0
  8. David Yu
    2009-06-02T16:46:15+08:002009-06-02T16:46:15+08:00

    我们在 SQL Server 数据库上实现了 DbProtect。这并不太难,它允许一些非常精细的审计策略。然而,正如鲍伍德所说,它并不便宜。

    • 0

相关问题

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • 如何选择 MySQL 数据库引擎

  • 从多个位置保护远程服务器/工具访问的最佳方法是什么?

  • 在 SOHO 环境中实施的最佳 VPN 技术是什么?[关闭]

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

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