| name | analyzing-azure-activity-logs-for-threats |
| description | Queries Azure Monitor activity logs and sign-in logs via azure-monitor-query to detect suspicious administrative operations, impossible travel, privilege escalation, and resource modifications. Builds KQL queries for threat hunting in Azure environments. Use when investigating suspicious Azure tenant activity or building cloud SIEM detections.
|
| domain | cybersecurity |
| tags | ["azure","cloud-security","azure-monitor","kql","threat-hunting","activity-logs"] |
| subdomain | security-operations |
| version | 1.0 |
| author | oyi77 |
| license | Apache-2.0 |
| nist_csf | ["DE.CM-01","RS.MA-01","GV.OV-01","DE.AE-02"] |
Analyzing Azure Activity Logs For Threats
Overview
Cybersecurity skill for analyzing azure activity logs for threats. Follows industry best practices and security standards.
When to Use
Trigger phrases:
-
"analyzing azure activity logs for threats"
-
"When investigating security incidents that require analyzing azure activity logs"
-
"When building detection rules or threat hunting queries for this domain"
-
"When SOC analysts need structured procedures for this analysis type"
-
When investigating security incidents that require analyzing azure activity logs for threats
-
When building detection rules or threat hunting queries for this domain
-
When SOC analysts need structured procedures for this analysis type
-
When validating security monitoring coverage for related attack techniques
When NOT to Use
- When you lack proper authorization for testing
- For production systems without change management
- When the task requires legal or compliance expertise beyond technical scope
Prerequisites
- Familiarity with security operations concepts and tools
- Access to a test or lab environment for safe execution
- Python 3.8+ with required dependencies installed
- Appropriate authorization for any testing activities
Workflow
import re
IOC_PATTERNS = {
"ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",
"domain": r"\b[a-z0-9-]+\.[a-z]{2,}\b",
"hash_md5": r"\b[a-f0-9]{32}\b",
"hash_sha256": r"\b[a-f0-9]{64}\b",
}
def extract_iocs(text: str) -> dict:
return {k: re.findall(v, text) for k, v in IOC_PATTERNS.items()}