Skip to content
Back to skills

Webapp Analyzing Azure Activity Logs For Threats

ASecurity

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.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
securitypythonrustgoreactazureterraformtestinggitsecurity

Works with

  • cli

Security analysis

A100/100

Scanned November 7, 2026

npx -y skills add bitbytelabio/arsenal --skill webapp-analyzing-azure-activity-logs-for-threats --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Webapp Analyzing Azure Activity Logs For Threats?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Webapp Analyzing Azure Activity Logs For Threats
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bitbytelabio-webapp-analyzing-azure-activity-logs-for-threats/badge)](https://www.skillsdirectory.com/skills/bitbytelabio-webapp-analyzing-azure-activity-logs-for-threats)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: webapp-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.
domain: webapp
category: security-operations
hide: true
license: Apache-2.0
metadata:
  manifest_entry: src/corpus/webapp-analyzing-azure-activity-logs-for-threats/SKILL.md
---
# Analyzing Azure Activity Logs for Threats


## When to Use

- 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

## Detection Gaps & Validation

- **`AzureActivity` ≠ `AuditLogs` ≠ `SigninLogs`:** role-assignment writes land in `AzureActivity` (`operationName` `MICROSOFT.AUTHORIZATION/ROLEASSIGNMENTS/WRITE`), but Azure AD directory-role grants (Global Admin) only appear in `AuditLogs` (`OperationName == "Add member to role"`). Querying one table misses the other entire escalation path.
- **Plane gap:** `AzureActivity` covers ARM control-plane only — data-plane actions (Key Vault secret *reads*, Storage blob GETs) require resource-specific diagnostic logs (`AzureDiagnostics`/`StorageRead`) to be explicitly enabled, or the access is invisible.
- **Impossible-travel false negatives:** attackers using residential proxies or Azure datacenter egress in the victim's region defeat geo-velocity. Correlate on device/`ResultType`, `AuthenticationRequirement`, and new `UserAgent` rather than geo alone.
- **Service-principal blind spot:** SP and managed-identity sign-ins are in `AADServicePrincipalSignInLogs`/`AADManagedIdentitySignInLogs`, not `SigninLogs` — automation-based privilege abuse is missed if you only watch interactive sign-ins.
- **Validate the query fires:** in a lab, assign a role and confirm the `take 10` returns the event within the diagnostic-settings latency (often 5–15 min); a 24h `timespan` can hide delayed ingestion. Check the workspace actually receives `AzureActivity` (diagnostic setting → Log Analytics) before trusting an empty result.
- **FP tuning:** PIM just-in-time activations, IaC pipelines (Terraform/Bicep service principals), and Azure Policy remediation tasks generate legitimate role writes — exclude their object IDs.

## 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

## Instructions

Use azure-monitor-query to execute KQL queries against Azure Log Analytics workspaces,
detecting suspicious admin operations and sign-in anomalies.

```python
from azure.identity import DefaultAzureCredential
from azure.monitor.query import LogsQueryClient
from datetime import timedelta

credential = DefaultAzureCredential()
client = LogsQueryClient(credential)

response = client.query_workspace(
    workspace_id="WORKSPACE_ID",
    query="AzureActivity | where OperationNameValue has 'MICROSOFT.AUTHORIZATION/ROLEASSIGNMENTS/WRITE' | take 10",
    timespan=timedelta(hours=24),
)
```

Key detection queries:
1. Role assignment changes (privilege escalation)
2. Resource group and subscription modifications
3. Key vault secret access from new IPs
4. Network security group rule changes
5. Conditional access policy modifications

## Examples

```python
# Detect new Global Admin role assignments
query = '''
AuditLogs
| where OperationName == "Add member to role"
| where TargetResources[0].modifiedProperties[0].newValue has "Global Administrator"
'''
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.