Misbruik van de instructiehiërarchie
Het misbruiken van ambiguïteiten in instructieprioriteitshiërarchieën bij verschillende modelaanbieders.
Overzicht
Het misbruiken van ambiguïteiten in instructieprioriteitshiërarchieën bij verschillende modelaanbieders.
Dit onderwerp behandelt een kritiek gebied binnen AI-veiligheid dat het onderwerp is geweest van veel onderzoek en misbruik 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 een offensieve of defensieve rol is.
Zou et al. 2023 — "Universal and Transferable Adversarial Attacks on Aligned Language Models" biedt de basiscontext voor de kwetsbaarheidsklasse die in dit artikel wordt verkend.
Kernconcepten
Fundamentele principes
De veiligheidsimplicaties van dit onderwerp komen voort uit fundamentele eigenschappen van hoe moderne taalmodellen worden ontworpen, getraind en uitgerold. Dit zijn geen geïsoleerde implementatiefouten, maar systemische kenmerken die alle op transformers gebaseerde taalmodellen in meer of mindere mate raken.
Deze fundamentele eigenschap begrijpen is de sleutel tot het begrijpen waarom de technieken in dit artikel werken en waarom ze effectief blijven ondanks de doorlopende verbeteringen in de veiligheidstraining van modellen. Veiligheidstraining voegt een gedragslaag toe die het minder waarschijnlijk maakt dat modellen overduidelijk schadelijke instructies opvolgen, maar die laag draait bovenop dezelfde architectuur en kan worden beïnvloed door dezelfde attentiemechanismen die legitieme input verwerken.
Technische verdieping
Het mechanisme achter deze kwetsbaarheidsklasse speelt zich af op het raakvlak tussen het vermogen om instructies op te volgen en bronauthenticatie. Tijdens de training leren modellen om instructies op te volgen die in specifieke formaten en contexten worden aangeboden. Een aanvaller die adversariële content 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 de 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 afdekt
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 potentiële 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 reportAnalyse van het aanvalsoppervlak
Het aanvalsoppervlak begrijpen is essentieel voor zowel offensief als defensief werk:
| Aanvalsvector | Toegangspunt | Typische impact | Verdedigingsaanpak |
|---|---|---|---|
| Directe injectie | Input van gebruikersbericht | Extractie van systeemprompt, omzeilen van veiligheidsmaatregelen | Inputclassificatie |
| Indirecte injectie | Externe gegevensbronnen (web, documenten, tools) | Data-exfiltratie, ongeautoriseerde acties | Datasanering |
| Misbruik van function calling | Injectie via toolparameters | Ongeautoriseerde API-aanroepen, datatoegang | Sandboxing van tools |
| Geheugenmanipulatie | Gespreksgeschiedenis, persistent geheugen | Persistentie over sessies heen, valse context | Geheugenvalidatie |
| Contextmanipulatie | Beheer van het contextvenster | Overschrijven van instructieprioriteit | Contextisolatie |
Praktische toepassing
Implementatieaanpak
Deze concepten in de praktijk toepassen vereist een systematische methodologie:
class PracticalFramework:
"""Praktisch framework voor het toepassen van de concepten in dit artikel."""
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 de payload naar het doelwit (implementatie verschilt per doelwit)."""
pass
def _evaluate(self, response: str) -> bool:
"""Evalueer of de aanval succesvol was."""
pass
def _detect_defense(self, response: str) -> Optional[str]:
"""Detecteer welk verdedigingsmechanisme werd geactiveerd."""
passVerdedigingsoverwegingen
Verdedigingsmaatregelen begrijpen is net zo belangrijk:
-
Inputvalidatie: De eerste verdedigingslinie. Zet inputclassifiers in die binnenkomende prompts beoordelen op adversariële patronen voordat ze het model bereiken. Moderne classifiers combineren keyword matching, regexpatronen en ML-gebaseerde detectie voor brede dekking.
-
Outputfiltering: Het vangnet. Verwerk alle modeluitvoer na om lekkage van gevoelige gegevens, fragmenten van de systeemprompt en andere beleidsovertredingen te detecteren en te verwijderen. Outputfilters horen onafhankelijk van inputfilters te zijn om defense-in-depth te bieden.
-
Gedragsmonitoring: De detectielaag. Monitor de interactiepatronen van het model op afwijkingen die wijzen op lopende aanvallen — ongebruikelijke verzoekpatronen, herhaalde weigeringen of responskenmerken die afwijken van het normale gedrag.
-
Architectuurontwerp: Het fundament. Ontwerp applicatiearchitecturen die het vertrouwen in modeluitvoer minimaliseren, least privilege afdwingen voor toegang tot tools en duidelijke veiligheidsgrenzen tussen componenten handhaven.
Relevantie voor de praktijk
Deze concepten zijn rechtstreeks toepasbaar op AI-productiesystemen in allerlei sectoren. De volgende factoren maken dit onderwerp bijzonder relevant:
- Alomtegenwoordigheid: De kwetsbaarheidsklasse raakt alle grote modelaanbieders en uitrolconfiguraties
- Impact: Geslaagd misbruik kan leiden tot datablootstelling, ongeautoriseerde acties en compliance-overtredingen
- Persistentie: De onderliggende architectonische eigenschappen zorgen ervoor dat deze technieken relevant blijven naarmate modellen evolueren
- Regelgeving: Opkomende regelgeving (EU AI Act, NIST AI RMF) verplicht organisaties steeds vaker deze risico's te beoordelen en te mitigeren
Actueel onderzoek
Actief onderzoek op dit gebied omvat:
- Formele robuustheidsgaranties: Het ontwikkelen van wiskundige frameworks om modelgedrag te bewijzen onder begrensde adversariële verstoring
- Adversarial training op schaal: Trainingsprocedures die modellen tijdens de veiligheidstraining blootstellen aan adversariële input om de robuustheid te verbeteren
- Door interpreteerbaarheid gestuurde verdediging: Mechanistische interpreteerbaarheid gebruiken om te begrijpen waarom aanvallen op neuronniveau slagen, wat gerichte verdediging mogelijk maakt
- Gestandaardiseerde evaluatie: Benchmarks als HarmBench en JailbreakBench die systematische meting van de effectiviteit van aanvallen en verdediging mogelijk maken
Implementatieoverwegingen
Architectuurpatronen
Bij het bouwen van systemen die met LLM's interacteren, beïnvloeden verschillende architectuurpatronen de veiligheidshouding van de hele applicatie:
Gateway-patroon: Een dedicated API-gateway zit tussen gebruikers en het LLM en regelt authenticatie, rate limiting, inputvalidatie en outputfiltering. Dit centraliseert de beveiligingscontroles, maar creëert wel 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 inputclassifier
output_filter: object # Contentfilter voor output
rate_limiter: object # Rate-limitingdienst
audit_logger: object # Logger voor het audittrail
def process_request(self, user_id: str, message: str, session_id: str) -> dict:
"""Verwerk een verzoek door alle beveiligingslagen 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: Inputclassificatie
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: Outputfiltering
filtered = self.output_filter.filter(response)
if filtered.was_modified:
self.audit_logger.log(
request_id, "output_filtered",
user_id, filtered.reason
)
# Laag 5: Audit logging
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: Beveiligingscomponenten draaien naast het LLM als onafhankelijke diensten, elk verantwoordelijk voor een specifiek aspect van de beveiliging. Dit biedt betere isolatie en onafhankelijke schaling, maar verhoogt de complexiteit van het systeem.
Mesh-patroon: Bij multi-agentsystemen heeft elke agent zijn eigen beveiligingsperimeter met authenticatie, autorisatie en auditing. Communicatie tussen agents volgt zero-trustprincipes.
Gevolgen voor de prestaties
Beveiligingsmaatregelen voegen onvermijdelijk latentie en rekenoverhead toe. Deze afwegingen begrijpen is essentieel voor productie-uitrol:
| Beveiligingslaag | Typische latentie | Rekenkosten | Impact op UX |
|---|---|---|---|
| Keywordfilter | <1ms | Verwaarloosbaar | Geen |
| Regexfilter | 1-5ms | Laag | Geen |
| ML-classifier (klein) | 10-50ms | Gemiddeld | Minimaal |
| ML-classifier (groot) | 50-200ms | Hoog | Merkbaar |
| LLM-as-judge | 500-2000ms | Zeer hoog | Aanzienlijk |
| Volledige pipeline | 100-500ms | Hoog | Gemiddeld |
De aanbevolen aanpak is om eerst snelle, lichtgewicht controles in te zetten (keyword- en regexfilters) om overduidelijke aanvallen op te vangen, gevolgd door duurdere ML-gebaseerde analyse, en dat alleen voor input die de eerste filters passeert. Deze trapsgewijze aanpak biedt goede beveiliging met acceptabele prestaties.
Monitoring en observability
Effectieve beveiligingsmonitoring voor LLM-applicaties vereist het bijhouden van metrieken die adversariële gedragspatronen vastleggen:
from dataclasses import dataclass
from collections import defaultdict
import time
@dataclass
class SecurityMetrics:
"""Houd beveiligingsrelevante metrieken bij voor LLM-applicaties."""
# Tellers
total_requests: int = 0
blocked_requests: int = 0
filtered_outputs: int = 0
anomalous_sessions: int = 0
# Frequentie 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 metrieken een alert rechtvaardigen."""
block_rate = self.get_block_rate()
# Alarmeer als het blokkeerpercentage de drempel overschrijdt
if block_rate > 0.3: # >30% van de verzoeken geblokkeerd in de laatste 5 min
return True
return FalseBeveiligingstesten in CI/CD
Het integreren van AI-beveiligingstesten in de ontwikkelpipeline vangt regressies op voordat ze de productie bereiken:
- Tests op unitniveau: Test individuele beveiligingscomponenten (classifiers, filters) tegen bekende payloads
- Integratietests: Test de volledige beveiligingspipeline van begin tot eind
- Regressietests: Onderhoud een set eerder ontdekte aanvalspayloads en controleer of ze geblokkeerd blijven
- Adversariële tests: Draai periodiek geautomatiseerde red team-tools (Garak, Promptfoo) als onderdeel van de uitrolpipeline
Opkomende trends
Actuele onderzoeksrichtingen
Het vakgebied van LLM-beveiliging evolueert in hoog tempo. Belangrijke onderzoeksrichtingen die het landschap waarschijnlijk vorm zullen geven, zijn onder meer:
-
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, is begrensde verificatie van specifieke eigenschappen veelbelovend.
-
Adversarial training voor LLM-robuustheid: Naast standaard-RLHF ontwikkelen onderzoekers trainingsprocedures die modellen tijdens de veiligheidstraining expliciet blootstellen aan adversariële input, wat de robuustheid tegen bekende aanvalspatronen verbetert.
-
Door interpreteerbaarheid gestuurde verdediging: Onderzoek naar mechanistische interpreteerbaarheid stelt verdedigers in staat te begrijpen waarom specifieke aanvallen op neuron- en circuitniveau slagen, wat gerichtere verdedigingsmaatregelen mogelijk maakt.
-
Beveiliging van multi-agentsystemen: Naarmate LLM-agents gangbaarder worden, is het beveiligen van communicatie tussen agents en het bewaken van vertrouwensgrenzen binnen agentsystemen een actief onderzoeksgebied met aanzienlijke praktische implicaties.
-
Geautomatiseerde red teaming op schaal: Tools als NVIDIA's Garak, Microsoft's PyRIT en het Inspect-framework van het Britse AISI maken geautomatiseerd beveiligingstesten mogelijk op een schaal die voorheen ondenkbaar was, maar de kwaliteit en dekking van geautomatiseerd testen blijven een open uitdaging.
De integratie van deze onderzoeksrichtingen in productiesystemen zal de volgende generatie AI-beveiligingspraktijken bepalen.
Geavanceerde overwegingen
Het evoluerende aanvalslandschap
Het AI-beveiligingslandschap evolueert in hoog tempo, terwijl 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 misbruikvectoren die in eerdere, tekst-only systemen niet bestonden. Het principe van least privilege 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 voor geslaagde aanvallen hoger, maar elimineren de fundamentele kwetsbaarheid niet: modellen kunnen legitieme instructies niet betrouwbaar onderscheiden van adversariële, omdat dat onderscheid niet in de architectuur is vastgelegd.
Geautomatiseerde red team-tools democratiseren het testen. Tools als NVIDIA's Garak, Microsoft's PyRIT en Promptfoo stellen organisaties in staat geautomatiseerd beveiligingstesten uit te voeren zonder diepgaande AI-beveiligingsexpertise. Geautomatiseerde tools vangen echter bekende patronen op; nieuwe aanvallen en kwetsbaarheden in de business logic vereisen nog steeds menselijke creativiteit en domeinkennis.
Druk vanuit regelgeving stuurt investeringen aan. 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 stuurt investeringen in AI-beveiligingsprogramma's aan, maar veel organisaties staan nog aan het begin van het opbouwen van volwassen AI-beveiligingspraktijken.
Overkoepelende beveiligingsprincipes
Een aantal beveiligingsprincipes geldt voor alle onderwerpen in dit curriculum:
-
Defense-in-depth: Geen enkele verdedigingsmaatregel alleen is voldoende. Stapel meerdere onafhankelijke verdedigingslagen, zodat het falen van één laag niet leidt tot compromittering van het hele systeem. Inputclassificatie, outputfiltering, gedragsmonitoring en architectonische controles horen allemaal aanwezig te zijn.
-
Ga uit van een inbreuk: Ontwerp systemen ervan uitgaande dat elk afzonderlijk component gecompromitteerd kan raken. Deze mindset leidt tot betere isolatie, monitoring en incident-responsecapaciteiten. Wanneer een prompt injection slaagt, moet de blast radius via architectonische controles worden beperkt.
-
Least privilege: Geef modellen en agents alleen de minimale capaciteiten die nodig zijn voor hun beoogde functie. Een chatbot voor klantenservice heeft geen toegang tot het bestandssysteem of code-uitvoering nodig. Overmatige capaciteiten vergroten de impact van geslaagd misbruik.
-
Continu testen: AI-beveiliging is geen eenmalige beoordeling. Modellen veranderen, verdediging evolueert en regelmatig worden nieuwe aanvalstechnieken ontdekt. Implementeer continu beveiligingstesten als onderdeel van de ontwikkel- en uitrolcyclus.
-
Secure by default: Standaardconfiguraties horen veilig te zijn. Vereis expliciete opt-in voor risicovolle capaciteiten, gebruik allowlists in plaats van denylists, en kies bij twijfel voor beperking in plaats van toegeeflijkheid.
Integratie met organisatiebrede beveiliging
AI-beveiliging staat niet op zichzelf — het moet integreren met het bredere beveiligingsprogramma van de organisatie:
| Beveiligingsdomein | AI-specifieke integratie |
|---|---|
| Identity en access | API-sleutelbeheer, toegangscontroles voor modellen, gebruikersauthenticatie voor AI-features |
| Gegevensbescherming | Classificatie van trainingsdata, PII in prompts, dataresidentie voor modelaanroepen |
| Applicatiebeveiliging | Dreigingsmodellering van AI-features, prompt injection in SAST/DAST, veilige AI-ontwerppatronen |
| Incident response | AI-specifieke playbooks, monitoring van modelgedrag, forensisch onderzoek naar prompt injection |
| Compliance | AI-mapping naar regelgeving (EU AI Act, NIST), AI-audittrails, modeldocumentatie |
| Supply chain | Herkomst van modellen, beveiliging van dependencies, integriteitsverificatie van adapters/gewichten |
class OrganizationalIntegration:
"""Framework voor het integreren van AI-beveiliging met de beveiligingsprogramma's van een organisatie."""
def __init__(self, org_config: dict):
self.config = org_config
self.gaps = []
def assess_maturity(self) -> dict:
"""Beoordeel de volwassenheid van de AI-beveiliging 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}Toekomstige richtingen
Verschillende onderzoeks- en industrietrends zullen de evolutie van dit vakgebied vormgeven:
- Formele methoden voor AI-veiligheid: Ontwikkeling van wiskundige frameworks die begrensde garanties kunnen bieden over modelgedrag onder adversariële omstandigheden
- Geautomatiseerde red teaming op schaal: Doorlopende 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: Toenemende adoptie van gestandaardiseerde benchmarks (HarmBench, JailbreakBench) die consistente meting van vooruitgang mogelijk maken
- Harmonisatie van regelgeving: Convergentie van AI-regelgevingskaders tussen jurisdicties, wat duidelijkere eisen voor organisaties oplevert
Referenties en verder lezen
- OWASP LLM Top 10 2025 — Uitgebreide gids over LLM-beveiligingsrisico'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) — LLM-kwetsbaarheidsscanner (github.com/NVIDIA/garak)
Wat is de meest effectieve verdedigingsstrategie tegen de aanvalsklasse die in dit artikel wordt beschreven?
Waarom blijven de technieken die in dit artikel worden beschreven effectief ondanks de voortdurende beveiligingsverbeteringen door modelaanbieders?