【安全课堂】三层关联技术介绍
  

深信服安全产品研发 6234

{{ttag.title}}
本帖最后由 某公司安全产品研发 于 2016-6-12 09:47 编辑

作者简介:
赵伟健男数据库审计产品资深工程师擅长SQL审计与关联分析

一、三层关联是什么

      B/S 架构中,我们把客户浏览器、web服务器、数据库服务器这三个模块划分为三层。
如下图,由于数据库服务器接收的账号IP等皆由WEB服务器发起,所以在数据库服务器中,每条SQL语句的来源是无法追溯到客户浏览器的。
而三层关联,就是在不改变原有架构模式下,通过时间等要素,采集数据进行规律分析,将每个SQL语句绑定到它的实际发起人。即最终达到将SQL语句和URL请求相绑定的目的。

无标题2.png

二、应用场景

数据库管理员的期望是数据永远是安全的,但当入侵或者越权访问等异常情况出现时,追溯就是最后的底线了。三层关联主要应用在事后追溯即分析上面。

例如,管理员A发现某个SQL语句访问了敏感表,通过三层关联信息,他发现了访问者没有权限去访问,那么他就可以采取某种措施修复权限上的漏洞。

或者,数据库审计产品发现了风险SQL语句,通过三层关联就可以发现发起人,发起人所使用的URL具体参数,定位到实际责任人。
无标题3.png

三、 实现原理

(1) 时间点匹配
我们现在实现的时间点抓取,是直接拿到数据包流进网口的时间点,并且精确到了毫秒级别。 其中分别抓取了四个时间:URL 开始时间、SQL 开始时间、SQL 结束时间、URL 结束时间。

通过对服务器的观察可知,SQL语句的产生时间,是在客户点击页面与得到数据的时间点之间。由此,我们可以得到一个模糊的范围,即 某次请求所对应的备选集。

(2) 模板匹配
得到了备选集,还不能精确的找到他们之间的关系。我们还需要通过不断地积累数据,来挖掘URL与SQL之间的某种联系。

我们做了如下的工作:

一、 由程序分析捕获的URL信息,将一个URL与一种操作进行绑定。
二、 通过词法分析,将SQL语句提取成统一模板。
三、 根据时间点的匹配,获取一个URL所可能出现的SQL频繁集。
由于服务器不断的接受URL请求,并填充URL对应的SQL频繁集。当到达所规定的阈值时,就可以获得一个URL操作所对应的SQL模板集合了。

无标题4.png

打赏鼓励作者,期待更多好文!

打赏
暂无人打赏

Mr_菇凉 发表于 2016-6-13 19:22
  
jimes 发表于 2016-11-28 15:47
  
学习了,某公司的设备中,比如WAF,可以实现这个功能吗 ?
发表新帖
热门标签
全部标签>
每日一问
技术盲盒
技术笔记
每周精选
干货满满
技术咨询
新版本体验
信服课堂视频
标准化排查
产品连连看
安装部署配置
功能体验
自助服务平台操作指引
秒懂零信任
GIF动图学习
2023技术争霸赛专题
通用技术
社区帮助指南
技术晨报
安全攻防
每日一记
玩转零信任
天逸直播
华北区交付直播
深信服技术支持平台
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
上网策略
测试报告
日志审计
问题分析处理
流量管理
运维工具
云计算知识
用户认证
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
答题榜单公布
纪元平台
卧龙计划
华北区拉练
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV

本版达人

新手68983...

本周分享达人

零和一网络

本周提问达人