XieJava's blog

记录最好的自己


  • 首页

  • 分类

  • 标签

  • 归档

  • 关于

系统频繁崩溃,如何考虑系统的稳定性和可扩展性?

发表于 2023-11-29 | 更新于: 2025-07-11 | 分类于 技术 , 架构 | | 阅读次数:
字数统计: 3.5k | 阅读时长 ≈ 11

在这里插入图片描述

最近网传互联网应用信息系统频繁崩溃,语雀崩完淘宝崩,淘宝崩完滴滴崩,随着业务的发展和技术的进步,对于信息系统的要求也越来越高。信息应用系统为了满足不断增长的用户和业务需求,提高系统的稳定性和扩展性至关重要。

因为互联网应用面对的是广大的互联网用户,用户和业务需求变化非常快,所以系统既要考虑稳定性又要考虑可扩展性。

系统稳定性是指系统在面临外部干扰或内部变化时,能够保持其原有状态和功能,避免出现崩溃、失控或不可预测的行为。系统扩展性是指系统在面对增长的业务需求时,能够轻松地扩展其性能、容量和功能的能力。它是一种确保系统能够适应未来发展和变化的重要属性。良好的扩展性可以为企业节省大量的时间和资源,避免在业务增长过程中出现瓶颈。

系统的稳定性通常包括以下方面:

  1. 容错性:系统在面临错误或异常情况时,能够自动检测并处理错误,避免故障扩散到整个系统。
  2. 可用性:系统在任何情况下都能够提供必要的功能和服务,避免出现单点故障或瓶颈。
  3. 可扩展性:系统能够根据业务需求的变化进行扩展和优化,以适应不断增长的用户数量和业务需求。
  4. 可维护性:系统在运行过程中能够被有效地监控、管理和维护,以确保系统的稳定性和可靠性。
  5. 安全性:系统能够抵御外部攻击和威胁,保护系统的数据和功能不受损害。

系统稳定性和可扩展性设计参考原则

标准化和规范化:采用统一的开发标准和规范,确保系统的可维护性和可重用性。这可以减少系统复杂度,提高系统的可扩展性。

  • 分布式架构:采用分布式架构,将系统划分为多个独立的子系统,每个子系统都可以独立地处理特定的业务需求。这种架构可以提高系统的可扩展性和容错性。
  • 单一职责原则:每个服务应该只关注自己的功能领域,避免出现跨职责的耦合。这样可以降低系统的复杂性,提高系统的稳定性。
  • 高内聚、低耦合:每个服务应该高度内聚,同时尽量减少与其他服务的耦合。这样可以减少服务之间的依赖和互相影响,提高系统的稳定性。
  • 服务自治:每个服务应该具有自我管理和决策能力,以减少对其他服务的依赖。这可以提高系统的可维护性和可扩展性。
  • 负载均衡:在多个服务实例之间实现负载均衡,可以避免单个服务过载导致整个系统的瘫痪。通过负载均衡器将请求分配到不同的服务实例上,确保系统的稳定性。
  • 容错性设计:在系统设计中,应该考虑异常情况和错误处理。例如,当某个服务出现故障时,应该能够通过其他服务的备份或冗余设计来保证系统的整体稳定性。
  • 限流与熔断:在可能出现流量突增的场景中,可以通过限流和熔断机制来防止系统过载。限流可以限制请求的数量,避免系统超负荷运行;熔断则可以在某个服务出现故障时,快速地中断与其他服务的交互,避免故障扩散到整个系统。
  • 自动化监控与恢复:通过自动化监控工具实时收集和分析系统的运行数据,可以及时发现潜在的问题。同时,自动化恢复工具可以在出现问题时,快速地恢复系统的正常运行。
  • 版本控制与灰度发布:通过版本控制和灰度发布机制,可以逐步升级和优化每个服务,而不会对整个系统造成过大的影响。这有助于保持系统的稳定性。
  • 数据一致性:在分布式系统中,数据一致性是一个重要的挑战。通过使用合适的数据复制、校验和验证机制,可以确保数据在多个服务之间的一致性,从而提高系统的稳定性。

以上这些原则是相辅相成的,需要在系统设计和开发过程中综合考虑并实施。同时,随着业务需求和技术环境的变化,也需要不断优化和改进这些原则,以适应新的挑战和需求。

如何提高系统的稳定性和可扩展性

提高系统的稳定性和可扩展性需要从多个方面入手,包括架构设计、技术选型、限流与熔断、数据一致性、负载均衡、自动化监控与恢复、版本控制与灰度发布以及容错性设计等。同时,也需要重视系统的可维护性和安全性,以确保系统能够长期稳定地运行并持续提供服务。
以下是一些常见的措施:

  • 架构设计:在设计系统时,应该考虑系统的整体架构和各个组件的交互方式。采用分布式架构和微服务设计可以提高系统的可扩展性和稳定性。同时,合理划分职责和边界,减少服务之间的耦合也是非常重要的。
  • 技术选型:选择合适的技术和工具可以提高系统的稳定性和可扩展性。例如,使用容器化技术(如Docker)可以快速部署和扩展服务实例。使用无状态设计和服务降级可以增强系统的容错性。使用消息队列和异步通信可以减少系统之间的依赖和阻塞。
  • 限流与熔断:在系统设计中,应该考虑限流和熔断机制,以防止流量突增或异常请求对系统造成过载。限流可以限制请求的数量,避免系统超负荷运行;熔断则可以在某个服务出现故障时,快速地中断与其他服务的交互,避免故障扩散到整个系统。
  • 数据一致性:在分布式系统中,数据一致性是一个重要的挑战。通过使用合适的数据复制、校验和验证机制,可以确保数据在多个服务之间的一致性,从而提高系统的稳定性。使用分布式事务和一致性协议(如Raft或Paxos)可以解决数据一致性问题。
  • 负载均衡:在多个服务实例之间实现负载均衡,可以避免单个服务过载导致整个系统的瘫痪。通过负载均衡器将请求分配到不同的服务实例上,确保系统的稳定性。使用动态负载均衡算法可以更好地分配负载,提高系统的性能和扩展性。
  • 自动化监控与恢复:通过自动化监控工具实时收集和分析系统的运行数据,可以及时发现潜在的问题。同时,自动化恢复工具可以在出现问题时,快速地恢复系统的正常运行。自动化监控与恢复可以提高系统的稳定性和可维护性。
  • 版本控制与灰度发布:通过版本控制和灰度发布机制,可以逐步升级和优化每个服务,而不会对整个系统造成过大的影响。这有助于保持系统的稳定性。使用版本控制工具可以方便地管理和跟踪版本的变更;使用灰度发布可以逐步部署新的版本,同时保证系统的可用性。
  • 容错性设计:在系统设计中,应该考虑异常情况和错误处理。例如,当某个服务出现故障时,应该能够通过其他服务的备份或冗余设计来保证系统的整体稳定性。使用断路器、超时设置和重试机制等容错性设计可以增强系统的鲁棒性和可用性。
  • 持续改进与优化:持续改进和优化是提高系统稳定性和可扩展性的关键。通过收集反馈、监控性能和不断改进技术栈可以提高系统的性能和可靠性。同时,不断优化数据流程、业务逻辑和算法也可以提高系统的可扩展性和响应速度。

目前大部分大型的应用系统都会采用分布式微服务架构设计,微服务架构的系统稳定性可以通过以下几种方式来保障:

  • 单一职责原则:每个微服务都应该只关注自己的功能领域,并且只暴露必要的接口,以减少与其他微服务的耦合。这种设计原则可以帮助降低系统的复杂性,提高系统的稳定性。
  • 容错性设计:在微服务架构中,每个微服务都应该具备一定的容错性,以处理异常情况。例如,当某个微服务出现故障时,应该能够通过其他微服务的备份或冗余设计来保证系统的整体稳定性。
  • 负载均衡:通过在多个微服务之间实现负载均衡,可以避免某个微服务过载导致整个系统的瘫痪。负载均衡器可以分配请求到不同的微服务实例上,确保系统的稳定性。
  • 限流与熔断:对于可能出现流量突增的场景,可以通过限流和熔断机制来防止系统过载。限流可以限制请求的数量,避免系统超负荷运行;熔断则可以在某个微服务出现故障时,快速地中断与其他微服务的交互,避免故障扩散到整个系统。
  • 自动化监控与恢复:通过自动化监控工具实时收集和分析系统的运行数据,可以及时发现潜在的问题。同时,自动化恢复工具可以在出现问题时,快速地恢复系统的正常运行。
  • 版本控制与灰度发布:通过版本控制和灰度发布机制,可以逐步升级和优化每个微服务,而不会对整个系统造成过大的影响。这有助于保持系统的稳定性。
  • 数据一致性:在微服务架构中,由于数据是分散存储的,因此需要特别关注数据一致性问题。通过使用合适的数据复制、校验和验证机制,可以确保数据在多个微服务之间的一致性,从而提高系统的稳定性。

随着云计算的发展,信息系统上云已经成为趋势,云平台的弹性扩展和自动化管理的特性,可以提高信息系统的基础平台的稳定性,实现快速扩展和容灾。

  • 弹性扩展:云平台能够根据业务需求提供弹性的计算资源,可以根据实际需求灵活地扩展或缩减计算资源,如计算能力、存储空间和网络带宽等。这种弹性扩展能力可以满足信息系统随着客户和业务的快速发展,不断调整需求,避免资源的浪费。
  • 自动化管理:云平台通常提供自动化管理功能,可以帮助快速地部署、配置和管理计算资源。这些自动化工具可以降低管理成本,提高效率。
  • 负载均衡:云平台可以提供负载均衡服务,将大量的用户请求分散到不同的服务器或节点上,以提高系统的吞吐量和响应速度。这种负载均衡技术可以确保系统在高负载情况下仍能保持较高的性能和可用性。
  • 容灾备份:云平台通常提供容灾和备份机制,确保系统在遇到故障或灾难时能够快速恢复和正常运行。这些备份和恢复功能可以保护企业的数据和计算资源,避免因故障导致的数据丢失或损坏。
  • 联合计算:云平台可以提供联合计算服务,将多个计算资源整合在一起,以提供更强大的计算能力。这种联合计算能力可以满足信息系统不断增长的计算需求,提高系统的性能和扩展性。
  • 安全性:云平台通常采用严格的安全措施来保护企业的数据和计算资源。这些安全措施包括数据加密、访问控制、安全审计等,可以确保信息系统的数据和计算资源不被未经授权的访问或篡改。

