网络攻防演练之企业蓝队建设指南

  • 网络攻防演练之企业蓝队建设指南已关闭评论
  • 5 views
  • A+
所属分类:安全文章

第一章 概述

背景

网络实战攻防演习是当前国家、重要机关、企业组织用来检验网络安全防御能力的重要手段之一,是对当下关键信息系统基础设施网络安全保护工作的重要组成部分。网络攻防实战演习通常是以实际运行的信息系统为攻击目标,通过在一定规则限定下的实战攻防对抗,最大限度地模拟真实的网络攻击,并以此来检验目标信息系统的实际安全防护能力和运维保障的有效性

我们讨论安全防御前需要理解的一个前提就是:安全,是一个不断变化、复杂、关联性极强的系统状态。一个应用系统想要安全、持续、平稳的运行于互联网上,都离不开操作系统、数据库、中间件,还包括各种安全、网络设备、DNS服务等在背后支撑,甚至还需要包含运营维护人员的安全因素也需要考虑。并且这仅仅是以应用系统己方作为出发点考量,还有一些公用组件、SDK、或者内网、C段等其他应用系统中存在“不安全”邻居也是需要纳入考量的不稳定因素。但凡这一套环节里面有某一环出现问题,都有可能变成木桶中的那一块短板。

在我们面对攻防演练的活动前,不可轻视以上环节中任何一个节点的安全防护工作。还有一点需要着重关注的就是人员的安全意识教育工作,在实际的攻防演练活动中,往往内部人员是最大且最容易出现的突破口。结合以往经历不难发现,每次都出现了使用以社会工程学为基础的网络钓鱼行为,比如邮件钓鱼、水坑攻击、捕鲸攻击,更有伪造WIFI热点、行贿内部人员、BADUSB等手段,层出不穷。那么面对如此繁多、复杂的攻击手段,我们作为防守方如何应对也是我们撰写本文的目的之一,以供大家参考。

我们通过本文提出一些建议,推荐企业在网络攻防实战演习过程中,以企业防守方蓝队角色为中心视角指导如何筹建企业蓝队以及在活动演习前的准备阶段、实战阶段和总结阶段分别给出一些建议,默认蓝队为防守方、红队为攻击方。

第二章 战前准备阶段

2.1. 组织架构

企业蓝队的组建需要企业管理层自顶向下进行推进,由企业主管安全的领导负责组建团队。团队的建设离不开跨中心、跨部门多方协调资源,所以必须选择一名懂专业、善沟通、权威性强的角色来牵头。通常,在筹备网络攻防演习活动前需要成立包括蓝队指挥中心、实时监测小组、快速反应小组、应急保障小组等几个部分。

网络攻防演练之企业蓝队建设指南

图1 蓝队工作组

蓝队指挥中心:由企业管理层组织并任命专人负责领导,主要负责组织、统筹整个演习活动中蓝队防守方的人员培训教育、统一调度工作、建立沟通机制,以及对演习活动中各类突发事件进行决策。

实时监测小组:由企业运维人员组成,通过7*24小时实时监控流量、日志平台等工具,及时发现并报告可以的攻击行为,对攻击IP进行封堵或采取限制策略。

快速反应小组:由企业安全人员组成,负责辅助实时监控小组对上报攻击事件进行分析,研判攻击行为的真实性与威胁程度,发现业务系统潜在风险点,及时提出安全处置建议。

应急保障小组:由企业安全人员和业务系统人员组成,应对各类演习活动中的突发事件、影响业务系统正常运行的各类事件,进行及时处置和恢复。

有同学对快速反应小组和实时监测小组的分工不是特别理解。这里简单阐述一下,实时监测偏向日常运维检测的内容,重点针对系统资源状态、日志类进行过监控,发现并初步分析潜在风险,这部分的成员能力要求不需要特别的高。相对于快速反应小组,着力点在针对可疑攻击事件做进一步研判,以专业的角度分析日志判断是一个攻击行为还是系统误报,实现根据攻击事件来细化防护规则又能保障业务正常运行的目的。我们不能总是依靠“封IP”这种古板的招数以不变应万变,长此以往可能会影响业务系统的运行,也不利于用户的使用体验。

