FEAT: Split-payload multi-turn attack strategy#1733
Conversation
|
@microsoft-github-policy-service agree |
82fb4bf to
7773d92
Compare
a5c5a28 to
26a30ed
Compare
|
Thanks for this; it's very cool! I worked with copilot to help me comment below: The underlying idea (fragment a harmful objective into individually-innocuous turns, then assemble) is a good idea and a technique worth having in PyRIT. The thing I'd push on is whether it needs to be a standalone attack class, because I think the framework already expresses both flavors of it without new orchestration. There are really two variants of this idea:
Mapping your class onto what already exists: decomposition by design pattern → system-prompt content (a YAML, reusable in either path) So my suggestion: I'd start by doing a simualted conversation attack using almost the same prompt. I'd add it to a component initializer (maybe |
04cb1e4 to
98bda6a
Compare
db9aa07 to
4157462
Compare
Thanks, agreed. I refactored the PR to remove the standalone attack class and reuse The PR now adds The prompt is narrower than default Crescendo: instead of general escalation from innocuous questions, it tells the adversarial model to split the objective into standalone benign-looking pieces, ask one per turn, build on prior answers, and only assemble near the final turns. |
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 63d0ddad-791c-4301-8502-8f6b9dc8a88a
4157462 to
c1e039b
Compare
Summary
Adds a split-payload multi-turn attack strategy to PyRIT. Split-payload attacks distribute a harmful request across multiple conversation turns where each individual turn passes all safety classifiers independently, but the assembled sequence constitutes a harmful instruction.
This is different from Crescendo (which escalates) - split-payload fragments a single harmful request across innocuous turns. The test: could you write a single harmful prompt that contains the same information as the full conversation? If yes, it's a split payload.
Changes
New attack strategy
Seed datasets
Design patterns
Four fragmentation patterns: component assembly, parameter specification, referential chains, context+technique split
Demo notebook
Shows configuring and running the attack against a target
Closes #1734
Testing