综上所述,信息系统可以通过优化技术采购采用分布式微服务架构,通过云平台的可扩展性实现弹性扩展、自动化管理、负载均衡、容灾备份、联合计算和安全性等方面。使得信息系统能够更好地满足不断变化的需求,提高系统的性能和扩展性。


博客地址:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

网络安全之了解安全托管服务(MSS)

发表于 2023-11-16 | 更新于: 2025-07-11 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 3.3k | 阅读时长 ≈ 11

数字化已深入千行百业。数字化将给各行各业带来巨大的变化,现实世界和虚拟世界也将联系得更加紧密。随着云计算、大数据等新技术结合企业级业务的落地,数字时代的安全面临着前所未有的新挑战。近年来,网络安全问题日益严重,在企业数字化转型中,安全需求也变得越来越重要。对于企业来说,一方面是合规要求压力大,随着法规监管的日趋完善,企业需要遵守的合规要求也越来越多,这些法规对企业的网络安全和数据保护提出了更高的要求;另一方面企业面临的外部威胁加剧,随着网络攻击技术的不断发展,黑客、恶意软件等外部威胁也越来越严重。为了应对这些挑战确保企业顺利完成数字化转型并保障信息安全,企业除需要部署专业的安全产品之外,同样需要技术供应商提供专业有效的安全服务。

对绝大多数企事业单位来说,业务发展才是第一要务,对于安全来说,请专业的人做专业事,于是催生了安全托管运营服务。根据中商产业研究院发布的《2022-2027年中国网络安全行业发展趋势与投资格局研究报告》显示,2022年,中国托管安全服务市场规模约43亿元(6.4亿美元),同比增长16.8%,市场整体保持稳定快速发展。中商产业研究院分析师预测,2023年市场规模将达49.2亿元,2024年将达55.4亿元。

那么什么是安全托管服务,一般的安全托管服务都覆盖有哪些内容,什么样的企业适合安全托管服务,企业如何通过安全托管服务来构建自身的安全体系,带着这些问题我们一起来了解安全托管服务(MSS)

一、什么是安全托管服务(MSS)

安全托管服务(MSS)的产生背景可以追溯到20世纪90年代后期,当时随着互联网服务提供商(ISP)的出现,一些ISP开始为他们的用户提供防火墙设备,并管理防火墙。这是MSS的最初形态,即集成到ISP服务产品中的防火墙托管解决方案。

随着时间的推移,特别是进入21世纪后,网络威胁形势和企业安全需求的发展,使得MSS服务逐渐成为全方位服务的安全提供商。这种转变的动力不仅来自于企业内部日益增长的安全需求,也来自于外部环境的变化,包括国内外政治经济形势的发展、疫情影响的经济常态化、以及国内法规监管的日趋完善。

在这种情况下,计算技术与基础机构、IT建设和运维模式以及企业研发模式随之发生变革。仅通过网络安全产品和大量的人力堆叠难以应对云化场景下新的安全挑战。因此,企业需要一种新型的安全服务模式来满足这些需求。这就是安全托管服务(MSS)出现的背景。

安全托管服务(Managed Security Service,MSS),是由Gartner于2011年提出,简单来讲,即网络安全厂商通过自身的安全运营服务,包括人员、工具、平台等,为其用户提供7*24小时的安全托管服务。MSS安全托管服务最直接的目的,就是解决用户自身安全能力不足的问题,将专业的事情交给专业的人来做。说白了其实就是企业将自身的安全运营外包给有能力的安全厂商,解决自身安全运营能力不足的问题。

MSS服务的优势在于,它能够有效地提高企业的信息安全水平,降低安全风险,同时减少企业在信息安全方面的投入成本。通过将安全工作外包给专业的MSS服务提供商,企业可以更好地集中精力发展自身的核心业务,提高竞争力。

二、安全托管服务的内容

安全托管服务(Managed Security Services,MSS)覆盖的内容非常广泛,可以满足企业在信息安全方面的各种需求。

以下是一些常见的安全托管服务内容:
1.安全监控和告警:提供24小时不间断的安全监控和告警服务,及时发现和处理安全事件,确保企业网络和系统的正常运行。
2.安全审计和评估:对企业网络和系统进行安全审计和评估,发现潜在的安全风险和漏洞,并提供相应的解决方案。
3.安全加固和优化:根据企业的实际需求,提供安全加固和优化建议,例如加强网络防御、优化安全策略等。
4.应急响应和处置:在发生安全事件时,提供应急响应和处置服务,例如进行事件分析、取证、溯源等,帮助企业快速恢复业务。
5.安全培训和意识提升:提供安全培训和意识提升服务,提高企业员工的安全意识和技能,增强企业的整体安全防范能力。
6.威胁情报和分析:通过收集和分析威胁情报,帮助企业了解最新的安全威胁和攻击趋势,为企业提供针对性的安全建议和防范措施。
7.云安全托管:提供云安全托管服务,包括云防火墙、云主机安全、云应用安全等,确保企业在云端的安全性和稳定性。
8.安全合规和风险管理:帮助企业遵守相关法律法规和标准要求,提供安全合规和风险管理服务。

安全托管服务覆盖了运营初期的安全评估服务,运营中期的安全加固、安全监控和漏洞感知及监控,运营后期的应急响应服务。安全托管服务可以根据企业的实际需求定制化服务内容,从基础的安全监控到高级的安全审计和应急响应等,全方位地满足企业在信息安全方面的需求。

以下是常见的安全托管服务及交付内容:

服务项 服务内容 交付内容
安全评估服务 全面评估用户主机安全现状,发现用户主机、网络、应用及数据等方面存在的风险 每季度一次:提供《安全评估报告》
渗透测试服务 对核心业务系统安排工程师进行渗透测试工作,人工挖掘应用漏洞,针对发现的漏洞提出整改和修复方案 每季度一次:提供《渗透测试报告》
漏洞扫描服务 周期性漏洞扫描,人工分析扫描结果 每月一次:提供《漏洞扫描报告》
安全监控服务 持续监视用户主机安全产品告警事件,对安全事件进行分析、响应和运营优化 每周一次:提供《服务运营报告》
安全加固服务 针对评估、监测、检测等不同阶段发现的严重或高危级别安全事件,通知并协助用户开展处置响应 提供事件详细修复方案,协助开展安全风险加固
应急响应服务 在业务遭受黑客攻击出现异常时,提供及时的事件响应分析和专业处置,将突发事件损失降到最低,并协助开展溯源、损失评估、加固指导,提升安全防护水平。每季度提供一次应急响应服务,可按次增加订购 按季度提供《应急响应报告》
安全咨询服务 解答用户提出的各种安全问题,例如:安全问题诊断、排除,安全配置,安全管理等方面,并提供全方面的安全方案支持。 按需提供《安全咨询方案》

三、什么样的企业会选择安全托管服务

选择安全托管服务的企业通常包括以下几种情况:
1.规模较小、缺乏安全管理经验和能力的小微企业。这些企业可能没有足够的资金和人力资源来开展安全管理工作,或者缺乏专业的安全管理人员,无法有效地应对安全风险。通过选择安全托管服务,这些企业可以借助专业的安全服务机构的力量,提高自身的安全管理水平,降低安全风险。
2.从事高风险行业的企业。这些企业通常涉及到高度的信息安全、网络安全、物理安全等方面的风险,需要专业的安全服务机构提供全方位的安全托管服务。例如,一些互联网企业、金融企业、能源企业等。
3.曾经发生过安全事故的企业。这些企业可能已经经历过一些安全事故,或者存在一些安全隐患,需要专业的安全服务机构提供安全管理托管服务,帮助其加强安全管理,预防安全事故的发生。
4.需要进行安全管理改进的企业。这些企业可能已经有一定的安全管理基础,但是需要进行安全管理方面的改进,例如优化安全管理体系、提高安全管理效率等。通过选择安全托管服务,这些企业可以借助专业的安全服务机构的力量,进行安全管理方面的改进和提升。

选择安全托管服务的企业通常是在规模、行业、历史安全事故或需要改进安全管理等方面存在一定安全风险的企业。通过选择专业的安全托管服务提供商,这些企业可以获得更高效、更专业的安全服务支持,提高自身的安全管理水平,降低安全风险。

四、企业如何通过安全托管服务构建安全体系

安全托管服务(Managed Security Services,MSS)可以通过以下几个方面助力企业构建安全体系:
1.提供专业的安全团队和先进的技术手段:安全托管服务提供商通常具备专业的安全团队和先进的技术手段,能够提供高效、专业的安全服务,帮助企业快速发现和解决安全问题。
2.降低企业在信息安全方面的投入成本:通过将安全工作外包给专业的安全托管服务提供商,企业可以降低在信息安全方面的投入成本,包括人力、物力和财力等。
3.提高企业的信息安全水平:安全托管服务提供商可以提供全方位的安全托管服务,从基础的安全监控到高级的安全审计和应急响应等,帮助企业提高信息安全水平,降低安全风险。
4.满足企业不断增长的安全需求:随着企业业务的不断发展,企业面临的安全需求也在不断增长。安全托管服务提供商可以根据企业的实际情况和需求,提供定制化的安全服务方案,满足企业的个性化需求。
5.帮助企业建立完善的安全管理体系:安全托管服务提供商可以帮助企业建立完善的安全管理体系,包括安全策略、安全流程、安全培训等方面,提高企业的整体安全防范能力。
6.提供可跟踪管理的安全配置管理:安全托管服务提供商可以对托管系统的安全配置与管理全面负责,为客户提供可跟踪管理的安全配置管理,确保企业网络和系统的正常运行和安全性。
7.规范企业的安全管理流程:安全托管服务提供商可以帮助企业规范安全管理流程,例如进行定期的安全审计、安全培训、应急演练等,提高企业的安全管理效率和规范性。

