Is it possible to Shift Left Security Requirements?
#SoftwareSecurityMyth –Security requirements are Non-Functional requirements and are the responsibility of Architects; Business cannot be bothered with these requirements.
The Problem
I often hear that "Software Security
Rightly so, if you go and ask questions like “Give me requirements related to Repudiation threat?” or “Which encryption algorithm to use?” or “Do I need to use One way SSL or Two way SSL?” – I am sure business won’t be able to answer them.
This means security concerns are pushed down to the "Design and Implementation" phase and that is already too late. Moreover, business has no stake in Security requirements - they are not as involved in this phase compared to Requirements phase - this is a bigger concern, as it leads to Security requirements are seen as "speed bumpers" and not as "business enablers".
But does this mean that we cannot “Shift Left
How to Address this Situation
If you go through OWASP Top 10 Security Risks, which is published here and here, you will realize that many of these risks can be addressed if we write our User Stories in a more comprehensive way.
Here are few examples:
If you consider most of the #InjectionAttacks, they occur because of inadequate input validation, if we clearly define what is allowed values at the each User Story level, it can help us better contain such issues leaking to the production.
领英推荐
Similarly, #MassAssignment is an issue when requirements are vaguely defined in terms of which attributes are allowed to be updated by the clients (API requests) and developers take the (un)educated guess to update everything coming in the request.
Another, security risk #BrokenAuthentication which is linked to successful brute force attacks can be avoided by adding requirements of locking account after reasonably finite failed attempts (a case of missed requirements for Exception scenarios).
These are just few examples. If you look at these scenarios/requirements, they may not even appear as security requirements and still, having these scenarios taken care of means building effective defense against top security risks by embedding security at the User Stories level.
To Summarize - following detailing can help embed security requirements at the User Story Level:
While above list is mostly about embedding security concerns in the User stories (without explicitly calling them security requirements), there are cross cutting concerns that you don’t want to repeat in each User story (e.g. Supported Browser Versions) - those still needs to be added (along with treatment of what to do if unsupported browser is being used to access the system) as separate User Stories.
To Conclude
It is a myth that Software Security is responsibility of a select few, but Security is everyone’s responsibility
#SecureSDLC #SecurityInAgileProjects #NFRStories #SecurityByDesign
Ui full stack Architect | Full Stack Web Developer | React js | Next js | Node js | Java | Devops
1 年Nicely put ????totally agree that security is everyone’s responsibility and not just few..Security is a multi layered concept and each layer has to be woven secure by its stakeholder/implementers.