2.2. 资产梳理

在网络攻防实战演习中,在成立蓝队工作小组后指挥中心应统一进行企业的资产梳理工作,主要分为业务系统资产、设备资产、外包或第三方服务资产甚至还要包含历史遗留资产(泛指边缘化、访问量极少的、陈旧过时缺少维护的系统,例如旧服务接口、历史版本的APP等)。同时还要提前准备IT网络拓扑图、逻辑结构图、系统调用关系、应急响应计划、业务连续性计划等。

业务系统资产的梳理工作主要针对对外提供服务的业务系统,通过企业对外提供服务业务系统摸排清点工作,蓝队工作组需要对现有各类Web、App、小程序等各类业务系统进行登记备案,明确各业务系统的服务器类型及版本、业务系统功能、域名、IP地址、服务端口、开发框架、中间件类型及版本号、服务器部署位置、业务系统责任人联系信息、运营维护人员联系信息,以及业务系统间的关联性。

业务系统资产登记表      
业务系统名称: 业务系统名称 责任人: 联系方式
业务系统类型: Web/APP... 维护人员:  
服务器类型: Win/Linux 版本号    
域名/IP地址:      
服务端口:      
中间件、版本:      
       
系统部署位置:      
开发框架:      
数据库:      
       

设备资产梳理目标是在企业IT运维人员的配合下,对企业所有IT资产进行清点,梳理所有服务器、网络设备、WIFI接入点、安全设备等进行记录。

记录设备的名称、授权书期限、设备厂商联系方式、运维管理人员、责任人、系统版本、特征库(规则库)、部署区域等信息。

设备资产登记表      
设备名称:   责任人:  
IP地址:   维护人员:  
设备版本号:   厂商联系方式:  
特征库版本:      
授权有效期:      
部署位置:      
       

外包资产的梳理重点在于涵盖业务系统设计、开发、实施运维的各个阶段。对外包业务资产进行有效清点,登记系统名称、类型(接口、服务、app等)、在网络攻防实战演习准备期间,企业应提前通知第三方合作伙伴演习的开始和截止时间,签署责任相关协议,明确外包联系人员和值班安排。

第三方资产登记表      
系统名称:   责任人:  
系统类型:   维护人员:  
IP/URL地址:   厂商联系方式:  
是否签署责任协议:      
第三方值班人员:      
IP/URL地址:      
部署位置:      

2.3. 风险梳理

网络攻防演习活动中风险梳理是非常重要的步骤,通过全面的风险排查能够有效的降低在演习过程中被红队攻击成功的可能性。

风险梳理工作主要分为基础设施风险、帐号权限梳理、互联网风险排查、人员安全意识风险。

2.3.1 基础设施风险

通过资产梳理阶段进行收集的设备资产清单,对服务器、网络设备、安全设备等检查是否运行正常,安全设备特征库、规则库是否已更新到当前最新版本,授权是否有效。

对所有服务器、安全设备、网络设备执行安全扫描,针对扫描报告中暴露出的高、中危风险,进行修复工作。

2.3.2 帐号权限梳理

通过资产梳理阶段进行收集的业务系统资产登记表、设备资产登记表、第三方资产登记表的记录,审核授权用户仅能访问特定业务目的的系统、设备。禁止共享账号行为,对具有管理权限的帐号应收归各系统责任人统一管理和使用审批。在帐号权限梳理阶段,对所有帐号应重点关注三类情况:弱口令、共享账号、闲置帐号。帐号口令应符合强密码复杂度,杜绝弱口令的出现。

同时,各系统责任人应重新审核帐号管理权限的授予与使用记录,以确保符合最小授权原则。

2.3.3 互联网风险排查

