eric sheridan serverless security - stickyminds...• introduces “master keys” concept to...

15
DT11 DevSecOps Thursday, November 8th, 2018 3:00 PM Serverless Security: Overcome Architectural Security Challenges Presented by: Eric Sheridan WhiteHat Security Brought to you by: 350 Corporate Way, Suite 400, Orange Park, FL 32073 8882688770 9042780524 [email protected] http://www.starwest.techwell.com/

Upload: others

Post on 20-May-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Eric Sheridan Serverless Security - StickyMinds...• Introduces “master keys” concept to encrypt sensitive data • Exposed via encrypted environment variables or API • Serverless

   DT11  DevSecOps  Thursday,  November  8th,  2018  3:00  PM              

Serverless  Security:  Overcome  Architectural  Security  Challenges  

 Presented  by:    

 

Eric  Sheridan  WhiteHat  Security  

‘      

Brought  to  you  by:        

   

   

350  Corporate  Way,  Suite  400,  Orange  Park,  FL  32073    888-­‐-­‐-­‐268-­‐-­‐-­‐8770  ·∙·∙  904-­‐-­‐-­‐278-­‐-­‐-­‐0524  -­‐  [email protected]  -­‐  http://www.starwest.techwell.com/      

 

Page 2: Eric Sheridan Serverless Security - StickyMinds...• Introduces “master keys” concept to encrypt sensitive data • Exposed via encrypted environment variables or API • Serverless

   

   

Eric  Sheridan      As  chief  scientist  at  WhiteHat  Security,  Eric  oversees  research  and  development  for  Sentinel  Source  and  related  products.  Eric  leads  the  WhiteHat  Certified  Secure  Developer  (WCSD)  program,  a  free  training  program  designed  to  educate  and  certify  developers  on  secure  coding  and  application  security  best  practices.  Prior  to  joining  WhiteHat,  Eric  cofounded  Infrared  Security,  specializing  in  application  security  and  next-­‐generation  static  analysis  technologies  that  were  ultimately  integrated  within  WhiteHat  Sentinel  Source.  He  earned  a  bachelor  of  science  degree  in  computer  science  with  a  track  in  security  from  Towson  University.      

Page 3: Eric Sheridan Serverless Security - StickyMinds...• Introduces “master keys” concept to encrypt sensitive data • Exposed via encrypted environment variables or API • Serverless

11/1/18  

1  

© 2018 WhiteHat Security, Inc.

Serverless Security!Wait, What?

1

Eric SheridanChief [email protected]

© 2018 WhiteHat Security, Inc.

Agenda

⇢ Overview of Serverless Architecture

⇢ Key Security Considerations

⇢ “Sec” in “DevSecOps”

⇢ Q and A

2

Page 4: Eric Sheridan Serverless Security - StickyMinds...• Introduces “master keys” concept to encrypt sensitive data • Exposed via encrypted environment variables or API • Serverless

11/1/18  

2  

© 2018 WhiteHat Security, Inc.

Transition to Serverless

3

BUSINESSLOGIC LAYER

DATA LAYER

PRESENTATIONLAYER

API

Presentation Layer!

API

Presentation Layer!

API

Presentation Layer!

© 2018 WhiteHat Security, Inc.

Serverless Framework - Example

4

Page 5: Eric Sheridan Serverless Security - StickyMinds...• Introduces “master keys” concept to encrypt sensitive data • Exposed via encrypted environment variables or API • Serverless

11/1/18  

3  

© 2018 WhiteHat Security, Inc.

Challenges with Security

5

▸  Explosion of network accessible API!▸  Lack of clear trust boundaries!▸  Poor understanding of secure design patterns!▸  Rapid pace of release!

© 2018 WhiteHat Security, Inc.

Isolation & ContentionSecurity Consideration

6

Page 6: Eric Sheridan Serverless Security - StickyMinds...• Introduces “master keys” concept to encrypt sensitive data • Exposed via encrypted environment variables or API • Serverless

11/1/18  

4  

© 2018 WhiteHat Security, Inc.

Serverless Isolation

Understanding isolation in across vendors…

•  AWS provides you with dedicated VM instances•  No clear way to run your functions on a VM dedicated to another User

•  Azure may share your VM instance with other users•  Results in shared resources with other users!

•  Google’s strategy for isolation is unclear•  No clear way to uniquely identify underlying VM / host

7

© 2018 WhiteHat Security, Inc.

Spot the Bug: ReadLine

(Intentionally Left Blank)

8

Page 7: Eric Sheridan Serverless Security - StickyMinds...• Introduces “master keys” concept to encrypt sensitive data • Exposed via encrypted environment variables or API • Serverless

11/1/18  

5  

© 2018 WhiteHat Security, Inc.

3rd Party ComponentsSecurity Consideration

9

© 2018 WhiteHat Security, Inc.

Spot the Bug: Components

(Intentionally Left Blank)

10

Page 8: Eric Sheridan Serverless Security - StickyMinds...• Introduces “master keys” concept to encrypt sensitive data • Exposed via encrypted environment variables or API • Serverless

11/1/18  

6  

© 2018 WhiteHat Security, Inc. 11

It is estimated that nearly 90 percent of software code is composed of open source components.

90% OF CODE

© 2018 WhiteHat Security, Inc. 11

