金融行业自动化运维安全性与合规性难点的讨论

点击标题下「蓝色微信名」可快速关注

自动化运维已经涵盖到了很多企业的日常工作中,无论从成本,还是效率的层面,都带来了很多有益的提升,但是从另外一个角度,"自动"做的事情,是不是足够准确、足够安全、足够合规,确实值得考量。

技术社群的这篇文章《金融行业自动化运维安全性与合规性难点解‍读(同行共识总结)》结合几位专家的讨论,给出了金融行业自动化运维安全性与合规性的一些观点,值得我们借鉴。

‍随着金融科技的快速发展,金融机构面临着日益增长的数据处理需求和复杂多变的市场环境。自动化运维技术的应用,不仅可以提高运维效率,降低成本,还能增强系统的稳定性和安全性,从而更好地应对金融行业的挑战。

(1)自动化运维能够显著提升金融系统的稳定性。金融机构的业务系统需要24小时不间断运行,任何故障都可能带来巨大的经济损失和信誉风险。通过自动化监控和故障检测,可以及时发现并处理系统问题,减少系统停机时间,确保业务连续性。

(2)自动化运维有助于降低运维成本。传统的人工运维方式不仅效率低下,而且成本高昂。自动化运维工具可以替代大量的重复性工作,减少对人工的依赖,从而降低人力成本。同时,自动化运维还能通过优化资源配置,减少不必要的资源浪费,进一步提高成本效益。

(3)自动化运维能够提高金融系统的安全性。金融行业面临着严峻的安全威胁,如网络攻击、数据泄露等。自动化运维系统可以实时监控网络安全状况,及时发现并响应安全事件,从而提高系统的防御能力。此外,自动化运维还能通过定期的安全扫描和漏洞修复,增强系统的安全性。

(4)自动化运维支持金融创新。随着金融科技的发展,金融机构需要不断推出新的产品和服务以满足市场需求。自动化运维技术可以快速部署和管理新的应用,支持金融创新的快速实施。同时,自动化运维还能通过数据分析和智能决策,为金融创新提供支持。

为了帮助大家更好的在日常工作中落地自动化运维的众多场景, twt社区组织多位在金融行业有丰富自动化运维经验的专家参与线上交流,对金融行业自动化运维场景的实践难点进行深入探讨并进行总结。本文是针对其中“金融行业自动化运维安全性与合规性难点”议题的典型问题解读和同行共识总结。

1、基础设施在自动化运维过程中需要关注哪些安全问题?

观点1:

1.用户权限管控是否合理,是否按最小权限,是否集中的权限配置管理;

2.自动化执行的风险管控,比如:高危命令、可调度的时间范围、执行状态检测、异常脚本中断等;

3.自动化执行涉及与人之间的协同,比如临时性自动化的双岗复核,例行自动化任务在异常时的人工确认等;

4.平台登录的双因素、部署网段等面对网络恶意攻击下的管控;

5.对同时批量执行范围的约束管控。

观点2:

在自动化运维的过程中,通过定期改密及使用具有一定复杂度的密码来避免系统用户被暴力破解。批量管理中,明确操作对象范围,做好分组,防止变更范围扩大引发不必要的误操作。自动化运维中涉及的敏感信息,包括人员账户信息、资产信息、监控信息等,做好数据存储及加密工作,防止信息被窃取,造成内部系统被攻击。自动化运维下发任务前,对任务的验证要充分,对于现网环境中各个主机、数据库等软件兼容做好验证,防止批量执行时产生意外情况,造成业务中断。自动化运维中,各系统之间的请求或数据传输时,必要时进行加解密处理或数据脱敏处理,保证数据安全。在设计一些自动化流程时,要设计环境的校验及异常情况捕获,当不满足条件或执行后超预期的结果时,能终止执行或交互提醒。

观点3:

1.访问控制:只有授权人员可以访问和操作自动化运维系统。例如通过限制访问IP源等。

2.权限控制:自动化平台应该可以通过设置不同的角色来对使用者的权限进行管理。

3.写入保护:对于自动化流程或者工具需要进行写操作的路径,要进行判断,其行为是否与预期一致,方式对目标路径的覆盖写操作,导致系统不可用。

4.审计:自动化运维平台的操作行为都应该可以被审计。

5.等级划分:自动化流程应该进行根据安全的等级划分,对于高安全级别的流程在执行时需要经过审批。

2、金融行业基础设施自动化范围安全如何把关?

观点1:

以自身实践为例,目前我们在推行自动化落地时,主要是实践方法是基于规则+工具+流程。

1.制规则:首先制定规章制度,各方共同遵守,使得自动化的推行有章可循,有理有据。

2.定流程:明确自动化实施流程,各方协作运行,通过流程将价值传递。

