大数据之安全漫谈
大数据(big data)、数据科学(data science)、数据挖掘(data mining)、机器学习(machine learning)、深度学习(deep learning)、模式识别(pattern recognition)、可视化(visualization)、自然语言处理(natural language processing)、推荐系统(recommendation system)、数据分析(data analysis 相较而言,这个是最不潮最实在的词了)、人工智能(Artificial Intelligence)、NoSQL 是2014年的IT潮词,他们从传统的金融、科研行业席卷到IT的各个角落,甚至是比较边缘的安全行业了,催生了一些诸如安全数据分析师(专家)的岗位,为了在和同事们聊天的过程不显得那么白痴,于是查阅了一些资料,来写写"大数据"在安全行业的应用。
大数据的发展,让我们看到了更好的数据收集、数据处理、数据存储、数据计算、数据检索与数据可视化方案,我们有了hadoop、spark、storm等优秀的计算框架,我们有了thrift、avro、Protocol Buffer数据序列化方案,我们有了flume、scribe、chukwa来完成分布式日志收集,我们有了kafka来完成消息队列调度,我们有了mongoDB、redis、cassandra、neo4j来完成数据的存储,我们有了elasticsearch、sphinx来完成数据检索,我们有了Gephi、D3、Graphviz来完成漂亮的图表。我们甚至有了日志分析领域的三剑客kibana-logstash-elasticsearch套装,然而我们在如此优秀的支撑环境下我们常看到的输出结果是什么呢?TopN攻击报表、攻击可视化地图(单指国内产品)。
我想或许是因为最关键的阶段-数据分析阶段缺失了。缺失或许是因为门槛较高吧,它综合了高等数学、线性代数、概率统计、机器学习等知识,而且必须与计算机基础知识(编程、数据存储)、行业领域知识(例如安全领域知识)与反复的模型修正才能发挥作用,而作用是否显著则取决于所解决问题的重要程度。大家在平衡了付出与收益后,就倾向于选择用代价更小的方法来解决问题(例如基本使用静态攻击签名特征,而很少使用动态行为分析未知攻击),但互联网支付行业的发展,云平台的发展,让我们看到市场还是巨大的,特别是在金融行业(电商、支付、理财)、云服务方面。
应用场景
场景1、仿冒站点的检测
计算网页相似度,包括内容(文本)相似性、结构(DOM)相似性与视觉相似性。 其中文本挖掘(Text Mining)/自然语言处理(Nature Language Process)已经单独成为一个分支了。
场景2、垃圾邮件检测
基于朴素贝叶斯分类算法
场景3、订单欺诈检测
基于神经网络算法来实现交易数据欺诈检测
场景4、攻击源识别
基于CART来区分访问源,然后细化机器行为,扫描器?爬虫?搜索引擎?采集器?CC攻击,产出攻击源信誉库(匿名代理,Tor,扫描器,恶意爬虫,僵尸网络,URL黑库)
区分对待大规模自动化攻击,精细定位人工攻击才能有效的减少冗余数据
场景5、web攻击中的异常请求检测
基于HMM来识别异常请求;基于随机森林来分类区分异常请求
场景6、webshell检测
包括通过计算信息熵来检测文件内容异常、图论来检测访问异常
场景7、恶意网站识别
场景8、广告欺诈检测
场景9、恶意软件(家族)识别
场景10、色情图片/验证码识别
场景11、反网站抓取(盗取网站原创内容)
场景12、流量型攻击检测
CC、精准洪泛攻击(我自己编的术语,意思是对API接口的海量调用、例如短信接口、验证码接口)、垃圾信息注入
产品化道路
1、集成到IDS/IPS/Firewall/WAF/SIEM/审计/风控/取证/AV等单独或综合性的安全产品中
几乎每个安全产商都会用“大数据"、“机器学习”、“安全智能”、“基于业务的动态行为建模”当成卖点,来标明自己是“下一代”安全产品
已有成功案例:Imperva
2、综合到日志分析产品中来支撑安全功能的实现
将web服务器日志、数据库日志、操作系统日志、邮件日志等进行关联分析,实现风险控制、审计管理、监控、SIEM(攻击事件响应与取证)。
已有的成功案例:sumologic、splunk
对安全产品而言,宣传标语和奥运会类似
更快——不要滞后,发现与响应都要快,滞后的安全不是健康预防,甚至不是医生急救,而是法医验尸
更全——不要遗漏, 0day、未公开的漏洞,捕获他们,识别他们,评估他们
更准——不要误伤,预警狼来了运维人员很伤,访问阻塞用户很伤
瓶颈
“因为数据量巨大,会造成性能瓶颈,因此以处理的数据量为指标或宣传点”这是个误区,我们最最缺少的是有效的数据分析模型来发现“未知”。