Cognitive load injection
Modelcapaciteit misbruiken met cognitive-load-aanvallen die de veiligheidsredenering overbelasten.
Overview
Modelcapaciteit misbruiken met cognitive-load-aanvallen die de veiligheidsredenering overbelasten.
Dit onderwerp vormt een kritiek gebied binnen AI-veiligheid dat het onderwerp is geweest van veel onderzoek en uitbuiting in de praktijk. De concepten, technieken en verdedigingsmaatregelen die hier aan bod komen begrijpen is essentieel voor iedereen die in AI-veiligheid werkt, of dat nu in offensieve of defensieve rollen is.
Zou et al. 2023 — "Universal and Transferable Adversarial Attacks on Aligned Language Models" biedt de fundamentele context voor de kwetsbaarheidsklasse die in dit artikel wordt onderzocht.
Core Concepts
Fundamental Principles
De veiligheidsimplicaties van dit onderwerp komen voort uit fundamentele eigenschappen van hoe moderne taalmodellen worden ontworpen, getraind en uitgerold. Dit zijn geen op zichzelf staande implementatiefouten maar eerder systemische kenmerken die alle op transformers gebaseerde taalmodellen in meer of mindere mate treffen.
Deze fundamentele eigenschap begrijpen is de sleutel om te snappen waarom de technieken in dit artikel werken en waarom ze effectief blijven ondanks de voortdurende verbeteringen in de veiligheidstraining van modellen. Veiligheidstraining voegt een gedragslaag toe waardoor modellen minder snel duidelijk schadelijke instructies opvolgen, maar deze laag werkt bovenop dezelfde architectuur en kan beïnvloed worden door dezelfde attention-mechanismen die legitieme invoer verwerken.
Technical Deep Dive
Het mechanisme achter deze kwetsbaarheidsklasse werkt op het snijvlak tussen het vermogen om instructies op te volgen en bronauthenticatie. Tijdens de training leren modellen instructies op te volgen die in specifieke formaten en contexten worden aangeboden. Een aanvaller die adversariële inhoud kan aanbieden in een formaat dat overeenkomt met de aangeleerde patronen voor het opvolgen van instructies, kan het gedrag van het model met grote betrouwbaarheid beïnvloeden.
from dataclasses import dataclass
from typing import Optional
import json
@dataclass
class SecurityAnalysis:
"""Framework voor het analyseren van veiligheidseigenschappen van LLM-systemen."""
target: str
model: str
defenses: list
vulnerabilities: list
def assess_risk(self, attack_type: str) -> dict:
"""Beoordeel het risico voor een specifiek aanvalstype."""
# Controleer of een verdediging dit aanvalstype aanpakt
relevant_defenses = [
d for d in self.defenses
if attack_type in d.get("covers", [])
]
# Risicofactoren
likelihood = "high" if not relevant_defenses else "medium"
impact = self._assess_impact(attack_type)
return {
"attack_type": attack_type,
"likelihood": likelihood,
"impact": impact,
"defenses": len(relevant_defenses),
"risk_level": self._calculate_risk(likelihood, impact),
}
def _assess_impact(self, attack_type: str) -> str:
"""Beoordeel de mogelijke impact van een aanvalstype."""
high_impact = ["data_exfiltration", "unauthorized_actions", "privilege_escalation"]
return "high" if attack_type in high_impact else "medium"
def _calculate_risk(self, likelihood: str, impact: str) -> str:
"""Bereken het totale risico op basis van waarschijnlijkheid en impact."""
risk_matrix = {
("high", "high"): "critical",
("high", "medium"): "high",
("medium", "high"): "high",
("medium", "medium"): "medium",
}
return risk_matrix.get((likelihood, impact), "medium")
def generate_report(self) -> str:
"""Genereer een risicobeoordelingsrapport."""
attacks = ["prompt_injection", "data_exfiltration", "unauthorized_actions"]
assessments = [self.assess_risk(a) for a in attacks]
report = f"# Risk Assessment: {self.target}\n\n"
for assessment in assessments:
report += (
f"## {assessment['attack_type']}\n"
f"- Risk: {assessment['risk_level']}\n"
f"- Likelihood: {assessment['likelihood']}\n"
f"- Impact: {assessment['impact']}\n"
f"- Active defenses: {assessment['defenses']}\n\n"
)
return reportAttack Surface Analysis
Het aanvalsoppervlak begrijpen is essentieel voor zowel offensief als defensief werk:
| Aanvalsvector | Toegangspunt | Typische impact | Verdedigingsaanpak |
|---|---|---|---|
| Directe injection | Invoer van gebruikersbericht | Extractie van system prompt, omzeilen van veiligheid | Invoerclassificatie |
| Indirecte injection | Externe gegevensbronnen (web, documenten, tools) | Data-exfiltratie, ongeautoriseerde acties | Datasanitatie |
| Misbruik van function calling | Injection in toolparameters | Ongeautoriseerde API-aanroepen, datatoegang | Sandboxing van tools |
| Geheugenmanipulatie | Gespreksgeschiedenis, persistent geheugen | Persistentie tussen sessies, valse context | Geheugenvalidatie |
| Contextmanipulatie | Beheer van het contextvenster | Overschrijven van instructieprioriteit | Contextisolatie |
Practical Application
Implementation Approach
Deze concepten in de praktijk toepassen vereist een systematische methodologie:
class PracticalFramework:
"""Praktisch framework om de concepten uit dit artikel toe te passen."""
def __init__(self, target_config: dict):
self.config = target_config
self.findings = []
self.tested_vectors = set()
def test_vector(self, vector: str, payload: str) -> dict:
"""Test een specifieke aanvalsvector tegen het doelwit."""
self.tested_vectors.add(vector)
# Verstuur de payload
response = self._send(payload)
# Evalueer het resultaat
finding = {
"vector": vector,
"payload_length": len(payload),
"response_length": len(response),
"success": self._evaluate(response),
"defense_triggered": self._detect_defense(response),
}
if finding["success"]:
self.findings.append(finding)
return finding
def coverage_report(self) -> dict:
"""Rapporteer over de testdekking."""
all_vectors = {
"direct_injection", "indirect_injection", "function_abuse",
"memory_manipulation", "context_manipulation",
}
return {
"tested": list(self.tested_vectors),
"untested": list(all_vectors - self.tested_vectors),
"coverage": f"{len(self.tested_vectors)/len(all_vectors)*100:.0f}%",
"findings": len(self.findings),
}
def _send(self, payload: str) -> str:
"""Verstuur payload naar doelwit (implementatie verschilt per doelwit)."""
pass
def _evaluate(self, response: str) -> bool:
"""Evalueer of de aanval geslaagd was."""
pass
def _detect_defense(self, response: str) -> Optional[str]:
"""Detecteer welk verdedigingsmechanisme is geactiveerd."""
passDefense Considerations
Het begrijpen van verdedigingsmaatregelen is net zo belangrijk:
-
Invoervalidatie: De eerste verdedigingslinie. Zet invoerclassifiers in die binnenkomende prompts beoordelen op adversariële patronen voordat ze het model bereiken. Moderne classifiers combineren keyword-matching, regex-patronen en ML-gebaseerde detectie voor uitgebreide dekking.
-
Uitvoerfiltering: Het vangnet. Verwerk alle modeluitvoer na om lekken van gevoelige data, fragmenten van system prompts en andere beleidsovertredingen te detecteren en te verwijderen. Uitvoerfilters horen onafhankelijk te zijn van invoerfilters om defense-in-depth te bieden.
-
Gedragsmonitoring: De detectielaag. Monitor interactiepatronen van het model op afwijkingen die wijzen op lopende aanvallen — ongewone verzoekpatronen, herhaalde weigeringen, of responskenmerken die afwijken van het basisgedrag.
-
Architectuurontwerp: Het fundament. Ontwerp applicatie-architecturen die het vertrouwen in modeluitvoer minimaliseren, het principe van minimale rechten afdwingen voor toegang tot tools, en duidelijke veiligheidsgrenzen tussen componenten handhaven.
Real-World Relevance
Deze concepten zijn rechtstreeks toepasbaar op AI-systemen in productie in allerlei sectoren. De volgende factoren maken dit onderwerp bijzonder relevant:
- Alomtegenwoordigheid: De kwetsbaarheidsklasse treft alle grote modelaanbieders en deploymentconfiguraties
- Impact: Succesvolle uitbuiting kan leiden tot blootstelling van data, ongeautoriseerde acties en compliance-overtredingen
- Persistentie: De onderliggende architecturale eigenschappen zorgen ervoor dat deze technieken relevant blijven naarmate modellen evolueren
- Regelgeving: Opkomende regelgeving (EU AI Act, NIST AI RMF) verplicht organisaties steeds vaker om deze risico's te beoordelen en te mitigeren
Current Research
Lopend onderzoek op dit gebied omvat onder meer:
- Formele robuustheidsgaranties: Het ontwikkelen van wiskundige frameworks om modelgedrag onder begrensde adversariële verstoring te bewijzen
- Adversarial training op schaal: Trainingsprocedures die modellen tijdens de veiligheidstraining blootstellen aan adversariële invoer om de robuustheid te verbeteren
- Verdediging gestuurd door interpreteerbaarheid: Mechanistische interpreteerbaarheid gebruiken om te begrijpen waarom aanvallen op neuronniveau slagen, wat gerichte verdedigingen mogelijk maakt
- Gestandaardiseerde evaluatie: Benchmarks zoals HarmBench en JailbreakBench die het mogelijk maken de effectiviteit van aanvallen en verdedigingen systematisch te meten
Implementation Considerations
Architecture Patterns
Bij het bouwen van systemen die met LLM's interacteren, hebben verschillende architectuurpatronen invloed op de veiligheidshouding van de applicatie als geheel:
Gateway-patroon: Een dedicated API-gateway zit tussen gebruikers en de LLM en regelt authenticatie, rate limiting, invoervalidatie en uitvoerfiltering. Dit centraliseert de veiligheidscontroles maar creëert een single point of failure.
from dataclasses import dataclass
from typing import Optional
import time
@dataclass
class SecurityGateway:
"""Gateway-patroon voor het beveiligen van toegang tot een LLM-applicatie."""
input_classifier: object # ML-gebaseerde invoerclassifier
output_filter: object # Filter voor uitvoerinhoud
rate_limiter: object # Rate-limitingdienst
audit_logger: object # Logger voor het audit trail
def process_request(self, user_id: str, message: str, session_id: str) -> dict:
"""Verwerk een verzoek door alle veiligheidslagen heen."""
request_id = self._generate_request_id()
# Laag 1: Rate limiting
if not self.rate_limiter.allow(user_id):
self.audit_logger.log(request_id, "rate_limited", user_id)
return {"error": "Rate limit exceeded", "retry_after": 60}
# Laag 2: Invoerclassificatie
classification = self.input_classifier.classify(message)
if classification.is_adversarial:
self.audit_logger.log(
request_id, "input_blocked",
user_id, classification.category
)
return {"error": "Request could not be processed"}
# Laag 3: LLM-verwerking
response = self._call_llm(message, session_id)
# Laag 4: Uitvoerfiltering
filtered = self.output_filter.filter(response)
if filtered.was_modified:
self.audit_logger.log(
request_id, "output_filtered",
user_id, filtered.reason
)
# Laag 5: Auditlogging
self.audit_logger.log(
request_id, "completed",
user_id, len(message), len(filtered.content)
)
return {"response": filtered.content}
def _generate_request_id(self) -> str:
import uuid
return str(uuid.uuid4())
def _call_llm(self, message: str, session_id: str) -> str:
# Implementatie van de LLM-API-aanroep
passSidecar-patroon: Veiligheidscomponenten draaien naast de LLM als onafhankelijke diensten, die elk verantwoordelijk zijn voor een specifiek aspect van veiligheid. Dit biedt betere isolatie en onafhankelijke schaalbaarheid, maar verhoogt de complexiteit van het systeem.
Mesh-patroon: Bij multi-agentsystemen heeft elke agent zijn eigen veiligheidsperimeter met authenticatie, autorisatie en auditing. Communicatie tussen agents volgt zero-trustprincipes.
Performance Implications
Veiligheidsmaatregelen voegen onvermijdelijk latency en rekenkundige overhead toe. Deze afwegingen begrijpen is essentieel voor productie-deployments:
| Veiligheidslaag | Typische latency | Rekenkundige kosten | Impact op UX |
|---|---|---|---|
| Keyword-filter | <1ms | Verwaarloosbaar | Geen |
| Regex-filter | 1-5ms | Laag | Geen |
| ML-classifier (klein) | 10-50ms | Gematigd | Minimaal |
| ML-classifier (groot) | 50-200ms | Hoog | Merkbaar |
| LLM-as-judge | 500-2000ms | Zeer hoog | Aanzienlijk |
| Volledige pipeline | 100-500ms | Hoog | Gematigd |
De aanbevolen aanpak is om eerst snelle, lichtgewicht checks (keyword- en regex-filters) te gebruiken om voor de hand liggende aanvallen op te vangen, gevolgd door duurdere ML-gebaseerde analyse alleen voor invoer die de eerste filters passeert. Deze trapsgewijze aanpak biedt goede veiligheid met acceptabele prestaties.
Monitoring and Observability
Effectieve veiligheidsmonitoring voor LLM-applicaties vereist het bijhouden van metrics die adversariële gedragspatronen vastleggen:
from dataclasses import dataclass
from collections import defaultdict
import time
@dataclass
class SecurityMetrics:
"""Houd veiligheidsrelevante metrics bij voor LLM-applicaties."""
# Tellers
total_requests: int = 0
blocked_requests: int = 0
filtered_outputs: int = 0
anomalous_sessions: int = 0
# Snelheid bijhouden
_request_times: list = None
_block_times: list = None
def __post_init__(self):
self._request_times = []
self._block_times = []
def record_request(self, was_blocked: bool = False, was_filtered: bool = False):
"""Registreer een verzoek en de afhandeling ervan."""
now = time.time()
self.total_requests += 1
self._request_times.append(now)
if was_blocked:
self.blocked_requests += 1
self._block_times.append(now)
if was_filtered:
self.filtered_outputs += 1
def get_block_rate(self, window_seconds: int = 300) -> float:
"""Bereken het blokkeerpercentage over een tijdvenster."""
now = time.time()
cutoff = now - window_seconds
recent_requests = sum(1 for t in self._request_times if t > cutoff)
recent_blocks = sum(1 for t in self._block_times if t > cutoff)
if recent_requests == 0:
return 0.0
return recent_blocks / recent_requests
def should_alert(self) -> bool:
"""Bepaal of de huidige metrics een waarschuwing rechtvaardigen."""
block_rate = self.get_block_rate()
# Waarschuw als het blokkeerpercentage de drempel overschrijdt
if block_rate > 0.3: # >30% van de verzoeken geblokkeerd in de laatste 5 min
return True
return FalseSecurity Testing in CI/CD
Het integreren van AI-veiligheidstests in de ontwikkelpipeline vangt regressies op voordat ze de productie bereiken:
- Tests op unit-niveau: Test afzonderlijke veiligheidscomponenten (classifiers, filters) tegen bekende payloads
- Integratietests: Test de volledige veiligheidspipeline end-to-end
- Regressietests: Onderhoud een suite van eerder ontdekte aanvalspayloads en verifieer dat ze geblokkeerd blijven
- Adversariële tests: Draai periodiek geautomatiseerde red-teamtools (Garak, Promptfoo) als onderdeel van de deploymentpipeline
Emerging Trends
Current Research Directions
Het vakgebied van LLM-veiligheid evolueert razendsnel. Belangrijke onderzoeksrichtingen die het landschap waarschijnlijk gaan bepalen, zijn onder andere:
-
Formele verificatie van LLM-gedrag: Onderzoekers verkennen wiskundige frameworks om eigenschappen van modelgedrag onder adversariële omstandigheden te bewijzen. Hoewel volledige formele verificatie van neurale netwerken onhaalbaar blijft, biedt begrensde verificatie van specifieke eigenschappen perspectief.
-
Adversarial training voor LLM-robuustheid: Naast standaard-RLHF ontwikkelen onderzoekers trainingsprocedures die modellen tijdens de veiligheidstraining expliciet blootstellen aan adversariële invoer, wat de robuustheid tegen bekende aanvalspatronen verbetert.
-
Verdediging gestuurd door interpreteerbaarheid: Onderzoek naar mechanistische interpreteerbaarheid stelt verdedigers in staat om te begrijpen waarom specifieke aanvallen op neuron- en circuitniveau slagen, wat gerichtere verdedigingsmaatregelen mogelijk maakt.
-
Veiligheid van multi-agentsystemen: Naarmate LLM-agents wijder verspreid raken, is het beveiligen van communicatie tussen agents en het handhaven van vertrouwensgrenzen over agentsystemen heen een actief onderzoeksgebied met aanzienlijke praktische implicaties.
-
Geautomatiseerde red-teaming op schaal: Tools zoals NVIDIA's Garak, Microsofts PyRIT en het Inspect-framework van het Britse AISI maken geautomatiseerde veiligheidstests mogelijk op schalen die voorheen onhaalbaar waren, maar de kwaliteit en dekking van geautomatiseerd testen blijft een open uitdaging.
De integratie van deze onderzoeksrichtingen in productiesystemen zal de volgende generatie AI-veiligheidspraktijken vormgeven.
Advanced Considerations
Evolving Attack Landscape
Het AI-veiligheidslandschap evolueert razendsnel naarmate zowel offensieve technieken als verdedigingsmaatregelen vooruitgaan. Verschillende trends bepalen de huidige stand van zaken:
Toenemende modelcapaciteiten creëren nieuwe aanvalsoppervlakken. Naarmate modellen toegang krijgen tot tools, code-uitvoering, webbrowsen en computergebruik, introduceert elke nieuwe capaciteit potentiële exploitatievectoren die niet bestonden in eerdere, tekst-only systemen. Het principe van minimale rechten wordt steeds belangrijker naarmate de capaciteiten van modellen toenemen.
Verbeteringen in veiligheidstraining zijn noodzakelijk maar niet voldoende. Modelaanbieders investeren fors in veiligheidstraining via RLHF, DPO, constitutional AI en andere alignment-technieken. Deze verbeteringen leggen de lat hoger voor succesvolle aanvallen, maar elimineren de fundamentele kwetsbaarheid niet: modellen kunnen legitieme instructies niet betrouwbaar onderscheiden van adversariële, omdat dit onderscheid niet in de architectuur is gerepresenteerd.
Geautomatiseerde red-teamtools democratiseren het testen. Tools zoals NVIDIA's Garak, Microsofts PyRIT en Promptfoo stellen organisaties in staat om geautomatiseerde veiligheidstests uit te voeren zonder diepgaande AI-veiligheidsexpertise. Maar geautomatiseerde tools vangen bekende patronen op; nieuwe aanvallen en kwetsbaarheden in de business logic vereisen nog altijd menselijke creativiteit en domeinkennis.
Druk vanuit regelgeving stuurt investeringen aan binnen organisaties. De EU AI Act, NIST AI RMF en sectorspecifieke regelgeving verplichten organisaties steeds vaker om AI-specifieke risico's te beoordelen en te mitigeren. Deze druk vanuit regelgeving stuwt de investeringen in AI-veiligheidsprogramma's aan, maar veel organisaties bevinden zich nog in de beginfase van het opbouwen van volwassen AI-veiligheidspraktijken.
Cross-Cutting Security Principles
Verschillende veiligheidsprincipes zijn van toepassing op alle onderwerpen die in dit curriculum aan bod komen:
-
Defense-in-depth: Geen enkele afzonderlijke verdedigingsmaatregel is voldoende. Stapel meerdere onafhankelijke verdedigingen zodat het falen van één enkele laag niet leidt tot compromittering van het systeem. Invoerclassificatie, uitvoerfiltering, gedragsmonitoring en architecturale controles horen allemaal aanwezig te zijn.
-
Ga uit van een inbreuk: Ontwerp systemen ervan uitgaande dat elk afzonderlijk component gecompromitteerd kan worden. Deze mindset leidt tot betere isolatie, monitoring en mogelijkheden voor incident response. Wanneer een prompt injection slaagt, hoort de impactstraal beperkt te worden door architecturale controles.
-
Minimale rechten: Geef modellen en agents alleen de minimale capaciteiten die ze nodig hebben voor hun beoogde functie. Een klantenservice-chatbot heeft geen toegang tot het bestandssysteem of code-uitvoering nodig. Overmatige capaciteiten vergroten de impact van succesvolle uitbuiting.
-
Continu testen: AI-veiligheid is geen eenmalige beoordeling. Modellen veranderen, verdedigingen evolueren en regelmatig worden nieuwe aanvalstechnieken ontdekt. Implementeer continue veiligheidstests als onderdeel van de ontwikkel- en deploymentlevenscyclus.
-
Veilig standaard: Standaardconfiguraties horen veilig te zijn. Vereis expliciete opt-in voor riskante capaciteiten, gebruik allowlists in plaats van denylists, en kies bij twijfel voor restrictie boven toegeeflijkheid.
Integration with Organizational Security
AI-veiligheid bestaat niet op zichzelf — het moet integreren met het bredere veiligheidsprogramma van de organisatie:
| Veiligheidsdomein | AI-specifieke integratie |
|---|---|
| Identity en Access | Beheer van API-sleutels, toegangscontroles voor modellen, gebruikersauthenticatie voor AI-functies |
| Gegevensbescherming | Classificatie van trainingsdata, PII in prompts, dataresidentie voor modelaanroepen |
| Applicatiebeveiliging | Threat modeling van AI-functies, prompt injection in SAST/DAST, veilige AI-ontwerppatronen |
| Incident Response | AI-specifieke playbooks, monitoring van modelgedrag, forensisch onderzoek naar prompt injection |
| Compliance | Mapping van AI-regelgeving (EU AI Act, NIST), AI-audit trails, modeldocumentatie |
| Supply Chain | Herkomst van modellen, beveiliging van dependencies, integriteitsverificatie van adapters/gewichten |
class OrganizationalIntegration:
"""Framework om AI-veiligheid te integreren met de veiligheidsprogramma's van een organisatie."""
def __init__(self, org_config: dict):
self.config = org_config
self.gaps = []
def assess_maturity(self) -> dict:
"""Beoordeel de AI-veiligheidsvolwassenheid van de organisatie."""
domains = {
"governance": self._check_governance(),
"technical_controls": self._check_technical(),
"monitoring": self._check_monitoring(),
"incident_response": self._check_ir(),
"training": self._check_training(),
}
overall = sum(d["score"] for d in domains.values()) / len(domains)
return {"domains": domains, "overall_maturity": round(overall, 1)}
def _check_governance(self) -> dict:
has_policy = self.config.get("ai_security_policy", False)
has_framework = self.config.get("risk_framework", False)
score = (int(has_policy) + int(has_framework)) * 2.5
return {"score": score, "max": 5.0}
def _check_technical(self) -> dict:
controls = ["input_classification", "output_filtering", "rate_limiting", "sandboxing"]
active = sum(1 for c in controls if self.config.get(c, False))
return {"score": active * 1.25, "max": 5.0}
def _check_monitoring(self) -> dict:
has_monitoring = self.config.get("ai_monitoring", False)
has_alerting = self.config.get("ai_alerting", False)
score = (int(has_monitoring) + int(has_alerting)) * 2.5
return {"score": score, "max": 5.0}
def _check_ir(self) -> dict:
has_playbook = self.config.get("ai_ir_playbook", False)
return {"score": 5.0 if has_playbook else 0.0, "max": 5.0}
def _check_training(self) -> dict:
has_training = self.config.get("ai_security_training", False)
return {"score": 5.0 if has_training else 0.0, "max": 5.0}Future Directions
Verschillende onderzoeks- en branchetrends zullen de evolutie van dit vakgebied vormgeven:
- Formele methoden voor AI-veiligheid: Het ontwikkelen van wiskundige frameworks die begrensde garanties kunnen bieden over modelgedrag onder adversariële omstandigheden
- Geautomatiseerde red-teaming op schaal: Voortdurende verbetering van geautomatiseerde testtools die nieuwe kwetsbaarheden kunnen ontdekken zonder menselijke sturing
- AI-ondersteunde verdediging: AI-systemen inzetten om aanvallen op andere AI-systemen te detecteren en erop te reageren, wat een dynamisch aanval-verdedigingsecosysteem creëert
- Gestandaardiseerde evaluatie: Groeiende adoptie van gestandaardiseerde benchmarks (HarmBench, JailbreakBench) die consistente meting van voortgang mogelijk maken
- Harmonisatie van regelgeving: Convergentie van AI-regelgevingskaders over jurisdicties heen, wat duidelijkere eisen voor organisaties oplevert
References and Further Reading
- OWASP LLM Top 10 2025 — Uitgebreide gids over LLM-veiligheidsrisico's (owasp.org/www-project-top-10-for-large-language-model-applications)
- MITRE ATLAS — Adversarial Threat Landscape for AI Systems (atlas.mitre.org)
- Zou et al. 2023 — "Universal and Transferable Adversarial Attacks on Aligned Language Models"
- Chao et al. 2023 — "Jailbreaking Black-Box LLMs in Twenty Queries" (PAIR)
- Garak (NVIDIA) — Kwetsbaarhedenscanner voor LLM's (github.com/NVIDIA/garak)
Wat is de meest effectieve verdedigingsstrategie tegen de aanvalsklasse die in dit artikel beschreven wordt?
Waarom blijven de in dit artikel beschreven technieken effectief, ondanks de voortdurende veiligheidsverbeteringen door modelaanbieders?