总之,安全托管服务可以为企业提供全方位的安全托管服务,帮助企业构建完善的安全体系,提高信息安全水平,降低安全风险,同时减少投入成本。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

网络安全之认识托管威胁检测与响应(MDR)

发表于 2023-11-12 | 更新于: 2025-07-11 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 3k | 阅读时长 ≈ 10

随着数字化转型加速,企业的IT环境日益复杂,面临的网络安全威胁也在不断增加。传统的防御措施已经无法有效应对新型威胁,而且很多企业缺乏专业的网络安全团队和技术手段,导致大量的安全事件未能及时被发现和处理。

在这种背景下,托管威胁检测响应服务(MDR)应运而生。MDR能够利用现代安全运营中心的技术和专业人员,为客户提供全天候的安全监测和快速响应,从而缩短威胁发现和响应之间的窗口期,降低风险并减轻安全运营压力。

那么什么是MDR,MDR都包含了什么?MDR又与XDR是什么关系,与MSS又有什么区别?带着这些问题我们来了解托管威胁检测与响应(MDR)

一、什么是MDR

托管威胁检测与响应(Managed Detection and Response,托管检测与响应)是一种外包服务,旨在提供7x24小时的网络安全事件监测和分析,快速发现威胁并进行有效的响应。它结合了分析和人类专业知识来检测和消除网络中的威胁。大多数MDR服务通过主机层与网络层的威胁监测与分析技术,生成、收集安全事件以及上下文数据,结合安全运营平台的数据分析技术和安全运营专家的技术力量共同完成。

通俗一点讲,就是一些中小企业受制于在人员、时间、技能、资金、流程等方面的缺失,将企业自身的安全威胁检测与响应的活委托给安全服务商(Managed Security Service Provider, MSSP),通过外部托管安全服务提供商(MSSP)提供专业知识并填补安全架构空白,从而解决许多企业网络安全专家短缺技能不足的问题。从趋势上看,越来越多的企业转向选择MDR,由此获得最大化的投入产出效果。

倾向于采用MDR的企业的几种情形:

  • 没有安全运营团队,因此希望将安全监控运营外包给专门从事该领域的第三方;
  • 安全运营团队人数有限,但通过MDR提供商,就能确保团队不必承担大多数一线工作负担以及众多其他安全运营工作任务,而是能够更加专注于服务输出;
  • 有安全运营团队,可以自己进行全天候监控。尽管如此,他们仍希望将一线威胁检测工作转交给专门从事这项工作的公司。

二、MDR都包含了些什么

Gartner将托管威胁检测与响应(MDR)其描述为通过7x24小时全天候不间断的监控和覆盖,建立起快速威胁检测与有效响应的服务。绝大多数MDR服务是通过主机层与网络层的技术生成、收集安全事件以及上下文数据,支持威胁检测与事件分析。

MDR服务一般包含以下内容:

  • 实时威胁检测:MDR服务提供实时监控和分析网络流量、系统日志以及其他安全事件的能力。
  • 威胁狩猎:威胁狩猎力图在威胁访问关键数据之前发现威胁,通过使用先进的威胁情报和分析工具,识别潜在的安全威胁,包括已知的和未知的威胁。
  • 威胁情报分析:情报是了解攻击者及其攻击方式的关键。安全团队通过威胁情报可以更好地了解特定的攻击者及其常用的战术、技术和流程 (TTP),从而更有效地防御威胁;
  • 事件响应:MDR服务不仅仅是关于检测威胁,还包括对安全事件的响应。一旦检测到潜在威胁,MDR团队会采取相应的措施,可能包括隔离受感染的系统、清除恶意代码,以及协助客户制定恢复计划。
  • 全覆盖范围:MDR提供24/7/365持续服务,分析师可以在白天或晚上的任何时间做出响应;
  • 专业知识:MDR不仅提供基于用户安全工具产生的日志的检测服务,还提供专业的安全人员对相关事件进行快速调查和响应;
  • 实时可见性:MDR产品需要精细的实时端点可见性来捕捉和阻止攻击者。

MDR充分利用客户侧已部署的终端、边界、流量等防护设备,通过行为分析、流量分析、威胁情报以及与多级专家的组合,为客户提供更加快速和全面的威胁监视、检测和响应服务。MDR服务具有现代安全运营中心远程交付的能力,专注于精准检测、调查分析、积极遏制事件,旨在通过持续运营以减少威胁发现和威胁响应之间的时间。

MDR服务不仅限于更强的检测和响应能力,它还可以为不堪重负的安全团队提供主动防御情报和高级威胁洞察。企业还可以使用MDR服务来应对合规挑战,因为它提供有关各种法规和标准的完整报告和日志保留。

三、MDR与XDR的关系

XDR全名是Extended Detection and Response(扩展检测和响应)Gartner给出的XDR定义为:XDR是一种基于SaaS的、绑定于特定供应商的安全威胁检测和事件响应工具,它将多个安全产品集成到一个统一了所有许可安全组件的内聚安全运营系统中。

通常情况下,可以认为XDR是一个融合了多种安全检测、响应能力的平台框架,只要是为了解决威胁检测与响应的问题能力模块,都可以往里装。特别的强调X的概念,也就是可以 扩展(Extended)的检测与响应。大家都知道在数学里通常用X表示变量,这里X覆盖了云、网、端、威胁情报等,EDR和NDR及其他的检测设备都可以作为XDR的能力模块作为X为XDR提供数据来源和检测手段。实际在威胁检测与响应的过程中人也是重要的环节,除了EDR、NDR,MDR中的M也可以认为是X的一种。

MDR是一种托管检测和响应服务,通过外部托管安全服务提供商(MSSP)提供专业知识并填补安全架构空白,解决许多企业网络安全专家短缺的问题。MDR帮助公司保持监控状态,预测并防止潜在的网络攻击。

XDR是一种更强大的网络安全解决方案,可从多个来源收集和分析数据,以预防、检测和响应网络攻击。XDR是端点检测和响应(EDR)的演进版本,通过以标准格式汇集历史和实时事件数据来提高安全团队的效率和生产力。XDR超越了EDR,具有跨网络的检测和缓解功能,可有效保护企业的整个数字环境,包括网络、云存储、应用程序和端点。XDR提供多种类型的检测,特别适合那些现有解决方案无法覆盖所有攻击面的的企业。XDR支持可扩展的高性能存储、快速索引搜索和自动化驱动的威胁响应,经常以软件即服务(SaaS)的形式提供,使企业更容易使用该技术。

总的来说,MDR和XDR都是用于检测和响应网络安全威胁的解决方案,但XDR概念更大,是一个覆盖了所有能够解决威胁检测与响应的框架,而MDR托管检测和响应服务更加强调的是人和服务。MDR是通过使用各种XDR的工具和模块如EDR、NDR或其他工具和手段来实现威胁的检测和响应服务。

四、MDR与MSS的区别

Garter将MDR服务描述为:为客户提供远程交付的现代安全运营中心(MSOC)功能,通过提供24/7连续监测来在建立和改进有效的早期威胁检测和响应。

MSS(Managed Security Service,托管安全服务)由来已久,主要是由托管安全服务商( MSSP)对企业的安全设备及系统进行外包的监控和管理,常见的服务包括托管防火墙、入侵检测、虚拟专用网络、漏洞扫描以及反病毒服务。

MDR(托管威胁检测与响应)和MSS(托管安全服务)是两种不同的安全服务,虽然它们的目标都是帮助组织提高安全性,但在实现方式和关注点上还是存在一些区别。以下是它们的主要区别:
1.关注点不同:

  • MDR: MDR的主要关注点是在网络和系统中主动检测和应对威胁。它强调实时监控、威胁检测和迅速的响应。MDR通常更加注重对威胁的深度分析和处理。
  • MSS: MSS关注的范围更广泛,包括安全信息与事件管理(SIEM)、日志管理、设备管理、合规性管理等。MSS的目标是提供一种全面的、托管的安全解决方案。

2.响应方式不同:

  • MDR: MDR强调对安全事件的主动响应。一旦检测到威胁,MDR服务提供商通常会采取行动,协助客户隔离受影响的系统、清除恶意代码,并支持恢复操作。
  • MSS: MSS更侧重于对事件的收集、监控和报告,而不一定强调实时响应。它通常提供日志管理、合规性报告等功能,用于长期的威胁分析和合规性要求。

3.服务深度不同:

  • MDR:MDR服务通常更深度地涉及威胁检测和响应,可能包括使用先进的威胁情报、行为分析、终端检测与响应(EDR)等技术。
  • MSS:MSS更广泛地覆盖了安全服务的多个方面,包括日志管理、漏洞管理、合规性管理等。它可能更注重对整个安全生态系统的全面管理。

4.技术要求不同:

  • MDR: MDR通常需要使用更先进的威胁检测技术,可能包括机器学习、行为分析、沙箱技术等,以及对安全事件的实时响应能力。
  • MSS: MSS可能更注重于传统的安全技术,如防火墙、入侵检测系统(IDS)、反病毒软件等,同时也包括SIEM等辅助工具。

总体而言,MDR更注重在发生安全事件时的实时响应和深度分析,而MSS则更广泛地提供安全服务,包括对整个安全基础设施的管理和监控;MSS主要关注预防,而MDR则更注重检测和响应;MSS的服务宽且浅,MDR的服务窄且深。
MSSP与MDR的区别

Gartner认为MSS和MDR是交集的关系,MSS尚不会完全覆盖MDR服务。两者之间最大的区别在于,MSS服务在发现威胁或告警的时候,会通知企业自行处置,而MDR则会利用自身的技术去完成对威胁的检测,帮助企业完成响应和处置的工作。不过,随着托管安全服务的发展,这两种服务之间的界限越来越模糊,很多MSS厂商也开始提供MDR服务。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

不会写文档的程序员不是好的程序员

发表于 2023-11-07 | 更新于: 2025-07-11 | 分类于 人生 , 程序人生 | | 阅读次数:
字数统计: 2.4k | 阅读时长 ≈ 7

