还有一个比较脑洞的事情,原来我们说信息安全这么多年来没有高科技,我的同事说我给你出一个高科技的东西,叫穿越分析,如果我遇到了攻击,能穿越到被攻击之前把攻击者灭掉那么我们就实现了防御,但实际上这件事不靠谱。我们唯一能做到的是,人们在宇宙中找跟地球相似的星星,去观察这个星星怎么产生怎么消亡的给地球作为参考,关于这一点我说这个方式有可能实现,假设存在平行空间。我们认为一个网站有DNA,这么多网站之间有什么区别,先说共同点,可能用到共同的底层中间系统,相同的中间件、相同的业务,不同点是里面的文字不同、模板不同、logo不一样。
如果关注数百万的网站的话,就可能在数百万的网站中发现100个和你极其相似的网站,我认为是你的影子或者是你的兄弟,你们DNA很接近,你们只是内容文字不一样,技术上是不一样的,但内容上有区别,没关系。如果你的100个兄弟中有一个被入侵了,我们分析那个入侵的时候就能找到漏洞,能把漏洞补上,这个时候我们就可以利用从他那儿得到的教训先把漏洞补上,别人再入侵我们就入侵不了了。这是我们的一些想法。
考虑到其他的困扰,长期以来我们都到处布节点、探头,去抓数据,做数据分析,这是基础环节。我们通过实践还是要把这件事情做好。我们如何做的呢?我们期待日志丰富、工具联动、高效维护、持续可用,但实际遇到的问题是日志匮乏,不是日志本身匮乏,大家不愿意把日志献出来。工具要联动,这个事没多难,国内的设备不是一家做的,每家数据的字典不一样,对同一个日志的格式不一样,对同一个漏洞的描述也不一样,一件事可以分三条描述也可以分五条、一条描述,多厂协调很难。不是不能协调,过去五年里我就干过这个事,可以协调但很慢,两边的研发人员对数据字典,协调好了某一方面临着系统升级,这事又白做了,又得从头干,周期非常难,成本很高。硬件故障。设备里有很多硬件要插在里面。
我把我的东西做得足够好,愿意下大本去做,还有一种方法是多平台,从监测端各种监测工具,扫描、防护、加速都是我们自己的,我们集中维护,全是自己的人都放一起,这是现在百度云安全的做法。我们并不是克服了传统的困难,而是绕过了这些困难,没有这些协调的问题。日志也不需要你上传,直接在链路上就把数据抓过来,对中小用户用比较有亲和力的方法把数据拿过来。在分析的过程中,我们也遇到了一些困扰。现在机器学习非常火,尤其以百度为首的百度大脑,开会如果不说这件事实在对不起自己,这是一个方向。攻击情报,后来我们发现机器学习再先进,总有漏报误报的问题,我们只用机器学习和大数据的方法发现异常中的线索,机器比人快,但是不够准,我们用人工分析的方法让你准,标定你的这些问题,得出结论,再把结论反退给规则,这样形成闭环,我们后来认为方法有很多种,没有谁强不强的问题,大家一起用,它其实是个闭环。
我们以分析的角度来看,这里面有一些例子大家可以看一下。我们能够分析查询数据库查询中的这些字段,正常的字段和有攻击的字段,通过机器学习的方法把它分类,这是我们的方法,这样我们能识别出原来这些查询可能有出入。还有一个更简单的是我们读页面的关系,正常的网站页面和页面有超链接,某个页面不连别的别的也不连它可能是问题。我们通过模型对URL里的参数分布、请求频率和请求宽度、404比例进行分析,分析人和机器,一个正常人的访问,他打开网页一定有一半图片一半文字,如果是扫描器的话,大部分都是文字内容,他不会对图片那部分进行读取。一个扫描器访问你的网站的时候会出现页面不存在的问题,正常人在页面上点比例没那么大,我们就是基于这些去找出异常。我们做了这些事,基于我们有很多的数据源和这些算法得出能够在空间中谁准备干这个事,因为他已经动了别人家,谁正在对你干坏事,我们去阻断,总有漏掉的东西,我们溯源出来,找到尚不能防御的攻击。我们过去找到一个攻击过程,我们总有漏掉的时候,但我们可以通过分析得出你怎么进我们的系统,什么时候来链接我。
百度做这件事情的时候做了大量基础性的工作,各个方面都有这些储备,全国有大量的IDC和CDN分布,我们能够在IDC和CDN的节点流量来获得这些数据,这是数据源的来源。我们自身也提供加速和外部防护的服务,现在服务数差不多100万,有非常大的请求,对DDOS压制能力达1T。我们也能在事后对这个事实进行审计,出一些审计报表,也能对后门进行识别。我今天讲的内容是实践,既讲到了对风险的防护,也讲到了我们在营销和对数据的分析,我们能够对用户进行画像。大家都知道百度是弱用户的系统,大家上百度的时候不需要登陆,我们可以通过对访问的分析分析出你是谁,你有什么样的爱好,这也是现在我们安全部门做的一件事。我们分析攻击者的基础上对正常访客也做了一些分类。