Shi*_*oni 2 security sql-server
这是我的要求,虽然我知道可以做些什么来实现它,但仍在寻找最佳解决方案。
几天前,有人(一些黑客或一些以前的开发人员)截断了我的重要表,给我的客户带来了不便。我需要更改我的数据库密码、服务器密码和其他应用程序的密码,以避免此类令人讨厌的行为并阻止我的应用程序。
此外,首先我需要知道是否在我的客户之前使用我的数据执行此类活动,以便我可以为他们找到任何解决方法。这是我到现在为止的想法——
这些变通方法似乎很好且可行。但我真的很想知道我还能做些什么来阻止我的数据或在数据丢失时提醒我。我相信还有其他有效且更可行的方法来实现我想要的。如果有人可以帮助我,那就太好了。
这是一个 Web 应用程序,只有经过身份验证的用户才能登录。我的 SQL Server 版本是企业版。
首先,这是一个访问控制问题。消除所有冗余登录,并将所需登录的权限减少到绝对必要的最低限度。不要使用每个拥有数据库访问权限的人共享的“众所周知”登录名,确保每个用户都使用自己的登录名(例如,使用集成身份验证)。
从您的帖子中不清楚该服务器是否直接从 Internet 访问。理想情况下,您应该在您的应用程序和服务器之间设置 VPN,并避免将服务器暴露在互联网上。如果不可能,您需要设置一些防御措施。默认的 SQL Server 端口会受到持续扫描和暴力破解攻击。您应该使用非默认端口,至少可以避免拒绝这些持续的蛮力扫描攻击的开销。接下来,您应该限制可以连接的 Internet 客户端地址。理想情况下,这可以使用防火墙规则在 IP 级别完成。正如 Alex 建议的那样,SQL Server 也可以使用登录触发器来强制执行此操作。如果可能的话,部署两个防火墙规则和登录触发器。
启用 SQL Server 登录审核。宣传它已启用,以便阻止员工尝试入侵系统。
建立备份策略,频繁进行日志备份,并将备份保存在异地。制定恢复计划,并进行恢复演练以验证备份和恢复程序。如果有人突破了您的防御并设法擦除了数据,您应该能够快速恢复它。
让我们不要忘记应用程序本身。你很可能在错误的树上吠叫,擦除可能是通过应用程序本身完成的,通过通常的 SQL 注入攻击。您必须审核应用程序并确保不是这种情况,修复您发现的任何问题。
现在,你处于一个不可能的境地。你丢失了数据,甚至不知道如何。联系专业帮助以帮助您了解数据是如何被删除的。如果你不知道这艘船漏水的地方,很难修补这个洞......
我的 2c 关于“监控数据库,看看有人何时删除了我的数据”的想法是……现在浪费时间。如果不了解数据是如何被删除的,它就会变成一个有趣的游戏,它会定期删除你的数据,只是为了看看你今天的反应有多快......真的,专注于缓解和威慑。检测很好,但它不能成为您的第一道防线。
对于结构性数据库更改(例如,修改表、更改程序等),我的公司DBHistory.com提供了一项服务,可审核所有服务器更改并保留异地记录。不幸的是,目前我无法提供数据更改审计。
归档时间: |
|
查看次数: |
679 次 |
最近记录: |