When researchers analyzed how Pegasus spyware infected iPhones without the user tapping anything, they found something wild. The attackers sent an iMessage with a fake GIF that targeted Apple's image decompression engine. The decompression math was so flexible that the exploit

Microsoft Threat Intelligence has observed threat actors using agentic AI tools to search public GitHub repositories for exposed secrets and then using stolen secrets for further malicious activity against the compromised organization.

Searching open

Chrome 157 fixes 213 security issues, 7 of them critical.

Two hundred and thirteen is a lot of anything.

The browser is the most patched piece of software most people own. And it's still not enough.

SOC Operations & Automated Incident Response

Problem Statement

SOC Analysts suffer from extreme alert fatigue, triaging thousands of noisy alerts daily. Simple correlation rules produce high false-positive rates. An AI agent is needed to ingest raw SIEM/EDR alerts, query enrichment sources (IP intelligence, asset ownership, active directory details), analyze context, and auto-close benign alerts while escalating genuine threats with pre-compiled briefing notes.

Goal

Build an automated Tier-1 SOC agent that ingests raw security alerts, enriches them with context, determines malicious intent, and produces an incident summary with recommended action steps.

Outcome Measurement

  1. Noise Reduction: False positives auto-resolved with 95% verified accuracy, reducing manual analyst triage load by 65%.
  2. Mean Time to Triage (MTTT): Reduced from 18 minutes down to 12 seconds per alert.

How the Code was Built

The workflow utilizes structured output parsing via Pydantic to ensure reliable risk decisioning (CLOSE_BENIGN, ESCALATE_TIER2, CONTAIN_IMMEDIATELY).

Executable Code

import json
from typing import Literal
from pydantic import BaseModel, Field
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
class TriageDecision(BaseModel):
action: Literal["CLOSE_BENIGN", "ESCALATE_TIER2", "CONTAIN_IMMEDIATELY"] = Field(description="Triage action")
risk_score: int = Field(description="Risk score between 0 and 100")
reasoning: str = Field(description="Detailed triage reasoning based on enriched telemetry")
recommended_playbook: str = Field(description="Name of standard playbook to execute if escalated")
def triage_alert(raw_alert: dict, asset_context: dict, threat_intel: dict) -> TriageDecision:
llm = ChatOpenAI(model="gpt-4o", temperature=0)
structured_llm = llm.with_structured_output(TriageDecision)
prompt = ChatPromptTemplate.from_messages([
("system", "You are an expert Tier-1 SOC Lead Analyst. Analyze the incoming alert alongside asset context and threat intelligence. Make a deterministic triage decision."),
("human", "RAW ALERT:\n{alert}\n\nASSET CONTEXT:\n{asset}\n\nTHREAT INTEL:\n{intel}")
])
chain = prompt | structured_llm
return chain.invoke({
"alert": json.dumps(raw_alert),
"asset": json.dumps(asset_context),
"intel": json.dumps(threat_intel)
})
if __name__ == "__main__":
sample_alert = {"alert_name": "Powershell Executed Base64 Encoded Command", "host": "WORKSTATION-99", "user": "jdoe", "process": "powershell.exe -e aW52b2tlLWV4cHJlc3Npb24="}
sample_asset = {"host": "WORKSTATION-99", "owner": "John Doe", "role": "Financial Analyst", "criticality": "MEDIUM"}
sample_intel = {"hash_reputation": "MALICIOUS", "threat_actor": "Unknown"}
decision = triage_alert(sample_alert, sample_asset, sample_intel)
print(f"Action: {decision.action}")
print(f"Risk Score: {decision.risk_score}/100")
print(f"Reasoning: {decision.reasoning}")
print(f"Playbook: {decision.recommended_playbook}")

Leave a Reply

Trending