通过资产梳理阶段进行收集的业务系统资产登记表,重点筛查是否存在冗余资产,冗余资产指企业未能正式投入使用,但仍然占用系统资源运行的系统。通常包括旧版本的系统、旧数据库、测试环境等,由于冗余系统缺少人员的管理和维护,导致存在许多潜在安全风险,包括但不限于版本漏洞、弱口令、功能逻辑漏洞等。扫描并修复所有互联网业务系统及服务器的高、中危风险。

通过互联网风险排查,对外开发端口进行登记梳理,对于非业务需要的服务端口进行关闭。另外,对于所有业务系统使用到的API接口等进行重点防护。

2.4. 收敛攻击面

经过资产梳理和风险梳理两个阶段之后,下一步应该根据资产列表和风险梳理结果进行攻击面收敛工作。这里要注意一个问题是要以业务重要程度优先级来进行排序,核心重要系统重点防护,边缘系统做好边界隔离。有条件的团队在时间容许的条件下可以采用威胁建模的方式,分析目标系统可能面临的安全风险。以下列举部分防守方在活动期间减少攻击面的操作,以供参考:

(一)通过与各个业务系统负责人沟通,对于非核心关键业务系统进行关闭;

(二)关闭非必要端口,仅保留核心关键业务服务;

(三)全面梳理企业服务器、软硬件、安全防护设备的系统版本、特征库升级;

(四)关闭暴露在互联网上的业务系统管理后台、各类中间件管理后台和其他各类管理后台登录页面;

(五)关闭不必要的VPN服务或停用帐号;

(六)关闭不必要的WIFI热点,严控非法网络接入;

(七)企业安保人员严格监控人员进出登记,核查准入资格;

...

2.5. 安全教育

有数据统计表明,影响企业网络安全状态的威胁因素其中70% 由企业内部人员引起。对于在网络攻防演练活动前,应对企业各级管理人员、普通员工等安排适当的信息安全意识培训工作,让员工了解到各类不同类型的攻击案例以及社会工程学方面的内容是一项非常重要的工作。类似工牌丢失、密码随处写、私接wifi、法律意识淡薄、习惯使用网上各类破解版软件等问题,都曾引起过多次网络安全事件。促进企业员工识别邮件钓鱼、人员仿冒、捕鲸攻击、战争驾驶、虚假WiFi等常见社会工程学攻击手段的案例,提高人员安全防范意识。在网络攻防演练活动开始前,企业应统一组织全员参加信息安全意识培训工作,并形成常态化的安全教育培训制度。

第三章 实战防护阶段

3.1. 威胁情报

网络攻防演习活动中威胁情报的收集与监控至关重要,需要实时监控小组人员持续监控互联网最新漏洞的披露情况,对比资产清单符合漏洞影响特征的资产进行重点防护和加固。

另外有一部分攻击者会采用0day/Nday漏洞来攻击目标系统,目前业界基于行为启发式或者RSAP技术之外,对于此类问题还没有太显著的解决方案。针对此类行为,防守方应及时与专业厂商取得合作,建立安全威胁通报渠道,参考厂商给出的建议实施安全加固工作。

3.2. 实战监控

网络攻防演习活动中实战监控工作主要由实时监测小组完成。活动中应重点关注核心目标业务系统,同时针对核心业务系统外与之关联的服务,对目标系统的出入流量和日志进行集中式的监控和分析。

全网流量监控:通过合理分配安全监控设备的部署,对企业外部与内部间的所有流量进行监控和分析,对于日志中存在的可疑攻击行为提交至快速反应小组进行研判,如果判定为攻击行为,则针对攻击IP地址进行封禁或采取其他防护措施;

主机流量监控:通过合理部署主机安全防护软件,应对操作系统层面的日志进行统一的集中汇总和监控分析工作;

日志监控:对业务系统日志的实时监控,应对重要系统日志实施独立的日志收集和存储机制,避免日志本地存储导致被攻击者删除情况,重要业务系统可安排专人进行实时监控分析。

在实战演习活动前,应对业务系统重要数据、数据库等进行备份工作,避免在活动中因攻击行为影响业务系统数据的正常运行。