在当今数字化的世界中,软件开发行业正经历着前所未有的繁荣。从移动应用到大型企业系统,软件构建了现代社会的基础。在IT行业中,文档是一种非常重要的沟通工具。它可以帮助程序员和客户及团队成员之间进行有效的沟通和协作,提高工作效率和项目成功率。然而,许多程序员往往忽视了文档的重要性,认为只要代码写得很好就可以了。但实际上,一个优秀的程序员不仅需要精通编码,还需要具备良好的文档编写能力。

程序员最讨厌的四件事

大家都知道文档实际上是软件项目交付物中很重要的一部分,但部分的程序员不愿意写文档,或是应付式的写文档,导致输出的文档质量很差。主要原因包括,有些程序员可能没有意识到文档的价值;一些程序员可能更偏向于技术,对文档编写感到不感兴趣,认为编写文档不如编写代码来得具有挑战性或令人满足;编写文档通常需要额外的时间和精力,程序员可能面临紧迫的项目期限,导致他们倾向于专注于编写代码,而不愿意分配时间来编写文档;有时程序员可能不清楚文档的受众需求,因此不知道要写什么内容,往往输出的文档质量不高。

一、程序员为什么要写文档

  1. 提高沟通和合作能力

文档是程序员与同事、客户和其他利益相关者之间进行沟通的重要工具。通过编写文档,程序员可以更好地理解项目需求、系统设计和功能实现等方面,从而更好地与团队成员协作。同时,良好的文档也有助于其他人更好地理解代码的结构和实现,从而提高沟通和合作能力

  1. 提升工作效率

编写文档可以帮助程序员更好地组织和规划工作,避免重复劳动和浪费时间。通过文档,程序员可以记录代码实现、功能需求、测试用例等内容,以便后续维护和修改。同时,良好的文档也可以帮助其他团队成员更快地适应代码并避免错误,从而提高工作效率。

  1. 增强软件的可维护性

良好的文档可以使代码更容易被理解和维护。当其他开发者需要维护或修改代码时,他们可以通过文档快速了解代码的结构、功能和实现细节,从而更快地投入工作。同时,文档也可以帮助团队成员更好地理解代码的实现思路和逻辑,从而更好地维护代码。

  1. 降低项目风险

在项目开发中,风险是不可避免的。通过编写文档,程序员可以记录项目中的关键决策、架构设计、数据流程等信息,以便在项目出现问题或风险时进行参考和排查。这有助于降低项目风险,提高项目的稳定性和可靠性。

  1. 提高职业竞争力

在当今竞争激烈的IT行业中,具备良好文档编写能力的程序员更有可能得到公司领导和客户的青睐。通过编写高质量的文档,程序员可以展示自己的技术能力和综合素质,从而增强自己的职业竞争力。同时,良好的文档编写能力也可以帮助程序员更好地规划和总结自己的工作成果,为未来的职业发展打下基础。

二、程序员在工作中都要写哪些文档

作为程序员,平时需要写的文档可能包括以下几种:

  • 需求文档:根据客户需求或项目要求,编写需求文档,明确产品或项目的功能需求、性能要求、界面要求等。
  • 技术方案文档:根据项目需求和实际情况,编写技术方案文档,包括技术选型、架构设计、模块划分、数据流程等内容。
  • 详细设计文档:根据技术方案和需求文档,编写详细设计文档,包括代码结构、接口定义、算法实现、异常处理等内容。
  • 用户手册:针对最终用户编写用户手册,包括产品或系统的安装、配置、使用、操作指南等内容。
  • 维护文档:针对项目维护人员编写维护文档,包括系统部署、升级、故障排查、性能优化等内容。
  • 测试文档:编写测试文档,包括测试计划、测试用例、测试结果等内容,用于记录和跟踪测试过程。
  • 版本说明文档:针对软件版本更新编写版本说明文档,包括新功能、修复的问题、已知的问题等内容。
  • 安装手册:针对软件安装过程编写安装手册,包括系统要求、安装步骤、配置参数等内容。

这些文档的编写可以帮助程序员更好地理解项目需求和设计思路,提高代码的质量和可维护性,同时也有助于团队成员之间的沟通和协作。

三、程序员写文档常见问题

程序员在写文档的过程中常见的问题包括内容不清晰、不完整、不规范、缺乏实例、文档更新不及时等。

  1. 文档内容不清晰:有些程序员在编写文档时,可能没有清晰地表达自己的想法,导致文档读者难以理解。这可能是因为程序员没有充分理解自己的想法,或者没有足够的写作技巧。
  2. 档内容不完整:有些程序员在编写文档时,可能没有提供足够的信息,导致读者无法全面理解文档内容。这可能是因为程序员没有充分了解读者的需求,或者没有足够的耐心和细心。
  3. 文档格式不规范:有些程序员在编写文档时比较随意,可能没有遵循公司或团队的文档编写标准,导致文档格式不规范。这可能会影响文档的可读性和可维护性。
  4. 文档缺乏实例:有些程序员在编写文档时,可能没有提供足够的实例或代码片段,导致读者难以理解文档内容。这可能是因为程序员没有足够的实践经验,或者没有足够的耐心和细心。
  5. 文档更新不及时:有些程序员在编写文档后,可能没有及时更新文档内容,导致文档与实际情况不符。这可能会影响读者的理解和使用效果。

四、程序员如何在工作中提高文档能力

  1. 增加阅读量:阅读是提高写作能力的基础。程序员可以通过阅读技术文档、用户手册、产品说明书等文档,学习其他人的写作技巧和表达方式,从而提升自己的写作能力。

  2. 提高写作技巧:写作需要实践和经验积累。程序员可以通过编写技术博客、参与开源项目、编写技术书籍等方式,锻炼自己的写作技巧和表达能力。这包括如何清晰地表达自己的想法、如何组织文档结构、如何使用适当的语言和风格等。

  3. 充分了解受众的需求:程序员在编写文档前,应该充分了解读者受众的需求和背景,以便提供适合受众的文档内容。

  4. 遵循文档编写标准:程序员在编写文档时,应该遵循公司或团队的文档编写标准,一般公司都会有项目各个阶段相对应的文档模板,这些模板是公司的最佳时间,基本上搭好了整个文档的目录架构,可以确保文档格式和内容的规范性。

  5. 提供足够实例:程序员在编写文档时,应该提供足够的实例或代码片段,以便读者更好地理解和应用文档内容。

  6. 参考优秀的文档:参考优秀的文档可以让程序员更好地了解其他人的写作技巧和表达方式,从而提升自己的写作能力。可以参考一些开源项目的文档、技术博客、专业书籍等。

  7. 及时更新文档:随着项目或产品的不断更新和变化,程序员要及时更新相关的文档,确保文档的准确性和时效性。

    总之,提高文档编写能力需要不断地学习和实践。程序员应该注重阅读、练习写作、学习规范、注重逻辑性、参考优秀文档并及时更新文档等方面,从而不断提升自己的文档编写能力。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

5W2H分析法:全面思考和解决问题的实用工具

发表于 2023-11-04 | 更新于: 2025-07-11 | 分类于 管理 , 项目管理 | | 阅读次数:
字数统计: 2.3k | 阅读时长 ≈ 8

5W2H分析法又叫七问分析法,创于二战中美国陆军兵器修理部。发明者用五个以W开头的英语单词和两个以H开头的英语单词进行设问,发现解决问题的线索,寻找发明思路,进行设计构思,从而搞出新的发明项目。5W2H简单、方便,易于理解,实用,富有启发意义,广泛用于企业管理和技术活动,对于决策和执行性的活动措施也非常有帮助,也有助于弥补考虑问题的疏漏。

这种方法的核心思想是将问题或任务分解为七个关键方面的问题,以确保全面思考和计划。下面是这些关键方面的解释:
1.What (做什么): 这个问题涉及明确任务或目标的性质,需要完成什么工作。它帮助定义任务的本质。
2.Why (为什么): 这个问题涉及理解为什么需要完成这项任务或目标,它的动机和目的是什么。它帮助明确任务的意义和价值。
3.Who (何人做): 这个问题涉及确定谁将执行任务或项目,涉及到相关的利益相关者或责任人。
4.When (何时做): 这个问题涉及确定任务或项目的时间表,包括起始时间、截止时间和任何关键时间点。
5.Where (何处做): 这个问题涉及确定任务或项目在哪里完成,涉及到地点或地理位置。
6.How (怎么做): 这个问题涉及确定任务或项目如何完成,包括所需的方法、工具和流程。
7.How much (多少): 这个问题涉及确定任务或项目的成本、资源需求和预算。
5W2H

5W2H分析法被广泛用于项目管理、决策分析、计划制定以及解决各种实际问题。这个方法有助于组织和个人更好地理解任务的各个方面,并有效地进行规划和执行。同时,5W2H分析法也可以应用于个人工作和生活中,帮助人们更好地解决问题和做出决策。
在项目管理中,5W2H分析法可以应用于以下几个方面:

1.项目计划制定:在项目计划制定阶段,可以使用5W2H分析法来确保计划的全面性和具体性。例如,可以回答以下问题:

  • What:项目的目标是什么?需要完成哪些任务?
  • When:项目的周期是什么?每个阶段的时间节点是什么?
  • Where:项目实施的地点在哪里?需要哪些资源?
  • Who:谁来负责项目的实施?需要哪些人员和团队?
  • Why:为什么需要实施这个项目?它的意义和目的是什么?
  • How:如何实施这个项目?需要采取哪些方法和措施?
  • How much:项目的预算是多少?需要投入哪些资源和成本?

2.项目问题诊断与解决:在项目实施过程中,可以使用5W2H分析法来诊断和解决遇到的问题。例如,可以回答以下问题:

  • What:问题的具体内容是什么?对项目的影响是什么?
  • When:问题发生的时间是什么时候?影响了哪些阶段的任务?
  • Where:问题发生的地点在哪里?影响了哪些区域的工作?
  • Who:谁来负责解决问题?需要哪些人员的支持和协助?
  • Why:为什么会出现这个问题?根源是什么?
  • How:如何解决问题?需要采取哪些措施和方法?
  • How much:解决问题需要投入多少资源和成本?对项目预算的影响是什么?

