好的制度可以让协作变得更规范、更高效,但并不能直接解决安全问题。要快速减少安全事故,就必须尽快把安全隐患找出来,赶在其引发事故前完成整改工作,这个过程就是安全评估。

因为 M 公司在此之前几乎没有任何安全基础,所以我需要执行一次全面的安全评估工作,尽可能把各个方向、各个层面和各个环节的安全隐患排查清楚。全面评估虽然听起来很简单,但是执行起来存在很多现实问题。

公司业务那么复杂,我能在短期内梳理清楚有哪些资产吗?

安全资源极其有限,我能在各个方面达标完成评估任务吗?

当前安全事故频发,公司能坚持到我做完这轮全面评估吗?

我对以上3个问题的答案是:不能!不能!不能!

既然都是不能,我该如何努力达成我的工作目标,同时快速提升公司的安全水平呢?

首先,我决定按业务划分优先级。某业务发生安全事故后对公司运营的影响越大,它的优先级就越高,我就越早启动深入的安全评估工作。影响优先级的很可能不是单一因素,比如还包括营收层面、信誉层面、法律层面、监管层面等。这个优先级可以根据安全专家个人经验做一些划分,但更重要的是和高级管理层沟通确认,因为不同公司的商业模式和运营理念可能存在很大区别。

经过初步沟通,我得到了一张大概的业务安全优先级划分表,如表 1.5 所示。

表1.5 业务安全优先级划分表

虽然业务安全优先级高的业务线同时包含了外网服务和内网系统,但是根据短期规划,在当前阶段我需要优先解决的是暴露在外网的重大安全风险,因此我决定暂时搁置财务、人力、产品文档、代码管理等这些内部系统的安全评估。我理解这些系统上存在的安全风险同样可能造成“灾难级”的影响,但是在当前安全资源极其有限的情况下,我必须暂时接受一部分风险。而且这些内部系统在做好基本的网络隔离后,风险可以很大程度地降低。

小贴士

马小陌遇到的是一个对外服务安全事故频发但内部安全事件较少的公司,所以在资源有限的情况下把会对外暴露风险的业务作为优先处理对象。业务安全优先级如何设定,以及先对外还是先防内,主要取决于公司的商业模式、业务特点和安全现状,并没有一个绝对正确的定论。比如互联网公司可能更关注对外服务被攻击的风险,高端制造业可能更关注内部泄密的风险,在线教育行业需要同时关注对外服务被攻击和内部员工盗窃贩卖学生资料的风险。虽然当前安全行业推崇零信任网络安全架构,但是在一个初创安全团队的公司来说根本不具备可行性。因此,读者需要根据所处公司及其行业的实际情况灵活划分优先级。

另一个问题是,在相同优先级的情况下,有的业务是新增,有的业务要变更,有的业务已经在线上运营,我们先评估哪个呢?

我的决定是,优先评估新增业务或功能,这样能把风险遏制在萌芽阶段,并且各方整改影响最小;其次是即将变更的业务或功能,这样可以减少变更操作,业务方的配合成本相对较低;最后才是已在线上运营并且短期内没有变更计划的业务和功能,对它们进行整改需要业务方专门排期。

对于新增和变更的业务,安全评估比较容易开展,因为根据之前已经发布的《安全评估管理规范》,优先级高的业务必须经过安全评审和安全测试才可以上线,对于那些遵守规范的业务线,我只需要等着他们联系我就可以了。但是对于那些已经上线和没遵守规范的业务线,我应该怎么发现呢?一般方法有 3 种。

  • 大部分运维成熟的企业会建立 CMDB(configuration management database,配置管理数据库),所以可以直接从 CMDB 中盘点资产信息。
  • 通过扫描器或资产探测工具检查线上的存活系统和设备。
  • 给各个团队或负责人发邮件,收集他们分管的资产信息。

以上 3 种方法都具有一定的局限性,仅仅使用某一方法很可能会出现无法全面收集信息的问题,因此建议大家根据企业实际情况混合使用,从多个渠道收集信息,并对结果进行交叉验证,最大程度确保数据的准确性。

梳理完资产后,马上就可以启动安全评估工作了!

都需要评估哪些问题呢?

我之前的主要工作是渗透测试,所以发现安全漏洞对我来说轻车熟路,但是我知道,安全评估的范围远远不止这些。为了避免自己有所遗漏,我先拟定了一张“救火”阶段必须关注的检查表(不包含物理层),如表 1.6 所示。

表1.6 全面安全评估检查清单

这份检查清单并不能覆盖所有的风险点,但是它能解决大部分常见问题。安全工作确实需要全面的思考和布局,但是当后院正在“起火”的时候,你要的不是一纸完美的“消防方案”,而是赶紧“救火”,用最短的时间能救多少救多少。

即使我已经尽可能精简了检查清单,但是因为只有我一个安全专家,要全部执行完毕,依然需要很长时间。评估方法无外乎人工评审、自动化扫描和外部采购安全评估能力3种方法,其中人工评审的成本最高(主要指时间),风险挖掘最彻底;自动化的扫描成本最低,但结果很难保证,而外部采购安全评估能力则可以在两者之间灵活调配,但成本相对内部执行更高(主要指金钱)。于是,我从发生事故后对业务的影响程度和当前发生事故概率的紧迫程度两个维度出发,确定了“救火”阶段各个系统安全评估的执行方法,如表 1.7 所示。

表1.7 全面安全评估执行方法

我制定表 1.7 的基本思路如下。

  • 对于可能发生的、对业务影响程度大的事故,尽可能自己人工评审,毕竟自己执行的工作自己最有把握;实在来不及的话,外部采购安全评估能力。
  • 对于可能发生的、紧迫度高的事故,如果影响一般,尽量外部采购安全能力,把自己的时间留给影响大的业务。
  • 对于影响不大、紧迫度也不高的业务,可以交给自动化扫描,即使存在一定的误报和漏报,也可以接受,把时间留给安全团队,做更有价值和意义的工作。