应用异常监控

数据库异常监控

在SQL注入的探测阶段,或者报错注入的攻击阶段,通常会在数据库产生大量的异常。因此,通过监控异常可以有效的发现的SQL注入攻击。目前我们仅支持 MySQL 数据库服务器,具体支持的异常类型如下:

错误编号报警样例
1045Access denied for user 'bae'@'10.10.1.1'
1060Duplicate column name '5.5.60-0ubuntu0.14.04.1'
1062Duplicate entry '::root@localhost::1' for key 'group_key'
1064You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') from mysql.user' at line 1
1105XPATH syntax error: '~root@localhost~'
1367Illegal non geometric 'user()' value found during parsing
1690DOUBLE value is out of range in 'exp(~((select 'root@localhost' from dual)))'

更多异常编号,请参考 B.3 Server Error Message Reference 文档里的说明。

FAQ

1. Unable to derive error code from SQL exceptions 错误

当MySQL服务器与JDBC驱动不兼容,我们将无法从异常消息里提取SQL错误代码,并打印这个错误。比如 JDBC 5.1.46 + MySQL 5.5 就会出现这个问题,可以考虑升级JDBC驱动到对应的版本来解决。

这个错误会让数据库异常监控失效。