building a modern security engineering team · 2016. 4. 5. · keys to incentivizing conversation:...

70
Building a Modern Security Engineering Team [email protected] @zanelackey

Upload: others

Post on 29-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Building a Modern Security Engineering Team

[email protected]@zanelackey

Page 2: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Whoisthisguyanyway?

• Built and led the Etsy Security Team– Spoiler alert: what this presentation is about

• Co-founded Signal Sciences

Page 3: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

This talk is about lessons learned being at the forefront of the shift to agile/continuous

deployment/DevOps

Page 4: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

For security teams, the world has changed in fundamental ways:

– Code deployment is now near-instantaneous

Page 5: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

For security teams, the world has changed in fundamental ways:

– Code deployment is now near-instantaneous

– Merging of development and operations means more people with production access

Page 6: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

For security teams, the world has changed in fundamental ways:

– Code deployment is now near-instantaneous

– Merging of development and operations means more people with production access

– Cost of attack has significantly dropped

Page 7: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Near-instantaneous deployment?

Page 8: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

An example: Etsy pushes to production 50 times a day on average

Page 9: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Constant iteration in production via feature flags, ramp ups, A/B testing

Page 10: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

But doesn’t the rapid rate of change mean

things are less secure?!

Page 11: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Actually,theoppositeistrue

Page 12: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

They key to realize is vulnerabilities occur in alldevelopment methodologies

…But there’s no such thing as an out-of-band patch in continuous deployment

Page 13: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

They key to realize is vulnerabilities occur in alldevelopment methodologies

…But there’s no such thing as an out-of-band patch in continuous deployment

Page 14: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Compared to:

“We’ll rush that security fix. It will go out … in about 6 weeks.”

- Former vendor at Etsy

Page 15: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

What makes continuous deployment safe?

Page 16: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

What makes continuous deployment safe?

Visibility

Page 17: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly
Page 18: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly
Page 19: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly
Page 20: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Source:http://www.slideshare.net/mikebrittain/advanced-topics-in-continuous-deployment

Page 21: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

The same hard lessons are slowly shifting to security

Page 22: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Ex: Which of these is a quicker way to spot an attack?

Page 23: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly
Page 24: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly
Page 25: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Surface security info for everyone, not just the security team

Page 26: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly
Page 27: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

“Don’t treat security as a binary event”- @ngalbreath

Page 28: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Buildingaradculture*Mulletssoldseparately

Page 29: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

In the shift to continuous deployment, speed increases by removing organizational blockers

Page 30: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Trying to make security a blocker means you get routed around

Page 31: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Instead, the focus becomes on incentivizing teams to reach out to security

Page 32: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Keys to incentivizing conversation:

– Don’t be a jerk. This should be obvious, but empathy needs to be explicitly set as a core part of your teams culture.

Page 33: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Keys to incentivizing conversation:

– Don’t be a jerk. This should be obvious, but empathy needs to be explicitly set as a core part of your teams culture.

– Make realistic tradeoffs. Don’t fall in to the trap of thinking every issue is critical. • Ex: Letting low risk issues ship with a reasonable

remediation window buys you credibility for when things actually do need to be addressed immediately.

Page 34: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Keys to incentivizing conversation:

– Coherently explain impact. “This would allow all our user data to be compromised if the attacker did X & Y” paints a clear picture, where “The input validation in this function is weak” does not.

Page 35: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Keys to incentivizing conversation:

– Coherently explain impact. “This would allow all our user data to be compromised if the attacker did X & Y” paints a clear picture, where “The input validation in this function is weak” does not.

– Reward communication with security team. T-Shirts, gift cards, and high fives all work (shockingly) well.

Page 36: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Keys to incentivizing conversation:

– Take the false positive hit yourself. Don’t send unverified issues to dev and ops teams. When issues come in, have the secteam verify and make first attempt at patch.

– Scale via team leads. Build relationships with technical leads from other teams so they make security part of their teams culture.

Page 37: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Keys to incentivizing conversation:

– Take the false positive hit yourself. Don’t send unverified issues to dev and ops teams. When issues come in, have the secteam verify and make first attempt at patch.

– Scale via team leads. Build relationships with technical leads from other teams so they make security part of their teams culture.

Page 38: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Accessrestrictions

Page 39: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Startups begin with a simple access control policy: Everyone can access everything

Page 40: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

As organization grow there will be more pressure to institute access policies

Page 41: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

The key to remember is don’t take away capabilities

Page 42: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Methodology:

1. Figure out what capability is needed

2. Build an alternate way to perform the needed function in a safe way

3. Transition the organization over to the safe way

4. Alert on any usage of the old unsafe way

Page 43: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Methodology:

1. Figure out what capability is needed

2. Build an alternate way to perform the needed function in a safe way

3. Transition the organization over to the safe way

4. Alert on any usage of the old unsafe way

Page 44: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Methodology:

1. Figure out what capability is needed

2. Build an alternate way to perform the needed function in a safe way

3. Transition the organization over to the safe way

4. Alert on any usage of the old unsafe way

Page 45: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Methodology:

1. Figure out what capability is needed

2. Build an alternate way to perform the needed function in a safe way

3. Transition the organization over to the safe way

4. Alert on any usage of the old unsafe way

Page 46: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

EX: SSH access to production systems

