共用方式為


適用于 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 應用程式的用戶端識別碼、租使用者識別碼和用戶端密碼的值設定為環境變數: AZURE_CLIENT_ID 、、 AZURE_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 位址
  • 自治號碼 (ASN)
  • SSL 憑證
  • WHOIS 連絡人

這些資產類型是由 Defender EASM 中的受攻擊面詳細目錄所組成。 此解決方案會探索在傳統防火牆保護外部,且暴露在開放網際網路下的外部面向資產,這些資產必須受到監視和維護,才能將風險降至最低,並改善組織的安全性狀態。 Microsoft Defender 外部受攻擊面管理 (Defender EASM) 主動探索及監視這些資產,然後呈現重要見解,協助客戶有效率地解決其組織中的任何弱點。

探索

Microsoft Defender 外部受攻擊面管理 (Defender EASM) 仰賴我們的專屬探索技術,可持續定義貴組織獨特的網際網路公開攻擊面。 探索會掃描貴組織所擁有的已知資產,以發掘先前未知且未受監視的財產。 探索到的資產會在客戶的詳細目錄中編製索引,以透過單一玻璃窗格提供一個在組織管理下的 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 Bot 會自動判斷您是否需要提供 CLA,並適當地裝飾 PR (例如標籤、註解)。 請遵循 bot 提供的指示。 您只需要使用我們的 CLA 在所有存放庫上執行此動作一次。

此專案採用 Microsoft Open Source Code of Conduct (Microsoft 開放原始碼管理辦法)。 如需詳細資訊,請參閱管理辦法常見問題,或連絡 opencode@microsoft.com 任何其他問題或意見。