在企业安全建设中有一个方向是防数据泄露,其中一块工作就是保障数据库安全,毕竟这里是数据的源头。当然数据库也分不同的种类,不同类型的数据库的防护手段也不一样,下面就以最传统也应用最广泛的MySQL为例。
攻击场景
做MySQL数据安全监控,一定需要考虑到各种攻击场景,这样才能建立一个相对全面的防御体系。
攻击场景中,有两个最典型:
• 外部入侵
• 内部盗取
外部入侵
这里有很多种渠道,还是以WEB举例:
• SQL注入 ——》WEB服务器 ——— 利用注入语句操作数据库 ———》数据库
• 上传SHELL ——》WEB服务器 ——— 通过命令操作数据库 ———》数据库
• 上传SHELL ——》WEB服务器 ——— 直接复制数据库文件 ———》数据库
内部盗取
内部也有很多种渠道,这里举例两个常见场景:
• 有数据库管理权限,直接操作数据库
• 无数据库管理权限,通过内部的业务系统间接操作数据库
防御体系建设
- 数据库防火墙
- 功能很多,负载均衡,IP过滤、阻断基于数据库协议的攻击行为等
- https://github.com/Meituan-Dianping/DBProxy
- 流量审计
- 基于MySQL协议的流量抓包审计,实时抓取 MySQLServer 端或 Client 端请求,并格式化输出。输出内容包括访问时间、访问用户、来源 IP、访问 Database、命令耗时、返回数据行数、执行语句等。
- https://github.com/Qihoo360/mysql-sniffer
- 还有一个MYSQL插件类型的审计工具,不太建议
- 对数据库操作审计
- 通过人工的审计内部人员申请执行的SQL语句来发现入侵行为、违规操作等
- 数据库运维平台
- 提供给数据库管理员使用,使管理员无法直接接触数据库服务器
- 规范控制、行为审计
- 数据库敏感数据脱敏处理
- 对一些敏感数做脱敏处理后在流出
- 数据库漏洞扫描
- 针对数据库产品进行定期的漏洞扫描
- 主要是新漏洞和弱口令
- 溯源-数据埋点
- 在特定的位置插入特定的数据,当出现数据泄露的时候,利用溯源平台可以进行反向查询。
- 数据地图平台
- 提供给应急人员用的,可以查询企业的库、表等
参考
《企业安全建设入门:基于开源软件》