3.项目决策支持:在项目实施过程中,可以使用5W2H分析法来评估各种选项的优缺点,为决策提供支持。例如,可以回答以下问题:

  • What:决策的具体内容是什么?对项目的影响是什么?
  • When:决策的时机是什么时候?需要在哪个阶段做出决定?
  • Where:决策的地点在哪里?需要在哪个区域进行讨论和决策?
  • Who:谁来负责做出决策?需要哪些人员的支持和协助?
  • Why:为什么需要做出这个决策?对项目的意义和目的是什么?
  • How:如何做出决策?需要采取哪些方法和程序?
  • How much:决策需要投入多少资源和成本?对项目预算的影响是什么?

4.项目风险评估:在项目实施过程中,可以使用5W2H分析法来识别和分析潜在的风险,以及制定相应的应对措施。例如,可以回答以下问题:

  • What:潜在的风险是什么?对项目的影响是什么?
  • When:风险可能发生的时间是什么时候?需要在哪个阶段进行预警和应对?
  • Where:风险可能发生的地点在哪里?需要在哪个区域进行防范和控制?
  • Who:谁来负责识别和分析风险?需要哪些人员的支持和协助?
  • Why:为什么会出现这个风险?根源是什么?
  • How:如何应对这个风险?需要采取哪些措施和方法?
  • How much:应对风险需要投入多少资源和成本?对项目预算的影响是什么?

5.项目总结与经验教训总结:在项目完成后,可以使用5W2H分析法来总结项目的经验和教训,为今后的项目提供参考。例如,可以回答以下问题:

  • What:项目的目标和成果是什么?有哪些关键的阶段和任务?
  • When:项目的时间轴是怎样的?有哪些重要的时间节点和里程碑事件?
  • Where:项目的实施地点是怎样的?有哪些关键的区域和工作场所?
  • Who:谁参与了项目的实施?有哪些人员和团队做出了重要贡献或产生了影响?
  • Why:为什么项目能够成功或失败?有哪些关键因素或原因导致了这个结果?

5W2H分析法在个人工作中的应用场景也是非常广泛的,例如:

  1. 制定个人计划:在制定个人计划时,可以使用5W2H分析法来确保计划更加全面和具体,包括设定目标、分解任务、安排时间、评估资源、确定人员和评估成本等。
  2. 解决问题:在解决问题时,可以使用5W2H分析法来分析问题的各个方面,包括问题的原因、影响、解决方案、实施步骤和资源需求等。
  3. 做出决策:在做出决策时,可以使用5W2H分析法来评估各种选项的优缺点,包括选项的可行性、可靠性、经济性、社会效益和风险等。
  4. 项目管理:在项目管理中,可以使用5W2H分析法来制定项目计划、安排任务、协调资源、控制进度和评估质量等。
  5. 个人时间管理:在个人时间管理中,可以使用5W2H分析法来规划时间表、安排工作优先级、合理分配时间和评估工作效果等。

5W2H分析方法在实际生活中有很多应用例子,以下是其中两小个例子:

1.计划一次周末旅行:

  • Why 为了放松身心,增加生活体验,提升生活质量。
  • What 去一个风景优美的地方,欣赏自然风光,享受户外活动。
  • Where 选择一个适合户外活动的旅游目的地,例如山区、海滩或森林。
  • When 选择一个周末,安排好出发时间和返回时间。
  • Who 和家人或朋友一起去,共同体验旅行的乐趣。
  • How 制定详细的旅行计划,包括交通方式、住宿、餐饮和活动安排。
  • How much 预算合理的旅行费用,包括交通费、住宿费、餐饮费和活动费用。

2.计划一次家庭装修:

  • Why 为了提升家庭的生活品质和舒适度,改善家庭环境。
  • What 进行一次全面的家庭装修,包括水电改造、墙面地面装修、家具购置等。
  • Where 在家庭内进行装修,可能涉及多个房间和公共区域。
  • When 选择一个合适的时间段进行装修,例如假期或周末,合理安排工期。
  • Who 雇佣专业的装修公司或施工队伍进行装修,自己负责监督和协调。
  • How 制定详细的装修计划,包括材料采购、施工流程、装修风格和家具购置等。
  • How much 预算合理的装修费用,包括材料费、人工费、家具购置费等。

总之,5W2H分析法可以帮助个人在工作和生活中更加全面地思考问题,制定更加具体和可行的计划或决策,提高工作效率和质量。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

拥抱AI-ChatGPT:人类新纪元

发表于 2023-10-28 | 更新于: 2025-07-11 | 分类于 读书 | | 阅读次数:
字数统计: 2.1k | 阅读时长 ≈ 7

ChatGPT

最近大模型通用智能应用持续发酵,各大科技公司都陆续推出了基于通用大模型的智能应用产品,典型的如OpenAI的ChatGPT、微软的BingChat、百度的文心一言、360的智脑、阿里的通义千问等。当然最火的要属于ChatGPT了,从去年年底推出到现在已经有很多人体验了,并惊叹于如今的人工智能已经发展到无所不知、无所不能的程度了。

市面上推出了很多介绍ChatGPT的书,覆盖了包括使用指南、原理说明、应用介绍等等各个方面。如果从一个以前从没了解过AI技术的小白想去初步了解ChatGPT不妨去看看《ChatGPT:人类新纪元》这本书。这本书是“搜狗输入法之父”,美团顾问,现任美团光年产品经理,被王兴称为“美团光年首席AGI布道师”马占凯马老师所著。虽然目前豆瓣评分6.8不算高,但是我个人认为作为ChatGPT的科普读物,包含了深入浅出的常识性的普及,以及对人工智能相关历史的概述和推演等,高度概括,其中还有很多有趣的故事,很好读,挺有价值的。这本书的定位就是科普,我觉得已经做到了。

ChatGPT:人类新纪元

经过一段时间对ChatGPT的使用,我逐步认同书中对“ChatGPT:人类新纪元”的提法。ChatGPT,如同人类历史上的单向门——火、文字、造纸、蒸汽机、电和计算机一样,ChatGPT的横空出世让大家看到了通用人工智能达到了崭新新的高度,标志着人类科技进步的又一重大里程碑,预示着我们正步入通用人工智能的新纪元。就像2007年乔布斯发布划时代的苹果智能手机iphone后,各种互联网移动应用蜂拥而至,大家再也离不开智能手机了,从此开始了移动互联的新纪元。

一、ChatGPT之初体验

对于一个码农,初接触ChatGPT时就想验证一下ChatGPT的编程功底,最近正好在研究用机器学习来识别心电图。如是问了一下ChatGPT如何用Python写一段心电图识别波形的代码。
看一下ChatGPT给我的答案:
ChatGPT代码

关键是这段代码稍作调整就可以运行起来。

chatGPT代码运行结果
看上去效果还不错!

这可不是向搜素引擎一样搜出一堆的结果给出一堆的选项让我来选,而是真正的根据我的题意自己生成了一段可以执行的代码!这就有点牛逼了。

原来一直以为码农毕竟还是干技术活的,不会像那些从事简单重复劳动的活一样被AI所替代。但是看到ChatGPT给我的答案,又更进一步的加深了我的焦虑。本来就很卷的IT行业,还要和通用人工智能卷,估计用不了多久码农这个职业就会要消失了。

二、ChatGPT与搜索引擎

有人认为ChatGPT就是搜索引擎的升级版,输入一些信息机器就给你反馈一些经过精细过滤后的信息。ChatGPT与搜索引擎完全是两类不同的东西。差别就和智能手机与以前的功能手机一样大。

ChatGPT是通过海量的数据学习后,具备真正具有智能能力的,给出的内容是根据自身的学习自动生成的。也就是我们常说的生成式AI,是一种能够从其训练数据中学习并生成新的、类似的数据或模型的机器学习技术。这种方法不依赖于预先定义的规则或模式,而是通过自我学习和适应来改进其性能。

与传统的AI相比,生成式AI的主要区别在于其学习方式和能力。传统的AI通常依赖于专家知识或编程指令来执行特定的任务。例如,一个图像识别系统可能被训练成只识别特定的图像类型,如猫或狗。然而,一旦这个系统遇到它从未见过的图像,它就无法做出正确的判断。

相反,生成式AI可以通过自我学习和适应来提高其性能。即使它从未见过某种类型的数据,它也可以通过分析大量的类似数据来学习如何处理这种数据。例如,ChatGPT通过海量的数据学习可以自动生成给出符合题意的答案。

而搜索引擎甚至连传统的AI都算不上,只是通过大数据的搜索算法将符合搜索条件的信息查询后返回到你,你还要根据自己的判断去识别和删选有用的信息。尤其是有了竞价模型后,可能搜索引擎给你的数据排名前几的都是对你来说没有什么用的,只是出价高的几个。

三、机器学习与人类学习

机器学习其实是和人类学习是一样的。基本原理如下图所示:
学习模型

机器学习的输入是海量的数据,通过模型的训练从数据中学习,生成并输出新的数据,根据输出的效果的进行评估和反馈来调整模型参数使模型的学习效果达到最优。

人类学习也是一样的,平时我们努力大量的看书、看视频、看其他资料、与人交流,其实都是在获取信息,将信息输入至大脑后,大脑经过思考输出结果,结果是对世界的认知、对人生的看法、对专业知识的领悟、输出一篇论文、输出一次演讲等等。也是对自己输出的结果进行评估和反馈来强化学习效果。

比如:学生通过大量的阅读和做题作为输入来学习知识,通过考试来评估学习效果,根据考试评估的结果来调整自己的学习方法策略来取得更好的学习成绩。

我们也是一样的,要想提高自己的认知和能力,就要通过大量的阅读(输入)、思考(学习)、不断的反思(反馈评估)、不断的思考调整学习方法策略等(优化模型参数),最终提高自身的能力,可以有高水平的认知输出(输出)。

四、智能涌现与从量变到质变

“智能涌现” 是一个涵盖广泛领域的概念,它描述了在复杂系统中,智能行为或性能如何从简单组件或个体之间的互动中产生或 “涌现” 出来。在机器学习中,神经网络和深度学习模型可以通过大量的神经元之间的互连来实现智能任务。

