关于云原生靶场场景设计方法研究
2022-01-06余航王帅金华敏
[余航 王帅 金华敏]
1 引言
云原生以快速部署、平滑迁移、稳定运维、弹性可伸缩等技术优势,逐渐成为企业数字化转型的核心,在帮助企业降本增效的同时,释放出巨大的生产能力。但对于大多数企业而言,云原生是一种全新理念,为了充分利用和发挥云原生弹性以及分布式优势,企业的组织架构、基础设施、业务流程、应用开发甚至思想必须进行从上到下的变革[1],因此企业拥抱云原生的过程中必然会面临多方面的挑战。
开发迁移困难:目前企业大量的系统仍然采用传统系统结构,需要重构才能适应云原生的场景,对大规模系统而言,整个重构和迁移过程极为漫长,导致企业系统架构长时间处于混合状态,即传统架构的服务和云原生的服务一起运行。
攻击面剧增:云原生将大型的应用拆分为简单的、松耦合的网格,在具备灵活性的同时,也带来了更多的入口点,直接导致防范的攻击面指数级增长。
安全配置与补丁管理复杂性加大:采用云原生架构导致服务和端口数量暴涨,应用的数据流变得越来越复杂,难以分辨每个微服务的状态,内部互联的微服务,大大增加了安全管理的复杂性。
漏洞检测更为困难:随着容器的大量部署,保持云基础架构组件的可见性会变得越来越困难。容器化应用程序的分布式性质会让我们难以快速发现哪些容器存在漏洞或错误配置。
为了解决以上问题,企业需要以云原生靶场为基础,构建真实的业务场景作为资产上云、安全演练、验证防御效果的实训基地,帮助企业安全快速地完成数字化转型。但目前业界没有良好的云原生靶场场景设计方法,限制了云原生靶场在企业数字化转型过程中作用的发挥。本文对时下典型的云原生应用场景:互联网企业业务场景和在线教育场景进行了调研,探究两个场景常见网络架构、部署方法和漏洞类型,得出云原生靶场场景设计的一般方法,并对这两个云原生应用场景进行了攻防靶场设计实现。
2 场景调研
互联网企业业务场景作为现网上经典的网络架构,对场景调研具备一定的普适性,同时本文引入了疫情时代下发展迅速的在线教育作为非互联网企业业务场景样本,通过分析两个场景之间的异同,总结云原生靶场场景设计的一般方法。
2.1 在线教育场景
在线教育打破了学习上时间和地域的限制,支持课后重温,节省了师资成本、课程制作成本,因此在线教育场景在数字化转型背景下逐渐发展。经过疫情冲击,在线教育发展加速,期间暴露出来的安全问题在非互联网企业数字化转型中具备相当的代表性。
在线教育场景典型结构如图1 所示。学校和培训机构在上云过程中面临着人手不足、部署和运维经验较少、资源投入不持久、内部沟通不协调、领导和员工安全意识较弱等问题,导致线上教育业务系统解耦不足,网络划分简单,安全配置被忽视,甚至出现许多弱口令和密码复用的情况。
图1 在线教育场景典型结构
2.2 互联网企业业务场景
互联网企业IT 资产丰富、网络结构复杂、系统规模大,云原生改造的难度理应比非互联网企业大,但互联网企业对数字资产掌控力强,相关人员和技术储备丰富,使得互联网企业业务场景在短时间内得到很好的云原生改造,形成如图2 所示的典型结构。
图2 互联网企业业务场景典型结构
即便如此,互联网企业业务在云原生改造上也同样面临着安全问题。互联网业务的系统复杂性较高,在云原生化之后,会解耦成大量的云原生组件,再加上动态变化的网络架构,使得安全防御措施难以全面覆盖;互联网业务变化迅速的特点也让安全措施较为滞后,容易出现资产安全配置不完善的风险。
3 场景设计方法
通过探究两个场景常见网络架构、风险类型和部署方法,可以发现在线教育场景结构简单,在IT 资产数量、网络复杂度、系统解耦程度皆不如互联网企业业务场景,两者部署的应用和面临的安全风险也不尽相同,但这其中仍有相同的地方。
网络分层:两个场景为了安全性,都采取了内外网络隔离的方法,将需要外网访问的业务部署至DMZ 区,互联网的流量无法进入第二层以内的网络。
Web 应用为主:产品和服务主要以Web 的方式提供,充分利用了web 轻量、跨平台、联网即用的优点。
采用数字化办公:都使用了OA、CRM 等数字化系统,为办公赋能,一旦数字化系统出现问题,将影响办公效率,甚至导致停滞[2]。
云原生网络和实体网络混杂:在转型云原生之前,企业都购买了一定的实体资产,为了最大化利用现有的IT资产,企业都会将保密性较高的办公网部署到实体网络,将互联网业务以及开发、测试等变动大、成本高的网络迁移到云原生,形成虚实结合的网络结构。
综上所述,云原生靶场场景设计可以从网络架构开始,搭建仿真的场景网络;然后简化非关键业务的配置和缩减规模,仅仿真关键的业务;接着根据场景的资产特点、风险特点和往年同行业的漏洞报告来选择漏洞类型;最后依据员工IT 水平和业务特点,将选好的漏洞进行编排,在场景中设计出攻击路径,最终完成云原生靶场场景设计。
设计流程如图3 所示。
图3 云原生靶场场景设计流程
4 场景设计方法实现步骤
4.1 复现网络架构
在云原生中,api 网关是云原生服务间通信的基础设施层。一方面它为外部的流量访问提供了统一的入口,使得企业可以方便地进行防火墙策略实施;另一方面,可以在网关处对组件进行网络调用、访问控制、安全认证、日志收集、性能分析等,解耦了云原生网络。利用api 网关提供的能力,可以根据上一章的总结在云原生靶场内构建出内外网隔离的网络,并通过网络控制简单构造出网络分区,从而复现出仿真的网络架构。
以互联网企业业务场景为例,在云原生靶场里将场景复现成如图4 的结构。
图4 互联网企业业务场景仿真网络架构
通过API 网关的端口映射功能,能将仿真DMZ 区所开放的服务端口映射至外部来模拟真实DMZ 区的效果,仿真办公网和仿真业务网则通过访问控制功能,模拟真实场景下的网络隔离和访问控制。
4.2 简化部署
靶场场景和现网场景最大的不同,是没有业务稳定性和持续性的压力,因此在进行场景设计时,非关键业务可以简化很多配置,缩减规模来节约成本,如使用单一容器替代容器集群、简化应用功能、分布式应用集中部署等,值得注意的是,在简化的过程中要保持原有的网络结构。
从图5 中可以看出,除了支撑关键业务的业务网进行了仿真外,办公网和DMZ 区都缩减了规模和配置,简化了部署的同时保留了原来的网络结构。
图5 互联网企业业务场景简化部署
4.3 仿真关键业务
设计云原生靶场场景离不开关键业务的仿真。根据企业主营业务,将应用和服务按照RPO 和RTO 两个维度对关键业务的关键程度进行量化,并梳理出支撑关键业务的应用,在场景设计时尽可能仿真关键业务的部署和架构,必要时可将现网容器复用至靶场内。
以在线教育场景为例,在疫情的冲击下,学校和培训组织纷纷关闭了线下业务,依靠云原生快速部署、成本低廉的优点紧急上线在线教育系统,对于学校和培训机构来说,在线教育是开展授课的唯一途径,无论是RPO 还是RTO 都属于关键业务的范畴。另一方面,在线教育系统存储着大量的未成年个人信息以及课件、上课视频等关键信息,一旦信息发生泄漏将带来不可挽回的后果。
4.4 设计攻击路径
良好的攻击路径设计能有效提升安全演练效果,检验靶场用户安全攻防能力。设计攻击路径时需要结合场景业务特点、风险识别、员工IT 水平和往年漏洞统计报告,选择场景下发生概率较大的漏洞类项,再通过合理的漏洞编排,将场景的漏洞进行串联,形成攻击路径。
以在线教育场景和互联网企业业务场景为例,场景大部分产品和服务都以Web 的方式提供,因此应以web 类型的漏洞为主。在具体漏洞选择上,根据2020 年CNCERT/CC 的统计,选择网站后门相关漏洞[3]和办公系统的漏洞,再综合考虑场景业务特点和人员IT 水平,在靶场内设计从外到内的攻击路径。
(1)在线教育场景攻击路径
对于在线教育场景,需要考虑安全意识较弱,IT 开发和运维能力不足的特点,增加错误的安全配置漏洞和开源系统漏洞比例,设计了如下漏洞。
①在线培训系统和在线考试系统直接对外开放,并做了一定的安全防御措施,但因为运维人员部署和运维经验较少,导致培训系统存在Tomcat 弱口令漏洞;
②办公系统使用了开源的应用部署,在系统投入使用后忽视了系统的维护,让办公系统长久未更新。公司使用的旧版本OA 系统存在远程代码执行漏洞;
③由于员工安全意识薄弱,习惯使用相同的密码来登录不同的系统。
结合上述漏洞以及网络拓扑,设计的攻击路径如图6所示。
图6 在线教育场景攻击路径
首先利用培训系统存在的Tomcat 弱口令漏洞,直接部署WAR 包从而获取服务器权限,然后通过系统数据库配置文件找到数据库的用户名密码,使得学生、教师和课件信息被泄露。
其次,利用培训系统和在线考试系统使用同一个数据库,且使用同一个数据库账号的情况,在数据库内获取在线考试系统的管理员口令,导致在线考试系统沦陷。
第三,利用管理员对DMZ 区运维所搭建的DMZ 区和办公网间的持久网络通道,通过获取到的服务器权限进行网络代理,从而进入隔离的办公网。
第四,利用OA 系统远程代码执行漏洞直接获取OA服务器权限,从中找到企业OA 系统全部账户和明文密码。
最后,使用OA 系统的账户密码去尝试登录财务系统,获取机密的财务信息。
至此,在线教育场景靶场DMZ 区和办公网全部沦陷。
(2)互联网企业业务场景攻击路径
互联网企业安全管理较为严格,员工具备一定的安全意识,开发能力强,因此漏洞数量较少。但互联网企业需要管理和维护大量云原生应用和开源组件,安全配置与补丁管理复杂性更大,容易在安全措施覆盖不到的地方出现安全漏洞。最终设计了如下漏洞。
①OA 系统前端代码使用的开源组件中存在反序列化漏洞。
②OA 系统用户历史命令和计划任务中存在系统提权漏洞。
③内部论坛系统存在越权漏洞。
④业务网数据库集群的Zookeeper 存在未授权访问漏洞。
结合上述漏洞以及网络拓扑,设计的攻击路径如图7所示。
图7 互联网企业业务场景攻击路径
首先,由于企业网DMZ 区存在完整的安全防御手段,正面几乎难以突破,可从其开放的服务中找到该企业近期因为远程办公开放的OA 系统URL。
其次,访问OA 系统,在前端代码中发现系统使用了一些开源组件,通过搜索开源组件信息,发现其中一个组件存在反序列化漏洞,最后获取互联网公开的payload,直接写入webshell 远程连接。
第三,进入OA 系统后,在用户历史命令和计划任务里发现系统权限提升的利用点,成功获取到系统root权限。
第四,以OA 服务器为跳板设置代理,远程访问内部论坛系统,并利用服务器内找到的用户信息登录内部论坛,在用户后台进行渗透攻击,最终发现内部论坛存在越权漏洞,获得了业务网运维人员泄露的业务网测试账号的信息。
第五,以OA 服务器为跳板,利用业务网数据库集群中Zookeeper 存在的未授权访问漏洞,获得系统大量敏感信息,甚至包括集群内其他数据库口令,从而导致攻击扩散至整个业务网。
最后,通过修改数据库账号密码,成功进入安全防御最严格的DMA 区,获取里面数据库的数据。
至此,互联网企业业务场景靶场和办公网、业务网和DMZ 区全部沦陷。
5 结语
随着云计算技术的不断发展,云原生已经成为企业数字化转型的共识。但在传统应用迁移至云原生的过程中,存在传统应用重构复杂、服务数量激增、员工不易上手等困难,再加上云原生应用带来的全新安全风险,使得企业云原生之路不是一帆风顺。本文提出的云原生靶场场景设计方法能在节约成本情况下对企业现有业务场景进行最大程度的仿真,帮助企业提升员工在云原生环境下技术水平和攻防水平,尽早排查业务安全隐患。