다음을 통해 공유


Python용 Azure EASM Data Plane 클라이언트 라이브러리 - 버전 1.0.0b1

Microsoft Defender EASM(Defender 외부 공격 표면 관리)은 디지털 공격 표면을 지속적으로 검색하고 매핑하여 온라인 인프라의 외부를 보여 줍니다. 이러한 가시성을 통해 보안 및 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 자격 증명을 사용하여 만들기

AAD(Azure Active Directory) 토큰 자격 증명을 사용하려면 azure-identity 라이브러리에서 가져온 원하는 자격 증명 유형의 인스턴스를 제공합니다.

AAD를 사용하여 인증하려면 먼저 pip 설치를 수행해야 합니다. azure-identity

설치 후 azure.identity에서 사용할 자격 증명 유형을 선택할 수 있습니다. 예를 들어 DefaultAzureCredential을 사용하여 클라이언트를 인증할 수 있습니다.

AAD 애플리케이션의 클라이언트 ID, 테넌트 ID 및 클라이언트 암호 값을 환경 변수로 설정합니다. 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 클라이언트 라이브러리를 시작하는 데 도움이 됩니다.

Assets

Defender EASM에는 다음과 같은 종류의 자산 검색이 포함됩니다.

  • 도메인
  • 호스트
  • 페이지
  • IP 블록
  • IP 주소
  • ASN(자율 시스템 번호)
  • SSL 인증서
  • WHOIS 연락처

이러한 자산 형식은 Defender EASM의 공격 표면 인벤토리를 구성합니다. 이 솔루션은 기존 방화벽 보호 외부의 개방형 인터넷에 노출된 외부 자산을 검색합니다. 위험을 최소화하고 조직의 보안 태세를 개선하기 위해 모니터링하고 유지 관리해야 합니다. defender EASM(Microsoft Defender 외부 공격 표면 관리)은 이러한 자산을 적극적으로 검색하고 모니터링한 다음 고객이 조직의 취약성을 효율적으로 해결하는 데 도움이 되는 주요 인사이트를 표시합니다.

검색

Microsoft Defender EASM(외부 공격 표면 관리)은 독점 검색 기술을 사용하여 조직의 고유한 인터넷 노출 공격 표면을 지속적으로 정의합니다. 검색은 조직 소유의 알려진 자산을 검사하여 이전에 알려지지 않았고 모니터링되지 않은 속성을 발견합니다. 검색된 자산은 고객의 인벤토리에 인덱싱되어 조직에서 단일 창을 통해 관리하는 웹 애플리케이션, 타사 종속성 및 웹 인프라의 동적 레코드 시스템을 제공합니다.

검색 그룹

사용자 지정 검색은 검색 그룹으로 구성됩니다. 단일 검색 실행을 구성하고 자체 되풀이 일정에 따라 작동하는 독립적인 시드 클러스터입니다. 사용자는 검색 그룹을 구성하여 회사와 워크플로에 가장 적합한 방식으로 자산을 설명하도록 선택할 수 있습니다. 일반적인 옵션으로는 책임 있는 팀/사업부, 브랜드 또는 자회사별 구성이 포함됩니다.

예제

"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을 적절하게 데코레이팅해야 하는지 여부를 자동으로 결정합니다(예: 레이블, 설명). 봇에서 제공하는 지침을 따르기만 하면 됩니다. 이 작업은 CLA를 사용하여 모든 리포지토리에서 한 번만 수행하면 됩니다.

이 프로젝트에는 Microsoft Open Source Code of Conduct(Microsoft 오픈 소스 준수 사항)가 적용됩니다. 자세한 내용은 준수 사항 FAQ를 참조하거나 opencode@microsoft.com에 추가 질문 또는 의견을 알려주세요.