Skip to content

Instantly share code, notes, and snippets.

@thulioph
Last active October 27, 2020 13:33
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thulioph/7f20a2e0a412856d59c8bc03800b5a9f to your computer and use it in GitHub Desktop.
Save thulioph/7f20a2e0a412856d59c8bc03800b5a9f to your computer and use it in GitHub Desktop.
post sobre segurança no desenvolvimento de aplicações web

Segurança no Desenvolvimento de Aplicações Web

Questões de segurança acontecem principalmente porque:

Desenvolvedores que sabem das coisas, mas esquecem ou ignoram.

Devido ao crescimento da web e da necessidade cada vez maior de aplicações web utilizarem o compartilhamento de informações, faz se necessária a adoção de mecanismos para manter tais aplicações e informações seguras. O artigo mostra as principais vulnerabilidades encontradas em aplicações web, e como você pode conhece-las melhor.

Vulnerabilidades

Todos os dias empresas sofrem com casos de invasão ou vulnerabilidade e a maioria não cai na mídia.

Em 2016 não foi diferente e empresas como Snapchat, Verizon, LinkedIn e Dropbox, tiveram diversos problemas de vulnerabilidade desde, phishing, combinações de e-mails e senhas reveladas e vazamento de informações sigilosas, obrigando as equipes a encontrarem as vulnerabilidades o mais rápido possível. Em 2017, o cenário não mudou muito e empresas como E-Sports, Gmail e organizações como Washington State University sofreram com vazamento de informações sensíveis, phishing ou brechas de segurança. Recentemente, tivemos o caso Wannacry que era uma espécie de vírus que solicitava pagamento em bitcoin para liberar os arquivos da máquina infectada.

As brechas de segurança afetaram bem mais do que 20 milhões de usuários que tiveram seus dados revelados, você faz idéia do custo que isso teve para as empresas responsáveis? São muitos zeros!

OWASP

Fundada em dezembro de 2001 o OWASP, ou Projeto Aberto de Segurança em Aplicações Web, é uma comunidade online que cria e disponibiliza de forma gratuita artigos, metodologias, documentação e ferramentas para educar desenvolvedores, designers, arquitetos e organizações sobre as consequências das vulnerabilidades.

Todo ano eles lançam uma lista com as TOP 10 vulnerabilidades, baseadas principalmente na grande massa de dados de 11 empresas especializadas em segurança de aplicações, onde 8 estão no ramo de consultoria e 3 possuem produtos, totalizando algo em torno de 50.000 aplicações e APIs reais.

Recursos

Para ajudar organizações e desenvolvedores na redução dos riscos de suas aplicações, foram produzidos recursos free and open para que você possa utiliza-los como guia na segurança de sua aplicação, eles são divididos em várias categorias, algumas são:

  1. Cheat Sheet Series

Reúne uma coleção de dicas valiosas em tópicos específicos sobre aplicações web, provendo um excelente guia de segurança de fácil leitura e compreensão. Alguns tópicos mais conhecidos são: ajax, autenticação, html5 security, session management, entre outros.

  1. Enterprise Security API

A ESAPI é uma biblioteca free e open-source que tem o objetivo de tornar mais fácil a escrita de aplicações com baixo risco de vulnerabilidade, foi desenhada para se adaptar a segurança de aplicações já existentes podendo ser implementada por várias linguagens.

  1. Broken Web Applications Project

Coleção de vulnerabilidades conhecidas em aplicações web, distribuidas e executadas em uma máquina virtual. Perfeito para quem deseja aprender mais sobre segurança em aplicações web, testar algumas ferramentas, observar como funciona o fluxo de ataques.

  1. Nodejs Goat Project

Este projeto, provê um ambiente de aprendizado prático de como funcionam os riscos de segurança no desenvolvimento de uma aplicação escrita em Nodejs e em como você pode aborda-los de forma efetiva.

Riscos de segurança

A lista de vulnerabilidades é priorizada de acordo com o tempo levado para estimar a vulnerabilidade, o tempo até detecta-la e o seu impacto. Os principais riscos de segurança para 2017 ainda não foram finalizados, mas vamos abordar os que estão sendo bastante cotados até o momento.

