Episode notes
Security training has its place. But if training alone solved security problems, we wouldn't keep seeing the same vulnerabilities appear over and over again. The real problem usually isn't that developers don't know what to do; it's that the easiest path is often an insecure one. This episode is sponsored by Maze. In this episode of DevSec Station, Tanya Janca explains why secure defaults are one of the most effective security controls you can implement, why relying on memory and willpower ra...
Transcript
Read the transcript · about 960 words, follows along as you listen
SPEAKER_00:But let's be honest for a second. If annual security training truly worked, we wouldn't keep seeing the same mistakes over and over, would we? And it's not because developers don't care. It's because annual training asks humans to be perfect while using systems that are anything but. Hi, I'm Tanya Jenka, also known as SheHacksPurple. Welcome to DevSecStation, a podcast for software developers who want to build more secure software. In each episode, I'll share a short practical lesson about secure coding, software security, and how to build safer systems without slowing development down.
SPEAKER_00:You can jump in at any episode, at any time. No homework required. This episode is sponsored by Maze. One of the biggest problems in security right now is that every vulnerability or cloud scanner says everything is critical, and honestly, no one has time for that. MAZES uses AI agents to investigate vulnerabilities in context, so you can focus on the issues that are actually exploitable in your environment and not just theoretically scary. Their AI agents also generate and prioritize fixes that knock out multiple vulnerabilities at once, which is honestly the kind of scaling that security teams really need right now.
SPEAKER_00:Learn more about maze at mazehq.com slash devsec. If you're a developer who's ever made a security bug in their code, then afterthought, how did this happen? I know this. How'd I let this happen? This episode is for you. Here's the core idea of this episode. Most security issues don't happen because developers don't know what they're supposed to do. They happen because the easiest path is the insecure one. When we rely on training alone, we're relying on memory and willpower.
SPEAKER_00:But when we rely on defaults instead, we're shaping behavior automatically. And in live systems, defaults will win every single time. So I have a story for you: a very normal developer day. You're busy, you're juggling several different tickets, you're context switching all day long. You spin up a new service, you copy a config from another repo, you leave the settings as is because they work. Nothing feels wrong. You didn't ignore security. You just followed the path that was already there.
SPEAKER_00:And if the previous service was okay, this one should be too, right? But that's the thing about insecure defaults. They don't feel like a bad decision. They feel normal. You're saving time, you're following the flow. And most training doesn't change what feels normal. But the right systems can, and they do. So how do we fix this? A bad approach would be trying to solve security problems with only annual training. More slides, more lectures, wah wah, wah.
SPEAKER_00:But no real change. This approach often fails because annual training is easy to forget, especially under pressure. And no one is at their best when they're rushing. And as software developers, we often find ourselves rushing in our line of work. A better approach is hoping developers remember what they learned in the annual training that they did six months ago. Be careful, double check, don't forget. And this helps a bit. I mean, I give training, it definitely helps, but it still depends on constant attention, energy, and willpower.
SPEAKER_00:And willpower is a terrible security control on its own. The best approach is training that explains the why, and then changing the defaults in your system to match. So if the secure option is the easiest option, people will take it automatically. And with training, they understand why they should not undo those nice secure defaults we just made. This isn't about locking things down so that they're unusable or slowing down teams. It's about designing workflows that work with human behavior instead of against it.
SPEAKER_00:If you do just one thing after this episode, please do this. Change one default in one repo or project that you work on for the better. Here's how to do that in a way that you as a developer might have control over. Step one, pick a repo your team actively works on. Step two, identify one default that could lead to security problems if someone forgets to change it. So this could be a config file that includes insecure settings that you know you're supposed to change later, except no one does.
SPEAKER_00:A CI job that runs without security checks like static analysis or software composition analysis. A code template that skips authentication or logging or validation or anything else that you know should be there. A script that assumes secrets are present in plaintext, meaning that you have a leak somewhere. Step three, flip that default on so that it's secure from now on. Make the secure option automatic. Make the insecure option require explicit choice and make it effortful to actually put into action.
SPEAKER_00:Step four, leave a comment or a commit message explaining why the default exists so future you and your teammates don't undo it. You're not fixing everything today. You're creating one small nudge that prevents the same mistake from happening again and again. And this is how real security improvements can happen. It's not through perfect behavior, it's through systems that support you in always making the right decision. When you change a default so that it's secure, you're protecting every future change that touches that code.
SPEAKER_00:And that is win. Thanks for listening to DevSecStation. If you enjoyed this episode, please subscribe, share it with a friend, or leave a review. It helps more people discover the show. If you'd like to learn more, I'm Tanya Jenka, also known as SheHacksPurple. And I teach secure coding training for software developers. You can find me online at shehackspurple.ca. Thank you for being here.
Transcript supplied by the publisher with the episode.
Podcast
DevSec Station
Tanya Janca | SheHacksPurple · Tech & Science · English
DevSec Station is a security focused podcast for software developers who want to create amazing applications. Hosted by Tanya Janca, also known as SheHacksPurple, these short lessons will help you level up.
More from DevSec Station All episodes →
-
S2 · E1 · 8 Oct 2026 · 9 min
Your AI Worked 59 Times. What About the 60th?
What happens when your AI assistant does exactly what you expect 59 times... and then does something completely bananas on the 60th? While teaching a secure coding class, I watched nearly 60 students use the same AI assistant, programming language, and prompts. For 59 of them, everything went as expected. But one student's AI-generated Python code included instructions to suppress linting checks, followed by code that leaked secrets to an external file. The AI hadn't escaped a sandbox. It ...
-
S1 · E12 · 23 Sep 2026 · 7 min
Security Requirements: What They Are and How to Add Them to Your Project
Security problems don't generally happen because developers 'don't care' or lack skill. They happen because no one clearly defined what "secure" meant in the first place. When security expectations are left implicit, developers are forced to guess. And that's where vulnerabilities are born. This episode is sponsored by Maze. In this episode of DevSec Station, Tanya Janca explains what security requirements are, why they're one of the most overlooked secure development practices, and how devel...
-
S1 · E11 · 9 Sep 2026 · 7 min
Threat Modeling for Developers (How To)
Threat modeling has a reputation for being complicated, full of diagrams, and requiring long meetings. In reality, most developers already do it, they just don't realize it. The difference is that doing it intentionally helps you catch security problems before they become security incidents. This episode is sponsored by Maze. In this episode of DevSec Station, Tanya Janca breaks threat modeling down into a simple five-step process that any developer can use while designing a feature. You'll l...
-
26 Aug 2026 · 9 min
How to Do Secure Code Review (When You’re Not a Security Expert)
Secure code review isn't about finding obscure vulnerabilities or thinking like an elite hacker. It's about verifying that the security controls your application depends on are actually present, in the right place, and correctly implemented. This episode is sponsored by Maze. In this episode of DevSec Station, Tanya Janca explains how developers can perform effective secure code reviews without being security experts. You'll learn what security controls to look for, how trust boundaries help ...
-
S1 · E9 · 12 Aug 2026 · 8 min
The Most Common Secure Coding Mistakes Good Devs Make
Security bugs aren't usually caused by 'bad developers'. More often, they're the result of good developers making rational decisions under deadlines, competing priorities, and imperfect systems. This episode is sponsored by Maze. In this episode of DevSec Station, Tanya Janca explores why common secure coding mistakes are often incentive problems rather than knowledge problems. You'll learn why insecure patterns emerge, why simply telling developers to "be more careful" doesn't work, and how ...
-
S1 · E7 · 15 Jul 2026 · 6 min
Why Current Security Tools Fail Developers
Security tools are supposed to help developers build safer software. But sometimes it seems like they create more frustration than security. This episode is sponsored by Maze. In this episode of DevSec Station, Tanya Janca explains why many security tools overwhelm developers with alerts, how alert fatigue erodes trust, and why "more findings" doesn't mean "more security." You'll learn how to tune your classic AppSec tools so they surface meaningful issues instead of creating noise that every...
-
S1 · E6 · 1 Jul 2026 · 8 min
Vibe Coding, Copilots, and Security Drift
AI coding assistants can help developers move incredibly fast. But this new speed comes with a new challenge: security drift. This episode is sponsored by Maze. In this episode of DevSec Station, Tanya Janca explores how tools like GitHub Copilot, ChatGPT, Cursor, and other AI coding assistants can unintentionally change the security assumptions your software was built on. You'll learn what security drift is, why it happens so quietly, and how to keep the benefits of AI-assisted development w...
-
S1 · E5 · 18 Jun 2026 · 7 min
Secrets Management: Stop Playing Whack-a-Mole
If you've ever committed an API key, password, token, certificate, or other secret to a repository, you're not alone. Most secret leaks don't happen because developers don't care about security. They happen because the easiest place to put a secret is inside the code that uses it. This episode is sponsored by Maze. In this episode of DevSec Station, Tanya Janca explains why secrets leak, why "just be careful" isn't an effective security strategy, and how developers can stop playing whack-a-mo...
-
S1 · E4 · 4 Jun 2026 · 7 min
Supply Chain Is More Than Just Dependencies
Most developers think software supply chain security starts and ends with dependencies. But modern supply chain attacks don't stop there. Attackers look for paths into your software, and those paths often run through developers, CI/CD systems, build tools, deployment pipelines, and other trusted parts of the software delivery process. This episode is sponsored by Maze. In this episode of DevSec Station, Tanya Janca explains why the software supply chain is much bigger than libraries and pac...
-
S1 · E3 · 21 May 2026 · 8 min
Malicious Dependencies Aren’t an Accident
Malicious dependencies are not accidents. They are often intentionally designed to look trustworthy so developers install them without hesitation. In this episode of DevSec Station, Tanya Janca explains how attackers use typosquatting, dependency confusion, fake packages, and even AI-generated recommendations to compromise developer environments and steal credentials. This episode is sponsored by Maze. You’ll learn: • how malicious packages trick developers • why dependency attacks work...
