Misuse Case Testing
Misuse case testing explores how harmful actions, system errors, or hostile inputs could disrupt operations, revealing weaknesses and confirming protections across various interactions between a system and its environment.
3 slides · 2 min read · Domain 6
Let's start by clarifying some of the jargon associated with misuse case testing. Use cases are abstract episodes of interaction between a system and its environment. A use case characterizes a way of using a system, or a dialog that a system and its environment may share as they interact. The term is often used during the development of the system to generate insight regarding the flow of work and activities that the system must support. By contrast, a scenario is a description of a specific interaction between individuals. Scenarios can provide the context in which different use cases may or may not be appropriate.
Use cases state some of the intended, required, and desired ways that people will use the system to complete authorized, necessary work.
These actions may be either deliberate, malicious, or accidental.
Misuse cases have many possible applications and interact with use cases in interesting and helpful ways. Security requirements exist because people and the agents they create, such as computer viruses, pose real threats to systems. Security differs from all other specification areas in that someone is deliberately threatening to violate proper use of a system.
Employing use and misuse cases to model and analyze scenarios in systems under design can improve security by helping to mitigate threats.
In contexts demanding high levels of safety, such as medical devices or safety-critical software, it's important to consider abuse and misuse cases.
These help identify additional control flows to deal with component or subsystem failures as well as incorrect human behaviors in the system.
Misuse case testing examines how a user's actions could lead to systems integrity failures, malfunctions, or other security compromises.
Some misuse cases occur in highly specific situations, whereas others continually threaten systems. For instance, a car is more likely be stolen when parked and unattended, whereas a web server could suffer a denialof-service (DoS) attack at any time. Misuse and use cases can be developed recursively, going from system to subsystem levels, or lower, as necessary. Lower-level cases can highlight aspects not considered at higher levels, possibly forcing another analysis. The approach offers rich possibilities for exploring, understanding, and validating the requirements in any direction. Identifying the agents and misuse cases helps focus the security professional's attention on the scenario's elements.
