I worked for the state once and the number of times I had to put my foot down for security was appalling. We're talking like getting web services updated to use basic password auth could take months and I'd be pressured by management to ignore it because some asshat using the service doesn't want to update their 30 year old batch file to deal with auth. Other people would regularly push things that could easily expose thousands of people's identifying info just to get management off their backs. A couple projects I think I was specifically kept away from because they were "mission critical" and they didn't want me slowing it down with trivial stuff like not leaking unencrypted databases...
“Looks like there's a broken link on this page. No problem, we can get that fixed up in a day or two after we tackle the 32 vulnerabilities that cropped up since the last time we changed that page."
That is something I just don't get. I'm a hobbyist turned pro turned hobbyist. The only people who I ever offered my services to were either after one of my very narrow specialties where I was actually an expert or literally could not afford a "real" programmer.
I never found proper security to have any impact on my productivity. Even going back to my peak years in the first decade of this century, there was so much easily accessible information, so many good tutorials, and so many good products that even my prototypes incorporated the basics:
Encrypt the data at rest
Encrypt the data in transit
No shared accounts at any level of access
Full logging of access and activity.
Before rollout, back up and recovery procedures had to be demonstrated effective and fully documented.
Edited to add:
It's like safety in the workplace. If it's always an add-on, it will always be of limited effectiveness and reduce productivity. If it's built in to the process from the ground up, it's extremely effective and those doing things unsafely will be the productivity drain.
Dependencies, scope creep, feature creep, off by one errors, misconfiguration, unclear/unenforced contracts/invariants... Most of those are trivial to solve at small scale, but the more moving parts you have, the more complex it becomes
Why is it that security guys always think their issues are more important than any other issues?
Like well done you, you ran an automated tool over the codebase and it picked up some outdated dependencies.
We cant just update these dependencies because the newer versions have breaking changes and we already have a backlog of 32767 issues to deal with.
It's not security debt, it's just general technical debt.
Why is the issue that is only exploitable in a contorted scenario where the user has broken out of a VM and gained root on the hypervisor more important than the issue preventing our largest customer from tripling their volume on our platform?
Not to mention the joke that's been made of the CVE system due to resume padding by the security industry...
Generally a regular issue is much less likely to get you hacked.
Security issues often come with legal liability which is why a bad security department will act overly important and stomp around demanding changes be made right the fuck now.
But I do get it, a good security team should be enabling their dev teams to solve issues in the least disruptive way possible, not just thrown them work and barking orders.
In some places I have worked, the sec teans will find an issue and push PRs to fix them, explaining the security concern, and requesting only a review and merge.