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

Como Fazer Apps Node.Js Seguras