46
Como Fazer Apps Node.Js SEGURAS

Como Fazer Apps Node.Js Seguras

Embed Size (px)

DESCRIPTION

Talk apresentado no segundo Meetup de Node.JS de São Paulo.

Citation preview

Como Fazer Apps Node.Js

SEGURAS

@paulo_hp

Eu não sou um especialista em segurança

web!

Como você inicia

uma aplicação?

Muita Coisa

Pra Pensar

Regras de Negócio Modelagem

Frameworks? Node.JS?

Você trabalha igual louco

e coloca o app em produção

+ usuários + visibilidade + exposição

Você fica

vulnerável

SE GU RAN ÇA?

Segurança quase nunca entra em pauta!

Maioria dos ataques acontecem na

camada de aplicação

Como prevenir esses ataques

em nossos apps Node.JS?

Defesa

XSS

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

Encode Untrusted

Data

SSJSi

eval() is evil

{"symbol" : "ASDF"}

A chamada para eval avalia assim a string:

({"symbol" : "ASDF"})

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

um código JS malicioso?

res.end('success')

O servidor executa esse comando,

retornando o texto "success" como

resposta HTTP.

Com essa resposta, o atacante sabe que

seu server é vulnerável.

E assim ele pode enviar códigos

que realmente causam estragos.

DoS*deprecated

Um ataque efetivo DoS pode ser executado

simplesmente enviando um comando

while(1)

Um descuido como esse pode dar acesso

aos arquivos, processos e até ao seu banco NoSQL

Algumas pequenas coisas podem ser feitas para evitar, como validar

inputs com RegEx e evitando o uso de

eval()

e se você usa

versão antiga, ATUALIZE!

CSRF

Ativando o uso de CSRF no Express.JS

app.js

form.html

Garanta o uso correto dos metodos

HTTP

Nomes de Cookies Genéricos

X-Powerd-By

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

ser removido facilmente

Avalie os módulos externos do

NPM

nodesecurity.io

Eduque os desenvolvedores com OWASP Top 10

owasp.org

Inclua testes de segurança no ciclo de

desenvolvimento

vlw :D