第四章 战后总结阶段

4.1. 活动复盘

网络攻防实战演习活动结束后,应针对活动中暴露出来的问题进行统一的汇总,并在蓝队指挥中心统一组织下,对整个防护过程进行复盘工作,全面分析,总结经验和教训。复盘工作可能给包括资产梳理阶段是否存在漏网之鱼、风险分析阶段是否有遗留风险点、演习活动中各部门沟通渠道是否畅通以及业务系统运行状态是否平稳等各个方面综合评估,另外还要考虑在企业人员安全意识和应急预案的及时处置上是否存在问题。

4.2. 整改落实

对网络攻防实战演习复盘工作暴露出来的不足之处,如管理制度的缺失、技术层面的待优化等问题,企业管理层应积极改善,努力推动相关部门进行整改。完善安全防护措施,优化安全策略的同时提升人员安全防范意识,有效提升企业整体安全防护水平。

第五章 应急响应处置

5.1. 事件分类

网络攻防实战演习活动中,基于一定活动规则下的企业主要面临的网络攻击事件类型可能主要以各类Webshell、远控后门、内网渗透等类型为主。

5.2. 准备工作

首先,需要明确一点的是在网络攻防演习活动开始前,核心重要系统的数据应做好相关备份工作,以防意外发生造成数据损失的不良影响。这里针对网络攻防实战演习活动的特点,简单列举几项常用工具以供参考(排名不分先后):

Webshell查杀:

河马Webshell查杀:https://www.shellpub.com/

深信服EDR:https://edr.sangfor.com.cn/#/service/upload_virus

可疑文件扫描:

VirSCAN:https://www.virscan.org/

可疑文件分析:

火绒剑:https://www.huorong.cn/

腾讯哈勃系统:https://habo.qq.com/

威胁情报社区:

微步在线:https://x.threatbook.cn/

Rootkit查杀:

Chkrootkit:http://www.chkrootkit.org/

RPM check检查:

/rpm -Va > rpm.log

5.3. 排查思路

5.3.1 Windows

网络攻防实战演习活动中的应急响应处置大体上和常规应急处置流程相同,通常演习活动不会造成业务系统的宕机事故,但对于蓝队防守方再说,能够在攻击方攻击行为发起的第一时间识别攻击,及时采取阻断行为,则更能够体现蓝队安全防护能力。

这里简述一下常规Windows系统下应急响应的排查思路:

1. 检查系统帐号安全

(1) 系统是否存在可疑帐号

(2) 检查guest帐号权限

(3) 系统是否存在弱口令

(4) 检查用户登录日志是否异常

2. 检查异常进程和端口

(1) 通过进程PID查看进程文件的位置

netstat -ano

wmic process get name,executablepath,processid|findstr pid

 

3. 检查系统启动项、计划任务、服务

4. 检查系统基础信息

5. 系统版本和补丁情况

6. 常见可疑目录位置:Users、Recent等

7. 本地查杀

(1) 本地安全防护软件查杀

(2) 在线查杀工具交叉使用弥补规则库差异性

8. 系统日志分析

5.3.2 Linux

1. 检查系统帐号安全

(1) /etc/passwd

(2) /etc/shadow

(3) 特权用户(uid==0)

awk -F: '$3==0{print $1}' /etc/passwd

(4) 可远程登录的帐号

awk '/\$1|\$6/{print $1}' /etc/shadow

2. History历史命令

(1) .bash_history文件

3. 端口、进程

(1) netstat -antlp|more

(2) file /proc/$PID/exe

(3) ps aux | grep pid

4. 开机启动项

(1) 在/etc/init.d

5. 计划任务

(1) crontab -l

(2) /var/spool/cron/*

(3) /etc/crontab

(4) /etc/cron.d/*

(5) /etc/cron.daily/*

(6) /etc/cron.hourly/*

(7) /etc/anacrontab

(8) ...

信息源于:freebuf-wiki