© 2018 WhiteHat Security, Inc. © 2017 WhiteHat Security, Inc. 12

The Equifax Hack: Struts Vulnerability Apache Struts 2 is an open-source web application framework for developing Java EE web applications. Highlights huge need for Software Composition Analysis

Page 9: Eric Sheridan Serverless Security - StickyMinds...• Introduces “master keys” concept to encrypt sensitive data • Exposed via encrypted environment variables or API • Serverless

11/1/18  

7  

© 2018 WhiteHat Security, Inc.

Software Composition Analysis (SCA)

13

Software Composition Analysis (SCA) allows you to identify third-party and open source components that have been integrated into all your applications and for each of these components, it identifies:

•  Open security CVEs (if any) •  Licenses•  Out-of-date library versions & age

© 2018 WhiteHat Security, Inc.

Sensitive DataSecurity Consideration

14

Page 10: Eric Sheridan Serverless Security - StickyMinds...• Introduces “master keys” concept to encrypt sensitive data • Exposed via encrypted environment variables or API • Serverless

11/1/18  

8  

© 2018 WhiteHat Security, Inc.

Spot the Bug: Tokens

(Intentionally Left Blank)

15

© 2018 WhiteHat Security, Inc.

Spot the Bug: Cryptography

(Intentionally Left Blank)

16

Page 11: Eric Sheridan Serverless Security - StickyMinds...• Introduces “master keys” concept to encrypt sensitive data • Exposed via encrypted environment variables or API • Serverless

11/1/18  

9  

© 2018 WhiteHat Security, Inc.

Explore Existing Solutions

•  AWS Key Management Service and Azure Key Vault•  Introduces “master keys” concept to encrypt sensitive data•  Exposed via encrypted environment variables or API

•  Serverless Secrets•  Unofficial extension of the “Serverless Framework” to abstract key management•  https://github.com/trek10inc/serverless-secrets

•  Custom Crypto Façade•  Expose “simple” crypto API where key management, rotation, etc. is hidden•  Developer need only ensure the API is invoked in the right locations

17

© 2018 WhiteHat Security, Inc.

Unsafe ConsumptionSecurity Consideration

18

Page 12: Eric Sheridan Serverless Security - StickyMinds...• Introduces “master keys” concept to encrypt sensitive data • Exposed via encrypted environment variables or API • Serverless

11/1/18  

10  

© 2018 WhiteHat Security, Inc.

Spot the Bug: Interpreter

(Intentionally Left Blank)

19

© 2018 WhiteHat Security, Inc.

Variable Binding

Explicitly differentiate for the SQL parser commands vs data•  “Pre-compiles” the SQL query before introducing untrusted data

Rewrite dynamic SQL queries into literals with placeholders•  (before) “SELECT * FROM USERS WHERE name = ‘” + name + “’”;•  (after) “SELECT * FROM USERS WHERE name = ?”;

Available in all modern development languages•  Java, .NET, NodeJS, etc.

Page 13: Eric Sheridan Serverless Security - StickyMinds...• Introduces “master keys” concept to encrypt sensitive data • Exposed via encrypted environment variables or API • Serverless

11/1/18  

11  

© 2018 WhiteHat Security, Inc.

Examples in NodeJS Using Sequelize

BADlet name = req.params.name; let sql = “SELECT * FROM USERS WHERE NAME =‘” + name + “’”; let result = sequelize.query(sql, { type: sequelize.QueryTypes.SELECT });

GOODlet name = req.params.name; let sql = “SELECT * FROM USERS WHERE NAME = ?”; let result = sequelize.query(sql, { type: sequelize.QueryTypes.SELECT, replacements: [ name ] });

GOODlet User = require(‘models’).User; let result = User.findOne({ where: { name: req.params.name } });

© 2018 WhiteHat Security, Inc.

Spot the Bug: Service

(Intentionally Left Blank)

22

Page 14: Eric Sheridan Serverless Security - StickyMinds...• Introduces “master keys” concept to encrypt sensitive data • Exposed via encrypted environment variables or API • Serverless

11/1/18  

12  

© 2018 WhiteHat Security, Inc.

Integration!QA Pipeline!

Jenkins (Nightly)

FILE VULNERABILITY TICKET

QA INTEGRATION •  Dynamic Testing •  Result Verification

4 STAGE

Security at the pace of release

23

PRE-COMMIT •  Static Analysis •  Security Unit Tests •  IDE integration •  Education

1

Code Repo

Run Tests

PULL-REQUEST •  Code Review •  Static Analysis •  Security Unit Tests

2

PASS, MERGE

Team Integration

Build Artifacts

Object Registry

INTEGRATIONS •  Dynamic Testing •  Result Verification

3

FILE VULNERABILITY TICKET

PRODUCTION

RELEASE •  Production safe •  Dynamic testing

5 WAF / RASP 6RULES

© 2018 WhiteHat Security, Inc.

Takeaways

24

Know your trust boundaries

Embed security in DevOps

Security challenges are de-centralized

Page 15: Eric Sheridan Serverless Security - StickyMinds...• Introduces “master keys” concept to encrypt sensitive data • Exposed via encrypted environment variables or API • Serverless

11/1/18  

13  

© 2018 WhiteHat Security, Inc. Company Confidential © 2018 WhiteHat Security, Inc.

Thank you

25

Eric SheridanChief [email protected]