| from typing import Optional, List, Dict, Any, Literal |
| from pydantic import BaseModel, Field |
| from datetime import datetime |
|
|
| class Process(BaseModel): |
| name: str |
|
|
| class Actor(BaseModel): |
| process: Optional[Process] = None |
|
|
| class Endpoint(BaseModel): |
| name: str |
|
|
| class ConnectionInfo(BaseModel): |
| direction: Optional[str] = None |
| dst_endpoint: Optional[Endpoint] = None |
|
|
| class NetworkActivityData(BaseModel): |
| connection_info: Optional[ConnectionInfo] = None |
|
|
| class Product(BaseModel): |
| name: str |
| vendor_name: str |
|
|
| class Metadata(BaseModel): |
| version: str = "1.1.0" |
| product: Product |
| original_time: Optional[str] = None |
|
|
| class FindingInfo(BaseModel): |
| title: str |
| desc: str |
| types: List[str] |
|
|
| |
| class NetworkActivityUnmapped(BaseModel): |
| attack_type: Optional[Literal["ROLEPLAY_JAILBREAK", "POISONED_RAG", "ADVERSARIAL_ESCALATION"]] = None |
| attack_vector: Optional[str] = None |
| expected_failure_mode: Optional[str] = None |
| sandbox_id: Optional[str] = None |
| execution_trace: Optional[List[str]] = None |
| rag_context: Optional[List[str]] = None |
|
|
| class NetworkActivityEvent(BaseModel): |
| class_uid: int = 4001 |
| class_name: str = "Network Activity" |
| time: str = Field(default_factory=lambda: datetime.utcnow().isoformat() + "Z") |
| severity_id: int = 3 |
| actor: Optional[Actor] = None |
| network_activity: Optional[NetworkActivityData] = None |
| unmapped: Optional[NetworkActivityUnmapped] = None |
| metadata: Metadata |
|
|
| |
| class ABACheckResults(BaseModel): |
| agbom_violation: bool |
| execution_loop_detected: bool |
| prompt_injection_detected: bool |
| semantic_drift_detected: bool |
|
|
| class DetectionFindingUnmapped(BaseModel): |
| agent_trust_score: float |
| circuit_breaker_recommendation: bool |
| aba_check_results: ABACheckResults |
| evidence: str |
|
|
| class DetectionFindingEvent(BaseModel): |
| class_uid: int = 2004 |
| class_name: str = "Detection Finding" |
| time: str = Field(default_factory=lambda: datetime.utcnow().isoformat() + "Z") |
| severity_id: int |
| finding: FindingInfo |
| actor: Optional[Actor] = None |
| unmapped: Optional[DetectionFindingUnmapped] = None |
| metadata: Metadata |
|
|
| |
| class RemediationActivityUnmapped(BaseModel): |
| quarantine_status: Literal["QUARANTINED", "FAILED", "SKIPPED"] |
| memory_snapshot_preserved: bool = True |
| revoked_tools: List[str] |
| refactored_code: str |
| vulnerability_patched: str |
| jit_token_used: str |
| jit_token_expired_at: str |
| token_invalidated: bool |
|
|
| class RemediationActivityEvent(BaseModel): |
| class_uid: int = 6003 |
| class_name: str = "Remediation Activity" |
| time: str = Field(default_factory=lambda: datetime.utcnow().isoformat() + "Z") |
| severity_id: int = 4 |
| finding_uid: str |
| unmapped: Optional[RemediationActivityUnmapped] = None |
| metadata: Metadata |
|
|