← Dokumentace WAF / detections / ai-security-for-apps
Detekce nebezpečných a vlastních témat
AI Security for Apps dokáže detekovat, když se LLM prompt dotýká nebezpečných nebo nežádoucích témat. Existují dvě vrstvy detekce témat:
- Výchozí nebezpečná témata: Vestavěná sada bezpečnostních kategorií, které detekují škodlivý obsah, jako jsou násilné trestné činy, nenávistné projevy a sexuální obsah.
- Vlastní témata: Témata, která definujete podle specifických zásad vaší organizace, například "competitors" nebo "financial-advice".
Výchozí nebezpečná témata
Když je AI Security for Apps zapnuté, automaticky vyhodnocuje prompty vůči sadě výchozích kategorií nebezpečných témat a naplňuje dvě pole:
- LLM Unsafe topic detected (
cf.llm.prompt.unsafe_topic_detected):truepokud bylo nalezeno jakékoli nebezpečné téma. - LLM Unsafe topic categories (
cf.llm.prompt.unsafe_topic_categories): Pole konkrétních detekovaných kategorií.
Výchozí kategorie nebezpečných témat
| Kategorie | Popis |
|---|---|
S1 |
Násilné trestné činy |
S2 |
Nenásilné trestné činy |
S3 |
Sexuálně motivované trestné činy |
S4 |
Sexuální zneužívání dětí |
S5 |
Pomluva |
S6 |
Specializované poradenství |
S7 |
Soukromí |
S8 |
Duševní vlastnictví |
S9 |
Nerozlišující zbraně |
S10 |
Nenávist |
S11 |
Sebevražda a sebepoškozování |
S12 |
Sexuální obsah |
S13 |
Volby |
S14 |
Zneužití interpretu kódu |
Vlastní témata
Detekce vlastních témat vám umožňuje definovat vlastní témata, vůči nimž AI Security for Apps skóruje každý prompt. Tato skóre pak můžete použít v vlastní pravidla nebo pravidla rate limitingu k blokování, vystavení challenge nebo logování požadavků na základě skóre relevance, které definujete.
Tato funkce používá zero-shot klasifikační model který vyhodnocuje prompty za běhu. Není potřeba žádné trénování modelu.
Jak fungují vlastní témata
- Definujete seznam až 20 vlastních témat. Každé téma se skládá z:
- Štítek: Krátký identifikátor se spojovníky používaný ve výrazech pravidel a analytice (například
financial-advice). - Popis tématu: Popisný text, který model používá ke klasifikaci promptů (například
seeking financial advice).
- Štítek: Krátký identifikátor se spojovníky používaný ve výrazech pravidel a analytice (například
- Když požadavek dorazí na
cf-llmoznačený endpoint, model vyhodnotí prompt vůči všem definovaným popisům témat a pro každé vrátí skóre relevance. - Skóre se zapisují do
cf.llm.prompt.custom_topic_categoriesmapové pole klíčované podle štítku. Ve výrazech pravidel a analytice používáte štítky (nikoli popisy témat).
Definice vlastních témat
Vlastní témata můžete spravovat ze dvou míst v dashboardu:
- Stránka Security Settings: Přejděte na Security > Settings a vyhledejte AI Security for Apps sekci. V části Vlastní témata, vyberte Manage topics k přidání, úpravě nebo odebrání témat.
- Boční panel Expression Builderu: Při vytváření nebo úpravě vlastní pravidlo, vyberte LLM Custom topic (pole). Poté vyberte Správa vlastních témat k otevření postranního panelu, kde můžete spravovat témata, aniž byste opustili stránku vytváření pravidla.
Obě metody aktualizují stejný podkladový seznam témat. Změny provedené v jedné se okamžitě projeví v druhé.
-
V Cloudflare dashboardu přejděte na Security Settings stránku.
Přejděte na Settings ↗Případně přejděte na stránka pro vytváření vlastních pravidel, vyberte LLM Custom topic pole a vyberte Správa vlastních témat pro otevření bočního panelu.
-
Téma přidáte zadáním:
- Štítek: Krátký identifikátor se spojovníky (například
competitors). - Popis tématu: Popisná anglická fráze, kterou model používá ke klasifikaci (například
seeking info on competitors).
- Štítek: Krátký identifikátor se spojovníky (například
-
Vyberte Save.
Svůj seznam vlastních témat aktualizujete pomocí PUT požadavek:
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/ai-security/custom-topics" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"topics": [
{
"label": "competitors",
"topic": "seeking info on competitors"
},
{
"label": "financial-advice",
"topic": "seeking financial advice"
},
{
"label": "hr-internal",
"topic": "asking about internal HR policies"
}
]
}'Svá aktuální témata získáte pomocí GET požadavek:
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/ai-security/custom-topics" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"Omezení
| Parametr | Limit |
|---|---|
| Maximální počet témat | 20 |
| Délka řetězce tématu | 2–50 tisknutelných ASCII znaků |
| Délka labelu | 2–20 znaků |
| Formát labelu | Malá písmena, číslice a pomlčky (-) pouze |
Osvědčené postupy pro definování vlastních témat
Kvalita detekce vlastních témat závisí na tom, jak napíšete popisy témat. Podkladovým modelem je zero-shot klasifikátor, který porovnává sémantický význam promptu s vaším popisem tématu.
Nejdůležitější je popsat záměr uživatele, nikoli jen téma.
Začněte záměrem
Model provádí sémantickou klasifikaci, nikoli porovnávání klíčových slov. Popisy témat, které zachycují, o co uživatel pokouší udělat jsou výrazně přesnější než popisy, které pouze pojmenovávají tematickou oblast. Krátká slovesná fráze (3–6 slov) je obvykle nejlepším kompromisem mezi přesností a pokrytím.
Porovnejte, jak si stejné dva popisy témat vedou proti dvěma promptům, které oba zmiňují finance, ale s velmi odlišným záměrem:
| Popis tématu | Prompt: "Mám své úspory investovat do indexových fondů?" | Prompt: "Náš finanční tým právě dokončil report za Q3." |
|---|---|---|
financial advice (pouze podstatné jméno) |
Shody | Také odpovídá. Objevuje se slovo "finance", přestože nikdo nežádá o radu |
seeking financial advice (fráze záměru) |
Shody | Správně ignorováno. Zmiňuje finance, ale nemá záměr žádat o radu |
Příklad: competitors
| Kvalita | Popis tématu | Proč |
|---|---|---|
| Nejlepší | seeking info on competitors |
Zachycuje záměr. Spustí se, jen když se uživatelé aktivně ptají na konkurenci |
| Okay | Acme Corp, Banana Co, Candy & Sons |
Funguje pro známé názvy, ale míjí nejmenované konkurenty a zachytává i letmé zmínky |
| Nevhodné | other companies |
Příliš vágní. Odpovídá téměř jakémukoli promptu, který zmiňuje firmu |
Příklad: financial-advice
| Kvalita | Popis tématu | Proč |
|---|---|---|
| Nejlepší | seeking financial advice |
Řízeno záměrem. Odpovídá uživatelům žádajícím o radu, ignoruje pasivní zmínky o financích |
| Okay | securities and investments |
Rozumný rozsah tématu, ale spouští se i na zpravodajských článcích a faktických zmínkách, nejen při hledání rad |
| Nevhodné | finance |
Extrémně široké. Odpovídá téměř všemu od vyúčtování výdajů po dotazy na ceny |
Další osvědčené postupy
- Buďte konkrétní. Příliš široká témata způsobují falešně pozitivní výsledky; příliš úzká témata falešně negativní.
- Vyhněte se sémantickému překryvu. Pokud dvě témata znamenají téměř totéž (například
seeking financial adviceaasking for investment guidance), budou na stejných promptech dosahovat podobného skóre a plýtvat vaším rozpočtem 20 témat. - Testujte a iterujte. Odešlete testovací prompty a zkontrolujte skóre v Security Analytics. Ladit můžete úpravou popisu tématu (více či méně specifický) nebo prahové hodnoty skóre v pravidle (
lt 20je strict,lt 50je permisivní). - Neuvádějte více hodnot v jednom popisu tématu. Model vyhodnocuje pouze první položku v seznamu odděleném čárkami. Například
Toyota, Ford, Audi, BMWbude odpovídat pouze promptům oToyota— zbývající položky jsou ignorovány. Odstranění čárek výsledky nezlepší. Použijte jedinou frázi vystihující záměr, napříkladseeking info on competitors, nebo vytvořte pro každou hodnotu samostatné téma.
Příklady vlastních témat
| Štítek | Popis tématu |
|---|---|
competitors |
seeking info on competitors |
financial-advice |
seeking financial advice |
legal-advice |
asking for legal or regulatory advice |
sensitive-data |
requesting passwords or API keys |
job-seeking |
asking about job openings or careers |
bias |
comparing demographic groups as better or worse |