在ChatGPT惊人的智能表现背后,就发生了智能涌现的现象。涌现现象是极为复杂的,因为复杂性科学就是复杂的,复杂是其基本特征。通俗的将就是当数据和模型参数达到一定的数量级后模型涌现出了新的完成任务的能力。

目前,在大模型的智能涌现方面,有三个结论。
第一,我们不知道什么时候会涌现某种新能力;
第二,我们不知道到一定规模时会涌现哪一种新的能力。
第三,我们唯一知道的是,只要数据量足够大,训练得足够深,一定会有涌现发生。

于是,我不禁又要拿出这张图:
在这里插入图片描述

这张图可以理解为从量变到质变的过程。在人类学习的过程中,学任何东西,如:学习英语,只要输入足够多通过大量的听说读写(数据量足够大),投入的时间精力够多(训练得足够深),一定会有拐点(涌现)发生,一定会成功,就像顿悟后开了挂一样。

既然基于大模型的通用人工智能不可避免的来了,就让我们一起拥抱吧!


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

SOAR安全事件编排自动化响应-安全运营实战

发表于 2023-10-18 | 更新于: 2025-07-11 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 4.2k | 阅读时长 ≈ 14

SOAR是最近几年安全市场上最火热的词汇之一。各个安全产商都先后推出了相应的产品,但大部分都用得不是很理想。SOAR不同与传统的安全设备,买来后实施部署就完事,SOAR是一个安全运营系统,是实现安全运营过程中人、工具、流程的有效协同,提高安全运营效率的平台。核心在于运营,在运营的过程中不断结合自身企业的安全情况,对接设备、优化剧本流程、制定相应的制度来发挥SOAR安全事件编排自动化响应系统的最大的效果。在安全运营实战过程中人员、工具、流程、制度一个都不能少。本文介绍如何通过SOAR安全事件编排自动化响应进行实战化的安全运营。

一、企业安全运营的通点

1. 手段不足,事件响应时间长
目前安全事件的处置常常需要涉及到不同部门、不同的安全设备之间的协同联动,依靠人工电话协同、邮件协同等手段,缺少统一的安全管理和自动化编排系统,不能将繁杂安全运行过程梳理为任务和剧本,把分散的安全工具与功能转化为可编程的应用和动作。人工方式协同事件长,效率低。

2. 单兵作战,安全运营效率低
安全设备众多,多厂商多类型安全设备,无法有效的形成合力,每类设备都要有人单独的维护、监控、处置,无法形成合力。没有统一的运营系统,无法将团队、工具和流程的高度协同起来,覆盖安全运行的防护、检测、响应等各个环节,安全运营效率低。

3. 人员匮乏,运营知识无积累
安全运营往往借助于外部的安全运营支撑力量,尤其是重保期间过度依赖厂商资源,重保结束后并没有形成知识积累;另一方面由于安全运营人员匮乏,技能水平受困于重复性劳动难以提升,而优秀的工程师的经验也难以形成标准化的流程和动作。

二、企业安全运营的目标

针对威胁事件及安全运营痛点问题,通过建设安全编排功能实现自动化响应处置能力,完成原来需要多人多系统多界面在线协同才能处置的安全任务,简化威胁管理难度,提升响应处置效率,保障应急处置质量。从防护、检测、响应、处置等维度,形成立体防护效果,提升网络安全自动化响应处置及统一作战指挥能力。

1. 实现多场景剧本编排能力
安全编排功能实现自动化响应处置,核心能力是要实现多场景的剧本灵活编排能力,通过可视化拖拽编排方式快速创建剧本,为安全处置提供上下文,避免传统运维要在不同页面间进行跳转切换,降低安全事件处置复杂度。剧本一旦创建成功启用,后续触发剧本的事件即可通过自动化方式进行处置,降低了不同部门间协同沟通、流程流转消耗的成本。解决现有安全事件处置依靠电话、邮件进行信息传递,依靠人工进行威胁处置慢的问题。

2.具备灵活的设备对接能力
打通告警、事件与安全处置设备之间已有的壁垒,消除异构环境下异构设备无法协同、联动的问题,提供标准化的处置派单接口,实现设备的处置联动。具备低代码开发和编排能力使安全设备快速的融入到剧本流程进行灵活调度。解决异构安全设备间集成、联动处置的问题,实现多源异构安全设备的联动处置能力提升。

3. 基于实际运营的知识积累
实现在安全运营过程的统一的数字化、标准化的安全运营管理流程,在实际的运营过程中将经验固化成剧本流程,以应对繁杂和重复的工作,降低安全事件处置管理成本,降低安全人员工作强度和工作经验能力等的高要求;记录安全事件数据,以可视化的形成评估处理结果,减少人员差异带来的不可控性,并减少对新安全运维分析人员的培训成本。

三、SOAR的核心能力

SOAR整体架构

安全事件处置通过安全编排与自动化响应SOAR模块实现,SOAR对接安全大数据分析引擎分析的产生的安全事件或其他如态势感知、日志系统等安全设备的安全事件,通过灵活的剧本编排实现自动的派发工单、自动化分析处置、联动设备响应,实现数据交互与业务同步,促进人、工具、流程的协同,进一步推动自动化安全运营能力落地。SOAR应该具备三大核心能力,编排、自动化、响应,参见《认识SOAR-安全事件编排自动化响应》

编排

SOAR中的关键词是编排,这是在使用自动化和响应之前必须构建的关键组件。SOAR的编排体现的是一种协调和决策的能力,针对复杂性的安全事件,通过编排将分析过程中各种复杂性分析流程和处理平台进行组合。分析涉及多种数据或平台,如SIEM分析平台、漏洞管理平台、情报数据、资产数据等。处置响应的编排也涉及到很多平台或设备,如EDR管理平台、运维管理平台、工单管理平台、WAF设备、防火墙等。仅仅以技术为中心的安全保障已不再能满足现状,将人员和流程的编排才能保证安全流程真正高效的运行。SOAR的终极目标就是实现技术、流程、人员的无缝编排。

自动化

SOAR的自动化体现在三个方面,面对需要处理的安全事件能够根据策略自动选择编排的剧本、自动执行剧本的操作流程、根据决策结果自动联动设备进行防护阻断等行动策略。它允许剧本(常称为Playbooks)在安全流程的部分或全部内容上执行多个任务,将线性剧本串联起来。虽然线性剧本可能更容易创建,但只适用于处理决策需求较少的工作流。编排和自动化比线性剧本的最大优势就是其灵活性,为支持全自动化和半自动化的决策,需要更加灵活的工作流和执行剧本。SOAR能够识别这些决策模式,并基于以往事件中的执行操作,自动推荐新事件的剧本、执行剧本操作流程,自动化分析决策,根据决策结果自动下发防护阻断的行动策略。

响应

安全事件响应包括告警管理、工单管理、案件管理等功能。告警管理的核心不仅是对告警安全事件的收集、展示和响应,更强调告警分诊和告警调查。只有通过告警分诊和告警调查才能提升告警的质量,减少告警的数量。工单管理适用于中大型的安全运维团队协同化、流程化地进行告警处置与响应,并且确保响应过程可记录、可度量、可考核。案件管理是现代安全事件响应管理的核心能力。案件管理帮助用户对一组相关的告警进行流程化、持续化的调查分析与响应处置,并不断积累该案件相关的痕迹物证 (IOC) 和攻击者的战技过程指标信息 (TTP)。多个案件并行执行,从而持续化地对一系列安全事件进行追踪处置。

四、SOAR的安全运营实战

SOAR的安全运营实战,是通过编排好的安全剧本实现人员、流程、工具与知识的贯穿,实现跨区域、跨组织、跨业务、跨设备(系统)安全事件高效运营。
整体流程

在HW及日常安全运营工作中,针对安全设备的统一监控处置、员工办公电脑的安全告警处置、HW重保安全事件处置等典型场景已得到充分实战化应用,通过安全事件的统一管理,从防护、检测、响应、处置等维度,提高了处置效率。可以在实际的安全运营过程中不断的丰富和优化剧本流程。有效支撑网络安全事件运营工作持续向前发展。

场景1:员工电脑中毒安全事件场景

员工电脑中毒安全事件主要是由员工办公终端电脑EDR检测出的病毒、木马后门等恶意软件,SOAR平台对EDR的告警数据进行统一的采集分析,形成场景化事件后通过SOAR进行告警通知,敦促员工对办公电脑进行杀毒处置。

  • 业务流程
    该流程为自动化的流程,SOAR平台接收到员工中毒的安全事件信息后,自动发邮件或发短信通知员工,员工收到告警通知信息后对自己的办公终端电脑进行杀毒处理。如果三天内还没有处理,将继续发邮件或短信进行通知告警。

具体实战剧本流程如下图所示:
员工电脑中毒安全事件

  • 人员配置

人员配置如下表所示:

序号 角色名称 所需技能 承担的工作内容
1 企业员工 能够维护自己的办公终端电脑完成自己办公终端电脑的安全。 进行杀毒软件的安装、病毒库升级、杀毒扫描。

场景2:安全设备告警安全事件场景

安全设备告警安全事件主要是由部署在网络环境下的主机安全检测设备、WAF、IPS、蜜罐等探针检测出的各类异常安全事件行为,SOC平台进行统一的采集、分析,最终形成场景化事件,进行派单处置的闭环管理。

  • 业务流程
    1)一线监控人员发现在SOC平台上有触发的安全事件后,根据事件携带的原始安全日志信息进行初步研判分析;
    2)如一线人员研判该事件为误报事件,则直接处置完成,同时记录事件相关的攻击特征值,进一步完善白名单;
    3)如一线人员研判该事件为高风险事件,则将攻击IP地址报送至网络安全运营部安全员,由安全员进行IP地址封堵操作;
    4)当网络安全运营部处置完毕后,通知一线监控人员结束该业务流程,最终形成闭环机制;
    5)如一线人员无法研判该事件严重程度,则上升二线安全分析人员进行深入研判,二线安全分析人员将研判最终结果反馈至一线监控人员,再由一线监控人员根据实际情况选择下一步处置动作。

