187 / main.ppy
Cunt1257's picture
Create main.ppy
38e7bea verified
Raw
History Blame Contribute Delete
2.83 kB
import re
import random
from typing import Dict, List, Optional
class AIAgent:
def __init__(self, model_name: str):
self.model_name = model_name
self.trusted_fields = {"sender": "admin", "button_id": "submit"}
self.untrusted_data = {}
def process_data(self, data: Dict[str, str]) -> str:
"""Simulate AI agent processing data (trusted + untrusted)."""
# Simulate probabilistic parsing (vulnerable to ADI)
for field, value in data.items():
if field in self.trusted_fields:
# Trusted field: execute action (e.g., click button)
return f"Executed action for {field}: {value}"
else:
# Untrusted field: check for delimiters (ADI attack)
if self._contains_delimiter(value):
return f"ADI ATTACK DETECTED: Malicious delimiter in {field}"
return "No action taken"
def _contains_delimiter(self, value: str) -> bool:
"""Check for fake delimiters (e.g., ';', '||', '---')."""
delimiters = [";", "||", "---", "/*", "*/"]
return any(d in value for d in delimiters)
class ADIAttackSimulator:
def __init__(self, agent: AIAgent):
self.agent = agent
def inject_adi(self, field: str, malicious_value: str) -> str:
"""Inject ADI payload into untrusted data."""
self.agent.untrusted_data[field] = malicious_value
return f"Injected ADI into {field}: {malicious_value}"
def test_attack(self) -> str:
"""Test if ADI attack succeeds."""
# Simulate agent processing injected data
result = self.agent.process_data(self.agent.untrusted_data)
return result
class Mitigation:
@staticmethod
def strip_delimiters(data: Dict[str, str]) -> Dict[str, str]:
"""Mitigation: Remove delimiters from untrusted data."""
delimiters = [";", "||", "---", "/*", "*/"]
cleaned = {}
for field, value in data.items():
cleaned[field] = "".join(
char for char in value if char not in delimiters
)
return cleaned
# --- Demo ---
if __name__ == "__main__":
# Initialize agent and attacker
agent = AIAgent(model_name="Claude Opus 4.5")
attacker = ADIAttackSimulator(agent)
# Attack: Inject malicious delimiter into "button_id"
attacker.inject_adi("button_id", "malicious; rm -rf /")
# Test attack (without mitigation)
print("Without mitigation:")
print(attacker.test_attack()) # Output: ADI ATTACK DETECTED
# Apply mitigation (strip delimiters)
agent.untrusted_data = Mitigation.strip_delimiters(agent.untrusted_data)
print("\nWith mitigation (delimiter stripping):")
print(attacker.test_attack()) # Output: Executed action for button_id: malicious rm -rf /