作者:robinbinxie 腾讯CSIG工程师
01
引言
在目前的项目交付中,往往安全产品的部署,安全服务的实施都要“滞后”于整个交付进度。安全总是“最后”一个入场,就如同一道菜(项目)即将出锅,厨子顺手捏了把辣椒面(安全),顺手丢进锅里,再用铲子炒了炒,就出锅了。
这样看,安全产品和服务为整个项目服务和防护的作用人为滞后,在项目进场实施阶段,缺失必要的安全防护,导致出现一段安全真空。这些现状都给整个项目的安全交付带来潜在的风险,或许在当时不能及时发现风险问题,但就算项目交付给用户,那这种风险会随着项目交付转嫁给用户,让用户承担这种潜在风险。这是不允许的,也不应该。那么有没有什么办法,可以避免这种风险,改变这种局面?答案就是,将安全交付前置,在项目交付前,尽可能的将安全产品根据项目情况进行合理的上线,先构建一个初步的安全防护架构,然后再根据项目交付进度和业务上线的进度,进一步加强和完善安全防护措施,这其中再穿插进行有关的安全服务内容,同时通过引入安全运维人员,就可以更好的确保在整个项目交付中安全能够落到实处,安全防护前置有效。
基于此,我们有必要看看如何在交付一个项目过程中分阶段进行合理的安全前置工作,并以此形成一套行之有效的安全交付框架,达到可以分步实施部署安全设备,全程防护和保障应用系统,提升安全交付质量的目的。
02
何为“安全前置”
2.1安全前置的定义
首先,我们需要先明白什么是“安全前置”?我认为“安全前置”就是根据项目情况,尽可能早的将安全产品或服务在项目交付工作开展前期进行部署并发挥相应的安全防护和检测作用。如果把整个项目比喻成一件易碎的瓷器盘子,那么安全前置工作就好比是再整体把这个瓷器盘子包好前给它先固定好的一副木头架子。
2.2安全前置的好处
笔者认为,安全前置的好处主要体现在以下几个方面:
- 能够提前预防和阻断可能对项目有影响的安全威胁,如病毒、木马、后门。
- 有利于安全底层架构的搭建和布局,方便整体安全部署实施落地。
- 有利于更好的在项目应用上线和产品部署阶段更合理的进行安全防护和管控,并能够制定出符合业务需要的安全策略和方法。
03
安全前置的交付框架图
以安全前置思想为核心的交付框架,能够规范和引导后续安全交付工作的顺利展开。因此,设计出一个好的交付框架是十分有必要和急需的。
图一:安全前置交付框架图
以上“安全前置交付框架图”从两个纬度来设计,一个纬度是从项目时间纬度,分为:投标前、入场前、入场中、入场后四个阶段,另一个纬度从产品和服务上线先后顺序,分为前期、中期、后期。通过分阶段部署上线安全产品,使之与业务应用上线相结合,可以科学和全面的进行项目安全防护。
04
安全前置交付阶段说明
“安全前置”的核心是在项目中尽可能早的接入进去,按照“PDCA”的发展趋势来看,最早的介入应该从售前方案开始,同时在方案评审阶段要进行安全要求的评审,防止出现前期调研和沟通不完整引起的安全缺失。
从整个交付过程来看,大致可以分为以下几个阶段:投标前安全接入阶段、入场前安全检测阶段、入场中安全框架搭建阶段、入场后安全应用防护阶段。接下来,分项说明各阶段的主要工作内容。
4.1投标前安全介入阶段
4.1.1投标方案指导
这项工作主要是在售前阶段,协助售前在投标方案中有关安全方面的内容进行指导性的支持。比如客户要求这次项目中某些应用需要通过等保三级,那么在前期技术投标方案中,要包括针对等保三级要求的安全产品或服务。在这里罗列出一些常用的需要,可根据项目实际需求进行选择。
- 等保二级、三级所涉及到的安全产品和服务
- 业务应用上线前的安全渗透测试服务
- App应用的安全检测和加固
- 在交付期间需要有安全运维服务支撑
以上只是一些主要内容,其他安全因素根据项目情况进行补充。
4.1.2标前安全评审
交付架构师参加项目“标前安全评审”工作,一方面可以更加有效的参与到项目中安全部分的内容讨论,了解项目中客户对安全的实际需求,做到“知己知彼”,另一方面可以就投标方案中存在的一些安全控制点、方案中可能存在的产品技术参数、安全产品型号要求等方面的问题进行技术性研判和建议。标前安全评审建议从以下几个方面来展开。
- 标书和投标方案中有关等级保护定级(二级、三级)的科学性和合理性。
- 标书和投标方案中所涉及到的安全产品性能(支持的网络带宽、吞吐量等)技术指标、实现功能等是否合理,是否在后期项目交付中存在不可交付,存在资源不足和功能不达标的风险。
- 针对标书和投标方案中涉及到客户现有拓扑图和项目建设部署架构图进行安全前期的分析,就可能存在的网络安全架构设计问题、设备部署问题、带宽等问题进行前期分析和确认,避免后期在交付过程中存在不满足的风险。
4.2入场前安全检测阶段
4.2.1代码安全审核
在项目中标即将进行项目入场阶段,应该针对自研、第三方以及合作开发方针对本次项目所提供的代码产品进行必要的代码安全和应用和功能安全方面的检测合规。腾讯自研类产品,根据公司代码安全的要求,其代码安全质量已经达到较高的安全质量要求。针对第三方和合作伙伴开发的应用系统,应该在入场前提前与之沟通,按照《代码安全开发规范》要求进行自检,如果在条件允许的前提下,要求第三方和合作伙伴提供《应用代码审计报告》或《渗透测试报告》,作为应用入网前必要的安全检测条件和依据。
4.2.2入网安全检查
对项目中涉及到到硬件设备,入服务器设备,硬件产品设备、物联网终端设备、以及成品化终端设备(如:智能音箱、人脸闸机)都应该进行入网申请检测和上线检查,其目的有如下几点:
- 通过入网申请机制,建立起本项目的资产安全梳理表。为项目后期资产核查和跟踪建立基础信息库。
- 入网核查机制如同设备入网上线前的第一道身份核验和基线核查。能够有效的检测出设备默认账号密码、弱账号弱口令信息、设备对外开放端口信息、设备型号和规格信息等。能够及时的发现和规避一些安全风险问题,一定程度上避免了设备“带病入网”的风险。
设备入网安全检测环节可以说是整个安全交付过程中非常重要的一个环节,在交付过程中应给予充分的重视和执行。
4.3 入场中安全框架搭建
“入场中”阶段是指硬件设备如服务器、安全设备、终端设备陆陆续续从厂商发货,并根据部署要求进行入网部署的阶段。这个阶段安全前置的核心思路是“前置”构建起基本的安全防护框架,从基础防护开始,例如从构建私有云平台的服务器系统安全防护,从网络边界基础防护如防火墙、堡垒机、VPN。
这个阶段因为交付工作刚刚开始,安全基座需要快速搭建起来,不一定需要多完整,只需要把关键安全控制层面搭建和部署起来。具体关键控制项如下:
按照项目交付顺序,私有云平台构建是最先需要完成部署上线的。私有云平台是由大量的物理服务器搭建,一般服务器安装Centos7.x操作系统,同时底层物理服务器及系统部署之后,还需要根据业务需要虚拟生成不同类型的虚拟系统,如CentosLinuxWindows。以往的系统防护大多会等到私有云平台搭建完成,部署在上面的业务应用系统也基本完成,这个时候再去部署安全防护和检测类产品,往往会造成防护滞后、业务上线后防护影响业务稳定性等问题。因此,在这个阶段就应该开始提前介入安全防护,重点针对物理和虚拟机系统进行安全加固和防病毒。
4.3.1云镜--构筑起一道坚实的“系统防火墙”
有什么好的产品能够对操作系统进行安全检测和实时监测防护了?这个问题的答案我觉得非私有化版本的”云镜“莫属。因为它如同一个监控摄像头一样对系统上存在的各类安全问题进行实时监控和预警,比如常见的:系统漏洞补丁、应用系统补丁、攻击行为预警、后门检测、弱口令检测、资产发现等等。
要求每一个系统无论是宿主机还是虚拟机都需要部署云镜客户端,在系统正式使用前,必须要求通过云镜系统的检测,对发现的系统漏洞、应用漏洞、弱口令、不必要的端口等风险因素在正式使用前必须全部修复和加固完成。通过云镜对系统层面的动态安全监测的部署,构筑了一道最重要的“系统防火墙”,通过这道墙,能够有效的检测和防御大部分的攻击行为,同时也建立起针对操作系统实时安全监控的平台。
4.3.2IOA-病毒防护体系的建立
在项目中往往还包括一些Windows系统的物理机和虚拟机,针对这类系统除了部署云镜客户端外,还需要部署终端杀毒软件-IOA(御点),在这里需要考虑针对Windows服务器版本的御点数量,因为我们针对的都是服务器终端,所以在选择时需要注意。御点的作用就是查杀病毒和进行终端管控。这种使用场景多出现在一些第三方提供的Windows系统的应用服务器,通过部署御点进行统一的漏洞修复和病毒查杀。
在整个安全前置框架中,系统安全防护和检测是非常重要的环节,是整个安全的底座和基础。打好这个底座,那么整个安全防护体系成功了一半。
4.3.3防火墙的“矩阵型”访问控制
项目中防火墙的部署位置和防护的方向可以分“南北向”和“东西向”。南北向防护内外网之间的访问,东西向防护内网各区域与区域之间的访问。
南北和东西如同经纬一样,编织出一张网络访问控制大网,这张大网起到了很好的访问隔离作用,在今后根据业务安全级别不同,访问对象不同、以及数据流向不同等因素,通过先建立一张业务访问控制列表,例如:业务A有哪些数据流入,又有哪些数据流出到业务BC,通过今后随着业务系统逐渐上线,可以在当前的网络矩阵中进行增加设置,逐渐丰富和完善这张网络大网,这样就逐渐构建出基于业务访问视角的防火墙访问控制矩阵。
4.3.4堡垒机的部署-管理好远程开发人员的门神
在项目实施的中后期,大量的远程部署和开发工作需要通过外网直接访问到内网的服务器和应用系统上。此时,如果不控制、不防范、不审计,那么业务内网就会如同“赶集市场”一般,任何人、任何时候都可以随心所欲的访问。那么这个时候你需要有一台堡垒机,把它部署在网络边界处,并根据业务需要配置访问账号与内部应用权限,通过堡垒机的访问控制以及操作日志审计功能,如同一尊门神,管控所有授权的进出访问请求,既满足了后期大量的远程开发工作的需要,也有效的防范了非授权访问,并且针对这些授权访问的操作和运行进行全面的审计。
4.3.5VPN设备部署-特殊访问通道
在项目的建设实施阶段,VPN的部署一般是为了满足业务远程接入内网访问,或者进行远程运维访问。然而,在我们的项目安全交付工作中,VPN设备除了承担以上功能外,它还可以作为整个安全设备提供备选支持的“逃生门“,比如堡垒机如果出现故障,那么如果是单台堡垒机部署,一旦故障发生那么远程运维和开发人员就无法正常接入和维护,这个时候可以紧急启用VPN功能,通过前期对VPN访问功能权限进行设置和分配,可以临时接替堡垒机设备进行替代性工作,确保项目交付的连续性。
4.3.6安全运维服务--现场安全的重要保障支撑
如果说安全产品是安全前置的基石,那么现场的安全运维服务就是连接各个基石之间的支架。没有了安全运维这个支架,各个基石就无法很好的协同。如果没有现场安全运维人员,就无法真正的发挥出安全产品的功效。这里我所说的安全运维人员,不是一般只会现场负责进行日常巡检和检查人员,而是指对各安全产品熟悉,同时也会根据客户当前新建业务情况进行安全策略配置、安全设备联动,安全数据态势分析等专业性强的工作,算是安全运维服务人员中的高阶。
具体来说,安全运维服务人员从项目一开始,第一个安全产品上线,第一个安全服务实施就应该在现场出现,他需要具备以下能力:
- 对主流安全产品具备熟练部署和使用的能力
- 具备安全评估、安全漏洞扫描、安全加固和安全渗透测试的能力
- 具备安全应急响应应急和协调处置的能力
- 具备组织协调和沟通能力,能够协调各厂商人员进行支持和处置
- 具备现场针对业务应用系统特点进行WAF、堡垒机、数据库审计等安全产品的数据威胁分析能力
以往我们印象中对于安全运维人员的印象就来说,就是一个能够在现场处理一下客户电脑终端中病毒,定期把IDS信息汇总发报告。但我们在安全交付阶段的安全运维人员需要在懂得本次交付业务的前提下结合客户当前网络和安全现状,设计并推动实施。他应该是一位现场安全业务运维专家。安全运维服务是贯穿整个项目交付前、中、后整个阶段。同时安全运维服务在项目完成交付后,可以根据项目需要采取“无缝”转后期安全运维阶段,确保业务上线正式交付后的安全保障得到不间断的支持。
安全运维但的全面实施和保障是整个安全交付工作中十分重要和关键的要求,需要在前期项目招投标阶段考虑相关人力服务的预算,这个岗位上需要安排有经验和技术能力的安全人员担当。
4.4入场后安全应用防护
入场后主要是指业务应用系统陆续部署上线,项目进入到应用部署和在线开发、测试阶段。这个时候因为应用需要进行在线的外部访问测试,所以需要能够从外网访问,并且也会对外开放一些需要的端口服务。
因此在这个阶段,安全前置的主要操作是构建起针对项目中对外应用系统的WEB安全防护,对上线应用系统进行上线前安全检测和渗透测试。
4.4.1应用上线前安全检查
随着项目中各种开发的业务应用系统的逐步开发完成,业务应用都会有上线测试、正式对外发布的需要。我们不能等着业务上线后再去考虑业务安全问题,而应该伴随着应用开发过程去确保安全。在这里可以采取下面几个步骤:
- 在业务应用服务器上(虚拟机)部署“云镜”客户端,通过云镜去发现应用系统的漏洞,错误配置,对外开放端口以及可能存在的弱口令。
- 在云平台上的安全组进行访问设置,关闭不必要的端口,采取最小原则进行设定。
- 建立域名、对外IP、canme配置申请流程,杜绝未经项目组确认和上线前检查的应用系统私自对外发布。
- 对提出上线的业务应用系统进行上线前检查和渗透测试,发现问题,开发团队及时修复,只有在修复完漏洞后才能上线运行。
- 所有对外的应用都必须采用WAF进行防护,增加网页防篡改功能。
4.4.2 WAF部署防护
对于所有对外访问的业务应用系统无论是测试需要还是正式部署都需要进行WAF防护。同时要求应用系统基于Https协议模式,在WAF上需要通过Https证书模式进行防护,并且对于重要的页面开启防篡改功能。
4.4.3安全运维服务
在这个阶段,安全运维人员主要对新业务上线前进行必要的检查和渗透测试,需要推动上线前的域名、外网IP等申请流程,重点配置和处理WAF设备发现的安全风险问题并及时跟进解决。
05
安全前置的交付体系要素归纳
综上所述,整个安全前置的交付体系大体上可以分为四个阶段,投标前阶段、入场前阶段、入场中阶段、入场后阶段。在各个阶段中都有一些关键点需要重点关注和实施:
图二:安全前置关键点说明
当然,安全前置所需要的各个关键点也未必是一成不变的,具体情况需要根据当前项目和客户实际现状再进行调整和补充,但核心思想不变即”最大可能的介入安全防护和管控“,总结出相应的口诀就是:
安全早介入,项目靠得住
标前早评审,提早提需求
入场前检查,风险减一半
入场中防护,全场hold住
入场后防护,业务有保护
安全运维人,全程都介入
近期热文
Nginx 架构浅析
高性能对象池实现
微信游戏推荐系统大揭秘
让我知道你在看