Conf42 DevSecOps 2022 - Online

Implementing True DevSecOps with People, Processes, and Technologies

Video size:

Abstract

True DevSecOps requires a healthy mix of People, Process and Technology. What is the business impact of this and how can we use it to drive competitive advantage?

First we must look internally, changing culture and breaking down silos. Then, look at the interactions, processes and technologies throughout our software development lifecycle. Security must shift left and be integrated throughout.

This will bring benefits to security, development and the entire DevSecOps pipeline. Gitlab, the DevOps platform, allows collaboration, transparency and results that can drive true business value.

Summary

  • Stefania Chaplin is a solutions architect at GitLab. She talks about implementing true devsecops with people, processes and technology. What we're looking for is software delivery performance and organizational performance. If you're lacking scale, innovation or automation, people are probably potentially getting burnt out.
  • You can combine development, security and operations on the same page. You can have all of that within a pipeline before a developer has even committed the code. Security as well can have visibility of this if they choose to. And compliance, this can be very important for a number of companies.
  • GitLab. wants to empower developers, we want to lower our overall security exposure. Scan results, allow developers give them their security information and do it when they're committing code. You end up with predictable costs with all your security scanning within the pipeline and also integrated within as well.
  • When you have people, process and technology, that's when you can drive true business value. You can improve your operational efficiencies, reduce your security and compliance risk and fundamentally deliver better software faster. Thank you everyone for listening and look forward to catching up in the future.

Transcript

