云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

微软云_小狼云解析_好用

小七 141 0

Azure-Cosmos-real-Threal实时防护

这篇由两部分组成的博客文章是关于组织如何使用azurecosmosdb来满足现实世界需求的系列文章的一部分,以及它给他们带来的不同。在第一部分中,我们将探讨导致Microsoft Azure高级威胁保护团队采用Azure Cosmos DB的挑战以及他们如何使用它。在第二部分中,我们将研究团队努力的结果。将实时安全解决方案转换为云规模Microsoft Azure Advanced Threat Protection是一种基于云的安全服务,它使用客户的本地Azure Active Directory信号来识别、检测和调查高级威胁、受损身份和恶意内幕行为。它于2018年发布,代表着微软高级威胁分析(一种内部解决方案)向Azure的演进。这两种产品都由两个主要部分组成:安装在组织的每个域控制器上的代理或传感器。传感器检查从用户发送到域控制器的流量以及域控制器生成的Windows(ETW)事件的事件跟踪,并将该信息发送到集中的后端。一个集中的后端或中心,它聚集来自所有传感器的信息,了解组织的用户和计算机的行为,并查找可能表明恶意活动的异常情况。Advanced Threat Analytics的中心使用MongoDB的一个内部实例作为其主要数据库,并且至今仍用于本地安装。然而,在开发Azure Advanced Threat Protection center(一种云端托管服务)时,Microsoft需要更具性能和可扩展性的产品。"Azure Advanced Threat Protection的后端需要大规模扩展,每周进行升级,并运行不断发展的高级检测算法,基本上充分利用Azure提供的所有功能和智能,"Yaron Hagai解释说,微软高级威胁分析首席集团工程经理。在为Azure高级威胁保护搜索最佳数据库以存储其实体和配置文件时,Hagai的团队从所有传感器实时了解到的关于每个组织的用户和计算机的数据,制定了以下关键要求:每个客户的弹性可伸缩性:采用Azure高级威胁保护的每个组织都可以安装数百个传感器,每秒可能生成数万个事件。为了了解每个组织的基线并实时应用其异常检测算法,Azure高级威胁保护需要一个能够高效且经济高效地扩展的数据库。易于迁移:Azure高级威胁保护数据模型正在不断发展,以支持检测逻辑的变化。Hagai的团队不想担心不断维护服务代码和不断变化的数据模型之间的向后兼容性,这意味着他们需要一个数据库来支持快速和简单的数据迁移,几乎每一次他们部署的Azure高级威胁保护的新更新。地域复制:与所有Azure服务一样,高级威胁保护必须支持客户的关键灾难恢复和业务连续性需求,包括在极不可能发生的数据中心故障事件中。通过使用地域复制,客户的数据可以从主数据中心复制到备份数据中心,并且在主数据中心发生故障时,Azure高级威胁保护工作负载可以切换到备份数据中心。云中一个可管理的、可扩展的、无模式的数据库团队选择了Azure Cosmos DB作为Azure高级威胁保护的后端数据库。"作为Azure中唯一一个可管理的、可扩展的、无模式的数据库,azurecosmosdb是显而易见的选择它提供了支持我们不断增长的客户群所需的可扩展性,以及增长将给我们的后端服务带来的负担。它还提供了我们存储在每个组织及其计算机和用户上的数据所需的灵活性。它还提供了不断添加新检测和修改现有检测所需的灵活性,这反过来又要求能够不断更改存储在我们Azure Cosmos DB容器中的数据。"容器和隔板在Azure Cosmos DB支持的众多API中,开发团队同时考虑了sqlapi和azurecosmosdbapi for MongoDB for Azure高级威胁保护。最终,他们选择了sqlapi,因为它使他们能够访问一个丰富的、由微软编写的客户端SDK,支持跨全球区域的多宿主,以及低延迟的直接连接模式。开发人员选择为每个租户或客户分配一个azurecosmos数据库。每个数据库有五个容器,每个容器从一个分区开始。"如果客户停止使用Azure高级威胁保护,我们可以轻松删除客户的数据然而,更重要的是,它使我们能够根据每个客户的内部传感器产生的吞吐量独立地缩放每个客户的容器。"在每个客户的一组容器中,两个通常会增长到一个以上的分区:UniqueEntity,它包含组织中计算机和用户的所有元数据,与Active Directory同步。UniqueEntityProfile,它包含UniqueEntity容器中每个实体的行为基线,并由检测逻辑用来识别暗示用户或计算机受损或恶意内部人员的行为异常。"这两个容器都具有非常高的读/写吞吐量,每秒的请求单元数(RU/s)消耗量很大,"Hagai解释道随着容器的增长,Azure Cosmos DB无缝地扩展了容器的存储,一些大型客户已将每个容器的大小扩展到TB,这在虚拟机上的MongoDB是不可能实现的。"每个客户的其他三个容器通常包含少于1000个文档,并且不会超过单个分区。它们包括:SystemProfile,包含为租户学习并应用于基于行为的检测的数据。SystemEntity,其中包含有关租户的配置信息和数据。警报,其中包含由Azure高级威胁保护生成和更新的警报。迁移随着Azure高级威胁保护检测逻辑不断发展和改进,存储在每个客户UniqueEntityProfile容器中的行为数据也在不断发展和改进。为了避免与过时架构向后兼容,Azure Advanced Threat Protection维护了两种迁移机制,每次升级服务时都会运行这些机制,包括对其数据模型的更改:动态:当Azure高级威胁保护从azurecosmos数据库读取文档时,它会检查它们的版本字段。如果版本过期,Azure高级威胁保护会使用Hagai开发团队编写的显式转换逻辑将文档迁移到当前版本。批处理:成功升级后,Azure高级威胁保护启动一个计划任务,将所有客户的所有文档迁移到最新版本,不包括那些已经通过动态机制迁移的文档。这两种迁移机制一起确保在服务升级和数据访问层代码更改后,不会因为解析过时的文档而发生错误。除了显式迁移代码外,不需要向后兼容代码,在后续版本中总是会删除该代码。弹性伸缩和自动备份具有非常高的读/写吞吐量的容器通常在达到其为容器设置的RU/s限制时受到速率限制。当服务的一个节点(每个节点都是一个虚拟机)尝试对容器执行操作并获得"429太多请求"速率限制异常时,它使用Azure服务结构远程处理通过集中的弹性伸缩服务发送请求以提高吞吐量。集中式服务聚合来自多个节点的此类请求,以避免在短时间窗口内多次增加吞吐量,因为这可能是由影响多个节点的单个吞吐量突发引起的。为了最大限度地降低RU/s的总体成本,类似的周期性缩减过程在适当的情况下(例如在每个客户的非工作时间内)减少调配的吞吐量。Azure Advanced Threat Protection利用Azure Cosmos DB的自动备份功能来帮助保护每个容器。备份驻留在Azure Blob存储中,并通过使用地理冗余存储(GRS)复制到另一个区域。Azure Advanced Threat Protection还将客户配置数据复制到另一个区域,从而在发生灾难时实现快速恢复。"我们这样做主要是为了保护传感器配置数据,防止IT管理员在原始数据库丢失时重新配置数百个传感器。Azure Advanced Threat Protection最近开始启用完全地域复制。"Hagai说:"我们已经开始启用地域复制和多区域写入,以便将我们的生产数据无缝、轻松地复制到另一个区域。"这将使我们能够进一步改进和保证服务可用性,并将简化服务交付,而不必维护我们自己的高可用性机制。"继续看第二部分,它涵盖了Azure高级威胁保护团队实施azurecosmos数据库的结果。