您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 网络/安全 > 正文

基于系统运营体验的安全监控与可观察性能力建设

发表于:2022-06-02 作者:安全牛 来源:安全牛

可观察性(observability)是指通过网络系统的运行数据输出(例如日志、指标和跟踪)来衡量其工作状态的能力。最初,可观察性被定义为一种系统的外部监控属性,在工业控制和生产领域中首次被提出。管理人员通过可观察性来查看系统中隐藏的各种信息数据。比如,水处理厂的操作人员在外部是无法直接知晓水管内的水流状态、流动方式、水质情况的,这时在管道内添加可观察性工具(如流量计、传感器等),并将这些工具连接到仪表板上,操作人员就可以全掌握管道中水流的情况,并及时根据状况进行调整,从而显著提升相关系统的运行可靠性。

 

随着现代网络基础设施的复杂性不断增加,各种故障隐患变得更难以查明,提升网络系统的可观察性对于安全防护的重要性也愈发凸显。它的价值可以体现在以下方面:

 

1、帮助安全团队规划和制定网络安全防护流程;

2、帮助运维人员提前发现并解决网络安全问题;

3、提高对网络安全事件检测和响应的效率和准确性;

4、提升网络设备系统的使用周期和运行稳定性。

 

可观察性与传统安全监控的区别

 

在“可观察性”一词出现之前,我们常常使用“监控”这一概念,其实这二者之间存在很大区别。

 

传统监控模式可以用于回溯什么时候出了问题,但可观察性却能让安全团队知晓造成安全事件的原因;监控会跟踪网络安全设备的整体运行状况,并根据访问速度、连接性、停机时间等汇总有关系统性能的运行数据,可观察性则通过提供其针对故障模式下的细粒度分析和上下文洞察能力,深入研究应用程序异常操作的“内容”和“原因”,进一步发现安全风险;监控仅提供已知问题或故障的答案,而具备可观察性的软件系统可以满足开发人员对未知网络安全风险的探索。

 

可以认为,传统监控模式就像站在局外人的角度,去审视安全系统的运行情况,而可观察性则是对安全系统的一种自我审视,站在了开发者的角度去探究网络安全设备应如何恰当地展示自身的状态。另一方面,监控也可以说是可观察性的一个子集。可观察性除了提供更传统的监控测量之外,通常还包括系统应用体验和业务流程的观测能力。

 

总体来说,可观察性是一项能够为各方面提供价值的服务。它不仅可以监控企业网络安全应用程序和平台,还可以监控企业的业务流程、开发团队效率甚至各业务计划的执行情况,除了云环境或数据中心之外,可观察性还能扩展到企业的数字化业务应用中,为企业提供从功能请求到客户满意度的全方位观测与感知。

 

可观察性的能力构建

 

图片

 

基于数字技术应用体验的安全监控与可观察性能力可以通过可观察性河流(Observability River)这种技术方式来实现,它可以帮助用户了解有哪些可以收集和需要重视的网络运行数据类型,并从简单的数据流开始,不断累积,直至形成可供用户综合使用的可观察性解决方案数据集合。构建可观察性长河的关键点有:

 

01 从基础的安全监控入手

 

所有关乎企业网络平台可靠运行的重要信息,如用户访问和审核日志、可疑账户登录失败次数等都可能包含有攻击者的攻击特征,这些信息都需要重点关注。

 

02 对网络安全设备、云平台指标和日志监测

 

可观察性长河技术方案需要添加有关设备中央处理器(CPU)、内存条(RAM)和存储系统的日志信息和运行参数,以及有关Lambda函数等执行速度的云平台指标。

 

03 了解网络安全设备的运行性能

 

 加强对网络安全设备应用程序的性能监控,包括函数的执行速度、数据库查找时间,甚至可以包括基于OpenTelemetry或类似产品的跟踪数据。(OpenTelemetry是云原生计算基金会的一个可观察性项目,旨在提供可观察性领域的标准化方案,解决观察数据的数据模型、采集、处理、导出等的标准化问题,提供中立性服务。)

 

04 加强对员工行为信息的收集

 

真实用户监控(Real User Monitoring,RUM)和合成用户监控(Synthetic User Monitoring,SUM)两项功能可以让企业进一步了解到用户的行为路径和产品的实际使用情况,并可以根据这些行为分析提升用户的使用体验。合成用户监控是指在一个模拟场景里,提交一个需要进行性能审计的页面,并通过一系列的工具和规则将该页面运行起来,并对运行后的页面进行性能指标评估,得出相关审计报告。而真实用户监控则是针对用户在真实页面上访问数据信息进行的分析与监控。

 

05 具备处理数据的能力

 

收集数据的目的,就是要正确的处理数据,并实现数据长河的可视化,其中通过图形释义是将数据进行有效可视化转变的最佳方式。比如,当用户将员工的行为信息和企业关键敏感数据进行可视化处理后,仪表板上就会清晰的展示出企业潜在的安全风险和安全防护短板,这对数字化业务工作的稳定安全开展意义重大。

 

06 添加报警功能

当发生安全事件或存在潜在的安全风险时,企业内部的网络安全团队应该及时收到通知,并结合上下文的数据统计情况和报警结果做出适当的响应。

 

如何选择正确的可观察性解决方案?

 

以下是用户在选择可观察性安全解决方案时需要重点考虑的问题:

 

1、企业是否拥有一个能够支撑可观察性安全解决方案的团队?

企业在构建可观察性安全解决方案之前,首先要了解自身是否具备运行该服务的技术水平与能力。一个负责可观察性解决方案的网络安全团队从组建、运营、工作和发展需要投入大量的资金成本和管理精力,从某种程度上来说,直接采购成熟的第三方安全监测系统会更有性价比优势。​

2、用户是否愿意让监控数据存在于“自身环境”之外?

运行可观察性解决方案时,通常有三个选择:

 

在防火墙内:无论从用户认知上,还是理论上,这都是最安全的选择——即确保了数据始终在网络环境边界以内,监控数据(以及基础设施布局的细节)泄漏到公共领域的风险较小,这也是大多数用户所选择的方案。

 

软件即服务(SaaS):软件即服务(SaaS)正迅速成为企业购买监控解决方案的主要方式,尤其是在云环境中。它将报警、运维等高难度任务转嫁到了第三方,降低了对企业内部人员技术门槛的需求。但这种方式下,企业的监控数据可能存储在多个平台之中,泄漏风险增加。

 

云监控:亚马逊和谷歌等云提供商经常会提供完全托管的监控平台(如CloudWatch),以及从托管服务(例如AWS Managed Grafana和AWS OpenSearch Service)来帮助企业构建可观察能力。云监控的优缺点可能处于上述两个选项之间,相比完整的SaaS化产品成本更低。

3、企业自身想要观察和分析的需求有哪些?

很多企业都在寻找功能最丰富的、最受市场青睐的监控平台及可观察性安全解决方案,但在实际应用中,真正利用到的产品功能可能不足一半,这样的高额投入与实际需求并不合理。

4、可观察性解决方案对编程语言的支持

企业在选购网络可观察性解决方案时,需要注意这些工具更适用于哪些开发语言环境。例如,AppDynamics是企业组织中非常流行的应用程序性能监测工具,如果企业员工非常擅长Java 或C#语言,那么它可能没问题。但如果员工只对Python或Rust语言更擅长,结果就会不如人意,因为它对这些语言的支持效果很差。