1 of 56

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.

2 of 56

Productizing Security For Leverage and Scale

Patrick Thomas (Netflix)�@coffeetocode

LocoMocoSec

Honolulu, HI, June 30, 2022

Q&A:

bit.ly/LMSQA

3 of 56

4 of 56

5 of 56

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.

6 of 56

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

7 of 56

Productizing Security

Easy to determine applicability

Easy to consume/adopt

Clear value proposition

Usage produces invariants

Specific branding/messaging

Product/Business value metrics

8 of 56

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

9 of 56

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

10 of 56

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

11 of 56

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

12 of 56

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

13 of 56

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

14 of 56

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

15 of 56

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 first attempts at least privilege
  • Secure Workload Identities (Netflix’s equiv of SPIFFE/SPIRE) + ServiceMesh w/ mTLS
  • NaCl, libSodium, & Tink cryptographic libraries

#2 & 3

#7

  • Resource Templates & Modules

#6

#8

  • High leverage API Gateways (a Netflix example)

#1

  • 2 access control stories

#4 & 5

16 of 56

streamline any security processes

raise the overall security bar

Need 1:

Need 2:

A Story:

Supporting Netflix’s “Studio in the Cloud”

17 of 56

18 of 56

too many requirements; checklists make it worse

Observation:

😰😱

19 of 56

bulletproof authN reduces the entire risk of a an app

Observation:

🤩

😊

(Using FAIR, but

these are fake numbers)

20 of 56

21 of 56

😰😱

22 of 56

23 of 56

< 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

24 of 56

25 of 56

From Product to PlatformManual Changes vs Automated by Higher Level Abstraction

2019

2021

26 of 56

27 of 56

28 of 56

Repoman

▸ What did we try?

What went wrong?

What did we learn?

Two first attempts

at least privilege

29 of 56

Repoman

What did we try?

▸ What went wrong?

What did we learn?

Two first attempts

at least privilege

30 of 56

Repoman�Repokid!

What did we try?

What went wrong?

▸ What did we learn?

Two first attempts

at least privilege

31 of 56

Repoing, Revisted:

Drivekid

What did we try?

What went wrong?

▸ What did we learn?

Two first attempts

at least privilege

32 of 56

Access Control Stories: SCM & GraphQL

▸ What did we try?

What went wrong?

What did we learn?

  1. “Risk” is a customer, (but…)�
  2. “Least Privilege” is a strategy, (but…)

33 of 56

Access Control Stories: SCM & GraphQL

What did we try?

▸ What went wrong?

What did we learn?

  • “Risk” is a customer, (but…)�
  • “Least Privilege” is a strategy, (but…)

34 of 56

Access Control Stories: SCM & GraphQL

What did we try?

What went wrong?

▸ What did we learn?

  • “Risk” is a customer, but don’t overindulge it.
  • “Least Privilege” is a strategy, not a goal.

35 of 56

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.

Matthew Green

I am not a cryptographer. YMMV.

36 of 56

If OpenSSL

were a GUI:

37 of 56

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

38 of 56

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”

39 of 56

Workload Identity

(eg SPIFFE/SPIRE + mTLS),

Service Mesh, &

API Gateways

(a prediction)

40 of 56

Workload Identity

(eg SPIFFE/SPIRE + mTLS),

Service Mesh, &

API Gateways

(a prediction)

41 of 56

Takeaways

  • “Productizing” explicitly sees developers as customers
    • … which forces us to clarify value prop, reduce pain, & integrate better
    • … which gives us even more leverage to be effective at risk reduction

  • Scope the problem before you scope the solution (helps w/ NIH too!)

  • Productizing is a continuum; the sweet spot might be “a little” or “a lot” in any area

  • Plan (lots of) time to get feedback and iterate

  • The last X% may be a different skillset, & often means working cross-functionally

  • Risk is also a customer, but our job is to tell it “that’s enough”

42 of 56

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

43 of 56

Thank You!

Patrick Thomas (Netflix)

@coffeetocode

Slides:

bit.ly/lms22productizing

Q&A:

bit.ly/LMSQA

CREDITS: This presentation template was created by Slidesgo, including icons by Flaticon, infographics & images by Freepik.

44 of 56

Bonus Slides

45 of 56

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.

46 of 56

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.

47 of 56

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

48 of 56

Even a little bit of productization helps!

  • Templatized & managed configs (apache vhosts, cloudformation/terraform, etc)
  • Browser Content Security Policy (CSP)
  • NaCl, libSodium, & Tink cryptographic libraries
  • Resource Templates & Modules
  • Security.md on open source projects

… etc

Highly productized approaches to security (with commensurate impact)

  • AWS Access Brokers (ConsoleMe, aws-okta)
  • HIgh leverage API Gateways (a Netflix example)
  • Data-Driven Least Privilege (Repokid)
  • Managed Cloud PKI (Lemur)
  • Secure Workload Identities (SPIFFE/SPIRE, & Netflix’s impl) + ServiceMesh w/ mTLS
  • Memory-Safe languages

… etc

This didn’t go so well. Missed opportunities, lessons learned

  • 2 first attempts at least privilege
  • An anomaly detection system that we built because we could Access Control complexity: SCM & GraphQL
  • A secure data storage service sunk by not solving the actual problem developers had

… etc

  • 2 first attempts at tuning access
  • Secure Workload Identities (Netflix’s equiv of SPIFFE/SPIRE) + ServiceMesh w/ mTLS
  • NaCl, libSodium, & Tink cryptographic libraries

#2, #3

#5

  • Resource Templates & Modules

#4

#6

  • HIgh leverage API Gateways (a Netflix example)

#1

49 of 56

Even a little bit of productization helps!

  • Browser Content Security Policy (CSP)
  • Security.md on open source projects

… etc

Highly productized approaches to security (with commensurate impact)

  • AWS Access Brokers (ConsoleMe, aws-okta)
  • Managed Cloud PKI (Lemur)
  • Memory-Safe languages

… etc

This didn’t go so well. Missed opportunities, lessons learned

  • A secure data storage service sunk by not solving the actual problem developers had

… etc

50 of 56

Plugs & References

  • (TODO)

51 of 56

52 of 56

Matthew Green & Matthew Smith

Developers Are Users Too

USENIX HotSec15

53 of 56

Matthew Green & Matthew Smith

Developers Are Users Too

USENIX HotSec15

54 of 56

Backup Slides

55 of 56

(Much) static analysis & security scanner pipeline work

TODO

TODO

56 of 56

Secure by Default

Springboot

▸ What did we try?

What went wrong?

What did we learn?

TODO