Page 47: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Security policy goal: Eliminate unneeded access to production systems

– Why do developers do it? Ex: To view error logs

– Build alternate approach: Send the logs to central logging service (ex: elasticsearch, splunk, etc)

– Publicize the new tooling to the organization

– After majority of transition, alert on any logins to production systems by non-sysops

Page 48: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Security policy goal: Eliminate unneeded access to production systems

– Why do developers do it? Ex: To view error logs

– Build alternate approach: Send the logs to central logging service (ex: logstash, splunk, etc)

– Publicize the new tooling to the organization

– After majority of transition, alert on any logins to production systems by non-sysops

Page 49: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Security policy goal: Eliminate unneeded access to production systems

– Why do developers do it? Ex: To view error logs

– Build alternate approach: Send the logs to central logging service (ex: logstash, splunk, etc)

– Publicize the new tooling to the organization

– After majority of transition, alert on any logins to production systems by non-sysops

Page 50: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Security policy goal: Eliminate unneeded access to production systems

– Why do developers do it? Ex: To view error logs

– Build alternate approach: Send the logs to central logging service (ex: logstash, splunk, etc)

– Publicize the new tooling to the organization

– After majority of transition, alert on any logins to production systems by non-sysops

Page 51: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Increasingattackercost

Page 52: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Bug bounties/disclosure programs are tremendously useful. If you’re not working towards launching one, strongly consider it.

Page 53: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Common concerns about launching a bounty:

1. Budgetary concerns. Money is almost never the main motivation for researchers, you can launch a bounty with just a hall of fame and still get great submissions.

1. Risk of inviting attacks. You’re already getting attacked continuously, you’re just not getting the results.

Page 54: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Common concerns about launching a bounty:

1. Budgetary concerns. Money is rarely the main motivation for participants, you can launch a bounty with just a hall of fame and still get great submissions.

1. Risk of inviting attacks. You’re already getting attacked continuously, you’re just not getting the results.

Page 55: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Common concerns about launching a bounty:

1. Budgetary concerns. Money is rarely the main motivation for participants, you can launch a bounty with just a hall of fame and still get great submissions.

1. Risk of inviting attacks. It’s the Internet. You’re already getting pentested continuously, you’re just not receiving the report.

Page 56: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

The ultimate goals of a bug bounty are threefold:

1. Incentivize people to report issues to you in the first place

2. Drive up cost of vulnerability discovery and exploitation for attackers

3. Provide an external validation of if your security program is working (or not)

Page 57: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

The ultimate goals of a bug bounty are threefold:

1. Incentivize people to report issues to you in the first place

2. Drive up cost of vulnerability discovery and exploitation for attackers

3. Provide an external validation of if your security program is working (or not)

Page 58: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

The ultimate goals of a bug bounty are threefold:

1. Incentivize people to report issues to you in the first place

2. Drive up cost of vulnerability discovery and exploitation for attackers

3. Provide an external validation of where your security program is working (and where it’s not)

Page 59: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Before you launch, record what vulnerability classes you expect to see and what you don’t.

Compare this against the issues actually reported.

Page 60: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Before you launch, record what vulnerability classes you expect to see and what you don’t.

Compare this against the issues actually reported.

Page 61: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Keep metrics on:

– Number of bugs reported and severities

– Time to remediation of reported issues

You want both of these metrics to trend down over time

Page 62: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Practical considerations:

– Inform all teams before bounty launch, especially non-engineering teams• Ex: Customer Support

– Attacks will start almost immediately

For Etsy bug bounty launch, time from announcement to first attack: 13min

Page 63: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Practical considerations:

– Inform all teams before bounty launch, especially non-engineering teams• Ex: Customer Support

– Attacks will start almost immediately

For Etsy bug bounty launch, time from announcement to first attack: 13min

Page 64: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Practical considerations:

– Your first 2-3 weeks will be intense. Have as many people as you can dedicated to triage and response

Page 65: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Practical considerations:

– Operationally review any helper systems for scaling problems beforehand• When 10-100x traffic hits helper systems your security

team uses, what falls over?

– Money almost never the overriding factor, hall of fame is

– Researchers are generally great to interact with

Page 66: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Practical considerations:

– Operationally review any helper systems for scaling problems beforehand• When 10-100x traffic hits helper systems your security

team uses, what falls over?

– Money is almost never the main motivation for bounty participants, hall of fame credit is

– Researchers are generally great to interact with

Page 67: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Practical considerations:

– Operationally review any helper systems for scaling problems beforehand. • When 10-100x traffic hits helper systems your security

team uses, what falls over?

– Money is almost never the main motivation for bounty participants, hall of fame credit is

– Key to great researcher interaction is frequent and transparent communication

Page 68: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

TL;DR(The section formerly known as “Conclusions”)

Page 69: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

• Adapt security team culture to DevOps and continuous deployment by:– Surfacing security monitoring and metrics– Incentivize discussions with the security team– When creating policy, don’t take away capabilities

• Drive up attacker cost through bug bounty programs, countering phishing, and running realistic attack simulations

Page 70: Building a Modern Security Engineering Team · 2016. 4. 5. · Keys to incentivizing conversation: – Don’t be a jerk.This should be obvious, but empathy needs to be explicitly

Thanks!

[email protected] @zanelackey