2.建工具:建工具的主要目的是将管理思想进行落地,将前期的规则、流程通过工具的形式进行沉淀、落地。

f29e48a0274b58425cc158fd0389aeda.png

观点2:

理论上说,重复性、无人值守的操作步骤在安全性上,自动化的安全性要优于人工操作。如果你担心的是自动化代替手工执行这个任务的上线准入,应该是加强方案评审、设计好自动化的容错机制、异常状况下的信息推送等。如果你担心的是自动化后,会增加一个批量操作主机的总控,则应从平台层面加强网络、脚本或组件的安全性等方面的管控。总之,自动化不仅提高工作效率,还确保操作安全。只要合理规划和严格管理,就能充分利用其优势,实现高效与安全的双赢。

观点3:

这个问题很难一成不变的来看待,在每个不同阶段都有不同的认识。这个问题里提到的更多是一些业务批量自动化合规和操作风险控制的问题。银行的各类业务批量操作处理时间都有不同,和各业务部门或业务属性有关。

一是管理制度明确职责,系统自动化只是替人实现操作,出现问题还是依照制度问责,这也是现在监管关注的操作风险之一。

二是加强操作规范性,系统自动化实现也可以加断点,人工复核确认。

观点4:

在操作范围方面,可以从以下方面考虑,

一是操作发生频率和操作影响范围。于发生频率较高且影响范围有限的基础设施操作,建议使用自动化的方式,例如:云主机的创建、中间件的创建与升级、网络策略的开通、存储资源的分配、HW常见操作等;但是对于发生频率较低的场景,不太建议自动化;

二是操作的影响范围。对于影响范围较大的基础设施操作,不建议使用自动化方式,例如网络设备配置变化,云平台配置变化等;

三是删除类操作。对于删除类操作,建议通过人工方式进行确认后,手工删除,或者人工确认后再自动化批量删除。

从安全管控方面,可以从以下方面考虑:

一是访问控制:只有授权人员可以访问和操作自动化运维系统。例如通过限制访问IP源等。

二是权限控制:自动化平台应该可以通过设置不同的角色来对使用者的权限进行管理。

三是写入保护:对于自动化流程或者工具需要进行写操作的路径,要进行判断,其行为是否与预期一致,方式对目标路径的覆盖写操作,导致系统不可用。

四是审计:自动化运维平台的操作行为都应该可以被审计。

五是等级划分:自动化流程应该进行根据安全的等级划分,对于高安全级别的流程在执行时需要经过审批。

3、自动化任务执行过程中如何进行有效的监控?

观点1:

我认为此问题主要涉及以下两个方面:

1.如何获取任务执行过程中的信息,对过程进行监控?既然是过程中进行监控,那么代表该任务未执行完成,没法通过终态去判断结果是否正确。对于过程中的监控,实践中常用的是埋点技术,比如使用一个通用的埋点方法,在过程代码片段中注入不同的标识,然后将标识插入到后台表中,通过查询后台表能判断出此刻自动化任务执行到哪个环节了。

2.如何保证监控是有效的?日常工作中遇到过此类问题,比如日常运维工作中有N个自动化任务,任务A是监控存储使用情况;任务B是监控网络情况;任务C是监控Oracle数据库运行情况…. 为了判断A B C是否成功,我们还要写个自动化任务M去判断,那么又要如何去判断M是成功的呢,就像俄罗斯套娃一样,死循环了。针对此情况,我们目前采取的是自动 + 手动的方案。梳理出工作中最重要的10余项自动化任务,每日排班轮流手动点检,保证这些自动化任务监控的有效性。

观点2:

自动化任务执行过程中一般会重点关注任务自身的运行情况,其实还有两个方面的内容需要关注。

首先对于自动化任务自身的状态和输出监控,这主要是为了确保自动化任务的执行按既定目标完成任务。这对任务的输出内容有规范性要求,过程日志一般应输出执行时间、当前步骤的主要操作内容说明、使用的主要参数等信息,以便于未来可能会出现手工介入可以获取重要信息。

其次对于另外两方面关注点,一是任务所在终端资源消耗情况的监控,既能观察到自动化任务调起后代理进程的资源消耗情况,又可以监测派生出的子进程运行资源使用情况和进程状态。二是任务所关联业务监控,部分自动化任务是会对上层的关联应用带来关联影响,如交易运行状态的变化和第三方关联机构的响应等。

观点3:

自动化任务涉及面比较广,此处先暂定自动化任务特指定时作业调度的监控。可以考虑以下内容:

1.任务是否正常完成,并且明确返回状态,任务如不成功或状态不明需监控。

