数据库审计在代码安全检查中的应用

2013-02-20 11:18
计算机与网络 2013年2期
关键词:配置文件安全检查攻击者

问题

代码安全是众多安全问题的根源。不安全的代码,往往能够被攻击者利用,从而窃取用户隐私甚至协助攻击者盗取商业机密。正因为如此,越来越多的公司在产品研发阶段引入了代码安全检查。常见的代码安全检查方法包括:人工遍历和静态工具扫描。但无论哪一种,都存在一定的弊端,特别是无法回避一个共同的问题:某些漏洞无法立即验证——前端构造的危险SQL命令是否已经在数据库中执行。

思路

本文以PHP+MySQL注入攻击为例,引入数据库审计功能,增强代码安全检查和漏洞挖掘的效率。在一个典型的Web安全架构中,Web前端都会与后台数据库进行交互。代码审计过程中无法发现的隐蔽问题,在数据库审计日志中往往能够得到体现。

策略

以典型的SQL注入为例,当攻击者访问PHP注入点时,往往会通过篡改参数的方式提交注入命令。如果被攻击页面脚本确实存在漏洞,则非法命令必定会被带入SQL语句的执行过程。因此,在开启数据库审计功能的情况下,完全可以借助数据库审计日志,判断前端SQL注入是否成功。

实现例如典型的PHP+M

ySQL注入点例子。前端Web页面存在SQL注入漏洞,导致攻击者提交的非法表单数据被带入SQL命令。

若要通过数据库审计日志查看SQL命令是否成功执行,还需要在执行该操作前配置MySQL数据库审计功能。方法如下:

编辑MySQL配置文件mysql.ini设置log参数为指定日志文件路径,log=”E:/mysql.log”修改完成后,保存配置文件并重新启动MySQL服务。

再 次 访 问 URL:http://127.0.0.1/sqlinject/sql.php,提交包含非法参数的SQL注入命令。

数分钟后(数据库写日志有缓存机制,不是立即写入),访问文件E:mysql.log。可以清除地看到MySQL数据库确实执行了带有非法参数的SQL命令,由此可以判断sql.php的代码确实存在SQL注入漏洞。

该方法同样适合于其它类型的Web代码安全检查,如:ASP、JSP等;特别是那些前端不显示的。

猜你喜欢
配置文件安全检查攻击者
丹阳市开展汛前安全检查 筑牢汛期安全防线
“执法+审计+专家”宜兴市探索审计式安全检查新模式
从Windows 10中删除所有网络配置文件
用软件处理Windows沙盒配置文件
互不干涉混用Chromium Edge
安全检查表法在轿厢意外移动风险控制中的应用
基于Zookeeper的配置管理中心设计与实现
正面迎接批判
正面迎接批判
从机场的安全检查谈起……