Top Banner
Como Fazer Apps Node.Js SEGURAS
46

Como Fazer Apps Node.Js Seguras

May 22, 2015

Download

Technology

Paulo Pires

Talk apresentado no segundo Meetup de Node.JS de São Paulo.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Como Fazer Apps Node.Js Seguras

Como Fazer Apps Node.Js

SEGURAS

Page 2: Como Fazer Apps Node.Js Seguras

@paulo_hp

Page 3: Como Fazer Apps Node.Js Seguras
Page 4: Como Fazer Apps Node.Js Seguras

Eu não sou um especialista em segurança

web!

Page 5: Como Fazer Apps Node.Js Seguras

Como você inicia

uma aplicação?

Page 6: Como Fazer Apps Node.Js Seguras

Muita Coisa

Pra Pensar

Page 7: Como Fazer Apps Node.Js Seguras

Regras de Negócio Modelagem

Frameworks? Node.JS?

Page 8: Como Fazer Apps Node.Js Seguras

Você trabalha igual louco

e coloca o app em produção

Page 9: Como Fazer Apps Node.Js Seguras

+ usuários + visibilidade + exposição

Page 10: Como Fazer Apps Node.Js Seguras

Você fica

vulnerável

Page 11: Como Fazer Apps Node.Js Seguras

SE GU RAN ÇA?

Page 12: Como Fazer Apps Node.Js Seguras

Segurança quase nunca entra em pauta!

Page 13: Como Fazer Apps Node.Js Seguras

Maioria dos ataques acontecem na

camada de aplicação

Page 14: Como Fazer Apps Node.Js Seguras

Como prevenir esses ataques

em nossos apps Node.JS?

Page 15: Como Fazer Apps Node.Js Seguras

Defesa

Page 16: Como Fazer Apps Node.Js Seguras

XSS

Page 17: Como Fazer Apps Node.Js Seguras

localhost:8000/?name=<script>alert(1)</script>

Page 18: Como Fazer Apps Node.Js Seguras

Encode Untrusted

Data

Page 19: Como Fazer Apps Node.Js Seguras

SSJSi

Page 20: Como Fazer Apps Node.Js Seguras

eval() is evil

Page 21: Como Fazer Apps Node.Js Seguras

{"symbol" : "ASDF"}

A chamada para eval avalia assim a string:

({"symbol" : "ASDF"})

Page 22: Como Fazer Apps Node.Js Seguras

Mas se ao invés de um simples JSON, o atacante enviar

um código JS malicioso?

Page 23: Como Fazer Apps Node.Js Seguras

res.end('success')

Page 24: Como Fazer Apps Node.Js Seguras

O servidor executa esse comando,

retornando o texto "success" como

resposta HTTP.

Page 25: Como Fazer Apps Node.Js Seguras

Com essa resposta, o atacante sabe que

seu server é vulnerável.

Page 26: Como Fazer Apps Node.Js Seguras

E assim ele pode enviar códigos

que realmente causam estragos.

Page 27: Como Fazer Apps Node.Js Seguras

DoS*deprecated

Page 28: Como Fazer Apps Node.Js Seguras

Um ataque efetivo DoS pode ser executado

simplesmente enviando um comando

Page 29: Como Fazer Apps Node.Js Seguras

while(1)

Page 30: Como Fazer Apps Node.Js Seguras

Um descuido como esse pode dar acesso

aos arquivos, processos e até ao seu banco NoSQL

Page 31: Como Fazer Apps Node.Js Seguras

Algumas pequenas coisas podem ser feitas para evitar, como validar

inputs com RegEx e evitando o uso de

eval()

Page 32: Como Fazer Apps Node.Js Seguras

e se você usa

versão antiga, ATUALIZE!

Page 33: Como Fazer Apps Node.Js Seguras

CSRF

Page 34: Como Fazer Apps Node.Js Seguras

Ativando o uso de CSRF no Express.JS

Page 35: Como Fazer Apps Node.Js Seguras

app.js

form.html

Page 36: Como Fazer Apps Node.Js Seguras

Garanta o uso correto dos metodos

HTTP

Page 37: Como Fazer Apps Node.Js Seguras

Nomes de Cookies Genéricos

Page 38: Como Fazer Apps Node.Js Seguras
Page 39: Como Fazer Apps Node.Js Seguras

X-Powerd-By

Page 40: Como Fazer Apps Node.Js Seguras

Esse valor não interessa muito pra nós, e pode

ser removido facilmente

Page 41: Como Fazer Apps Node.Js Seguras
Page 42: Como Fazer Apps Node.Js Seguras

Avalie os módulos externos do

NPM

Page 43: Como Fazer Apps Node.Js Seguras

nodesecurity.io

Page 44: Como Fazer Apps Node.Js Seguras

Eduque os desenvolvedores com OWASP Top 10

owasp.org

Page 45: Como Fazer Apps Node.Js Seguras

Inclua testes de segurança no ciclo de

desenvolvimento

Page 46: Como Fazer Apps Node.Js Seguras

vlw :D