AC03 - condition is too limiting
"AC03": { "description": "The Data Store Could Be Corrupted", "source": (Process, Element), "target": Datastore, "condition": "target.isShared is True or target.hasWriteAccess is True", },
If a Datastore is shared and allows write access, it may be corrupted, which is True. But what is missing from this logic is if the shared Processes/Elements are granted Write access - an Element:Datastore relationship need not be symmetric or universal. This requires some additional logic, and goes to the complexity of such things.
Consider:
Datastore A Process A Process B
A.isShared is True A.hasWriteAccess (from Process A) is True A.hasWriteAccess (from Process B) is False
Threat?
Problem: we can't represent this currently - it requires Source:Target:Condition relationships that cannot be represented given the current object model. Note the Object Model I posted to the wiki can represent this relationship, but may be too complex for some.