which user groups are allowed access, and to what functionality
part of the use-case definition
users = subjects
Objects
ensures members of dev team can use common set of objects and control appropriately
Activities/Actions
Each object in a system should have all possible activities/actions defined + documented
Subject-Object-Activity Matrix
📝 helps establish relationships between users and objects
creates list of allowable actions and another list of denied actions
Use cases
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
Abuse cases (inside and outside adversaries)
form of use case but for the specifically prohibited
SAFECode
development and distribution use cases - free, published PDF
Sequencing and Timing Issues
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 Coding Standards
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
Operational Requirements
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
Deployment environment
software is deployed to env that best suits its maintainability, data access, and access to needed services
follow corporate standards for seamless inter-connectivity
Requirements Traceability Matrix (RTM)
📝 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
Connecting the dots
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