46
Agile Security Mindset de segurança no ambiente ágil 1

TDC2016POA | Trilha Web - Agile Security

Embed Size (px)

Citation preview

Page 1: TDC2016POA | Trilha Web - Agile Security

Agile SecurityMindset de segurança no ambiente ágil

1

Page 2: TDC2016POA | Trilha Web - Agile Security

Sobre nós

Waldemar Neto @waldemarnt

http://walde.co/

Jeff Stachelski @jeffhsta

https://jeffhsta.github.io/

2

Page 3: TDC2016POA | Trilha Web - Agile Security

Agile SecurityMindset de segurança em um ambiente ágil

3

Page 4: TDC2016POA | Trilha Web - Agile Security

Mas porque?

● Aplicação○ Pacote○ Auditoria externa○ Cloud computing

● Desenvolvimento○ Senhas fracas○ 2FA○ GPG○ Git○ Conhecimentos de autenticação

4

Page 5: TDC2016POA | Trilha Web - Agile Security

Segurança no dia a dia

5

Page 6: TDC2016POA | Trilha Web - Agile Security

Assinando commits com GPG

6

Page 7: TDC2016POA | Trilha Web - Agile Security

Um pouco sobre GPG (GNU Privacy Guard)

7

Page 8: TDC2016POA | Trilha Web - Agile Security

GIT e GPG

8

Page 9: TDC2016POA | Trilha Web - Agile Security

Demo time

9

Page 10: TDC2016POA | Trilha Web - Agile Security

Segredos compartilhados

10

Page 11: TDC2016POA | Trilha Web - Agile Security

Compartilhando segredos

● pass● Vault● 1Password for teams

11

Page 12: TDC2016POA | Trilha Web - Agile Security

Criptografando canais de comunicação

12

Page 13: TDC2016POA | Trilha Web - Agile Security

HTTPS em todo lugar

● Hypper● Text● Transport● Protocol● Secure

13

Page 14: TDC2016POA | Trilha Web - Agile Security

Autenticação

14

Page 15: TDC2016POA | Trilha Web - Agile Security

Mais de um fator de autenticação

15

Page 16: TDC2016POA | Trilha Web - Agile Security

Autenticação baseada em form

16

Page 17: TDC2016POA | Trilha Web - Agile Security

Autenticação baseada em Token

● Basic● JWT (JSON Web Token)● OAuth2

17

Page 18: TDC2016POA | Trilha Web - Agile Security

18

user: waldemar

password: 12345

Basic Authentication

base64Encode(user:password)

Authorization: Basic d2FsZGVtYXI6MTIzNDU2

Page 19: TDC2016POA | Trilha Web - Agile Security

19

Json Web Token (JWT)

Header

Payload

Signature

Page 20: TDC2016POA | Trilha Web - Agile Security

20

OAuth

Page 21: TDC2016POA | Trilha Web - Agile Security

Senhas

21

Page 22: TDC2016POA | Trilha Web - Agile Security

Senhas

● Senhas fracas: ○ 123456, admin ou 18061992

● Políticas de senhas● Armazenando senhas

22

Page 23: TDC2016POA | Trilha Web - Agile Security

Vida sem senhas

23

Page 24: TDC2016POA | Trilha Web - Agile Security

Criptografia e Hashing

24

Page 25: TDC2016POA | Trilha Web - Agile Security

CRIPTOGRAFIA E HASHING

● Plaintext != Encoding != Encryption != Hashing != Criptografia

25

Page 26: TDC2016POA | Trilha Web - Agile Security

Não reinvente a roda

● Bibliotecas de criptografía existentes● Algoritmos conhecidos como:

○ AES (Advanced Encryption Standard)○ RSA○ SHA512 (Secure Hash Algorithm)○ bcrypt

26

Page 27: TDC2016POA | Trilha Web - Agile Security

Reset de senhas

27

Page 28: TDC2016POA | Trilha Web - Agile Security

Validações

28

Page 29: TDC2016POA | Trilha Web - Agile Security

Validação de dados de entrada

● Validar e sanitizar os dados de entrada● Sanitizar os dados de saída● Cross Site Scripting (XSS)● Injection Attacks● Uploads

29

Page 30: TDC2016POA | Trilha Web - Agile Security

Melhoria de segurança com HTTP headers

● Content-Security-Policy● X-Content-Security-Policy● X-WebKit-CSP

30

Page 31: TDC2016POA | Trilha Web - Agile Security

Demo

31

Page 32: TDC2016POA | Trilha Web - Agile Security

Sessões

32

Page 33: TDC2016POA | Trilha Web - Agile Security

Sessões

● Lembre de mim● Onde salvar status de sessão● Invalidando sessões● Cookie monster● Local Storage

33

Page 34: TDC2016POA | Trilha Web - Agile Security

Um pouco sobre ataques

34

Page 35: TDC2016POA | Trilha Web - Agile Security

Ataques comuns

● Clickjacking● Cross Site Request Forgery (CSRF)● Denial of Service (DoS)● Server Side Request Forgery (SSRF)● CORS

35

Page 36: TDC2016POA | Trilha Web - Agile Security

Falhas em configurações

36

Page 37: TDC2016POA | Trilha Web - Agile Security

Falhas em configurações

● Esqueci o debug com TRUE● Falta de Monitoramento● Principle of least privilege● Rate limiting & Captchas ● Senhas e segredos de projeto em

arquivos● Patching e Updates

37

Page 38: TDC2016POA | Trilha Web - Agile Security

Docker

38

Page 39: TDC2016POA | Trilha Web - Agile Security

Pontos de atenção com docker

● Origem das imagens● Automated build● Dockerfile● Least privilege● read-only

39

Page 40: TDC2016POA | Trilha Web - Agile Security

Práticas de segurança no projeto

40

Page 41: TDC2016POA | Trilha Web - Agile Security

Pentesting

● OWASP top 10● Ferramentas

○ OWASP Zap○ Burp Suite

● Distro Linux○ Kali Linux○ BlackArch

41

Page 42: TDC2016POA | Trilha Web - Agile Security

CONTINUOUS SECURITY HYGIENE

● Mantenha sempre os padrões de segurança

● Segurança vs Usabilidade● Como manter essas práticas

continuamente no time?

42

Page 43: TDC2016POA | Trilha Web - Agile Security

43

Page 44: TDC2016POA | Trilha Web - Agile Security

Threat Modeling

44

Page 45: TDC2016POA | Trilha Web - Agile Security

OWASP CORNUCOPIA E Elevation of Privilege

45

Page 46: TDC2016POA | Trilha Web - Agile Security

Valeu!

Perguntas?

You can find nóis at @waldemarnt & @jeffhsta