如何做攻击溯源自动化

前言

入侵排查中,如何攻击溯源是一个很关键的环节,是一个收尾阶段,如何做到自动化攻击溯源,则更是技术能力的体现点。

在日常处理入侵事件过程中,用户或者客户主要核心关心两个点:

  1. 入侵事件解决了吗?(CPU、内存占用率下降了吗?木马清理干净了吗?业务恢复了吗?)
  2. 黑客是怎么攻击入侵的?(攻击时间轴是什么?)

同时在2B行业中,一份完整的攻击溯源报告交给客户必不可少的。

那么如何在海量的主机、日志和事件报警中寻找蛛丝马迹,去解放人力,去自动化关联分析等,是我们需要去思考的一个方向。当然高级的APT攻击不在此次思考范畴。

攻击溯源导图

0x01 攻击溯源的价值

攻击溯源的价值是什么? 是抓黑客吗?作为企业或者公有云服务商,攻击溯源能带给什么价值?

其实,攻击溯源的主要价值不在于追捕黑客(当然不排查有大规模的黑客组织)。 溯源更大的价值在于:

  • 掌握对手,不局限于已知漏洞,发现未知的0day等新型网络攻击行为;比如在野的;
  • 掌握攻击者的意图、实力等,针对性采取合适的对策;
  • 帮助大客户以及自身梳理和明确下一步安全体系建设的优先级,知道下一步该做什么;
  • 掌握大客户以及自身安全体系的薄弱点,做PDCERF模型,从应急到响应,更好地进行防御。

简要来讲:解决攻击从哪来?到哪去?干了什么?

0x02 主机日志收集

代码语言:javascript
复制
/var/log/auth.log  
/var/log/lastlog    
/var/log/secure    
/var/log/cron      
/var/log/wtmp
/var/log/message

#定时任务
/var/spool/root
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*

/root/.bash_history
/root/.ssh/*
/etc/hosts

将登陆日志、应用日志、服务日志、进程端口网络、恶意命令等收集,海量大量日志可以通过ELK系统做快速匹配分析。

 0x03 自动关联分析

  • 多种云产品日志(waf、云镜、云防火墙、堡垒机等)
  • 裸奔机(云镜)
  • 安全组
  1. 开放端口快速应用匹配定位
  2. 主机应用对应日志扫描匹配
  3. 最新以及历史严重高危漏洞匹配
  • 多维数据加工、聚合、可视化,形成攻击者入侵的链路图

0x04 过程还原

  • 完整攻击链分类
  1. WEB入侵
  2. 勒索病毒
  3. 挖矿木马
  4. 后门权限维持
  5. 主动连接恶意下载源行为
  • 黑客视角还原攻击细节
  • 攻击时间轴还原攻击过程
  • 攻击链路聚合可视化

0x05 黑客画像

  • 关联威胁情报
  • 识别黑客工具、手段、特征等
  • 分析黑客背景、身份、目的等
  1. 网络侧溯源
  • C2
  • Whois、DNS解析记录、域名注册信息、特点组织机构
  • 网络连接数据

难点和问题:

  • 跨国追溯
  • 隐私保护、暗网

2.样本侧溯源

  • 样本采集
  • 代码细节、同源分析
  • 时区分析、语言分析

难点和问题:

  • 攻击者主动规避可以追溯的点
  • 无法验证证据的可信程度

0x06 自动化溯源报告

思考:

威胁分析成熟模型:

level 0:主要依靠自动警报,很少或没有常规数据收集。

level 1:结合威胁情报指标搜索,中等或高水平的常规数据收集。

level 2:遵循他人创建的数据分析程序,高或非常高水平的常规数据收集。

level 3:创建新的数据分析流程,高或非常高水平的常规数据收集。

level 4:自动化大多数可成功分析的业务流程,高或非常高水平的常规数据收集。

要达到level 4,当然这需要一些前提条件:

  1. 拥有完整的网络基础数据,包括netflow、LB/VPC fow log、pcap等精准的基础网络连接数据
  2. 拥有完整的端点基础数据,包括进程、网络、软件安装、账号数据等。
  3. 拥有完整的安全数据,包括主机报警、SOC、防火墙/IDS告警数据,威胁情报告警数据、端点威胁数据等。

对于公有云环境来说,存在以下几个困难:

  1. 突发事件、资产不稳定
  2. 海量日志和大流量,投入产出比不高
  3. 大量的裸奔机

任重而道远