Whenever I give a presentation, training, or just talk to security teams, it becomes clear that over the years a gap has been created between application security and development. A gap we created consciously and with intent and that became painfully visible with the introduction of Agile and DevOps. Suddenly exhaustive information security policies with checklists and penetration tests became serious impediments. The challenge we are facing now is how to bridge this gap again.
Fortunately this challenge is easier to solve as it appears to be. The key to success is to split the security officer function more Agile minded roles with different responsibilities and duties. In following posts I will dive deeper into the different aspects of these roles and the differences in the responsibilities and duties. But first, let's take a little trip down to memory lane to understand how we ended up in this situation.
A Little History
Information Security as a profession more or less started in 1985 when Stephen Katz became the first CISO (chief information security officer) at Citibank . Security was given its own department in the company with its own C-level officer. At that time it seemed like a logical choice. Security was more or less defined by infrastructure and policies and had little to do with application development. That started to change mid-nineties with the rising of web applications, but we (as a security industry) failed, maybe even refused, to recognize it and kept security separate from development.
The Status Quo
With the increasing use of web applications, cloud solutions, and connected 'things', security nowadays is for the bigger part defined by development, but still the security aspects are usually the responsibility of another department with their own processes. Until a few years ago, even this unnatural separation didn't cause huge problems. Sure, security was the 'department of NO' and developers 'never cared about security', but with risk assessments at the beginning of a project and penetration tests at the end, the final result could become more or less secure. Most vulnerabilities that still ended up in production could be handled by incident response teams and the findings of the annual audit were given a high priority and fixed before fines were issued. This was not an ideal situation, but it worked well enough for most companies.
The Winds Of Change
This status quo started to tremble with the introduction of Agile and DevOps. Suddenly, there was no beginning of a project anymore and release cycles become so short that penetration tests became a serious impediment. Since development is directly linked to business value and therefore company turnover, security was more and more bypassed for the sake of time (and money). As the responsibility for security was taken away from development more than 2 decades ago, it is not surprising that most development frameworks and approaches don't spend much time on the subject. Most of the time there is a small section mentioning security is important and you should align with the corporate policies and that's it . Even education doesn't spend much time on the subject usually (although that is changing), so most developers are not even aware of the problems, unless they do some research on their own, helped by organizations as OWASP . The security specialists, on the other hand, are not trained in modern software development practices. They are still trained to use tollgates, checkpoints, and a world of fairly static situations to become, and remain, resilient.
Away With The Old
So after 30 years of trying to build secure software and systems, we ended up with two worlds at war; one wanting to build with bricks, concrete, and steel and the other wanting to use Lego and Meccano. History showed that speed will always win over certainty. Even when you are wrong while being fast, you have more time (and therefore chances) to correct and in the end you will win. Assembly lines, workflow software, Lean, Agile, DevOps, and all other speed improving approaches won over the old ways and will remain to do so in the future. So the solution to the security vs development struggle is not slowing down or adding more tollgates to development. Instead, security has to start understanding how the new world works and find new ways to regain grip on the situation. In the Agile world there are a couple of roles that provide you the mechanisms for that.
The Security Stakeholder: Defining The What And What Not
In the Agile way of working, the Product Owner is the person who translates business and customer desires into work items (user stories) for the teams . The actual desires and requirements, however, are provided by Stakeholders. As a Security Stakeholder, you have to compete with other stakeholders in prioritizing user stories, so it becomes important to be able to translate requirements into real business value.
The Security Expert: Helping With The How
Security experts give active guidance and assistance inside teams. They actively help implementing security controls and mechanisms. As a Security Expert, you should focus on implementing the user story in the right way and not discuss the user story itself, as that is the role of the Stakeholder.
The Evangelist: Raising The Bar
Depending on your workload as a security expert, the last interesting role for security officers in Agile worlds is that of the security evangelist. The evangelist acts as a domain expert across all teams and coaches teams to become more aware on best-practices, regulations, tooling, intelligence, discuss security and privacy related topics, and increase awarenessand skills across the teams.
Want to know more?
If you want to know more about how to become an agile security officer please
visit the blog series [5a - 5f] or download the whitepaper about this topic.
The blog series provide a more detailed explanation of the previous mentioned roles and responsibilities.
The whitepaper contains the content of all 5 blogs in an easier to read offline format.