跳转到主要内容

Python的Microsoft EASM数据平面客户端库

项目描述

Azure EASM数据平面客户端库

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-identity库获取的所需凭据类型的实例。

要使用 AAD 进行身份验证,您必须首先使用pip安装azure-identity

设置完成后,您可以选择从 azure.identity 中使用哪种类型的凭据。例如,可以使用DefaultAzureCredential 来验证客户端

将 AAD 应用程序的客户端 ID、租户 ID 和客户端机密作为环境变量设置值:AZURE_CLIENT_IDAZURE_TENANT_IDAZURE_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 地址
  • 自治系统编号 (ASNs)
  • SSL 证书
  • WHOIS 联系人

这些资产类型构成了 Defender EASM 中的攻击面清单。此解决方案发现面向外部的资产,这些资产暴露在传统防火墙保护之外的开放互联网上;它们需要被监控和维护,以最小化风险并提高组织的网络安全状况。Microsoft Defender External Attack Surface Management (Defender EASM) 活跃地发现和监控这些资产,然后呈现关键见解,帮助客户高效地解决其组织中的任何漏洞。

发现

Microsoft Defender External Attack Surface Management (Defender EASM) 依赖于我们专有的发现技术来持续定义组织的独特互联网暴露攻击面。发现扫描组织拥有的已知资产,以发现先前未知和未监控的属性。发现的资产在客户的清单中进行索引,通过一个统一的视图提供组织管理下的网络应用程序、第三方依赖项和 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的仓库中做一次。

本项目采用了微软开源行为准则。更多信息,请参阅行为准则常见问题解答或通过opencode@microsoft.com联系以提出任何额外问题或评论。

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

azure-defender-easm-1.0.0b1.zip (119.8 kB 查看哈希)

上传时间

构建分布

azure_defender_easm-1.0.0b1-py3-none-any.whl (96.2 kB 查看哈希)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面