dynamicsystemsarchitecture.org

Adversarial Scenario Simulations

Three attacks on a simulated adaptive-learning system: an attacker who keeps scaffolding at maximum, a prerequisite graph that is wrong, and a verifier with a valid token who over-approves.

PurposeProbe three attack scenarios for design questions.
StatusDetermined by setup — in each script the headline number comes from a value the script itself sets.
Touches NCFCA codeNo. Self-contained numpy simulations. None implements the verifier rate limit or any other mechanism from a specification.
AttributionCode AI-generated (tool not recorded). Run in the lab; results unchanged.
ReviewedBy no outside party. The reading below was done when this page was built, directly from the code and CSV.

1. I-channel starvation (denial of state)

An attacker fixes the friction signal at “high”, so scaffolding stays at maximum. The rule is that mastery can only be confirmed after an unassisted production. A forcing function sets scaffolding to zero every eighth session.

2. Incorrect ontology

The prerequisite graph is wrong. For 30 simulated students, a “penalty” is drawn uniformly between 0.15 and 0.40 and subtracted from their progress.

3. Malicious authorized actor

A verifier with a valid token over-approves from session 11, with a 25% chance each session. “Detection” flags a session when recorded mastery exceeds true mastery by more than 0.25.

What they show

Three scenarios worth designing against. The malicious-verifier case also names a real problem: detecting over-approval needs a signal that does not depend on the approver, such as an unassisted re-check.

What they do not show

Download (unchanged from the lab’s run): ichannel_starvation_test.py · ichannel_starvation_results.csv · incorrect_ontology_attack_test.py · incorrect_ontology_results.csv · malicious_authorized_actor_test.py · malicious_actor_results.csv
Scripts write to a path from the lab’s own machine (/home/workdir/artifacts/); change it to run them elsewhere. Seed 42, so a rerun reproduces the CSV.