Conf42 Python 2023 - Online

Great Security Is One Question Away

Video size:

Abstract

After a decade of writing code, I moved to the security team. At the job, I discovered the most useful AppSec theory ever - the CIA triad. The triad - Confidentiality, Integrity and Availability - is a powerful tool that can transform the way we approach security.

Summary

  • Victoria Dalach has been working tech for over a decade. Two years ago, she transitioned to the security team in her company. She shares a piece of security theory that will completely transform the way you approach security.
  • Security is a huge topic. There is application security, cloud security, infrastructure security. The lingo security people use is difficult to understand. But there are many layers where security is just overwhelming. But I bring you hope, because I have something very exciting to share.
  • The CIA triad let us put the whole ocean into three buckets. Confidentiality, integrity and availability. How can the CIA of your project be broken? It's so powerful because it works for everything.
  • Shift security left is this new way of thinking about security. It means shifting security, thinking aboutSecurity, approaching security to the design phase. Security cannot be just an ad hoc action. It needs to be part of your process. I hope the CIA triad will help you create more secure software.

Transcript

This transcript was autogenerated. To make changes, submit a PR.
Imagine in this, it's Monday, the last print of a project, and you just had a planning, and you agreed with your team that the things to do are to fix two bugs, and you need to finish writing the good documentation. You feel good. It's Monday, but it's good Monday. What you agreed on is achievable, and you're excited for the release. You're also excited for what comes next. So you feel good, you feel motivated. Let's do it on Tuesday. Engineering manager comes in the room, and she says, look, it will be great if we can this through the security. Just before the release. Have you ever been in this situation? Do you know this pain? Well, you go to the meeting, and security team asks you so many questions. They ask about the documentation that hasn't been finished yet. And after the meeting, you end up with this. Forget about those two bugs. It's a whole bunch of bugs. And trust me, I also don't understand what a snail is doing up there. I've been in this situation way too many times. And each time, we would have this beautiful meeting called project, project retrospective, and we would all agree in the team that, well, having a security review in the last sprint just before the release is too stressful. It's just a horrible idea. And as much as we would all agree and nod our heads, the moment we close the door, we would forget about it, and the situation would hunt us down with every new project. My name is Victoria Dalach. You can find me in the Internet. I've been working tech for over a decade, mostly as a backend engineer. But two years ago, I transitioned to the security team in my company, and it has been an amazing experience because I could see the same organization from completely different angles. So when I would go to a meeting with engineers as an engineer, I would be like, oh, these are my peers. Like, we share the struggle, we share the problems. We support each other. But when I went to another meeting as a security engineer, all of a sudden, I was a stakeholder. I was a person who wanted something. I was a person who had questions. I used to have questions as can engineer, but you know what I mean. I would be the one who was blocking stuff. What? So I notice quite a few problems with security, and I will share something, a piece of security theory that will completely transform the way you approach security. Okay, are you ready? Let's go. So, the problem with security is that, first of all, there are many problems with security. Let's agree on that. I will not cover all of them, but in product teams. The problem I see is that product people, so product designers, managers, owners, think about security solely as an engineering problem. And engineers are so focused on scoping things right, making it achievable, defining mvp, that they label security features as nice to have and put on a shelf with other nice to have initiatives. And the problem is that those features are hardly ever worked on. But there is another layer to that. Security is a huge topic. I like to think about security as an ocean. So when I ask you, what do you think security is? Or how do you know if your product is secure? How would you reply? You can make it an experiment and ask your peers, fellow engineers, how do you know your product is secure? And you will get different answers from all the people. Security is a huge topic. There is application security, cloud security, infrastructure security. It security. When we think about application security, only they have vulnerabilities, risk factors, threats, so many of them, it's overwhelming. And the lingo. Oh, my gosh. The lingo security people use is difficult to understand. So, before I joined security team, I had thought that we as developers, have weird way of talking because we use a lot of different weird words. But when I joined security, the first six months, I would Google acronyms for, like, at least three to ten acronyms a day. So there are many layers where security is just overwhelming. But I bring you hope, because I have something very exciting to share. We can all agree security. We can all agree that there is an infinite amount of threats. Can of threats, you may say. We cannot identify all the attack vectors that your application is vulnerable to. We cannot do that. There is an infinite amount of threats. And every week, you got news about our new vulnerabilities found in libraries that everyone uses. Infinite amount of threats. However, this is beautiful. Wait for it. All of them. All of those threads can be assigned to one of three categories. This will be an acronym, but I think you know it. Those three categories are confidentiality, integrity, and availability. And this is called the CIA triad. I could make a joke about spice, but I will not do that, because the only spice I like to think about are spice girls. Forgive me. Why is it so exciting? The CIA triad. Why is it so exciting? Why is it something that I want to talk about to you, and I want you to later talk about with your peers? Why? Because the CIA triad let us put the whole ocean into three buckets, and it's a very impactful thing. But before I tell you, why is it so impactful? Let me just define what CIA means. Confidentiality means that we want secrets to be secret. If I send you an email or you send me an email telling me how did you like this talk? We only want us to read it. We don't want anyone else to interfere in our communication. Right. Integrity means that we get what we expect. So when you log into your email, you want to see all of your emails, right? It would be very weird if you had all of your data lost availability. We can always access the information. So we expect that you can send me this email 10:00 p.m. Or 03:00 a.m. In the morning. No matter when you can send email, you can access Instagram. Your application will work 24/7 right? This is availability. Okay, so how is it helpful? How is it helpful? You see, it is helpful because it transform the way you can approach security. Instead of thinking of oh, I want my application to be secure, how do I do that? Oh, this is this vulnerability. Do we have this vulnerability? Okay, we don't. That's good. And this vulnerability we don't have. Okay. And this, oh, we need to fix something. This is completely overwhelming. How are you supposed to, as a developer, remember about all of those things? It's impossible. So the CIA triad is very helpful because instead of going from threats, vulnerabilities lists, you take a step back and you ask the question, the question, the CIA question, which is how can the CIA of this project be broken? I don't know if you can fear, but it excites me every time. Think about your current project. Do you have it? Okay, you can ask the CIA question for it. Let's do it. How can the CIA of you say it be broken? How can the CIA of your project be broken? It's so powerful because it works for everything. It works no matter if you are backend, front end, mobile, if you work in a cloud or not. If you are junior developer, meet senior staff, whatever director. If you are product manager, you also can ask this question. If you're a designer, you can ask this question. This will work forever for you. How can the CIA of the thing I'm working on be broken? And of course, if you want to answer this question, you will need to dig deeper and ask more questions. And for each category, confidentiality, integrity and availability. You will ask questions specific to your project. But here let me share some ideas, some examples of questions you can ask confidentiality who can see this resource? How do I store credentials? Do we log sensitive data for integrity? Who can create update remove a resource? What happens when a malicious data is sent via form is the input sanitized? Are we protected against cross site scripting? These are examples of integrity questions. Availability, is this endpoint rate limited? What happens when external product is down? How much time does this database migration take? These are availability questions. And let me just stop for a second with the availability, because I get this often that when I say availability, developers stop listening because we think, ah, availability infrastructure group, infrastructure team. But this is not necessarily true. I mean, it's not true at all, because as developers we introduce new products, new libraries, which means dependencies. And you really need to think about what happens when this great product that you use for managing feature flags go down. Does it mean that our whole product is down? Availability. Don't skip it when you do this CIA questioning with your team. So now the question is when should you do this? Okay, so you maybe understand what the CIA triad is now. We talked about it, I told you about the questions, but when should you do this? Like your practice is already full and booked. So I cannot answer this question without telling you about shifting security left. Shift security left is this new way of thinking about security. And if you ever meet an application security engineer, probably in your company, ask them what shift security left means, because they will be probably thrilled to tell you more. But the idea is that when we look at the software development lifecycle, right, we have five phases, requirement analysis, analysis, design. Can I count on my fingers? Design, implementation, testing and evolution. But here's the thing, so I've been doing this way too long. I don't think we are working in a lifecycle. It's more like a timeline. We do analysis, design, we develop, we test, and then we release and maintain, right? And after we release, we just move on to the next project. So it's never really a lifecycle. If your experience is different, let me know. Anywho, we have this timeline and what happens. Remember the story I told you in the beginning? We had security review just before the release. It was on the right side of this product development timeline. So shifting security left means shifting security, thinking about security, approaching security to the design phase, right? So why is it so important? Because in the design phase, creating changes is very easy. Because what you do, you only, I don't know, change a document, change a graph. You basically work on a piece of paper. Whereas when you have security review just before the release, the changes are extremely expensive. Not to mention how expensive they get. When you already release a thing, that's horrible. And it's more stressful, it takes more time, it's more expensive, it's terrible. Shifting security left says hey, let's talk about security of this thing that we are working on before we even code. Let's agree on that so we can have some kind of confidence that what we are building is secure. This is shifting security left. So how do you implement this CIA triad in your company, in your practice, you inject it basically what it means, present it to your peers, you can send them this small video, discuss it with your team, discuss approaching security earlier. Invite your security team to discussions so they have some kind of input and they can help you and guide you. But also make it part of your process because in order we talk about scaling a lot. Security cannot be just an ad hoc action. It needs to be part of your process. And how do you do that? The easiest thing except of telling people about it is to update the documentation like documentation templates. So if you have documentation templates like solution briefs, enhancement proposal, request for comments, et cetera, add security section there, add CIA triad show. Hey, how will this affect confidentiality, integrity, availability? How can we break it? How can this new feature break confidentiality, integrity and availability? And it will help you work and create more secure solutions. Important thing, you don't have to do it on your own. Those can discussions are meant to be run together in the team and the more perspectives you bring the better. So you don't have to focus on back ends only. Like bring front end engineers in the room, bring a designer product manager. How can you create find a solution that is basically a compromise between business and security? Compromise, is it a great word? I think so. Like what we need is some kind of connection, some kind of understanding. You can do it to finish up. Look, there is no week when we don't hear about a data breach or vulnerability that is in this super important library that everyone uses. We need to as engineers step up and we need to understand that things that we are building have a huge impact on people's life. We need to take responsibility for that. The colorless times of moved fast and break things are over and it's a good thing actually. I hope that the CIA triad will help you create more secure software, approach security in an easier way, moved manageable and I think you will have great fun. Thank you for joining me today. Thank you for listening me and please let's stay in touch. I'm online. Well, thank you,
...

Wiktoria Dalach

Software and Security Engineer, Writer and Speaker

Wiktoria Dalach's LinkedIn account Wiktoria Dalach's twitter account



Join the community!

Learn for free, join the best tech learning community for a price of a pumpkin latte.

Annual
Monthly
Newsletter
$ 0 /mo

Event notifications, weekly newsletter

Delayed access to all content

Immediate access to Keynotes & Panels

Community
$ 8.34 /mo

Immediate access to all content

Courses, quizes & certificates

Community chats

Join the community (7 day free trial)