具体实战剧本流程如下图所示:
安全事件监控处置

  • 人员配置

人员配置如下表所示:

序号 角色名称 所需技能 承担的工作内容
1 安全监控员 能够初步判断安全事件影响范围及基本的应急处理措施 完成简单安全事件的处置工作,督促业务部门完成安全事件处置,做好安全事件处置的全流程管控
2 二线运营员 能够根据安全数据上下文判断安全事件的可信度及影响范围,能够利用各种手段开展攻击溯源及应急响应 完成复杂安全事件的研判工作,为一线监控人员提供技术指导
3 部门安全员 能够掌握本部门各业务系统层面、主机层面的应急流程和实际处置操作方法 配合完成IP地址封堵操作

场景3:重保HW安全事件处置场景

重保HW安全事件主要是由包括WAF设备、VPN、蜜罐、EDR、全流量等各类安全设备检测出的对重点关注的重要靶标系统的各类攻击行为,SOAR平台对这些安全告警事件进行统一的采集、分析,最终形成场景化事件,通过SOAR进行派单调用相关的插件工具进行告警通知、资产判断、情报查询、IP封堵、协同相应的人员进行研判处置等的闭环管理。

  • 业务流程
    1)监控人员发现安全事件后,根据事件携带的原始安全日志信息进行初步研判分析;
    2)如研判组通过溯源研判该事件为误报事件,则直接处置完成,同时记录事件相关的攻击特征值,进一步完善白名单;
    3)如研判组研判该事件为高风险事件,则转处置组进行处置,由处置人员进行确定通过插件自动化实现IP地址封堵操作;
    4)处置组处置完成后进行封堵IP入库,避免被封堵IP的重复告警。

具体实战剧本流程如下图所示:
重保HW事件处置流程

  • 人员配置

人员配置如下表所示:

序号 角色名称 所需技能 承担的工作内容
1 安全监控员 能够初步判断安全事件影响范围及基本的应急处理措施完成简单安全事件的处置工作,督促业务部门完成安全事件处置,做好安全事件处置的全流程管控
2 研判组 能够根据安全数据上下文判断安全事件的可信度及影响范围,能够利用各种手段开展攻击溯源及应急响应 完成复杂安全事件的研判工作,为一线监控人员提供技术指导
3 处置组 对IP进行封堵响应处置。 完成IP地址封堵操作

因为SOAR具有灵活定义剧本的能力,在实际的运营中可以根据自身企业的实际情况,为自身企业量身定制符合自身管理制度要求和人员配置情况的安全运营剧本流程,除了事件处置以外还可以编排如资产稽核管理剧本、暴露面清查剧本、漏洞管理剧本、安全设备巡检剧本等等。

相关制度要求

(一) 企业应建立7*24小时网络安全监测和处置机制,对所辖网络设备和系统平台开展监测,对重要系统应开展专项监测,将安全监测和事件处置统一纳入安全运营中心,事件处置统一由SOAR安全事件编排自动化响应进行处置。

(二) 应将安全工单纳入SOAR工单管控体系。安全运营支撑单位督促安全工单各环节责任人响应和处置,按流程进行超时工单升级,开展工单闭环管控。

(三) 安全运营支撑单位应优化安全监控手段,按月开展告警分析,优化安全设备和平台告警规则,持续提升安全告警准确率。

(四) 安全运营支撑单位应持续关注内外部威胁情报,实时发布威胁预警,提供处置建议和技术支撑,跟踪问题解决,安全运营维护单位应及时评估威胁影响,根据处置建议制定处置方案并实施。


作者博客:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

告警繁杂迷人眼,多源分析见月明

发表于 2023-10-07 | 更新于: 2025-07-11 | 分类于 技术 , 网络安全 | | 阅读次数:
字数统计: 946 | 阅读时长 ≈ 3

告警繁杂迷人眼

随着数字化浪潮的蓬勃兴起,网络安全问题日趋凸显,面对指数级增长的威胁和告警,传统的安全防御往往力不从心。网内业务逻辑不规范、安全设备技术不成熟都会导致安全设备触发告警。如何在海量众多安全告警中识别出真正的网络安全攻击事件成为安全运营的痛点问题。传统的分析手段,没有从威胁来源和攻击者视角来分析问题,从黑客攻击杀伤链来看,检测点和分析手段严重不足。因此需要从多源安全信息数据融合分析,实现网络攻击精准研判和处置。

从黑客攻击的视角,攻击手段多样,往往是多点突破,层层渗透。因此需要根据纵深防御的思路,在网络的出入口、在应用层、在主机层都要部署相应的安全防护检测设备。如:在企业互联网边界出口部署全流量监测设备,分析获取隐藏在流量中的恶意行为;在应用层部署WAF,分析应用层的攻击行为;在主机层面部署EDR,分析主机层面的异常行为。以攻击者的视角从网络攻击路径出发,对网络层、应用层、主机层的多源安全告警进行联动分析,精准确定安全攻击事件。

具体分析方法如下:
多源数据融合分析精准研判思路

多源数据融合分析精准研判思路

1、多源数据采集。对全流量、WAF、主机安全等检测设备的告警数据进行采集,从告警数据中分析出攻击源IP、目的IP、源端口、目的端口、告警内容、告警级别、载荷信息等有效信息。并对告警数据过滤降噪,首先将源IP、目的IP、源端口、目的端口、告警内容相同的重复告警,以及告警级别为提醒的告警过滤掉。对剩下的告警进行针对性分析,针对告警级别为严重或致命的告警,根据告警内容和载荷信息筛选出潜在的针对性攻击。

2、多源数据关联分析。总结人工研判经验,制定分析模型。如在不同层面的安全设备告警日志中发现相同的攻击源IP和目的IP在同一个时间段都产生了安全告警,说明既在网络侧发现了攻击行为又在应用侧和主机侧发现了攻击行为,通过不同层面告警数据的关联分析和交叉验证,可以确定该攻击是属于高可信的安全攻击事件。

3、封堵处置,对攻击源进行封堵。为了避免错误的封堵影响业务,对源IP结合资产台账、黑白名单、情报数据等进行分析过滤,确定不会影响到业务后进行封堵处置。

安全以“检测”为始,以“处置”为终。在攻击者对目标系统造成最终损害之前,制止损害或降低损失是信息安全体系的最终防线,也是及时响应的目标。以攻击者的视角从网络攻击的路径出发,对网络层、应用层、主机层的多源安全告警进行关联分析,精准确定安全攻击事件。在实战中,可通过以数据和情报驱动,采用自适应安全架构,嵌入工具、流程和策略来对抗新一代威胁。


博客地址:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注:微信公众号,一起学习成长!

Python与正则表达式

发表于 2023-10-06 | 更新于: 2025-07-11 | 分类于 技术 , 开发 | | 阅读次数:
字数统计: 2.4k | 阅读时长 ≈ 9

我们在做机器学习项目的时候,很大部分的精力都在做数据的整理,不管是用爬虫在网上爬取数据还是对已有的数据进行整理,往往需要对一些特定的字符串进行处理,正则表达式则是进行数据处理的利器。

一、什么是正则表达式

正则表达式,又称规则表达式,(Regular Expression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为”元字符”),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

简单来说,正则表达式就是使用:字符串定义规则,并通过规则去验证字符串是否匹配。
比如,验证一个字符串是否是符合条件的电子邮箱地址,只需要配置好正则规则,即可匹配任意邮箱。

比如通过正则规则: (^[\w-]+(.[\w-]+)*@[\w-]+(.[\w-]+)+$) 即可匹配一个字符串是否是标准邮箱格式。但如果不使用正则,使用if else来对字符串做判断就非常困难了。

二、Python中如何使用正则表达式

正则表达式的使用分两部分,一是编写模式(规则)文本,也就是正则表达式;二是通过具体的编程语言来使用正则表达式进行使用,在Python语言中通过re 模块使 Python 语言拥有全部的正则表达式功能。

1、正则表达式模式的编写

模式字符串使用特殊的语法来表示一个正则表达,由一些普通字符和一些元字符(metacharacters)组成。

字母和数字表示他们自身。一个正则表达式模式中的字母和数字匹配同样的字符串。
多数字母和数字前加一个反斜杠时会拥有不同的含义。
标点符号只有被转义时才匹配自身,否则它们表示特殊的含义。
反斜杠本身需要使用反斜杠转义。

普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,在最简单的情况下,一个正则表达式看上去就是一个普通的字符串。例如,正则表达式"xiejava"中没有包含任何元字符,它可以匹配"xiejava"和"xiejava1018"等字符串,但是不能匹配"XieJava"。

在刚刚我们只是进行了基础的字符串匹配,正则最强大的功能在于元字符匹配规则,常见的元字符匹配规则如下:

  • 单字符匹配:
字符 功能
. 匹配任意1个字符(除了\n) , .匹配点本身
[ ] 匹配[]中列举的字符
\d 匹配任意数字,等价于 [0-9]
\D 匹配任意非数字
\s 匹配任意空白字符,即空格、tab键,等价于 [\t\n\r\f]
\S 匹配任意非空字符
\w 匹配单词字符,即a-z、A-Z、0-9、
\W 匹配非单词字符
  • 数量匹配:
字符 功能
* 匹配前一个规则的字符出现0至无数次
+ 匹配前一个规则的字符出现1至无数次
? 匹配前一个规则的字符出现0次或1次
{m} 匹配前一个规则的字符出现m次
{m,} 匹配前一个规则的字符出现最少m次
{m,n} 匹配前一个规则的字符出现m到n次
  • 边界匹配:
字符 功能
^ 匹配字符串开头
$ 匹配字符串结尾
\b 匹配一个单词的边界
\B 匹配非单词边界
  • 分组匹配:
字符 功能
| 匹配左右任意一个表达式
() 将括号中字符作为一个分组

示例:
匹配账号,只能由字母和数字组成,长度限制6到10位
规则为: [0-9a-zA-Z]{6, 10}$

匹配QQ号,要求纯数字,长度4-10,第一位不为0
规则为:[1-9][0-9]{4, 10}
[1-9]匹配第一位,[0-9]匹配后面4到10位