2.当任务明确返回状态成功时,还应监控以下内容:

  • 耗时:根据同比、环比、固定阀值,监控任务总步骤或关键子步骤是否有耗时波动明显的现象

  • 多做:同一步骤是否出现多做多次情况

  • 少做:是否漏做一些步骤

3.另外,针对自动化任务的执行结果,也可以做一些与任务关联的应用状态监控,比如:

  • 业务的状态是否正确,像清算、开业状态等

  • 定时任务处理的数据完整性与上下游一致性是否正确

  • 生产文件是否正确

  • 涉及日志是否有报错

  • 性能是否发生变化

观点4:

自动化任务执行过程中需要从多个方面进行监控:

一、是自动化任务涉及的每个任务节点的执行状态是否正常,这个可以通过每个节点的执行输出结果判断;

二、是自动化任务执行的最终结果状态是否正常,通过执行结果接口进行判断;

三、是自动化任务执行过程中相关节点的资源使用情况是否异常,如果有异常的资源使用情况,例如高CPU、内存、IO等,应及时进行告警通知;

四、是自动化任务的每一个执行步骤都应该配置相应的日志输出,通过输出的日志判断执行步骤是否有问题;

五、是可视化。一般而言,自动化任务流程都可以针对每个执行步骤进行可视化的展示,通过可视化的方式可以直观的观察到流程的执行是否正常;

六、是性能监控。对于自动化任务,除了监控其运行是否正常外,还需要对其性能的稳定性进行监控,若重要的自动化任务流程运行过程中,随着时间的推移,性能下降,就要及时排查,防止性能下降对业务造成影响。

4、自动化任务编排过程中需要考虑哪些问题?

观点1:

自动化编排是对多个原子脚本或组件,按一定条件进行编排在一起,形成一个复杂的自动化任务。自动化编排在比较多运维场景中会运用,比如:CD软件发布、定时调度任务、巡检任务、数据采控、rpa、故障自愈、知识管理等。编排过程考虑的问题与实际场景相关,比如在CD软件发布中,编排时通常需要考虑:

1.发布流水线中涉及的发布前预处理、程序分发、数据库脚本执行、发布后技术验证、发布后健康检测等节点的设计;

2.如何实现整个流水线高度自动化;

3.是否具备回滚、健康检查、配置比对等发布可靠性;

4.是否对脚本有效性、超时执行、执行日志等的容错性和可运维性;

5.是否具备制品管理、环境隔离、留痕等安全性;

6.流水线编排简易程度;

7.流水线关联的组件编写灵活性;

8.流水线与公司已经有的平台工程之间的连接;

等等。

观点2:

自动化任务编排是运维自动化场景的一个重要环节,是从任务到任务流的具体实现。任务编排需要考虑自动化任务流中的几个要点:异常处理、并发控制和权限控制。

权限控制不仅是流程的可用权限,哪些人可以使用该流程,也包括流程中包含的任务执行范围、执行可使用用户级别等。具体而言:如应用部署自动化流程中的任务应该是使用应用用户,不应越权为root用户。配置流程关联任务应是管理员具备权限的操作对象,不应跨出职责范围进行操作。

并发控制既包括同时执行任务的设置,也包括同时执行任务数量的设置,以及同时操作的最终对象数量控制。如:大规模的补丁升级应避免一次性全部实施,考虑分批滚动实施,既避免流量突发,又避免升级出现异常的影响范围。

异常处理是最应该关注的,任务的正常中断,报错终止,强制终止都需要做好逻辑设计。既要流程状态与任务状态同步,又要考虑流程的续作、回滚和终止等不同要求。一般是通过更多的操作后检查确认加强任务流的执行准确性。

观点3:

自动化任务编排过程中,需要考虑的问题,认为有以下几个方面,

1.任务原子性:每一个自动化任务的拆分力度需足够小,只做一件原子操作(该操作不可再拆分),以保证任务编排过程中的任务可复用性。

2.任务健壮性:任务编排中需具备重复执行、异常中断/异常继续、权限隔离、健康自测等功能,保证任务运行健壮性。

3.可扩展性:任务编排需具备接口开放能力,可同其他第三方平台实现接口互通,数据共享。以便集成至公司的主要工作平台中。

一般来说,自动化编排是按照一定的逻辑将一组自动化工具或者流程进行组合,在编排的过程中,会存在以下一些注意事项:

一、是清晰的编排逻辑。明确各个任务之间的依赖关系,确保任务按照正确的顺序执行。

二、是并行与串行的结合。需要明确工具或者任务之间应该采用并行还是串行的方式进行,这主要是需要从效率和安全两个维度考虑。

三、是不同工具或者任务之间的参数依赖。参数依赖最好使用变量的方式进行配置,这样当某个步骤的实例发生变化时,不会因为写死代码而导致任务失败。

