如何追踪可能的 SQL 注入攻击?

如何追踪可能的 SQL 注入攻击?

我们的一个(相当重要的)WordPress 数据库刚刚莫名其妙地丢失了。幸运的是,我们保留了每晚的备份,所以这不会是世界末日,但我希望避免或至少能够在将来追踪这种情况。

现在,我们仍然不知道数据库是否因为初级开发人员意外地在错误的 mysql 命令行或 phpymadmin 窗口中输入命令而被删除,或者这是否是恶意的 SQL 注入攻击。

显然,我们需要对初级开发人员的 mysql 用户帐户进行更严格的控制,但除此之外,我想知道通过服务器管理检测/防止 sql 注入的最佳实践是什么。

笔记我不想知道如何逐一净化输入-- 我每次都会这样做,但我们编写了大量自定义脚本,而且我们总是会有初级开发人员,他们可能会忘记或出错。至少,我想知道最好的(最简单)方法:

  1. 以标准访问日志格式记录所有GETPOST包含查询字符串或发布数据(其中包含任何 SQL)的请求(我想象使用正则表达式,例如/(drop|delete|truncate|update|insert)/针对所有虚拟主机的单个文件,然后我可以用 grep

  2. drop仅将以、delete、开头的 mysql 命令记录truncate到单个文件中。每个条目至少需要包含时间和 mysql 用户,但如果我可以看到它是通过命令行还是 php 执行的,以及如果是 php,脚本是什么,那就太好了。

谢谢你的帮助!当然,如果有任何使用我忽略的标准日志的基本解决方案,请告诉我。

答案1

查看GreenSQL:http://www.greensql.net/

干杯

答案2

WordPress 网站建议使用mod_security为了这。

答案3

除了 GET 和 POST 之外,您还应该记录 COOKIE、FILE、REQUEST。

答案4

给你几点建议:

-启用 MySQL 日志记录。使用 OSSEC 监控这些日志。 http://www.ossec.net/wiki/SQL_Logging#MySQL_Logging

-启用 Wordpress 日志插件(http://www.ossec.net/main/wpsyslog2)。它将为 Wordpress 内部发生的所有事情生成日志(新帖子、新用户、登录、注销等)。

-分析您的 Apache 日志(我再次推荐 OSSEC)。

通过这 3 条审计跟踪,可以轻松监控和检测此类问题或任何其他类型的攻击。

相关内容