Python 用 Azure EASM データ プレーン クライアント ライブラリ - バージョン 1.0.0b1

"Microsoft Defender External Attack Surface Management (Defender EASM)" は、オンライン インフラストラクチャの外部への露出を示すために、デジタル攻撃対象領域を継続的に検出してマップします。 このように可視化することで、セキュリティ チームと IT チームは、不明な領域を特定し、リスクの優先順位を付け、脅威を排除し、ファイアウォールを越えて脆弱性と露出の制御を拡張することができます。 Defender EASM は、Microsoft のクロール テクノロジを利用して、既知のオンライン インフラストラクチャに関連する資産を検出し、これらの資産をアクティブにスキャンすることにより、新しい接続を継続的に検出します。 Attack Surface Insights は、脆弱性とインフラストラクチャのデータを利用して、組織にとって重要な関心領域を示すために生成されます。

ソースコード | パッケージ (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 には、次の種類の資産の検出が含まれています。

  • ドメイン
  • Hosts
  • Pages
  • IP ブロック
  • IP アドレス
  • 自律システム番号 (ASN)
  • SSL 証明書
  • WHOIS 連絡先

これらの種類の資産は、Defender EASM の攻撃面インベントリで構成されます。 このソリューションは、従来のファイアウォール保護の外側にある、開かれたインターネットに公開されている外部接続資産を検出します。これらの資産は、リスクを最小限に抑え、組織のセキュリティ体制を向上させるために、監視してメンテナンスする必要があります。 Microsoft Defender 外部攻撃面管理 (Defender EASM) は、これらの資産を積極的に検出して監視し、顧客が組織内の脆弱性に効率的に対処するのに役立つ重要な分析情報を表示します。

検出

Microsoft Defender 外部攻撃面管理 (Defender EASM) は、マイクロソフト独自の検出テクノロジを利用して、組織固有のインターネットに公開されている攻撃面を継続的に定義します。 検出では、組織が所有する既知の資産をスキャンして、以前は不明で監視されていなかったプロパティを検出します。 検出された資産は、顧客のインベントリにインデックスが作成され、Web アプリケーション、サード パーティの依存関係、 Web インフラストラクチャの記録を 1 つのウィンドウで組織の管理下に置く動的なシステムを提供します。

探索グループ

カスタム検出は、検出グループに編成されます。 これらは、1 回の検出実行で構成され、独自の繰り返しスケジュールで動作する独立したシード クラスターです。 ユーザーは、会社やワークフローに最適な方法で資産を表すために、検出グループを編成できます。 一般的には、担当チーム/部署、ブランド、または子会社別に編成します。

「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}')

その他の例

その他の例は、このリポジトリの samples ディレクトリ で確認できます

トラブルシューティング

次のステップ

共同作成

このプロジェクトでは、共同作成と提案を歓迎しています。 ほとんどの共同作成では、共同作成者使用許諾契約書 (CLA) にご同意いただき、ご自身の共同作成内容を使用する権利を Microsoft に供与する権利をお持ちであり、かつ実際に供与することを宣言していただく必要があります。 詳細については、 https://cla.microsoft.com を参照してください。

pull request を送信すると、CLA を提供して PR (ラベル、コメントなど) を適宜装飾する必要があるかどうかを CLA ボットが自動的に決定します。 ボットによって提供される手順にそのまま従ってください。 この操作は、Microsoft の CLA を使用するすべてのリポジトリについて、1 回だけ行う必要があります。

このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳細については、「倫理規定の FAQ」をご覧ください。追加の質問やコメントがある場合は opencode@microsoft.com にお問い合わせください。