This document discusses using formal specification techniques like UML, Alloy, and Prolog to discover design flaws related to application and website security. It provides examples of how these techniques can be used to find issues with input validation, data flow, and access control by modeling the system and its requirements. Formal modeling allows exploring complex behaviors and edge cases that may lead to security vulnerabilities. The document advocates applying a "cocktail" of different modeling approaches to more thoroughly test for flaws during design.
Related topics: