Como Fazer Apps Node.Js
SEGURAS
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
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?
localhost:8000/?name=<script>alert(1)</script>
Encode Untrusted
Data
{"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.
Um ataque efetivo DoS pode ser executado
simplesmente enviando um comando
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!
Ativando o uso de CSRF no Express.JS
Garanta o uso correto dos metodos
HTTP
Nomes de Cookies Genéricos
Esse valor não interessa muito pra nós, e pode
ser removido facilmente
Avalie os módulos externos do
NPM
Eduque os desenvolvedores com OWASP Top 10
owasp.org
Inclua testes de segurança no ciclo de
desenvolvimento