Talk blurb from the LocoMocoSec 2022 Agenda:
Hopefully by this point we’re all pretty sold on the concept of “paved roads” for security. What feels less obvious is exactly how we *make* a paved road, or why some attempts to pave a road end up with dead ends, or maybe a few vaguely-gravel-like paths.
We’ll look at some examples of successful security paved road investments, and a few less-so, and tease out some of the principles and practices that make them more effective for both engineering joy and risk reduction. I’ll urge more “productizing” of security work: from getting product management skills (and roles!) more involved, through building capabilities that are easier to deploy, reason about, and argue for.
Productizing Security For Leverage and Scale
Patrick Thomas (Netflix)�@coffeetocode
LocoMocoSec
Honolulu, HI, June 30, 2022
Q&A:
bit.ly/LMSQA
Productizing Security
Dictionary def:
Making something “marketable for sale”
For us today:
Treating our internal engineering orgs as customers, and developing a security capability to a level where it provides unambiguous value (to both product teams and security teams) and an experience they would choose to use.
Focus Today
Teams building to impact risk posture
Internal building for internal
Failure modes especially relevant to highly technical security teams
(eg: you are your own SME)
“More Productized” Not Always Better
Productizing Security
Easy to determine applicability
Easy to consume/adopt
Clear value proposition
Usage produces invariants
Specific branding/messaging
Product/Business value metrics
Don’t need an “it depends” conversation with a security SME
The problem is clearly defined
The customer is clearly defined
Can understand what “solved” looks like
▸ Easy to determine applicability
Easy to consume/adopt
Clear value proposition
Usage produces invariants
Specific branding/messaging
Product/Business value metrics
Self-serve
As few knobs/dials/changes as possible; Zero is a good number.
Supports “land, then grow”
Easy to determine applicability
▸ Easy to consume/adopt
Clear value proposition
Usage produces invariants
Specific branding/messaging
Product/Business value metrics
Specific class of issue killed
Compensating controls or processes not required
Responsibilities entirely offloaded from the adopter
Easy to determine applicability
Easy to consume/adopt
▸ Clear value proposition
Usage produces invariants
Specific branding/messaging
Product/Business value metrics
When used, always produces the value proposition
Creates evidence of that
Makes the environment easier to reason about
Easy to determine applicability
Easy to consume/adopt
Clear value proposition
▸ Usage produces “invariants”
Specific branding/messaging
Product/Business value metrics
Be a specific thing
Others can articulate your value prop
Concise enough for leadership messaging
Think: applicability, value prop, invariants
Easy to determine applicability
Easy to consume/adopt
Clear value proposition
Usage produces invariants
▸ Specific branding/messaging
Product/Business value metrics
If this helps, how can you prove it?
If you were charging for this, how would you justify your price?
Easy to determine applicability
Easy to consume/adopt
Clear value proposition
Usage produces invariants
Specific branding/messaging
▸ Product/Business value metrics
Even a little bit of productization helps!
Highly productized approaches to security (with commensurate impact)
This didn’t go so well. Missed opportunities, lessons learned
Even a little bit of productization helps!
Highly productized approaches to security (with commensurate impact)
This didn’t go so well. Missed opportunities, lessons learned
#2 & 3
#7
#6
#8
#1
#4 & 5
streamline any security processes
raise the overall security bar
Need 1:
Need 2:
A Story:
Supporting Netflix’s “Studio in the Cloud”
too many requirements; checklists make it worse
Observation:
😰😱
bulletproof authN reduces the entire risk of a an app
Observation:
🤩
😊
(Using FAIR, but
these are fake numbers)
😰😱
< 10 min
from “git init” to production-ready, fully authenticated, internet accessible app… that doesn’t (usually) need manual security review
Note: Developer Productivity org also needs a lot of the credit here
From Product to Platform�Manual Changes vs Automated by Higher Level Abstraction
2019
2021
Repoman
▸ What did we try?
What went wrong?
What did we learn?
Two first attempts
at least privilege
Repoman
What did we try?
▸ What went wrong?
What did we learn?
Two first attempts
at least privilege
Repoman�Repokid!
What did we try?
What went wrong?
▸ What did we learn?
Two first attempts
at least privilege
Repoing, Revisted:
Drivekid
What did we try?
What went wrong?
▸ What did we learn?
Two first attempts
at least privilege
Access Control Stories: SCM & GraphQL
▸ What did we try?
What went wrong?
What did we learn?
Access Control Stories: SCM & GraphQL
What did we try?
▸ What went wrong?
What did we learn?
Access Control Stories: SCM & GraphQL
What did we try?
What went wrong?
▸ What did we learn?
Incremental productization helps:
NaCl, Sodium, & Tink
OpenSSL is the space shuttle of crypto libraries. It will get you to space, provided you have a team of people to push the ten thousand buttons required to do so. NaCl is more like an elevator – you just press a button and it takes you there. No frills or options.
I like elevators.
”
“
I am not a cryptographer. YMMV.
If OpenSSL
were a GUI:
Incremental productization helps:
NaCl, Sodium, & Tink
3 projects that each move us forward
NaCl: OpenSSL is a box full of DIY footguns. Let’s make useful primitives.
Sodium: NaCl, but with intent-oriented APIs and simpler, safer, defaults.
Tink: We like libsodium, but know that key management is half the battle.
Thanks @SchmiegSophie & Tink folks
Even a little bit of productization helps:
Resource Templates & Modules
( Terraform,
Cloudformation,
vhosts templates,
new app init,
etc, etc… )
From “templates exist” to “this is the way these resources are created”
Get it into a CLI or a UI so that people can “pick off the menu”
Standardization leads to metrics
Gonna keep saying it: “Hitch your security wagon to dev productivity”
Workload Identity
(eg SPIFFE/SPIRE + mTLS),
Service Mesh, &
API Gateways
(a prediction)
Workload Identity
(eg SPIFFE/SPIRE + mTLS),
Service Mesh, &
API Gateways
(a prediction)
Takeaways
Thanks
Jose Fernandez
Julia Knecht
Arthur Gonigberg
Sunil Agrawal
Lakshmi Sudheer
Romulo Salazar
Matthew Lapworth
Sarai Rosenberg
Astha Singhal
Ian Haken
John May
Christine Rhinehart
Anna Westelius
Jesse Kriss
Clint Gibler
Ronnie Flathers
Maya Kaczorowski
Leif Dreizler (did it first)
Travis McPeak
Alaeddin Almubayed
Thank You!
Patrick Thomas (Netflix)�
@coffeetocode
Slides:
bit.ly/lms22productizing
Q&A:
bit.ly/LMSQA
Bonus Slides
Risks & Failure Modes
Scaling Up Badly: a bad process, automated, is actually worse. (Jesse)
The productizing disease: “Stuff can feel like migrations when they should feel like upgrades.” (Jesse)
Different skillset: Not safe to assume an existing, successful team can turn the knob arbitrarily far without help (Christine)
Paved roads next to steep cliffs: Teams that are different by necessity can be alienated quickly (Sarai)
Who owns failure?: If security engineering teams still own failure of people who chose not to use your stuff, this might not work well.
For the sake of argument…
can we productize something like “a Pentest”?
Yes, service ≠ product. 🍎& 🍊! 🐱& 🐶!
…but we all still do them and inflict them on our engineering partners
…and we want more leverage and scale out of them.
What does a “more productized” version of that look like?
Come argue with me later.
Productizing Security
“...treating developers as their customers, and being customer-obsessed in the ways that our companies' core engineering and Product teams are.”
“...the answer can never be "devs aren't doing what we want because they're stupid," just as a product person can never say, "Oh users aren't really adopting our product because they're dumb."
Hi Clint 👋, I stole your words:
Clint Gibler
@clintgibler
Even a little bit of productization helps!
… etc
Highly productized approaches to security (with commensurate impact)
… etc
This didn’t go so well. Missed opportunities, lessons learned
… etc
#2, #3
#5
#4
#6
#1
Even a little bit of productization helps!
… etc
Highly productized approaches to security (with commensurate impact)
This didn’t go so well. Missed opportunities, lessons learned
… etc
Plugs & References
Backup Slides
(Much) static analysis & security scanner pipeline work
TODO
TODO
Secure by Default
Springboot
▸ What did we try?
What went wrong?
What did we learn?
TODO