应用异常监控
数据库异常监控
在SQL注入的探测阶段,或者报错注入的攻击阶段,通常会在数据库产生大量的异常。因此,通过监控异常可以有效的发现的SQL注入攻击。目前我们仅支持 MySQL 数据库服务器,具体支持的异常类型如下:
错误编号 | 报警样例 |
---|---|
1045 | Access denied for user 'bae'@'10.10.1.1' |
1060 | Duplicate column name '5.5.60-0ubuntu0.14.04.1' |
1062 | Duplicate entry '::root@localhost::1' for key 'group_key' |
1064 | You 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 |
1105 | XPATH syntax error: '~root@localhost~' |
1367 | Illegal non geometric 'user()' value found during parsing |
1690 | DOUBLE 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驱动到对应的版本来解决。
这个错误会让数据库异常监控失效。