你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 Python 的 Azure EASM 数据平面客户端库 - 版本 1.0.0b1
Microsoft Defender 外部攻击面管理 (Defender EASM) 不断发现和映射数字攻击面,以提供在线基础结构的外部视图。 这种可见性使安全和 IT 团队能够识别未知项、确定风险优先级、消除威胁,并将漏洞和公开控制扩展到防火墙之外。 Defender EASM 利用 Microsoft 的抓取技术发现与已知联机基础结构相关的资产,并主动扫描这些资产以不断发现新的连接。 攻击面见解是利用漏洞和基础结构数据生成的,以展示组织关注的关键领域。
源代码 | 包 (pypi) | Api 参考文档 | 产品文档
入门
安装包
pip
python -m pip install azure-defender-easm
从源
python setup.py intall
先决条件
- 使用此包需要 Python 3.7 或更高版本。
- 需要一个 Azure 订阅才能使用此包。
- 现有的 EASM 数据平面客户端实例。
使用 Azure Active Directory 凭据创建
若要使用 Azure Active Directory (AAD) 令牌凭据,请提供从 azure 标识 库获取的所需凭据类型的实例。
若要使用 AAD 进行身份验证,必须先安装 pipazure-identity
设置后,可以从 azure.identity 中选择要使用的 凭据 类型。 例如, DefaultAzureCredential 可用于对客户端进行身份验证:
将 AAD 应用程序的客户端 ID、租户 ID 和客户端密码的值设置为环境变量: AZURE_CLIENT_ID
、 AZURE_TENANT_ID
、 AZURE_CLIENT_SECRET
使用返回的令牌凭据对客户端进行身份验证:
from azure.defender.easm import EasmClient
from azure.identity import DefaultAzureCredential
sub_id = '<your subscription ID here>'
workspace_name = '<your workspace name here>'
resource_group = '<your resource group here>'
region = '<your region here>'
endpoint = f'{region}.easm.defender.microsoft.com'
client = EasmClient(endpoint, resource_group, sub_id, workspace_name, credential=DefaultAzureCredential())
关键概念
基本了解这些术语将有助于开始使用 EASM 客户端库。
资产
Defender EASM 包括以下类型资产的发现:
- 域
- 主机
- 页
- IP 块
- IP 地址
- 自治系统编号 (ASN)
- SSL 证书
- WHOIS 联系人
这些资产类型包括 Defender EASM 中的攻击面清单。 此解决方案发现公开到传统防火墙保护外部开放 Internet 的资产;这些资产需要受到监视和维护,以最大程度地降低风险并改善组织的安全状况。 Microsoft Defender 外部攻击面管理 (Defender EASM) 主动发现和监视这些资产,然后提供关键见解,帮助客户有效地解决其组织中的任何漏洞。
发现
Microsoft Defender 外部攻击面管理 (Defender EASM) 依靠我们的专有发现技术,不断定义组织独特的 Internet 暴露攻击面。 发现技术会扫描组织拥有的已知资产,以发现以前未知和未监视的属性。 发现的资产在客户的清单中编制索引,通过单一虚拟管理平台提供组织所管理的 Web 应用程序、第三方依赖项和 Web 基础结构的动态记录系统。
发现组
自定义发现会整理到发现组中。 它们是独立的种子群集,由单个发现运行组成并按自己的定期计划运行。 用户可以选择整理其发现组,以对公司和工作流最有利的方式来划分资产。 常见选项包括按负责的团队/业务部门、品牌或子公司进行整理。
示例
按照“使用 Azure Active Directory 凭据创建”部分所示进行身份验证后,可以开始生成清单,如下所示:
创建发现组
from azure.defender.easm import EasmClient
from azure.identity import DefaultAzureCredential
sub_id = '<your subscription ID here>'
workspace_name = '<your workspace name here>'
resource_group = '<your resource group here>'
region = '<your region here>'
endpoint = f'{region}.easm.defender.microsoft.com'
client = EasmClient(endpoint, resource_group, sub_id, workspace_name, credential=DefaultAzureCredential())
client.discovery_groups.put("example group", {
'seeds': [
{'kind': 'host', 'name': 'example.org'}
]
})
client.discovery_groups.run("example group")
查看资产
from azure.defender.easm import EasmClient
from azure.identity import DefaultAzureCredential
sub_id = '<your subscription ID here>'
workspace_name = '<your workspace name here>'
resource_group = '<your resource group here>'
region = '<your region here>'
endpoint = f'{region}.easm.defender.microsoft.com'
client = EasmClient(endpoint, resource_group, sub_id, workspace_name, credential=DefaultAzureCredential())
for asset in client.assets.list():
print(f'{asset.kind}: {asset.name}')
更多示例
可以在此存储库 的示例目录中 查看更多示例
故障排除
后续步骤
贡献
本项目欢迎贡献和建议。 大多数贡献要求你同意贡献者许可协议 (CLA),并声明你有权(并且确实有权)授予我们使用你的贡献的权利。 有关详细信息,请访问 https://cla.microsoft.com 。
提交拉取请求时,CLA 机器人将自动确定你是否需要提供 CLA,并相应地修饰 PR(例如标签、注释)。 直接按机器人提供的说明操作。 只需使用 CLA 对所有存储库执行一次这样的操作。
本项目采用 Microsoft 开源行为准则。 有关详细信息,请参阅“行为准则常见问题解答”,如有其他任何问题或意见,请联系 opencode@microsoft.com。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