四、是流程终止能力。对于编排任务,应该能够对在执行中的编排任务进行中止,以便在异常情况下,降低影响范围;

五、是审批能力。任务编排应能够灵活的支持将审批节点放置在编排任务的任意位置,以便适应不同的场景需求。

5、金融行业基础设施对象的自动化运维如何保证合规性?

观点1:

保证合规性,可以从以下几个方面去实践:

1.事前:明确标准 首选,需要明确准入标准,比如安全部门或基建部门需要基于合规要求,明确出公司允许使用的基础设施软件名称及版本,建立准入清单。清单内的才能使用,清单外的一律不允许使用。

2.事中:保障手段 在资源分配时,需要参照准入清单,只分配清单内的软件及版本。比如可通过统一云管平台、容器平台等进行资源自动交付,避免人工干预。

3.事后:审计整改 引入安全HIDS平台,堡垒机等工具,定期检测公司的基础设施运行情况,一旦发现合规范围外的情况,及时进行干预处理,具备审计及快速整改的能力。

观点2:

从合规角度看,可以参考行业或企业制度上对自动化的明确约束,比如:

1.用户权限管控

2.网络权限

3.操作风险控制

4.操作留痕

另一方面,行业或企业制度上有对运维管理流程做一些要求,但人工落实这些工作有难度,或效率低下,为了满足公司这些制度上的合规要求,自动化需要落实相应的平台能力帮助人去落实合规要求。

观点3:

在我看来,一方面金融业一般重要涉及银行、保险、证券、基金、期货等,每个行业各自的监管要求,关于监管对于自动化运维的要求,需要各个行业按照自身行业的具体要求针对性的进行自动化运维系统建设,以便满足监管要求。

另一方面,还有一些通用的要求,可以提升自动化运维的合规性,具体如下,

一是访问控制:只有授权人员可以访问和操作自动化运维系统。例如通过限制访问IP源等 ;

二是权限控制:自动化平台应该可以通过设置不同的角色来对使用者的权限进行管理 ;

三是审计要求:自动化运维平台的操作行为都应该可以被审计。

议题共识综述

从上述各位专家对金融行业自动化运维安全与合规方面的讨论,我们可以知道,要想在建设金融行业自动化运维平台过程中符合安全与合规方面的要求,可以从以下几方面进行 。

1、管理规范:金融行业具体到银行、证券、保险、基金和期货,每个行业由于监管要求的不同,应结合监管要求形成适合本公司的自动化运维管理规范。

2、流程规范:梳理每个自动化运维场景的的流程,并且组织相关人员对流程进行审查,使得每个流程都满足公司管理要求以及相关人员的认可。

3、权限管控:自动化运维平台的权限管理应按照最小操作单元的粒度进行划分,平台应支持通过自定义的方式将最小化的权限点进行整合形成各种角色,通过角色的方式进行权限的管理。

4、操作审计:自动化运维平台的任何操作都应该进行记录,用于对操作行为的监控报警和事后审查。

5、重要操作双人复核:对于一些可能对生产环境核心重要系统造成影响的自动化运维操作应该设置执行时的双人复核。

6、平台登录多因子认证:对于运维自动化平台而言,需要支持至少双因子配合的登录方式。

7、敏感配置信息加密:对于自动化运维平台上因为执行任务所需配置的敏感信息,需要进行加密处理。

8、应急演练:对于金融行业的自动化运维平台而言,还需要定期对重要的自动化操作场景进行手工演练,防止自动化运维平台在故障时影响业务进展。

难点说明,

金融行业由于监管的特殊性,除了行业内垂直条线的监管外,有时候还要满足其他的一些监管要求,自动化运维平台只是代替人工执行了一些运维操作,但是从规章制度上还是要满足监管要求,因此,在平台建设过程中,要想在安全和合规方面满足监管要求,一是需要在平台建设的前期准备阶段尽可能的收集监管要求,二是平台自身要比较灵活,能够根据监管新的要求进行调整,三是对于平台安全和审计相关的功能要定期抽查。

如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"和"在看",或者直接转发朋友圈,

859a74781a95cc6182dd912ffe7cd6f9.gif

近期更新的文章:

Redis的适用场景

最近碰到的一些问题

InnoDB启动配置的细致讲解

MySQL UNDO的了解

性能测试的一些方法论参考

热文鉴赏:

中国队“自己的”世界杯

你不知道的C罗-Siu庆祝动作

架构设计的15个关键概念

大阪环球影城避坑指南和功略

推荐一篇Oracle RAC Cache Fusion的经典论文

"红警"游戏开源代码带给我们的震撼

文章分类和索引:

公众号1500篇文章分类和索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值