This transcript was autogenerated. To make changes, submit a PR.
Hi everyone, I'm Stefania Chaplin, a solutions architect at GitLab and I'm going to talk about implementing true devsecops with people, processes and technology a little bit. About me I'm Stefania Chaplin, I'm a solutions architect. I've been in the devsecops space for a very long time. You can find me on my different handles or email. I used to be a python developer. I'm part of OWAsp dev silos. When I'm not doing tech stuff, I quite like yoga, tropical plants, and I'm a big advocate for diversity in technology. But enough about me. So people, processes and technology, if you think of it as overlapping Venn diagram. So when we have people and process, what we end up with is we can scale. So if you think about manufacturing and services, they have a fairly standardized process. For example, if you're going to get a McDonald's, you're probably going to receive a similar service depending on where you are in the world, maybe different products, but that's a different story. When we have people and technology, that means we can innovate. So if we think about the World Wide Web and what it looked like in 1994 to 2004 to 2014, it was very, very different. And it was a great combination of people, technology and innovation. The final one, when we have the bottom two, process and technology, this is where we can automate. So if we look at all the AI, machine learning, how we take our technology and we give it a process, all of a sudden we can get things done a lot faster. So what happens when you're missing certain elements? So for example, maybe you're not fast enough, maybe you've got a good process, good people, but maybe you're not using processes and technology efficient enough and you're not automating. If you're not efficient enough, then this probably means that you haven't quite standardized your people and process. So maybe you haven't found a way to scale yet. And okay, you're scaling, you're automating, but maybe you're not creating value. So this is where the people in technology is missing, and maybe you're lacking the innovation. So these are all things to think about as you think about your people, process and technology in terms of business impact. There's some great books I'd recommend. So Jean Kim, first the Phoenix project, then the recent sequel, the Unicorn project. And what we can see is improved information flow. We also have an increase in other areas. For example, culture. I talk about culture a lot because in terms of DevOps devsecops. It's not about a tool changing. You could buy all the tools and all the platforms in the world. If you haven't changed your culture and you're still operating in silos, you're going to have a little bit of a problem, similar with job satisfaction, identity of users, well, of employees, because ultimately you want to reduce the team burnout. Because if you're lacking scale, innovation or automation, people are probably potentially getting burnt out. There's going to be frustration. And once you start to fix this, you're going to get lower levels of deployment. And I say pain because it can be a bit painful sometimes, getting from code to production and also unplanned work. So when I mean this, I mean the red alerts, the firefighting, the problems that can arise when you have a very segregated tool chain and a lack of unison with people, processes and technology. So what we're looking for is software delivery performance and also organizational performance as well. I think the Unicorn project is a really good example of this. If you haven't read it, I would recommend it, because in the example, the protagonist, she joins a new team which is struggling. She's just trying to do a build, and that's a significant portion of the book. Just the process of her, like chasing support tickets, trying to find what scripts to run, the mix of languages, scripts, executables, et cetera. So if you have a culture or a process similar to that, you're going to end up with potentially a lot of frustration and lower software delivery and organizational performance than you would hope for. So Devsecops is transforming how companies deliver software. So when I say that, what I'm really talking about, security, changing vulnerabilities, everybody's favorite job, right? I used to be developer. I've worked in security a long time. I'm going to present to you two examples. So number one, what happens when you find 10,000 vulnerabilities at the end of your software development lifecycle? So maybe going into production, maybe it's in production, maybe it's just as you're about to hit deploy, when you're already behind schedule, behind budget, behind. Maybe there's a bit of tension in the room that's not when you want to discover these vulnerabilities, because especially if you've got any higher criticals, that could definitely be a showstopper. So I'm going to present to you another opportunity. What about if you empower each developer to deal with each one at the point where it's introduced, be proactive give developers the opportunity to play around, maybe in their own feature branch. Maybe they discover they're introducing a vulnerable library and then maybe they just upgrade. Maybe they use a different library, but having it as shifted left as possible, empowering your developers, a lot better I would say, than dealing with all of your problems right at the very end. So why do this? It's not just about the culture burnout, the happy fuzzy feelings that we as developer and security operations want to feel when we deploy. It's also about the cost. This comes from NIST, which is the very popular framework for security, and what we can see the cost to remediate. So say if we find a problem in requirements, maybe we're doing some threat modeling. That's going to be fairly easy. Well, easy, quick or easy to fix, because maybe we haven't quite started with still, we're still requirements gathering. Similarly, as you're coding, it's fairly easy to make code changes before you've started the development process. Once you start getting into testing, which is normally when we find vulnerabilities, that's going to still fixable. But what you can see in this chart with production, it's very expensive to fix in production. And also if you're fixing stuff in production, it means it's already out there. So your application and your business is vulnerable. So it's definitely worth taking a shift left approach to security. So what it doesn't mean because you don't want to look like this poor woman here, hand in your eyes, which I'm sure everyone has those days, but hopefully not with dead suck ups. So there's a lot of misconceptions and a couple of myths. So what we are not asking for, we do not want to disrupt workflow. So if you're asking developers to run scans outside of their existing workflow, that's going to cause a problem because you want to make it as seamless and transitional as possible. Similarly, expecting developers to understand what tools to run, when and how to interpret the results. This is a big knowledge gap we see because the way that developers DevOps talk and the way that they prioritize versus security and the lexicon that they use, there can be miscommunication sometimes. So when we think about security, this is kind of the old school approach and you can kind of see a loop. If we start at the top left at the repository, we commit, do CI merge, CD deploy, maybe you have a test environment, do some dynamic application security testing or maybe on the infrastructure, then the security team come along and then they're like right, here's your list of problems you can dismiss or create. The issue goes into the ticketing system and back to the development team. But you can see here, security is an afterthought and security as an afterthought is never a good idea because we really want to be releasing secure applications. So a more modern workflow, similar, same component, slightly different order. We have our repository on the top left, we commit our code, then it goes into the CI system. We have something called a review app. This is an ephemeral instance, which means you can do, a developer can do dynamic application security testing as part of their feature branch, what this also means, so they can do well, not only das a lot of other security that I'm going to talk about, but this gives the developer the chance to dismiss or create the issue, but they have a lot more control. If you think about as well the number of developers to security, you've got a lot more developers. If we could make every developer 1% better in security all of a sudden that would be a massive improvement. So now once you've got your CI and you have your merge request, so maybe you're merging back to your feature branch, CD will come along security team and at that point you have significantly lowered the number of potential vulnerabilities being released and you're able to deploy in a much safer manner. So advantages for the developer. So a couple of contextual, what do I mean by this? So within CI CD, everyone's accountable. For example, you could have a merge request pipeline for each developer. So this means that you've got your sandbox, you have the ability to play around, but you're not necessarily, I'm going to say polluting the main branch congruent with DevOps processes, so it gives you the chance to iterate. DevOps is very much about iterating. So if you can test with every code change, you can immediately see the cause and effect. So instead of on the first diagram where I might not know there's problems for a while, if we do take a more devsecops approach, we can integrated a lot faster. Similarly, having it integrated with DevOps tools, whether you're creating issues, autoremediation, you can get production feedback and efficient and automated. So what you're trying to do is eliminate work wherever possible, reduce context switching because no one wants context switching no matter who you are. And finally, less tracking and triaging because you've got more value added security and you have it at the right time. So really simplicity and integration win advantages for security. So there's some automation, it's consistent. They've also got earlier visibility into risks and remediation. If you could have a imagine this, you could have a development pipeline, you could get security results into there. You could then have a security dashboard where you could see all that might be going on in the pipelines, but mainly in the main branch. And then when you do create issues, you can see who's working on what. So it's really about visibility with this. When you get visibility, you can also potentially have predictable costs, because even if you have more testing, more testing, you're going to uncover your problem. You want to shift that left and that makes it a lot cheaper. So there's also reduced friction with development because you are empowering them and you can also give competitive feedback to the development. Maybe you want to give them a bit of security training as part of that ticket, for example. So what we have here is an example pipeline. So this could be as part of, for example, a merge request. A developer has an idea, they're going to write some code, they then create a feature branch, and then what they can do is as part of that, have all of these different scans. So I mentioned dynamic application security testing earlier. You can have static code analysis, looking at the written code, software, competitive analysis, looking at all the open source license scanning of that open source, looking for secret detection unit tests, et cetera. You can have all of that within a pipeline before a developer has even committed the code. And security as well can have visibility of this if they choose to. So what you end up with, here's my example, you are moving your security testing as close as possible to the developer. So as mentioned, developer creates an issue, create a merge request, so then they have the feature branch, which you can see along the top, commit the changes, run the pipeline, have some security scans, and the developer can get the results and then act on them. And this is all happening within the feature branch. So once you've done that, you can review, you can approve the changing and then close the merge request. And all of a sudden all of your amazing code is back in the default branch as secure as possible. So when your CD pipeline runs, you get some more security scans and then this all goes to the security dashboard. So when shift left is done, well, you can celebrate, as you can see here. So what does it mean? You can scan all code every time. A lot of tools out there, especially historically, maybe they charged per scan, maybe they charged per app. The reality is, if you are pricing per scan for example or per app, it's going to mean less scans. Whilst if you could can all your code every time with the incremental changes you could then see if you're introducing vulnerabilities. You want to make it seamlessly for devs. I used to be one. We like our tools, we like our idE, we like the tools that we need to use. Maybe we use handful issue tracking for CI CD, but we really want to use fewer tools. If a dev could live in their idE, I promise you we would. So what you really want to do is you want to combine, you want to have development, security and operations on the same page, maybe even using the same interface to have your CI CD, to have your security result, to have all your permissions hierarchy, just having one interface for all this and also happy compliance auditors which I will talk about in a moment. So compliance, this can be very important for a number of companies. So we try and make it as easy as possible. So one define and manage. So you're probably going to have specific settings. You're probably going to want to meet specific compliance controls. Depending on the industry you're in and depending on what compliance is necessary, you might want to do audit reports so you can export them very easily. It's a little right click. I can't remember off the top of my head if it's CSV or I think it's CSV, but it's very easily done, especially when it comes to compliance. I'm sure a lot of people have spent a lot of time and effort collating different results from different tools to produce audit reports. GitLab have it all in one place and traceability audit events. So you want to log everything? I hopefully don't need to tell people the importance of logging, but especially when it comes to instant response. If there is a malactor within your estate, you kind of want to know what they're doing. So logging and monitoring is an excellent way of doing this. So what you want to do, you want to have the traceability audit events and then you can identify adherence sorry eventify incidents and also adherence to compliance rules. So in terms of desired outcomes. So where are we looking to get to so greater efficiencies for both security and dev? We have to remember we are all on the same team. Sometimes it can feel with development, security and also operations that we have different language, different priorities. It can definitely be a case of pointing the finger and we really want to kind of reduce that. So efficiencies is a great way to start and then we can start on the digital and especially cultural transformation. We also have consistent compliance to policy. As mentioned in the previous slide, compliance and policy are important, so being able to adhere to a consistent guideline can only be good. Thanks. Reduced security exposure. So back to one of my earlier slides. Would you rather have ten k of problems at the end, or maybe one or two problems on each commit that can then easily be fixed pre commit, allowing developers to be proactive. What's also worth noting is with the reduced security exposure, what are you scanning? How are you changing it? Are you changing everything? There's a lot of different types of application security. GitLab. We have something called DevOps. It's a YamL file for our CI CD, and you can literally plug and play and you can decide what you want. So maybe we want SAS and gast and SCA software competitive analysis for this app, or maybe this one. We want all of them, and we want secrets protection. So with this security exposure, it's not only when we're doing the security, but also what type of security, and most importantly, what are we doing with the results? Because I've worked in a few organizations, you might have security, they produce a big list of reports. Back in the day, it was probably even on paper, and then give it to developers. They might look through, okay, the first five or four positives, and then that pile of paper goes into the bin. That's not what we're looking to do. We want to empower developers, we want to lower our overall security exposure, and we want to give visibility so that developers and security can interact within the same interface to see what each other are doing, to make sure the bugs are being fixed and given opportunity to communicate and collaborate. And what happens with this? You end up with predictable costs. So as I mentioned earlier, you don't want to have a cost per scan or cost per app. You want to be able to have your whole devsecops interface in one platform. Predictable costs with all your security scanning within the pipeline and also integrated within as well, which can lead to much more predictable costs. And when I say this, I also mean cost of tool chain, cost of scan, but also if you've taken all the steps I've described and you've reduced your security exposure, guess what? Your costs if touching all the woods, if something bad does happen, that can also have a massive cost in terms of brand impact, et cetera. So how do we get there? Scan results, allow developers give them their security information and do it when they're committing code. So really take that shift left approach, you also want to have a robust set of application security testing capabilities. So I spoke about that a few minutes ago. In terms of, I should know the number. I think I know GitLab would do about seven or eight different types of security scanning, all just within a pipeline as we're producing an application. And this could be whether you're producing a Java app, a swift app, or even provisioning terraform as well. With this, you want to have your security policies automatically applied and exceptions documented. So what this means is when you're looking at your apps, for example, you might have a hierarchy, you might have your tier one apps, you might be a little bit stricter with what you allows out in production versus potentially lower tier apps or internal. If you are using incumbent scanners, you want to have those integrated. And as I've mentioned, just one cost, regardless of number of scans and apps scanned. So coming back to my people, process and technology, when you have people and process you can scale when you have people, technology you can innovate and process, and technology you can automate. When you have all three, that's when you can drive true business value. And what I mean by that, you can improve your operational efficiencies, you can reduce your security and compliance risk and fundamentally deliver better software faster. And what this means is, if you have an idea, maybe you speak to a customer, someone in your product team, you have an idea, okay, how quickly can we deliver that idea for our customer and outperform our competitors? How quickly can we improve our software based on feedback? How quickly can we iterate? How can we drive true business value? So thank you so much for listening. My name is Stefania, I work at Git. You can find me on these different handles. Please feel free to connect with me. This is also part of QCon. So thank you so much for hosting and whether this is live or watching the recording. Thank you everyone for listening and look forward to catching up in the future.
...

Stefania Chaplin

Solutions Architect @ GitLab

Stefania Chaplin's LinkedIn account Stefania Chaplin's twitter account



Awesome tech events for

Priority access to all content

Video hallway track

Community chat

Exclusive promotions and giveaways