Alguns dos comandos que serão mostrados você consegue facilmente executá-los utilizando o próprio navegador, basta apenas abrir o developer tools e na aba console.

1. Injection

Attack Vectors -> EASY | Prevalence -> COMMON | Detectability -> AVERAGE | Technical Impacts -> SEVERE

DoS (Denial of Service)

Uma das maneiras de se executar e injetar código malicioso é através de inputs que permitem o envio de scripts. Por exemplo, a utilização de algo como o código exibido abaixo permite execução de código malicioso.

const boo = `window.location.href`;
eval(boo); // retorna a url atual
setTimeout(boo, 100); // alguns sites bloqueiam CSP

http://nodegoat.herokuapp.com/tutorial/a1

  1. Quebra de Autenticação

Attack Vectors -> AVERAGE | Prevalence -> WIDESPREAD | Detectability -> AVERAGE | Technical Impacts -> SEVERE

Password Guessing Attacks

Ataques de adivinhação de senha ou os do tipo brute force, normalmente utilizam de ferramentas que geram senhas randômicas, implementando um critério mínimo de senha, torna esse tipo de ataque mais difícil.

http://nodegoat.herokuapp.com/tutorial/a2

  1. Cross-Site Scripting (XSS)

Attack Vectors -> AVERAGE | Prevalence -> VERY WIDESPREAD | Detectability -> EASY | Technical Impacts -> MODERATE

Attack Vectors -> Prevalence -> Detectability -> Technical Impacts ->

http://nodegoat.herokuapp.com/tutorial/a3

  1. Quebra de controle de acessos

Attack Vectors -> Prevalence -> Detectability -> Technical Impacts ->

http://nodegoat.herokuapp.com/tutorial/a4

  1. Configurações de segurança incorretas

Attack Vectors -> Prevalence -> Detectability -> Technical Impacts ->

http://nodegoat.herokuapp.com/tutorial/a5

  1. Exposição de dados sensíveis

Attack Vectors -> Prevalence -> Detectability -> Technical Impacts ->

http://nodegoat.herokuapp.com/tutorial/a6

  1. Proteção insuficiente contra ataques

Attack Vectors -> Prevalence -> Detectability -> Technical Impacts ->

http://nodegoat.herokuapp.com/tutorial/a7

  1. Cross-Site Request Forgery (CSRF)

Attack Vectors -> Prevalence -> Detectability -> Technical Impacts ->

http://nodegoat.herokuapp.com/tutorial/a8

  1. Utilizando componentes com vulnerabilidades conhecidas

Attack Vectors -> Prevalence -> Detectability -> Technical Impacts ->

http://nodegoat.herokuapp.com/tutorial/a9

  1. APIs redirects

Attack Vectors -> Prevalence -> Detectability -> Technical Impacts ->

http://nodegoat.herokuapp.com/tutorial/a10

Riscos Adicionais

Provavelmente os riscos não se resumem só a lista que foi citada, existem outros que estavam presentes em anos anteriores e considere-os como riscos adicionais, Clickjacking, Server-Side Request Forgery, Malicious File Execution, Application Denial of Service.

A lista completa, você pode conferir através deste link.

Comunidade

Uma das partes mais legais de se trabalhar com comunidade, com certeza são os eventos e a troca de conhecimento. O artigo nem acabou e você já está querendo ir para o primeiro evento em segurança? Dá uma conferida na programação do Roadsec, eles estão sempre rodando o país com palestras, workshops e campeonatos como o Hackaflag envolvendo vários conceitos de segurança.

Material Complementar

Se você chegou até aqui é porque parece que realmente se interessou pelo assunto. Deixo para você o convite para leitura do meu próximo artigo que será sobre técnicas para mitigar essas vulnerabilidades, onde irei abordar com mais detalhes, como se prevenir dos 10 pontos citados, junto com demonstração em código.


Gostou do texto? Já passou por alguns dos problemas mencionados? Clica no ❤ ou faz um comentário relatando, e vamos bater um papo legal.

Cheers! 🍺

http://revistapensar.com.br/tecnologia/pasta_upload/artigos/a127.pdf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment