Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Como Fazer Apps Node.Js SEGURAS
Slide 2
Slide 2 text
@paulo_hp
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
Eu não sou um especialista em segurança web!
Slide 5
Slide 5 text
Como você inicia uma aplicação?
Slide 6
Slide 6 text
Muita Coisa Pra Pensar
Slide 7
Slide 7 text
Regras de Negócio Modelagem Frameworks? Node.JS?
Slide 8
Slide 8 text
Você trabalha igual louco e coloca o app em produção
Slide 9
Slide 9 text
+ usuários + visibilidade + exposição
Slide 10
Slide 10 text
Você fica vulnerável
Slide 11
Slide 11 text
SE GU RAN ÇA?
Slide 12
Slide 12 text
Segurança quase nunca entra em pauta!
Slide 13
Slide 13 text
Maioria dos ataques acontecem na camada de aplicação
Slide 14
Slide 14 text
Como prevenir esses ataques em nossos apps Node.JS?
Slide 15
Slide 15 text
Defesa
Slide 16
Slide 16 text
XSS
Slide 17
Slide 17 text
localhost:8000/?name=alert(1)
Slide 18
Slide 18 text
Encode Untrusted Data
Slide 19
Slide 19 text
SSJSi
Slide 20
Slide 20 text
eval() is evil
Slide 21
Slide 21 text
{"symbol" : "ASDF"} A chamada para eval avalia assim a string: ({"symbol" : "ASDF"})
Slide 22
Slide 22 text
Mas se ao invés de um simples JSON, o atacante enviar um código JS malicioso?
Slide 23
Slide 23 text
res.end('success')
Slide 24
Slide 24 text
O servidor executa esse comando, retornando o texto "success" como resposta HTTP.
Slide 25
Slide 25 text
Com essa resposta, o atacante sabe que seu server é vulnerável.
Slide 26
Slide 26 text
E assim ele pode enviar códigos que realmente causam estragos.
Slide 27
Slide 27 text
DoS *deprecated
Slide 28
Slide 28 text
Um ataque efetivo DoS pode ser executado simplesmente enviando um comando
Slide 29
Slide 29 text
while(1)
Slide 30
Slide 30 text
Um descuido como esse pode dar acesso aos arquivos, processos e até ao seu banco NoSQL
Slide 31
Slide 31 text
Algumas pequenas coisas podem ser feitas para evitar, como validar inputs com RegEx e evitando o uso de eval()
Slide 32
Slide 32 text
e se você usa versão antiga, ATUALIZE!
Slide 33
Slide 33 text
CSRF
Slide 34
Slide 34 text
Ativando o uso de CSRF no Express.JS
Slide 35
Slide 35 text
app.js form.html
Slide 36
Slide 36 text
Garanta o uso correto dos metodos HTTP
Slide 37
Slide 37 text
Nomes de Cookies Genéricos
Slide 38
Slide 38 text
No content
Slide 39
Slide 39 text
X-Powerd-By
Slide 40
Slide 40 text
Esse valor não interessa muito pra nós, e pode ser removido facilmente
Slide 41
Slide 41 text
No content
Slide 42
Slide 42 text
Avalie os módulos externos do NPM
Slide 43
Slide 43 text
nodesecurity.io
Slide 44
Slide 44 text
Eduque os desenvolvedores com OWASP Top 10 owasp.org
Slide 45
Slide 45 text
Inclua testes de segurança no ciclo de desenvolvimento
Slide 46
Slide 46 text
vlw :D