安全运维工作中的机器学习应用(1) 老男孩网络安全

    /    2019-09-09

安全运维工作

概述

在整个安全工作中,安全运维是不可或缺的一环,其目的是保证各项安全工作持续有效地运作。除了对外的沟通和业务对接相关工作,大部分安全运维的日常工作相对固定,如漏洞审核、安全产品运维、日志审计和应急响应等工作。

安全工程师除了需要具备一些基础的安全技能,通常还需要具备发现问题的能力和举一反三的能力,比如在漏洞审核是发现一个反射型XSS漏洞,需要思考这个问题是否是通用的问题,通过哪些途径(搜索引擎、业务日志、扫描器脚本等)能发现和挖掘出同类问题,以达到通过问题发现本质。

这些要求和能力所需要的技术,往往也在不断的发展。

技术发展

随着互联网、物联网、大数据和云计算的快速发展,整个IT行业的技术栈都在快速发展,这里我们来简单看一下安全工程师对日志进行安全分析的技术发展史。

早期的业务量不多,技术栈简单,业务复杂度不高,通常日志的量级还不算太大,往往通过简单的命令(awk/sort/cat/find等)或者简单的shell/python/perl脚本,再加上工程师人肉分析来进行处理。比如入侵排查和响应,分析结果和效率往往特别依赖于安全工程师的日志分析能力、经验和Linux操作的熟练度以及脚本的编写使用。

随着互联网的发展,业务量快速增加和技术栈的高速发展,日志越来越多,需要进行日志分析的平台也快速提升,HDFS和ELK(Elasticsearch + Logstash,Kibana)就应运而生。HDFS作为离线分析,安全工程师可以通过简单的Hive SQL完成一些分析和统计工作;ELK一般作为集中日志分析系统,在搜集、展示和查询方面非常灵活,更加简单易用。所以这个时候的日志分析和问题排查,基本上只依赖于安全工程师的日志分析能力和安全经验,而一些hive sql或者es查询语法,学习成本是非常低的。

随着日志量越来越大,一方面日志量越来越大,日志分析的效率需要提高;另一方面很多安全分析的需求也不简单的是一些特征关键字和统计能完成的,可能有些需要依赖于前面的行为等,这时候安全工程师就需要新的工具来进行支撑。

面临的问题

当下,安全运维工作有两个重要指标:效果和效率。

前面我们提到安全运维工程师需要进行安全分析,随着现在业务的快速发展和技术栈复杂度的提升,工程师每天面对的是海量的数据,很多时候的工作可能都是大海捞针,工程师面对海量的日志数据,如何快速地定位问题,以及如何挖掘出更多的安全风险都是急需解决的问题。

1、安全工程师在运维安全产品的时候,需要通过自身的能力来提升一些安全产品的效果,如降低WAF的漏报情况,安全运维人员或多或少都做过以下一些工作:

比较简单的做法可能就是不停的搜集各种攻击的Payload,进行攻击测试;

2、除了搜集Payload外,深入一点的做法一般是通过梳理关键字/特征从ES或者HDFS提取疑似攻击日志,进行人工分析;

3、随着大数据平台和威胁情报的发展,再进一步的方式会考虑将已经发现攻击的IP和威胁情报的扫描IP的对应的请求进行梳理,进行二次分析;

4、比较理想的做法是对全量日志进行分析,提取攻击行为日志,根据日志提取特征。

这里我们会发现,随着日志量的越来越大,依赖人肉分析大量数据是不现实的。虽然抽样分析和正则或规则匹配也是一种折中方案,但是会存在一定的遗漏风险。这个时候,我们需要通过一些更优的方案和工具,能够快速高效地从海量数据中发现更多未知的问题,而机器学习很可能就是我们的答案。

 

*本文作者:wangyiyunyidun,转转载须注明来自FreeBuf.COM


(0)

分享至