Az - 모니터링
Reading time: 6 minutes
tip
AWS 해킹 배우기 및 연습하기:
HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기:
HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
Entra ID - 로그
Entra ID에는 3가지 유형의 로그가 있습니다:
- Sign-in Logs: Sign-in Logs는 성공 여부와 관계없이 모든 인증 시도를 문서화합니다. IP 주소, 위치, 디바이스 정보 및 적용된 conditional access 정책과 같은 세부 정보를 제공하여 사용자 활동을 모니터링하고 의심스러운 로그인 동작이나 잠재적 보안 위협을 감지하는 데 필수적입니다.
- Audit Logs: Audit Logs는 Entra ID 환경 내에서 이루어진 모든 변경 사항의 기록을 제공합니다. 예를 들어 사용자, 그룹, 역할 또는 정책에 대한 업데이트를 캡처합니다. 이러한 로그는 누가 언제 어떤 변경을 했는지 검토할 수 있게 해주므로 규정준수 및 보안 조사에 중요합니다.
- Provisioning Logs: Provisioning Logs는 온프레미스 디렉토리나 SaaS 애플리케이션과 같은 타사 서비스를 통해 테넌트에 프로비저닝된 사용자에 대한 정보를 제공합니다. 이러한 로그는 ID 정보가 어떻게 동기화되는지 이해하는 데 도움이 됩니다.
warning
이 로그들은 무료 버전에서 7 days 동안만 보관되며, P1/P2 버전에서는 30 days, risky signin activity에 대한 security signals에서는 추가로 60일이 보관된다는 점에 유의하세요. 다만, 글로벌 관리자조차도 이들을 더 일찍 수정하거나 삭제할 수 없습니다.
Entra ID - 로그 시스템
- Diagnostic Settings: Diagnostic Settings는 리소스에서 수집하려는 플랫폼 로그 및/또는 메트릭 카테고리 목록과 이를 스트리밍할 하나 이상의 대상지를 지정합니다. 대상지에 대한 정상 사용 요금이 발생합니다. 다양한 로그 카테고리와 해당 로그의 내용에 대해 자세히 알아보세요.
- Destinations:
- Analytics Workspace: Azure Log Analytics를 통한 조사 및 알림 생성.
- Storage account: 정적 분석 및 백업.
- Event hub: 서드파티 SIEM 같은 외부 시스템으로 데이터 스트리밍.
- Monitor partner solutions: Azure Monitor와 비-Microsoft 모니터링 플랫폼 간의 특수 통합.
- Workbooks: Workbooks는 텍스트, log queries, 메트릭 및 매개변수를 결합하여 풍부한 인터랙티브 보고서를 만듭니다.
- Usage & Insights: Entra ID에서 가장 일반적인 활동을 확인하는 데 유용합니다.
Azure Monitor
Azure Monitor의 주요 기능은 다음과 같습니다:
- Activity Logs: Azure Activity Logs는 구독 수준 이벤트 및 관리 작업을 캡처하여 리소스에 대한 변경 사항 및 수행된 작업에 대한 개요를 제공합니다.
- Activily logs는 수정되거나 삭제될 수 없습니다.
- Change Analysis: Change Analysis는 Azure 리소스 전반의 구성 및 상태 변경을 자동으로 감지하고 시각화하여 문제 진단 및 시간 경과에 따른 변경 추적을 돕습니다.
- Alerts: Azure Monitor의 Alerts는 Azure 환경에서 지정된 조건이나 임계값이 충족될 때 트리거되는 자동화된 알림입니다.
- Workbooks: Workbooks는 다양한 소스의 데이터를 결합하고 시각화하여 종합적인 분석을 가능하게 하는 인터랙티브하고 사용자 정의 가능한 대시보드입니다.
- Investigator: Investigator는 로그 데이터와 경고를 심층 분석하여 사건의 원인을 식별하는 데 도움을 줍니다.
- Insights: Insights는 analytics, 성능 메트릭 및 actionable 권장사항(예: Application Insights 또는 VM Insights와 유사)을 제공하여 애플리케이션 및 인프라의 상태와 효율성을 모니터링하고 최적화하도록 돕습니다.
Log Analytics Workspaces
Log Analytics workspaces는 Azure Monitor에서 Azure 리소스 및 온프레미스 환경의 로그 및 성능 데이터를 수집, 분석 및 시각화할 수 있는 중앙 저장소입니다. 주요 내용은 다음과 같습니다:
- Centralized Data Storage: 진단 로그, 성능 메트릭 및 애플리케이션 및 서비스에서 생성된 사용자 지정 로그를 저장하는 중앙 위치 역할을 합니다.
- Powerful Query Capabilities: Kusto Query Language (KQL)를 사용하여 데이터를 쿼리하고 통찰을 생성하며 문제를 해결할 수 있습니다.
- Integration with Monitoring Tools: Log Analytics workspaces는 Azure Monitor, Azure Sentinel 및 Application Insights와 같은 다양한 Azure 서비스와 통합되어 대시보드를 만들고, 알림을 설정하며 환경에 대한 포괄적인 뷰를 제공할 수 있습니다.
요약하면, Log Analytics workspace는 Azure에서 고급 모니터링, 문제 해결 및 보안 분석에 필수적입니다.
리소스의 diagnostic settings에서 데이터를 analytics workspace로 전송하도록 리소스를 구성할 수 있습니다.
Graph vs ARM logging visibility (useful for OPSEC/hunting)
- Microsoft Graph Activity Logs는 기본적으로 활성화되어 있지 않습니다. Graph read 호출을 확인하려면 이를 활성화하고 Event Hubs/Log Analytics/SIEM으로 내보내세요. AzureHound와 같은 도구는 /v1.0/organization에 대한 preflight GET을 수행하며 여기에서 나타납니다; 관찰된 기본 UA: azurehound/v2.x.x.
- Entra ID non-interactive sign-in logs는 스크립트/도구에서 사용되는 identity platform authentication (login.microsoftonline.
)을 기록합니다. - ARM control-plane read/list (HTTP GET) 작업은 일반적으로 Activity Logs에 기록되지 않습니다. 읽기 작업의 가시성은 ARM 관리 평면 호출(management.azure.
)이 아닌 리소스의 Diagnostic Settings에서의 data-plane 엔드포인트(예: *.blob.core.windows.net, *.vault.azure.net)에 의해 제공됩니다. - Microsoft Defender XDR Advanced Hunting GraphApiAuditEvents (preview)는 Graph 호출 및 토큰 식별자를 노출할 수 있지만 UserAgent를 생략할 수 있으며 기본 보존 기간이 제한적입니다.
AzureHound를 hunting할 때는 Entra sign-in logs와 Graph Activity Logs를 session ID, IP, user/object ID로 상관 관계를 분석하고 Graph 요청의 폭발적인 증가와 Activity Log 커버리지를 갖지 않는 ARM 관리 호출을 함께 찾으세요.
Enumeration
Entra ID
# Get last 10 sign-ins
az rest --method get --uri 'https://graph.microsoft.com/v1.0/auditLogs/signIns?$top=10'
# Get last 10 audit logs
az rest --method get --uri 'https://graph.microsoft.com/v1.0/auditLogs/directoryAudits?$top=10'
# Get last 10 provisioning logs
az rest --method get --uri ‘https://graph.microsoft.com/v1.0/auditLogs/provisioning?$top=10’
# Get EntraID Diagnostic Settings
az rest --method get --uri "https://management.azure.com/providers/microsoft.aadiam/diagnosticSettings?api-version=2017-04-01-preview"
# Get Entra ID Workbooks
az rest \
--method POST \
--url "https://management.azure.com/providers/microsoft.resourcegraph/resources?api-version=2021-03-01" \
--headers '{"commandName": "AppInsightsExtension.GetWorkbooksListArg"}' \
--body '{
"subscriptions": ["9291ff6e-6afb-430e-82a4-6f04b2d05c7f"],
"query": "where type =~ \"microsoft.insights/workbooks\" \n| extend sourceId = tostring(properties.sourceId) \n| where sourceId =~ \"Azure Active Directory\" \n| extend DisplayName = tostring(properties.displayName) \n| extend WorkbookType = tostring(properties.category), LastUpdate = todatetime(properties.timeModified) \n| where WorkbookType == \"workbook\"\n| project DisplayName, name, resourceGroup, kind, location, id, type, subscriptionId, tags, WorkbookType, LastUpdate, identity, properties",
"options": {"resultFormat": "table"},
"name": "e4774363-5160-4c09-9d71-2da6c8e3b00a"
}' | jq '.data.rows'
Azure Monitor
# Get last 10 activity logs
az monitor activity-log list --max-events 10
# Get Resource Diagnostic Settings
az rest --url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.DocumentDb/databaseAccounts/<db-name>/providers/microsoft.insights/diagnosticSettings?api-version=2021-05-01-preview"
# Get Entra ID Workbooks
az rest \
--method POST \
--url "https://management.azure.com/providers/microsoft.resourcegraph/resources?api-version=2021-03-01" \
--headers '{"commandName": "AppInsightsExtension.GetWorkbooksListArg"}' \
--body '{
"content": {},
"commandName": "AppInsightsExtension.GetWorkbooksListArg"
}'
# List Log Analytic groups
az monitor log-analytics workspace list --output table
# List alerts
az monitor metrics alert list --output table
az monitor activity-log alert list --output table
참고자료
tip
AWS 해킹 배우기 및 연습하기:
HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기:
HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
HackTricks Cloud