国内蓝军概念起源于军事红蓝对抗演练,习惯上将我方正面部队称之为红军,攻击方则为蓝军。国外则正好反过来,用Red team代表攻击方,Blue Team代表防守方。
回到网络安全领域,2016年,《网络安全法》颁布,规定:关键信息基础设施的运营者应“制定网络安全事件应急预案,并定期进行演练”。之后公安部领导了轰轰烈烈的HW行动,深刻影响了整个网络安全行业,各家大公司也纷纷成立自己的红蓝团队, 红蓝对抗演练蔚然成风。
滴滴安全蓝军团队成立于2018年,主要负责全局风险兜底和感控策略的检验。本文介绍了传统攻防演练的一些流程方法和攻击思路,大家一起探讨下。
一、演练的流程方法
1.1 演练方案
正如打仗需要制定作战方案,一场好的攻防对抗也需要制定周密的演练方案
首选明确演练要素
演练对象:明确目标
演练时间:按时完成
演练人员:合理分配
其次制定演练计划
识别可能的攻击路径
制定演练计划
任务拆解
最后确认演练报备
预判可能的风险
有风险操作进行提前报备
1.2 演练策略
总结了几个演练策略
攻彼之短
目标能否被攻破,只取决于最短板,标杆建的再高也没用
重点关注高危服务、敏感端口、第三方框架等作为突破口
力求深度
攻击不求全,而在于精与深
抓住一个点应持续往下渗透,扩大战果
隐匿行踪
制备防查杀武器脚本,隐藏自身IP等
避开反入侵监控,选择攻击时机
1.3 演练技术-信息搜集
知已知比,百战不殆。在不清楚目标的情况下,搜集尽可能多的信息,比如
系统信息:域名、IP段、APP、小程序、开放端口、指纹、中间件、WEB框架、网络架构等
人员组织:邮箱、姓名、手机号、职务、组织架构、办公场所等
上下游: 供应链、合作方、分公司、威胁情报等
信息搜集的方式方法有:
工商备案查询: whois、企查查
Goole hack: 如site:didichuxing.com
子域名采集: subDomain、wydomain、http://phpinfo.me/domain
端口扫描:同网段扫描、旁站扫描
指纹识别:whatsweb、nmap、http://www.yunsee.cn
信息泄露:github、百度网盘
情报系统:微步在线、exploit-db
第三方搜索: soda、fofa、zooeye
1.4 演练技术-边界突破
首先通过对外网站、APP、小程序入手,找到可能的漏洞与突破口。然后是社工钓鱼等特殊手段。
总结分为以下几类:
传统边界渗透:系统漏洞、github泄露等
0day 攻击:CVE列表、最新Poc 等
钓鱼社工: 窃取密码、鱼叉攻击等
近源攻击: 职场尾随、wifi 破解等
1.5 演练技术-横向渗透
横向渗透技术,仅罗列了部分常见的技术:
内网代理: lcx、frp、socks代理、nc
弱口令扫描:ssh、rdp、mysql、mssql、ftp、vnc
常见高风险服务:jenkins、k8s、hadoop yarn、weblogic、zabbix
共享/未授权访问:nfs、rsync、elasticsearch、redis
常用服务:wiki、git、jira、oa、mail
域渗透:IPC$、PTH、PTT、hash dump
提权:MFS、数据库提权、系统漏洞提权、启动项
敏感信息搜集:配置文件、缓存的凭据、数据文件、日志文件
C2远控: cobalt strike、Empire
1.6 演练评判
如何评价演练是否成功,外部安全竞赛等强对抗场景采用了计分制。比如获取了一台服务器、一个员工账号、核心服务的数据权限各分别得多少分。相应的,防守方若发现了入侵行为,溯源到攻击者,也有相应得分。通过得分的多少作为演练质量的指标。
公司内部的红蓝演练其实是合作和对抗并存的关系,不一定非得分个高低。重要的是复盘总结,查漏补缺,共同提升公司的安全水位。
同行们也整理出了一些公司内部红蓝对抗可用的指标,如
攻击成功率:
例如外网渗透能否突破边界
域渗透能否拿下域控
攻击覆盖率:
覆盖多少种攻击的方法
覆盖多少业务线
攻击被发现率:
理论覆盖占实际检测的比例
能否躲避反入侵监控
二、部分专项演练思路
2.1 钓鱼演练
安全技术不断提高,想直接从外网突破还是有困难的,有一定运气的成分。当无计可施的时候,试试钓鱼吧,系统可以做到100%安全,但员工意识确是最大的变数。
滴滴每年都会进行多起钓鱼演练, 严重的时候钓鱼成功率可以达到10%,经过近年的安全教育,员工意识已经有了大幅度提升。
滴滴的钓鱼演练主要分为3类:
新员工钓鱼, 所有新入职员工的第一周,都会收到钓鱼邮件的洗礼。因为数据显示,新员工的安全意识是最薄弱的,如果中招,则会自动发送教育警示邮件。
部门钓鱼演练,一般是联合部门共同发起,发送对象为部门所有员工, 由于发送量比较大,需要提前加好白名单。
红蓝钓鱼, 目的是对抗性质,一般每次需要变换点花样,观察实际的成功率,以检验员工的安全意识、校验反钓鱼检测策略。
2.2 域渗透
实现域内用户、计算机、目录的统一管理的服务器称之为域控。如同堡垒机之于生产网,域控也是办公网的核心服务。不同的是,堡垒机的实现方式多种多样,域控确是唯一选择。也正是如此,国内外的网络安全界才积累出了各种域渗透的奇淫巧技。
初略总结,大体有几个思路吧:
0day漏洞: 域控作为成熟的产品,但还是会有严重的漏洞产生,近年来还是不断有0day爆出,远的有MS14-068,去年有exchange ssrf搞域控方法流出,今年又有CVE-2020-1472出现,每一次0day出现都可以搞一波域控。
域共享: 域共享内有可能存储各类的敏感信息、密码脚本 等等,多找找,兴许会有所发现。
传统系统漏洞:有些域控可能不重视安全或者加固没到位,导致出现管理缺陷、服务混部等通过传统漏洞渗透进服务器系统,
迂回路径:实际域渗透中,采用迂回的案例比较多,通过拿下办公网其他服务器, 导出服务器上的所有密码,然后奇迹般发现这里面也有域控管理员的密码, 顺利登录域控服务器。
2.3 主机agent
内网服务安全性一般都比较薄弱, 因为有限的安全测试资源往往优先投入到外网防御,内网一般是覆盖薄弱的地方,也因此存在着安全盲区。
部分内网服务会大规模部署(比如超过100台),这类公共服务一般以主机agent的形式部署到生产网服务器中,甚至会集成到系统镜像中。如果存在安全问题,即会影响成百上千的服务器,安全风险就会被成百上千倍的放大。
列举几类常见的主机agent场景:
运维监控agent: 开源的如zabbix 和 nagios, 拿zabbix来说,我们知道在后台可以直接下发命令执行任务,拿到后台权限也就等于控制了所有服务器。
运维发布agent:开源的如 saltstack 和 ansible等,saltstack今年也有爆出0day 漏洞, 大点的公司一般有自研的运维系统,但也会有很多问题,主要考虑几点,内置后门,默认口令,认证绕过等等,分析清楚通信过程之后, 可以尝试绕过控制端直接向agent发送命令。
大数据agent:大数据需要采集日志,各种日志类型的不同导致采集agent也是多样而迥异的,采集类型也分实时采集和离线采集。比如mysql采集agent canel、开源的flume、阿里的LogHub、自研agent等。
安全HIDS: HIDS作为主机安全agant,承担着搜集信息和监控主机行为的重任。今年HW集中爆发了一波安全设备的0day , 让我们看到因购买了安全设备而沦陷的例子,未来如果哪家因HIDS被攻破,相信也不是笑话。