匹配邮箱地址,只允许qq、163、189这三种邮箱地址
规则为:[a-zA-Z0-9_.]+@[qq|163|189]+[.a-zA-Z]+

2、Python中re模块的基础使用

Python中re模块常用的正则表达式包括以下四个主要方法:

  • 使用match()进行准确匹配
    re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match() 就返回 none。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import re

account_pattern='^[0-9a-zA-Z]{6,9}$'

account_str1='xiejava1018'
account_str2='xiejava'
account_str3='xie'

result1=re.match(account_pattern,account_str1)
print(result1)
result2=re.match(account_pattern,account_str2)
print(result2)
result3=re.match(account_pattern,account_str3)
print(result3)

运行结果为:

1
2
3
None
<re.Match object; span=(0, 7), match='xiejava'>
None

匹配成功 re.match 方法返回一个匹配的对象,否则返回 None。
我们可以使用 group(num) 或 groups() 匹配对象函数来获取匹配表达式。

1
2
if result2:
print(result2.group())

运行结果为:

1
xiejava
  • 使用search()首次匹配查找
    match()方法是从字符串的开头开始匹配,一旦起始位置不匹配,match() 就返回 none,整个匹配就失败了,它更适合用来检验某个字符串是否符合某个正则表达式的规则。常用来做格式的校验。如要实现在一段文本中查找符合正则表达式的字符串,可以用re.search(),它扫描整个字符串并返回第一个成功的匹配。
1
2
3
4
5
6
7
8
9
10
qq_pattern = '[1-9][0-9]{4,10}'

qq_str1='我的QQ号是:4002692和3641250'

result_qq_match=re.match(qq_pattern,qq_str1)
print(result_qq_match)
result_qq_search=re.search(qq_pattern,qq_str1)
print(result_qq_search)
if result_qq_search:
print(result_qq_search.group())

运行结果:

1
2
3
None
<re.Match object; span=(7, 14), match='4002692'>
4002692

在这可以看出,match()因为是起始位置匹配所以QQ号4002692没有匹配上,而search()它是扫描整个字符串找到第一个匹配成功的就返回了,实际上在这个例子中还有个3641250的QQ号。如果要找到所有的匹配就要用到re.findall()方法了。

  • 使用findall()所有匹配查找
    findall()在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果有多个匹配模式,则返回元组列表,如果没有找到匹配的,则返回空列表。
    注意: match 和 search 是匹配一次 findall 匹配所有。
1
2
result_qq_findall=re.findall(qq_pattern,qq_str1)
print(result_qq_findall)

运行结果:

1
['4002692', '3641250']

可以看到通过re.findall()方法匹配到了两个QQ号。

  • 使用sub()匹配替换
    在做数据处理的时候,经常碰到的场景是找到某个匹配项,替换成一个新的字符串。这时就可以用到re.sub()进行匹配替换了。
1
2
3
4
5
6
email_pattern='[a-zA-Z0-9_\.]+@[qq|163|189]+[\.a-zA-Z]+'
email_str1='我的email是:xiejava@qq.com、xiejava1018@163.com、xiejava@189.com、xiejava@sohu.com'
result_email_findall=re.findall(email_pattern,email_str1)
print(result_email_findall)
email_str2=re.sub('[a-zA-Z0-9_\.]+@','****@',email_str1)
print(email_str2)

运行结果:

1
2
['xiejava@qq.com', 'xiejava1018@163.com', 'xiejava@189.com']
我的email是:****@qq.com、****@163.com、****@189.com、****@sohu.com

在这里可以看到,我们通过re.findall()匹配到了qq、163、189的邮箱。通过re.sub()将所有的邮箱的账号匹配后替换成了****进行脱敏处理。

正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR(|) 它们来指定。如 re.I | re.M 被设置成 I 和 M 标志:

修饰符 描述
re.I 使匹配对大小写不敏感
re.L 做本地化识别(locale-aware)匹配
re.M 多行匹配,影响 ^ 和 $
re.S 使 . 匹配包括换行在内的所有字符
re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.
re.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。

使用实例如下:

1
2
3
4
5
6
7
match_pattern='xiejava'

account_str1='XieJava is xiejava'
result1=re.match(match_pattern,account_str1)
print(result1)
result2=re.match(match_pattern,account_str1,re.I)
print(result2)

运行结果:

1
2
None
<re.Match object; span=(0, 7), match='XieJava'>

可以看到在没有指定re.I的时候没有匹配到XieJava,指定re.I后使匹配对大小写不敏感,可以匹配到Xiejava

三、正则表达式的应用

给定一个正则表达式和另一个字符串,我们可以达到如下的目的:

  1. 判断给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”)
    应用场景为格式效验,如身份证、Email、手机号码的数据效验等。

  2. 可以通过正则表达式,从字符串中获取我们想要的特定部分
    应用场景如:爬虫程序爬取数据时进行信息的提取,从文本中提取特定的部分。

  3. 可以通过正则表示式进行查找替换,将字符串中符合匹配条件的项替换成特定的字符
    应用场景如:机器学习中的数据清洗整理,将某些数据进行查找替换等。


博客地址:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注微信公众号,一起学习、成长!

连续加班几个月,放假还要带电脑,我在思考工作的意义

发表于 2023-09-30 | 更新于: 2025-07-11 | 分类于 人生 | | 阅读次数:
字数统计: 1.5k | 阅读时长 ≈ 4

对于了解IT这个行业的人来说,这个行业的内卷程度超乎了大家的想像,工作真的很累,加班已经成为整个行业的标签。不管是去哪里笔记本电脑都得随身带,就像随时待命的特种兵,接到命令随时马上要展开战斗。有的时候在系统出事或者需求比较紧急的时候,无论哪里都会成为工作场所,可能旅游景点、可能是商场、可能是高铁地铁上、也有可能是路边……

在线系统出bug了他们就是救火员!想必很多人都经历过系统上线后匆忙处理bug,这种时候,就不分周末还是工作日了,更不管白天还是黑夜干就对了!有网友分享了这“经典”的一幕,一天晚上9点多,北京地铁某号线上,这位网友刚下站就看见一个小伙子蹲坐在一个隐蔽的角落,旁边地上放着双肩包,屏幕亮着,小伙正在专心地敲代码。

程序员路边敲代码改bug

作为IT从业者深刻感受到行业之卷,而对于运营商中搞网络安全的从业人员来说那更是“卷王之王”。各种实战演练活动、各种重保活动、安全运营监控值守、各种突发事件应急处置等。连续加班了好几个月,到了国庆假期还得要带上笔记本电脑,生怕有电话进来,基本上没有什么生活质量可言。这段时间,每天早上起床的第一件事就是问自己“这就是我想要的生活吗?”,为此我在思考和寻找工作的意义。

人的本性是趋利避害的,工作这事,本身是违背人本性的——无论什么工作,只要是投入劳力与时间换取物质资料,但在这个时代,工作又是人类最高效的自我满足手段——物质和精神,都是如此。

在《商业模式新生代-个人篇》介绍了工作的四种意义:

  • 工作是谋生手段
    它意味着为了收入而工作,不涉及多少个人因素或满足感。工作即一种实用性活动,就是说完成某事的主要目的是为了得到另一件事。当然作为谋生手段的工作也能产生宝贵的技能和满足感,但其主要目的还是为工作者提供生存基础以追求生活中其他方面的意识。

  • 工作是发展方向
    将工作视为职业,这种观点的前提是工作者的动力源自对成功、成就和身份地位的渴望。此类工作者对工作的态度并不是热情眷恋,而是强调努力工作对自我的回馈,对职业型工作者来说,工作是一种创造、定义、表达、证明和美化自我的方式。将工作视为发展方向是实现人生意义和获得满足感的一个重要来源。

  • 工作是使命召唤
    “天职”这个词源自“天将降大任于斯人也”这一理念。这种“天意”可以是外在动力,如上帝的旨意或社区的需要;也可以是内在动力,如需要向世人展现的天赋使命。这种工作强调的是“个人的义务、责任或使命”。在那个激情燃烧的时代,为社会主义事业奋斗终生是我们的使命召唤;在百年未有之大变局的新时代,突破高科技技术封锁,实现中华民族的伟大复兴是我们的使命召唤。

  • 工作是自我实现
    它一方面体现了工作高度强调兴趣驱动的特征,另一方面淡化了咄咄逼人的“天命”特征。追求自我实现的工作者会选择不同寻常的职业道路,这些选择强调的是个人兴趣而非经济回报或名声威望。这种思考方式也是获得人生意义的一个重要来源。视工作为“自我实现”的人相对来说工作生活更为平衡,他们可以在工作中实现更多的人生意义,同时也不会牺牲家庭欢乐和其他方面的兴趣。

工作对不同的人来说具有不同的意义,工作的意义在很大程度上决定着“我是谁”这个命题的答案。

  • 工作只是生活的手段,享受生活才是目的
    工作是为了更好的生活,它的本质是交换,我们付出时间、经验,换取一部分我们想要的生活自由。我们已经很幸运,大部分的人都能有一份安稳的工作作为谋生手段。不要在谋生的地方找意义,生活才是实现意义的地方。

  • 工作之外的你,才是真正不可替代的
    我们这一生扮演的很多角色都是不可替代的,贴心的朋友、孝顺的子女、操心的家长。唯独工作是可以被替代的,如果你不干这些工作,依然有会有人干。与其把时间都投入到工作中内卷、焦虑、失眠,不如多花时间陪伴家人和朋友。 下班后该玩儿就玩儿,就陪家人就陪家人,把精力分散,而不是用下班时间去焦虑工作,还把这种内耗带到家里。你去运动、去做饭、去旅游、去亲近自然、去看一看花开日落、去体会一下风土人情。


博客地址:http://xiejava.ishareread.com/


“fullbug”微信公众号

关注微信公众号,一起学习、成长!

<1…8910…21>
XieJava

XieJava

203 日志
11 分类
26 标签
RSS
GitHub
友情链接
  • 爱分享读书
  • CSDN
  • 豆瓣
© 2025 XieJava | Site words total count: 419.2k

主题 — NexT.Muse
0%