基于深度学习的数据防伪
2016-11-21 11:38:39
极小验


百度网盘被撞库,网友高呼自己网盘被塞满黄片,搞得满城风雨,数据安全与信息安全又一次成为众人讨论的焦点。面对很多网络攻击,企业似乎并没有办法进行预防,只能够事后做一些补救措施。

究其原因一是因为底层协议并不安全,攻击者能够轻易的修改,比如说篡改用户的UA,Referer等HTTP头信息,利用代理隐藏真实IP等;

二是传统的检测方法只能够检测到明显不符合正常情况的伪造,例如对IP做黑名单,对已知攻击做特征码,排除掉非浏览器的UA和非本站的Referer等。这些做法总是只能对已知攻击进行防御,一旦有新的攻击手段,就没有办法了。

既然意识到上面的问题,也有提出相应的解决方案。就像双方交战一样,既然咱们防守不行,那我们就主动出击,给攻击者设下陷阱,用蜜罐将攻击者引出来。

科普一下:
蜜罐是故意让人攻击的目标,引诱黑客前来攻击。所以攻击者入侵后,你就可以知道他是如何得逞的,随时了解针对服务器发动的最新攻击和漏洞。还可以通过窃听黑客之间的联系,收集黑客所用的种种工具,并且掌握他们的社交网络。

但是随着攻击者对于蜜罐的警惕性渐渐提高以及对于蜜罐的反制手段渐渐出现,攻击者和防御者又陷入了一场拉锯战中。仅仅靠单纯的蜜罐技术实现安全防御也就不那么现实了。

未来攻防将更多偏向数据的伪造与鉴别。

极验为什么要利用深度学习来进行数据防伪

攻击者实施攻击之前都会搜集相关的数据,单项数据都可以轻易被篡改掉,但是不同的数据之间却是存在着关联的。篡改数据之后,这些数据之间的关系也将会改变,我们就可以发现这种关联的不正常性。
用传统方法挖掘这些数据之间的关系需要对于相应原理及协议有着极深的理解同时还需要兼具机器学习的思维习惯所以难以做到,而利用深度学习则只需要对数据之间进行合理的建模,神经网络会基于数据模型自行拟合关系。

我们举个栗子,以UA数据为例

基本原理
UA中包含了JS解析引擎、操作系统及硬件平台信息。当前页面上JS的执行性能与JS解析引擎、操作系统、硬件平台和当前机器负载有关。我们用了三个数据之间相互约束,分别是UA和用JS实现的benchmark1和benchmark2,其中benchmark1进行JS的性能测试,benchmark2主要测试当前页面对于机器的负载。
Ts3Yn4VGO24hIZXM.png-32.7kB
UA中所记录的信息解析引擎、操作系统、硬件信息共同决定了该客户端执行JS的能力与
特性,而我们的性能测试JS与页面本身渲染工作共享了该客户端的能力。

神经网络如何拟合复杂的关系

每个神经元仅将输入按照权重加起来然后做一个简单的非线性变换,整个神经网络是大量神经元的层叠。大量简单的变换叠加,使得整个网络拥有了十分强大的表达能力,可以拟合极为复杂的关系。
网络表达
QQ截图20161028101839.png-186.3kB
QQ截图20161028101903.png-34.4kB
网络结构
QQ截图20161028101913.png-38.9kB
训练方法
每次迭代的输入数据为(b1,b2,ua+,ua-)。
其中ua+和ua-是正确的ua和随机取的UA。
要求网络最小化正确组合的差异,最大化错误组合的差异。

结果
QQ截图20161028101954.png-132.8kB
QQ截图20161028102001.png-156.6kB

我们可以发现找出相互关联的数据并对其关系进行建模然后利用深度学习拟合其中的关系能够增加更多的限制条件,限制条件越多,那么要想伪造数据也就更加不容易了。

随着技术的发展,网络安全的攻和防还将一直持续下去。但是我们可以自己掌握主动权,不断的推进技术,而不是被牵着鼻子走。