Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 47 additions & 2 deletions specification/ai/Azure.AI.Projects/red-teams/models.tsp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@ union AttackStrategy {
@doc("Represents a default set of easy complexity attacks. Easy complexity attack strategies are defined as attacks that do not require any Large Language Model to convert or orchestrate.")
Easy: "easy",

@doc("Represents a default set of moderate complexity attacks. Moderate complexity attack strategies are defined as attacks that require a Large Language Model to convert or orchestrate.")
Moderate: "moderate",

@doc("Represents a default set of difficult complexity attacks. Difficult complexity attack strategies are defined as attacks that require a Large Language Model to convert or orchestrate.")
Difficult: "difficult",

@doc("Represents ASCII art, a graphic design technique that uses printable characters.")
AsciiArt: "ascii_art",

Expand All @@ -47,6 +53,45 @@ union AttackStrategy {

@doc("Represents character swapping, a technique for rearranging characters in text.")
Jailbreak: "jailbreak",

@doc("Represents ASCII attack, a technique for encoding or hiding data.")
AnsiiAttack: "ansii_attack",

@doc("Represents character swapping, a technique for rearranging characters in text.")
CharacterSwap: "character_swap",

@doc("Represents suffix appending, a technique for adding characters to the end of text.")
SuffixAppend: "suffix_append",

@doc("Represents string joining, a technique for concatenating strings.")
StringJoin: "string_join",

@doc("Represents Unicode confusable characters, which are characters that look similar but are different.")
UnicodeConfusable: "unicode_confusable",

@doc("Represents Unicode substitution, a technique for replacing characters with similar-looking Unicode characters.")
UnicodeSubstitution: "unicode_substitution",

@doc("Represents the use of emojis in text, which can be used to convey emotions or ideas.")
Diacritic: "diacritic",

@doc("Represents flipping characters, a technique for reversing the order of characters.")
Flip: "flip",

@doc("Represents leetspeak, a form of internet slang that replaces letters with similar-looking numbers or symbols.")
Leetspeak: "leetspeak",

@doc("Represents the ROT13 cipher, a substitution cipher that replaces a letter with the 13th letter after it in the alphabet.")
ROT13: "rot13",

@doc("Represents the morse code, a method for encoding text characters as sequences of dots and dashes.")
Morse: "morse",

@doc("Represents the url encoding, a method for encoding special characters in URLs.")
Url: "url",

@doc("Represents the baseline attack strategy, which is a standard or reference point for comparison.")
Baseline: "baseline"
}

@doc("Risk category for the attack objective.")
Expand Down Expand Up @@ -88,13 +133,13 @@ model RedTeam {
id: string;

@doc("Name of the red-team scan.")
scanName: string;
scanName?: string;

@doc("Number of simulation rounds.")
numTurns: int32;

@doc("List of attack strategies or nested lists of attack strategies.")
attackStrategy: AttackStrategy[];
attackStrategies: AttackStrategy[];

@doc("Simulation-only or Simulation + Evaluation. Default false, if true the scan outputs conversation not evaluation result.")
simulationOnly: boolean;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1604,14 +1604,29 @@
"description": "Strategies for attacks.",
"enum": [
"easy",
"moderate",
"difficult",
"ascii_art",
"ascii_smuggler",
"atbash",
"base64",
"binary",
"caesar",
"character_space",
"jailbreak"
"jailbreak",
"ansii_attack",
"character_swap",
"suffix_append",
"string_join",
"unicode_confusable",
"unicode_substitution",
"diacritic",
"flip",
"leetspeak",
"rot13",
"morse",
"url",
"baseline"
],
"x-ms-enum": {
"name": "AttackStrategy",
Expand All @@ -1622,6 +1637,16 @@
"value": "easy",
"description": "Represents a default set of easy complexity attacks. Easy complexity attack strategies are defined as attacks that do not require any Large Language Model to convert or orchestrate."
Comment thread
kseager marked this conversation as resolved.
Outdated
},
{
"name": "Moderate",
"value": "moderate",
"description": "Represents a default set of moderate complexity attacks. Moderate complexity attack strategies are defined as attacks that require a Large Language Model to convert or orchestrate."
Comment thread
kseager marked this conversation as resolved.
Outdated
},
{
"name": "Difficult",
"value": "difficult",
"description": "Represents a default set of difficult complexity attacks. Difficult complexity attack strategies are defined as attacks that require a Large Language Model to convert or orchestrate."
Comment thread
kseager marked this conversation as resolved.
Outdated
},
{
"name": "AsciiArt",
"value": "ascii_art",
Expand Down Expand Up @@ -1661,6 +1686,71 @@
"name": "Jailbreak",
"value": "jailbreak",
"description": "Represents character swapping, a technique for rearranging characters in text."
},
{
"name": "AnsiiAttack",
"value": "ansii_attack",
"description": "Represents ASCII attack, a technique for encoding or hiding data."
},
{
"name": "CharacterSwap",
"value": "character_swap",
"description": "Represents character swapping, a technique for rearranging characters in text."
},
{
"name": "SuffixAppend",
"value": "suffix_append",
"description": "Represents suffix appending, a technique for adding characters to the end of text."
},
{
"name": "StringJoin",
"value": "string_join",
"description": "Represents string joining, a technique for concatenating strings."
},
{
"name": "UnicodeConfusable",
"value": "unicode_confusable",
"description": "Represents Unicode confusable characters, which are characters that look similar but are different."
},
{
"name": "UnicodeSubstitution",
"value": "unicode_substitution",
"description": "Represents Unicode substitution, a technique for replacing characters with similar-looking Unicode characters."
},
{
"name": "Diacritic",
"value": "diacritic",
"description": "Represents the use of emojis in text, which can be used to convey emotions or ideas."
},
{
"name": "Flip",
"value": "flip",
"description": "Represents flipping characters, a technique for reversing the order of characters."
},
{
"name": "Leetspeak",
"value": "leetspeak",
"description": "Represents leetspeak, a form of internet slang that replaces letters with similar-looking numbers or symbols."
},
{
"name": "ROT13",
"value": "rot13",
"description": "Represents the ROT13 cipher, a substitution cipher that replaces a letter with the 13th letter after it in the alphabet."
},
{
"name": "Morse",
"value": "morse",
"description": "Represents the morse code, a method for encoding text characters as sequences of dots and dashes."
},
{
"name": "Url",
"value": "url",
"description": "Represents the url encoding, a method for encoding special characters in URLs."
},
{
"name": "Baseline",
"value": "baseline",
"description": "Represents the baseline attack strategy, which is a standard or reference point for comparison."
Comment thread
kseager marked this conversation as resolved.
Outdated
}
]
}
Expand Down Expand Up @@ -2775,7 +2865,7 @@
"format": "int32",
"description": "Number of simulation rounds."
},
"attackStrategy": {
"attackStrategies": {
"type": "array",
"description": "List of attack strategies or nested lists of attack strategies.",
"items": {
Expand Down Expand Up @@ -2819,9 +2909,8 @@
},
"required": [
"id",
"scanName",
"numTurns",
"attackStrategy",
"attackStrategies",
"simulationOnly",
"riskCategories"
]
Expand Down