Advanced Multi-Agent Security Scenario Generator
Define your system architecture with precision:
Create realistic operational patterns:
Forge comprehensive security scenarios:
Comprehensive output and monitoring:
# Generate baseline telemetry with TopologyGraph types
forge telemetry generate banking-demo --duration 15m --rate 150 --output file --file events.jsonl
# Execute AttackCampaign with multi-vector coordination
forge telemetry campaign banking-attack-campaign.yaml --duration 30m --output http --endpoint https://siem.company.com/events
# Generate HTML visualization using VisualizationGenerator
forge telemetry visualize banking-attack-campaign.yaml --output pinelabs-attack-viz.html --theme dark --layout cose
# Run with specific traffic patterns and PropagationRules
forge telemetry generate banking-demo --pattern business_hours --duration 8h --rate 100
# Campaign orchestration with AttackVector dependencies
forge telemetry campaign --config campaigns/kyc-data-exfiltration.yaml --visualization --output-dir ./attack-results
# Topology configuration matching Go struct TopologyGraph
services:
- id: "svc-onboarding"
name: "Onboarding Service"
endpoint: "https://onboarding.pinelabs.com"
description: "Merchant onboarding and KYC processing"
version: "2.1.0"
apiEndpoints:
- id: "ep-kyc-summary"
name: "KYC Summary Generation"
path: "/agent/kyc/summary"
protocolType: "REST"
httpMethod: "POST"
agents:
- id: "agent-kyc-processor"
name: "KYC Processor Agent"
purpose: "Document verification and compliance checks"
agentType: "DOCUMENT_PROCESSOR"
endpoint: "https://kyc-agent.pinelabs.com"
apiEndpoints:
- id: "ep-doc-analysis"
path: "/analyze/documents"
protocolType: "REST"
dataSources:
- id: "ds-payment-db"
name: "Payment Database"
type: "RDBMS"
connection: "jdbc:postgresql://payment-db:5432/customers"
schema: "customers"
edges:
- id: "agent-kyc-to-onboarding"
sourceId: "agent-kyc-processor"
targetId: "svc-onboarding"
communicationType: "AIAGENT_TO_SVC"
protocol: "HTTPS"
frequency: "high"
# Attack campaign configuration using AttackVector struct
name: "KYC Data Exfiltration Campaign"
objective: "Exfiltrate sensitive customer KYC data"
description: "Multi-vector attack targeting PII data through AI agent compromise"
attackVectors:
- name: "prompt-injection-kyc"
sourceEntity: "agent-kyc-processor"
targetEntity: "ds-payment-db"
edgeType: "ANOMALY_DB_ACCESS"
timeline: "T1"
timelineOverrides:
query_type: "SELECT * FROM customer_kyc_full"
anomaly_type: "UNSEEN_DB_TABLE_ACCESS"
dependencies: []
triggers:
- type: "TIME_BASED"
condition: "after 10m"
probability: 0.8
- name: "external-api-exfiltration"
sourceEntity: "agent-kyc-processor"
targetEntity: "ext-forex-api"
edgeType: "ANOMALY_EXTERNAL_API"
timeline: "T2"
dependencies: ["prompt-injection-kyc"]
triggers:
- type: "DEPENDENCY_BASED"
condition: "requires prompt-injection-kyc"
probability: 0.9
propagationRules:
- sourceVector: "prompt-injection-kyc"
effects:
- targetEntity: "ds-payment-db"
probabilityIncrease: 0.3
intensityMultiplier: 1.5
correlatedDrifts:
- driftType: "volume"
pattern: "database_query_increase"
entities: ["ds-payment-db"]
baselineMultiplier: 3.0
# Select a traffic pattern to see YAML configuration
# Each pattern defines different load characteristics:
# - Request rates and timing
# - Database query patterns
# - Agent coordination scenarios
# - Error rate thresholds
patterns:
business_hours:
description: "Standard business operational hours"
request_rate: "500-1000 req/min"
peak_hours: "9AM-5PM"
database_load: "moderate"
weekend:
description: "Reduced weekend traffic"
request_rate: "50-200 req/min"
peak_hours: "11AM-3PM"
database_load: "low"
# PineLabs Payment System Baseline Configuration
# Defines normal operational patterns for payment processing with KYC and fraud detection
name: "pinelabs-payments-baseline"
description: "Normal operational telemetry for PineLabs payment system"
# Event generation rates (events per minute) - matches actual event schema
rates:
AIAGENT_TO_AIAGENT: 12 # Agent coordination (risk scoring, KYC validation)
AIAGENT_TO_SVC: 18 # Agent calling services (KYC, fraud detection)
SVC_TO_DB: 45 # Service database queries (payment, merchant, settlement)
SVC_TO_SVC: 8 # Service-to-service calls (gateway, reconciliation)
# Business hours schedule (matches traffic patterns)
schedule:
start_hour: 9 # 9 AM IST
end_hour: 17 # 5 PM IST
timezone: "Asia/Kolkata" # PineLabs timezone
weekdays_only: true
# Variance configuration (matches banking-timeline-events.jsonl patterns)
variance:
timing_jitter_ms: 500 # ±500ms timing variance
rate_variance_pct: 20 # ±20% rate variance for payment spikes
latency_base_ms: 75 # Base latency for payment processing
latency_variance_ms: 150 # ±150ms latency variance
# PineLabs entity behavioral patterns (matches topology)
entities:
agents:
agent-kyc-processor:
activity_level: "high"
interaction_patterns: ["kyc_verification", "document_analysis", "compliance_check"]
load_pattern: "business_hours"
database_calls_per_request: 2
agent-risk-scorer:
activity_level: "medium"
interaction_patterns: ["risk_assessment", "fraud_scoring", "mcp_coordination"]
load_pattern: "24x7"
agent-txn-reconciler:
activity_level: "high"
interaction_patterns: ["transaction_reconciliation", "settlement_processing"]
load_pattern: "end_of_month"
services:
svc-onboarding:
load_pattern: "business_hours"
database_calls_per_request: 3
svc-payment-gateway:
load_pattern: "24x7"
database_calls_per_request: 4
svc-fraud-detection:
load_pattern: "24x7"
database_calls_per_request: 2
# Traffic pattern integration (links to pattern selection buttons)
traffic_patterns:
business_hours:
rate_multiplier: 1.0
active_services: ["svc-onboarding", "agent-kyc-processor"]
end_of_month:
rate_multiplier: 4.0
active_services: ["svc-txn-reconciler", "agent-txn-reconciler"]
weekend:
rate_multiplier: 0.3
active_services: ["svc-payment-gateway", "svc-fraud-detection"]
peak_load:
rate_multiplier: 8.0
active_services: ["all"]
# Inter-Agent Collusion Attack Timeline
name: "inter-agent-collusion"
description: "AI agents colluding to bypass security controls"
duration_minutes: 8
attack_start_offset: "3m13s"
# Attack phases
timeline:
- phase: "reconnaissance"
start: "0s"
duration: "45s"
events:
- type: "agent_communication"
source: "agent-banking-orchestrator"
target: "agent-banking-evaluator"
frequency: "every_15s"
anomalies: ["UNUSUAL_FREQUENCY"]
- phase: "manipulation"
start: "2m15s"
duration: "120s"
events:
- type: "agent_communication"
source: "agent-banking-orchestrator"
target: "agent-banking-evaluator"
path: "/assess/risk?override=true"
frequency: "every_30s"
anomalies: ["PARAMETER_INJECTION", "PAYLOAD_SIZE_ANOMALY"]
# Anomaly injection rules
anomalies:
PARAMETER_INJECTION:
probability: 0.8
applies_to: ["path", "query_params"]
PAYLOAD_SIZE_ANOMALY:
probability: 0.6
multiplier: 3.5 # 3.5x normal payload size
{"appGuid":"app-pinelabs-001","communicationType":"SVC_TO_DB","errorRate":"0.008","eventType":"normal","latencyMs":82.34,"protocol":"JDBC","requestId":"req-pinelabs-kyc001","scenarioName":"pinelabs-payments","severity":"INFO","sourceId":"svc-onboarding","sourceIp":"10.10.145.67","statusCode":"200","targetId":"ds-payment-db","timestamp":"2025-08-04T10:15:32+05:30","traceId":"kyc-trace-001"}
{"anomalyDescription":"Injected override=true into KYC verification API call","anomalyType":"PARAMETER_INJECTION","appGuid":"app-pinelabs-001","communicationType":"AIAGENT_TO_SVC","eventType":"anomaly","latencyMs":187.92,"protocol":"HTTPS","protocolData":{"path":"/agent/kyc/summary?override=true&bypass=admin"},"requestId":"req-pinelabs-attack1","scenarioName":"pinelabs-payments","scenarioStep":"Bypass KYC verification controls","securityContext":{"principal":"kyc-agent@pinelabs.com"},"severity":"CRITICAL","sourceId":"agent-kyc-processor","sourceIp":"10.10.28.194","statusCode":"200","targetId":"svc-onboarding","timelineKey":"T2","timestamp":"2025-08-04T10:17:45+05:30","traceId":"attack-kyc-002"}
{"appGuid":"app-pinelabs-001","communicationType":"AIAGENT_TO_AIAGENT","eventType":"normal","latencyMs":124.56,"protocol":"HTTPS","protocolData":{"path":"/agent/coordinate","method":"POST"},"requestId":"req-pinelabs-coord1","scenarioName":"pinelabs-payments","severity":"INFO","sourceId":"agent-kyc-processor","sourceIp":"10.10.89.123","statusCode":"200","targetId":"agent-risk-scorer","timestamp":"2025-08-04T10:18:12+05:30","traceId":"coord-trace-003"}
This guide explains all configuration attributes for SMARE Forge scenarios. All configurations can be written in either YAML or JSON format based on the Golang struct definitions.
scenario:
name: "banking-compromise"
description: "PineLabs payment system attack"
duration: "24h"
start_time: "2024-01-15T00:00:00Z"
# Scenario metadata
tags: ["banking", "payment", "fraud"]
severity: "HIGH"
complexity: "ADVANCED"
# Execution parameters
parallel_execution: true
failure_threshold: 0.3
cleanup_on_exit: true
infrastructure:
services:
- name: "payment-gateway"
type: "REST_API"
endpoints: ["/api/payments", "/api/validation"]
port: 8080
health_check: "/health"
- name: "fraud-detection"
type: "AI_AGENT"
model: "bert-fraud-v2"
confidence_threshold: 0.85
databases:
- name: "transactions-db"
type: "POSTGRESQL"
schema: "banking_v2"
connection_pool: 20
agents:
- name: "kyc-processor"
capabilities: ["DOCUMENT_ANALYSIS", "ID_VERIFICATION"]
memory_limit: "2Gi"
baseline:
normal_behavior:
transaction_patterns:
- pattern: "daily_transactions"
count_range: [1000, 5000]
time_distribution: "business_hours"
- pattern: "kyc_verifications"
success_rate: 0.95
avg_processing_time: "2m"
communication_flows:
- from: "payment-gateway"
to: "fraud-detection"
frequency: "per_transaction"
protocol: "HTTPS"
anomaly_detection:
sensitivity: "MEDIUM"
learning_period: "7d"
alert_threshold: 3.0
attack_campaign:
name: "advanced_payment_fraud"
phases:
- phase: "reconnaissance"
duration: "2h"
techniques: ["T1082", "T1083", "T1087"]
- phase: "initial_access"
duration: "30m"
techniques: ["T1190", "T1566"]
success_criteria: "api_access_gained"
- phase: "persistence"
duration: "1h"
techniques: ["T1078", "T1053"]
attack_vectors:
- vector: "parameter_injection"
target: "kyc_verification_api"
payload: "bypass=admin&override=true"
- vector: "model_poisoning"
target: "fraud_detection_model"
technique: "adversarial_examples"
telemetry:
collection:
metrics:
- name: "transaction_latency"
type: "HISTOGRAM"
buckets: [50, 100, 250, 500, 1000, 2500, 5000]
- name: "fraud_detection_accuracy"
type: "GAUGE"
update_frequency: "1m"
traces:
sampling_rate: 0.1
max_spans: 1000
exporters: ["jaeger", "datadog"]
logs:
level: "INFO"
structured: true
fields: ["timestamp", "trace_id", "severity", "message"]
analysis:
detection_rules:
- rule: "anomalous_transaction_volume"
condition: "transaction_count > baseline_avg * 3"
action: "ALERT"
- rule: "suspicious_parameter_injection"
pattern: ".*bypass.*|.*override.*"
action: "BLOCK"
| Entity Type | Description |
|---|---|
| REST_API | HTTP/REST API endpoints |
| AI_AGENT | AI/ML powered agents |
| DATABASE | Database systems |
| MESSAGE_QUEUE | Message brokers |
| LOAD_BALANCER | Traffic distributors |
| CACHE | Caching layers |
| USER_INTERFACE | Web/mobile frontends |
| EXTERNAL_SVC | Third-party services |
| Attack Type | Description |
|---|---|
| PARAMETER_INJECTION | Malicious parameter manipulation |
| MODEL_POISONING | ML model adversarial attacks |
| PRIVILEGE_ESCALATION | Unauthorized access elevation |
| DATA_EXFILTRATION | Sensitive data theft |
| API_ABUSE | API misuse and exploitation |
| PROMPT_INJECTION | LLM prompt manipulation |
| CREDENTIAL_STUFFING | Stolen credential reuse |
| BUSINESS_LOGIC_BYPASS | Application logic exploitation |
This guide explains all configuration attributes for SMARE Forge scenarios. All configurations can be written in either YAML or JSON format based on the Golang struct definitions.
scenario:
name: "banking-compromise"
description: "PineLabs payment system attack"
duration: "24h"
start_time: "2024-01-15T00:00:00Z"
# Scenario metadata
metadata:
author: "security-team"
version: "1.0.0"
tags: ["payment", "compromise", "APT"]
severity: "critical"
# Execution settings
settings:
parallel_execution: true
max_workers: 10
retry_attempts: 3
timeout: "30m"
infrastructure:
services:
- id: "payment-api"
type: "service"
properties:
host: "api.pinelabs.com"
port: 443
protocol: "https"
criticality: "high"
databases:
- id: "customer-db"
type: "database"
properties:
engine: "postgresql"
version: "14.2"
encrypted: true
agents:
- id: "monitoring-agent"
type: "agent"
properties:
role: "collector"
interval: "30s"
baseline:
normal_behavior:
- entity_id: "payment-api"
patterns:
request_rate: "1000-1500/min"
response_time: "50-200ms"
error_rate: "< 0.1%"
relationships:
- source: "user"
target: "payment-api"
interaction:
protocol: "https"
frequency: "continuous"
data_flow: "bidirectional"
telemetry:
metrics:
- name: "api_requests_total"
type: "counter"
labels: ["endpoint", "status"]
traces:
- service: "payment-api"
sampling_rate: 0.1
attacks:
campaigns:
- id: "lateral-movement"
phases:
- name: "initial-access"
techniques:
- mitre_id: "T1078"
description: "Valid Accounts"
target: "payment-api"
- name: "persistence"
techniques:
- mitre_id: "T1098"
description: "Account Manipulation"
indicators:
- type: "network"
value: "suspicious-domain.com"
severity: "high"
timeline:
- timestamp: "+1h"
action: "reconnaissance"
- timestamp: "+2h"
action: "initial-compromise"
metrics:
exporters:
- type: "prometheus"
endpoint: "/metrics"
interval: "10s"
custom_metrics:
- name: "payment_processed"
type: "histogram"
buckets: [0.1, 0.5, 1, 5]
unit: "seconds"
traces:
exporters:
- type: "otlp"
endpoint: "otel:4317"
sampling:
strategy: "adaptive"
initial_rate: 0.1
max_rate: 1.0
logs:
format: "json"
level: "info"
outputs:
- type: "elasticsearch"
index: "smare-logs"
enrichment:
- add_fields:
scenario_id: "${SCENARIO_ID}"
phase: "${CURRENT_PHASE}"
| Attribute | Type | Description |
|---|---|---|
id |
string | Unique identifier |
type |
enum | service|database|agent|cache|infra |
properties |
map | Custom key-value properties |
criticality |
string | low|medium|high|critical |
tags |
[]string | Metadata tags |
dependencies |
[]string | IDs of dependent entities |
| Attribute | Type | Description |
|---|---|---|
mitre_id |
string | MITRE ATT&CK technique ID |
target |
string | Target entity ID |
duration |
duration | Attack duration |
intensity |
float | 0.0 to 1.0 scale |
indicators |
[]IOC | Generated IOCs |
cleanup |
bool | Auto-cleanup after execution |
Click on any node or edge to view details