- business reqs
- IT reqs (e.g. database, environment, DR/BCP)
- org reqs (e.g. coding standards, maintainability)
- security reqs
- which user groups are allowed access, and to what functionality
- part of the use-case definition
- users = subjects
- ensures members of dev team can use common set of objects and control appropriately
- Each object in a system should have all possible activities/actions defined + documented
- 📝 helps establish relationships between users and objects
- creates list of allowable actions and another list of denied actions
- a specific example of an intended behavior of the system, usually for complex/confusing/ambiguous situations
- not intended for all subject-object interactions
- not a substitute for documenting specific reqs
- 📝 graphical format that shows intended behavior (ellipses) for actors (stick figures)
- 📝 best for business reqs that are poorly defined
- form of use case but for the specifically prohibited
- development and distribution use cases - free, published PDF
- race conditions, infinite loops
- Means system is vulnerable to a Time of Check/Time of Use (TOC/TOU) attack
- 📝 system does not use the value right after it checks the value, allowing for unauthorized manipulation
- 📝 To avoid race conditions, first identify race window and then design so processes are not called concurrently (mutual exclusion)
- 📝 infinite loops: caused by complex conditional logic with unhandled situations - all conditions in a nested loop should be handled in a positive fashion
- Secure SDLC includes controlling processes and making repeatable
- Adopt secure development frameworks as part of SDLC
- 📝 each function should practice complete error mitigation
- logging standards for what, where, when
- enterprise systems need to interact with and function alongside many other systems
- complete SDLC solution: secure by design, secure by default, secure in deployment
- default configuration should be secure
- software is deployed to env that best suits its maintainability, data access, and access to needed services
- follow corporate standards for seamless inter-connectivity
- 📝 track and manage reqs and implementation details
- document relationships b/w security reqs, controls, and test/verify efforts
- predefined reqs for infra, security, data sources, etc for dev teams
- easiest reqs are the features asked for
- also need to document implied reqs
- if the dev team should do something, needs to be listed in project reqs