我刚刚将我的 ASP.NET Web 应用程序(VS2010、C#、SQL Server2008)上传到 Win2008Server R2,一切运行正常,但我认为我的数据库受到了攻击!
SQL Server ERRORLOG 不断地写入一些消息,提示“错误登录用户‘sa’,密码不匹配...”,并写入一些 IP 地址,似乎我受到了攻击,我根本不使用‘sa’用户,所以我禁用了‘sa’用户,现在消息已经改变(但攻击仍在继续),现在消息是“错误登录用户‘sa’,错误评估密码...”,错误编号:18456,严重性:14,状态:7。
我应该做什么?现在对我来说安全吗?或者他们可以渗透我的数据库吗?我该怎么办?我已经禁用了用户“sa”,所以安全吗?我无法删除它,因为我收到错误,任何人都可以进入我的数据库吗?请帮帮我如果现在我很安全,我可以禁用 SQL 错误日志吗?怎么做?我应该阻止这些 IP 吗?如果是,我该怎么做?
谢谢
答案1
检查日志以确定客户端的 IP 地址,然后让服务器的防火墙阻止来自攻击者的所有流量。首先执行此操作以减轻任何直接风险。
之后,看看你可以做哪些不同的事情。首先,确保你的数据库只授权来自受信任来源的访问(你可以将其限制为仅限本地主机访问,或者至少是受信任 IP 地址的简短列表吗?)。
除非您的网站广受欢迎,否则这种攻击成为有针对性的攻击的可能性很小。我猜攻击者正在运行一个自动脚本,尝试使用常用用户/密码访问您的数据库,可能会尝试一些常见的漏洞,然后继续攻击。不过,请将其视为警告,并尽快评估整个网站和服务器的安全性和备份程序。
答案2
您可能需要检查您的网站是否容易受到 SQL 注入攻击,因为您的数据库不应该从服务器外部访问。在我看来,这最有可能。
答案3
我首先要问的是:您的数据库服务器是否可以直接通过互联网访问?如果您的答案是“是”,那么您现在就需要解决这个问题。至少您应该用防火墙阻断 SQL 服务器连接,这样随机的互联网用户就无法访问它。
除此之外,很难知道该说些什么。您问过如何检查数据库是否容易受到注入攻击(这是安全编码设计中的一个基本问题),从您关于通过 Visual Studio 和 RDP 连接到数据库的评论来看,您已将其直接连接到 Internet,而没有采取太多保护措施。这些都是基本的东西,我不想听起来很无礼,但您似乎不知道。您可能需要找一个有经验的人来检查您的设置,但我认为您至少需要考虑使用防火墙妥善保护此服务器免受外界攻击,并在将来通过 VPN 连接到它。