112 lines
5.7 KiB
YAML
112 lines
5.7 KiB
YAML
unidirectional-drop-abp:
|
|
- command: python src/main.py --model=tests/abp/abp.pml --attacker=drop --chan=AtoB --output=temp.pml --eval --cleanup --mem=1
|
|
- intended: no violation
|
|
- explanation: abp resists drop, see https://en.wikipedia.org/wiki/Alternating_bit_protocol
|
|
|
|
bidirectional-drop-abp:
|
|
- command: python src/main.py --model=tests/abp/abp.pml --attacker=drop --chan=AtoB,BtoA --output=temp.pml --eval --cleanup --mem=1
|
|
- intended: no violation
|
|
- explanation: abp resists drop, see https://en.wikipedia.org/wiki/Alternating_bit_protocol
|
|
|
|
drop-nodeadlock:
|
|
- command: python src/main.py --model=tests/no-deadlocks/t1-deadlock.pml --attacker=drop --chan=c --output=temp.pml --eval --cleanup --mem=2
|
|
- intended: no violation
|
|
- explanation: drop gadget does not deadlock
|
|
|
|
replay-nodeadlock:
|
|
- command: python src/main.py --model=tests/no-deadlocks/t1-deadlock.pml --attacker=replay --chan=c --output=temp.pml --eval --cleanup --mem=2
|
|
- intended: no violation
|
|
- explanation: replay gadget does not deadlock
|
|
|
|
reorder-nodeadlock:
|
|
- command: python src/main.py --model=tests/no-deadlocks/t1-deadlock.pml --attacker=reorder --chan=c --output=temp.pml --eval --cleanup --mem=2
|
|
- intended: no violation
|
|
- explanation: reorder gadget does not deadlock
|
|
|
|
t1-reorder:
|
|
- command: python src/main.py --model=tests/reorder/t1-reorder.pml --attacker=reorder --chan=c --output=temp.pml --eval --cleanup --mem=1
|
|
- intended: no violation
|
|
- explanation: the reorder attacker gadget shouldn't be able to violate the claim, as it doesn't have enough mem
|
|
|
|
t1-reorder-more-mem:
|
|
- command: python src/main.py --model=tests/reorder/t1-reorder.pml --attacker=reorder --chan=c --output=temp.pml --eval --cleanup --mem=2
|
|
- intended: property violation
|
|
- explanation: the reorder attacker now has enough mem
|
|
|
|
t2-reorder:
|
|
- command: python src/main.py --model=tests/reorder/t2-reorder.pml --attacker=reorder --chan=c --output=temp.pml --eval --cleanup --mem=3
|
|
- intended: property violation
|
|
- explanation: rearrange attacker has enough mem to do the reorder attack
|
|
|
|
t3-reorder:
|
|
- command: python src/main.py --model=tests/reorder/t3-reorder.pml --attacker=reorder --chan=c --output=temp.pml --eval --cleanup --mem=2
|
|
- intended: no violation
|
|
- explanation: rearrange attacker does not have enough mem
|
|
|
|
t4-reorder:
|
|
- command: python src/main.py --model=tests/reorder/t4-reorder.pml --attacker=reorder --chan=c --output=temp.pml --eval --cleanup --mem=2
|
|
- intended: no violation
|
|
- explanation: rearrange attacker does not have enough mem
|
|
|
|
t1-drop:
|
|
- command: python3 src/main.py --model=tests/drop/t1-drop.pml --attacker=drop --chan=c --output=temp.pml --mem=1 --eval --cleanup
|
|
- intended: acceptance cycle
|
|
- explanation: drop attacker is able to remove the single message on the channel, preventing the eventually LTL property from ever satisfying
|
|
|
|
t2-drop:
|
|
- command: python3 src/main.py --model=tests/drop/t2-drop.pml --attacker=drop --chan=c --output=temp.pml --mem=1 --eval --cleanup
|
|
- intended: no violation
|
|
- explanation: drop attacker is not able to remove both the messages on the channel, so the LTL property remains satisfying
|
|
|
|
t3-drop:
|
|
- command: python3 src/main.py --model=tests/drop/t3-drop.pml --attacker=drop --chan=c --output=temp.pml --mem=2 --eval --cleanup
|
|
- intended: acceptance cycle
|
|
- explanation: attacker should drop both messages
|
|
|
|
t4-drop:
|
|
- command: python3 src/main.py --model=tests/drop/t4-drop.pml --attacker=drop --chan=c --output=temp.pml --mem=1 --eval --cleanup
|
|
- intended: acceptance cycle
|
|
- explanation: drop attacker should be able to find the attack in the middle of the chan
|
|
|
|
t5-drop-multi:
|
|
- command: python3 src/main.py --model=tests/drop/t5-drop-multi.pml --attacker=drop --chan=c --output=temp.pml --mem=5 --eval --cleanup
|
|
- intended: acceptance cycle
|
|
- explanation: attacker can drop all five messages
|
|
|
|
t6-drop-overwhelm:
|
|
- command: python3 src/main.py --model=tests/drop/t6-drop-overwhelm.pml --attacker=drop --chan=c --output=temp.pml --mem=4 --eval --cleanup
|
|
- intended: no violation
|
|
- explanation: attacker can't drop all five messages
|
|
|
|
t1-replay:
|
|
- command: python src/main.py --model=tests/replay/t1-replay.pml --attacker=replay --chan=c --output=temp.pml --eval --cleanup --mem=1
|
|
- intended: property violation
|
|
- explanation: since the attacker is able to replay "5" on c, they can progress the consume proctype from PROC1, then PROC2
|
|
|
|
t2-replay:
|
|
- command: python src/main.py --model=tests/replay/t2-replay.pml --attacker=replay --chan=c --output=temp.pml --eval --cleanup --mem=1
|
|
- intended: no violation
|
|
- explanation: the attacker must eventually replay the packet onto the channel
|
|
|
|
3-jump:
|
|
- command: python src/main.py --model=tests/replay/3-jump.pml --attacker=replay --chan=c --output=temp.pml --eval --cleanup --mem=1
|
|
- intended: property violation
|
|
- explanation: can replay the same packet multiple times
|
|
|
|
replay-out-of-order:
|
|
- command: python src/main.py --model=tests/replay/replay-out-of-order.pml --attacker=replay --chan=c --output=temp.pml --eval --cleanup --mem=2
|
|
- intended: property violation
|
|
- explanation: replay, but in a different order than received
|
|
|
|
weave:
|
|
- command: python src/main.py --model=tests/replay/weave.pml --attacker=replay --chan=c --output=temp.pml --eval --cleanup --mem=2
|
|
- intended: property violation
|
|
- explanation: consume-replay-consume-replay pattern is able to be found
|
|
|
|
weave-lessmem:
|
|
- command: python src/main.py --model=tests/replay/weave.pml --attacker=replay --chan=c --output=temp.pml --eval --cleanup --mem=1
|
|
- intended: no violation
|
|
- explanation: second consume cannot be completed, as we run out of consumption budget; however, we do have enough memory room for this
|
|
|
|
|