Defender for Storage 中的恶意软件扫描
Defender for Storage 中的恶意软件扫描通过使用 Microsoft Defender 防病毒功能对上传内容准实时执行完全恶意软件扫描,可帮助保护 Azure Blob 存储免受恶意内容的攻击。 它旨在帮助满足处理不受信任内容的安全性和合规性要求。
恶意软件扫描功能是一种无代理软件即服务 (SaaS) 解决方案,支持大规模简单设置,无需维护,并支持大规模自动响应。
恶意软件上传是云存储上最大的威胁
上传到云存储的内容可能是恶意软件。 存储帐户可以是组织的恶意软件入口点和恶意软件分发点。 要保护组织免受此威胁,必须在访问云存储中的内容之前扫描恶意软件。
Defender for Storage 中的恶意软件扫描有助于保护存储帐户免受恶意内容的攻击
- 一种内置 SaaS 解决方案,允许在无需维护的情况下大规模实现简单启用。
- 使用 Microsoft Defender 防病毒 (MDAV) 的综合反恶意软件功能,可捕获多态和变形恶意软件。
- 扫描每个文件类型(包括 zip 文件等存档)并返回每次扫描的结果。 文件大小限制为 2 GB。
- 支持大规模响应 - 根据 Blob 的索引标记或事件网格事件删除或隔离可疑文件。
- 当恶意软件扫描识别到恶意文件时,将生成详细的 Microsoft Defender for Cloud 安全警报。
- 旨在帮助满足扫描上传到存储的不受信任内容的安全性和合规性要求,包括记录每个扫描结果的选项。
常见用例和场景
Defender for Storage 中恶意软件扫描的一些常见用例和方案包括:
- Web 应用程序:许多云 Web 应用程序允许用户将内容上传到存储。 这允许对税务应用、CV 上传 HR 站点和收据上传等应用程序进行低维护和可缩放的存储。
- 内容保护:视频和照片等资产通常在内部大规模共享和分发,并共享和分发到外部参与方。 CDN(内容分发网络)和内容中心是典型的恶意软件分发机会。
- 合规性要求:遵守合规性标准(如全国标准与技术研究所、全球银行间金融电信协会、一般数据保护条例等)的资源需要可靠的安全做法,其中包括恶意软件扫描。 对于在受监管行业或地区运营的组织而言,这一点至关重要。
- 第三方集成:第三方数据可能来自各种来源,并非所有数据都可能具有可靠的安全做法,例如业务合作伙伴、开发人员和承包商。 扫描恶意软件有助于确保此数据不会给系统带来安全风险。
- 协作平台:与文件共享类似,团队使用云存储持续共享内容以及跨团队和组织进行协作。 扫描恶意软件可确保安全协作。
- 数据管道:通过 ETL(提取、转换和加载)过程迁移的数据可能来自多个源,并且可能包括恶意软件。 扫描恶意软件有助于确保这些管道的完整性。
- 机器学习训练数据:训练数据的质量和安全性对于有效的机器学习模型至关重要。 请务必确保这些数据集干净且安全,尤其是它们包含用户生成的内容或来自外部源的数据时。
恶意软件扫描是一项准实时服务。 扫描时间可能会有所不同,具体取决于扫描的文件大小或文件类型以及服务或存储帐户上的负载。 Microsoft 一直致力于减少总体扫描时间,但是在设计基于服务的用户体验时,应考虑到扫描时间的这种可变性。
先决条件
若要启用和配置恶意软件扫描,必须具有所有者角色(例如订阅所有者或存储帐户所有者)或具有必要数据操作的特定角色。 详细了解所需权限。
可以为订阅 大规模启用和配置恶意软件扫描,同时对配置单个存储帐户的功能保持精细控制。 可通过多种方式启用和配置恶意软件扫描:Azure 内置策略(建议的方法),以编程方式使用基础结构即代码模板(包括 Terraform、Bicep 和 Azure 资源管理器 [ARM] 模板)、使用 Azure 门户或直接通过 REST API。
恶意软件扫描的工作原理是什么?
上传时恶意软件扫描
上传时触发器
将 Blob 上传到受保护的存储帐户时,会触发恶意软件扫描。 所有上传方法都会触发扫描。 修改 Blob 是一项上传操作,因此更新后会扫描修改后的内容。
扫描区域和数据保留
使用 Microsoft Defender 防病毒技术的恶意软件扫描服务读取 Blob。 恶意软件扫描会扫描“内存中”内容,并在扫描后立即删除扫描的文件。 内容不会保留。 扫描发生在存储帐户的同一区域中。 在某些情况下,当文件可疑且需要更多数据时,恶意软件扫描可能会通过 Microsoft Defender for Endpoint 在扫描区域之外共享文件元数据,其中包括分类为客户数据的元数据(例如安全哈希算法 SHA-256 哈希)。
访问客户数据
恶意软件扫描服务需要访问你的数据来扫描数据是否有恶意软件。 在服务启用期间,将会在 Azure 订阅中新建名为 StorageDataScanner
的数据扫描程序资源。 此资源被授予“存储 Blob 数据所有者”角色分配,可出于恶意软件扫描和敏感数据发现目的来访问和更改数据。
支持现成的专用终结点
使用专用终结点,同时维护数据隐私的存储帐户支持 Defender for Storage 中的恶意软件扫描。
专用终结点提供到 Azure 存储服务的安全连接,可消除公共 Internet 暴露风险,因此被视为最佳做法。
恶意软件扫描的设置
启用恶意软件扫描后,将在环境中自动执行以下操作:
- 对于启用恶意软件扫描的每个存储帐户,将会在存储帐户的同一资源组中创建事件网格系统主题资源 - 由恶意软件扫描服务用于侦听 Blob 上传触发器。 移除此资源会中断恶意软件扫描功能。
- 为了扫描数据,恶意软件扫描服务需要访问你的数据。 在服务启用期间,会在 Azure 订阅中创建名为
StorageDataScanner
的新数据扫描程序资源,并会向其分配系统分配的托管标识。 此资源被授予“存储 Blob 数据所有者”角色分配,可出于恶意软件扫描和敏感数据发现目的来访问数据。
如果将存储帐户“网络配置”设置为“从所选虚拟网络和 IP 地址启用公用网络访问”,则会将 StorageDataScanner
资源添加到存储帐户“网络”配置下的“资源实例”部分,以允许访问扫描数据。
如果要在订阅级别启用恶意软件扫描,则会在 Azure 订阅中创建名为 StorageAccounts/securityOperators/DefenderForStorageSecurityOperator
的新安全操作员资源,并为其分配系统托管标识。 此资源用于在现有存储帐户上启用和修复 Defender for Storage 和恶意软件扫描配置,并检查是否已在要启用的订阅中创建新的存储帐户。 此资源的角色分配包括启用恶意软件扫描所需的特定权限。
恶意软件扫描依赖于某些资源、标识和网络设置来正常工作。 如果你修改或删除其中任何一项,恶意软件扫描将停止工作。 要使其恢复正常操作,可将其关闭并重新打开。
提供扫描结果
可通过四种方法提供恶意软件扫描的扫描结果。 设置后,你将看到扫描结果,即存储帐户中每个上传和扫描文件的 Blob 索引标记,以及当文件被标识为恶意时的 Microsoft Defender For Cloud 安全警报。
可以选择配置其他扫描结果方法,例如事件网格和 Log Analytics,但这些方法需要额外的配置。 在下一部分中,你将了解不同的扫描结果方法。
扫描结果
Blob 索引标记
Blob 索引标记是 Blob 上的元数据字段。 它们使用键值标记属性对存储帐户中的数据进行分类。 这些标记会自动索引,并作为可搜索的多维索引公开,便于你轻松查找数据。 扫描结果简洁,显示了 Blob 元数据中的恶意软件扫描扫描结果和恶意软件扫描扫描时间协调世界时 (UTC)。 其他结果类型(警报、事件、日志)可提供有关恶意软件类型和文件上传操作的详细信息。
Blob 索引标记可供应用程序用来自动执行工作流,但不能防篡改。
Defender for Cloud 安全警报
在检测到恶意文件时,Microsoft Defender for Cloud 会生成 Microsoft Defender for Cloud 安全警报。 要查看警报,请转到 Microsoft Defender for Cloud 安全警报。 安全警报包含文件的详细信息和上下文、恶意软件类型,以及建议的调查和修正步骤。 要使用这些警报进行修正,可以:
- 通过导航到“Microsoft Defender for Cloud”>“安全警报”在 Azure 门户中查看安全警报。
- 基于这些警报配置自动化。
- 将安全警报导出到安全信息管理 (SIEM)。 可以使用 Microsoft Sentinel 连接器或所选的其他 SIEM 连续导出安全警报 Microsoft Sentinel(Microsoft 的 SIEM)。
事件网格事件
事件网格适用于事件驱动的自动化。 这是以可用于自动响应的事件形式以最小延迟获取结果的最快方法。
事件网格自定义主题中的事件可以由多个终结点类型使用。 恶意软件扫描方案最有用的方面是:
- 函数应用(以前称为 Azure Function)- 使用无服务器函数运行代码来实现自动响应,例如移动、删除或隔离。
- Webhook - 用于连接应用程序。
- 事件中心和服务总线队列 - 用于通知下游使用者。
日志分析
你可能想要记录扫描结果以获取合规性证据或调查扫描结果。 通过设置 Log Analytics 工作区目标,可以将每个扫描结果存储在易于查询的集中式日志存储库中。 可以通过导航到 Log Analytics 目标工作区并查找 StorageMalwareScanningResults
表来查看结果。
成本控制
恶意软件扫描按扫描的每 GB 数据计费。 为了提供成本可预测性,恶意软件扫描支持为每个存储帐户设置一个月内扫描的 GB 量上限。
Defender for Storage 中的恶意软件扫描功能在前 30 天试用期内不免费,将从第一天起根据 Defender for Cloud 定价页面上提供的定价方案收费。
“上限”机制旨在为每个存储帐户设置每月扫描限制(以 GB 为单位)来作为有效的成本控制措施。 如果在单个日历月内为存储帐户设置了预定义的扫描限制,则一旦达到此阈值(偏差最多为 20 GB),扫描操作将自动停止,系统将停止扫描文件以查找恶意软件。 上限会在每个月末的午夜 UTC 重置。 更新上限通常需要长达一小时才能生效。
默认情况下,如果未定义特定的上限机制,则建立 5 TB (5,000 GB) 的限制。
可以在单个存储帐户或整个订阅中设置上限机制(订阅上的每个存储帐户将分配订阅级别上定义的限制)。
恶意软件扫描的附加成本
恶意软件扫描使用其他 Azure 服务作为其基础。 这意味着,启用恶意软件扫描后,还需要为它需要的 Azure 服务付费。 这些服务包括 Azure 存储读取操作、Azure 存储 Blob 索引和 Azure 事件网格通知。
处理可能的假正和假负情况
如果怀疑某个文件可能是恶意软件但没有被检测到(假负),或者被错误地检测到(假正),可通过示例提交门户将其提交给我们进行分析。 选择“Microsoft Defender for Storage”作为源。
通过 Defender for Cloud,可抑制假正警报。 请确保使用恶意软件名称或文件哈希来限制抑制规则。
恶意软件扫描不会自动阻止访问或更改对所上传的 Blob 的权限,即使它是恶意的。
限制
不支持的功能和服务
- 不支持的存储帐户:恶意软件扫描不支持旧版 v1 存储帐户。
- 不支持的服务:恶意软件扫描不支持 Azure 文件存储。
- 不支持的区域:Jio 印度西部、韩国南部、南非西部。
- 受 Defender for Storage 支持但不受恶意软件扫描支持的区域。 详细了解 Defender for Storage 的可用性。
- 不支持的 blob 类型:恶意软件扫描不支持追加 blob 和页 blob。
- 不支持的加密:不支持客户端加密 blob,因为服务无法在扫描前对其进行解密。 但是,支持由客户管理的密钥 (CMK) 静态加密的数据。
- 不支持的索引标记结果:启用了分层命名空间的存储帐户 (Azure Data Lake Storage Gen2) 不支持索引标记扫描结果。
- 事件网格:Defender for Storage 中的恶意软件扫描不支持未启用公用网络访问的事件网格主题(即专用终结点连接)。
吞吐容量和 blob 大小限制
- 扫描吞吐量速率限制:对于每个存储帐户,恶意软件扫描每分钟最多可处理 2 GB。 如果文件上传速率暂时超过存储帐户的此阈值,则系统将尝试扫描超出速率限制的文件。 如果文件上传速率一直超过此阈值,则不会扫描某些 blob。
- Blob 扫描限制:对于每个存储帐户,恶意软件扫描每分钟最多可处理 2,000 个文件。 如果文件上传速率暂时超过存储帐户的此阈值,则系统将尝试扫描超出速率限制的文件。 如果文件上传速率一直超过此阈值,则不会扫描某些 blob。
- Blob 大小限制:要扫描的单个 blob 大小上限为 2 GB。 不会扫描大于限制的 blob。
Blob 上传和索引标记更新
将 Blob 上传到存储帐户后,恶意软件扫描将启动其他读取操作并更新索引标记。 在大多数情况下,这些操作不会生成大量负载。
对每秒访问和存储输入/输出操作的影响 (IOPS)
尽管进行扫描过程,但对上传数据的访问不会受到影响,并且对存储 IOPS 的影响是最小的。