Prévia do material em texto
Thainá Garcia Malaquias
SEGURANÇA EM DISPOSITIVOS MÓVEIS
Analise a importância de utilizar o projeto OWASP Top 10 (2017) e demonstre
de que forma é possível diminuir a vulnerabilidade, citando um exemplo sobre
o assunto.
Tecnologia em Segurança da Informação
Professor(es): CLAUDIO AGUIRRE
Tutor(es): MARCOS COSTA DE SOUSA
FMU CENTRO UNIVERSITÁRIO
02/2024
RESPOSTA
OWASP — sigla para Open Web Application Security Project ou Projeto
Aberto de Segurança em Aplicações Web, em tradução livre. Trata-se, a grosso
modo, de uma comunidade global fundada em setembro de 2001 por Mark
Curphey.
Ela é composta por desenvolvedores, pesquisadores e especialistas em
segurança da informação, que trocam conhecimentos de forma aberta e
disponibilizam gratuitamente conteúdos educacionais — incluindo artigos
técnicos, tutoriais, pesquisas, documentações e ferramentas de código aberto —
para auxiliar profissionais da área. O objetivo final da OWASP é mitigar
vulnerabilidades de segurança na web, e, por isso, a iniciativa se organiza em
diferentes capítulos locais para elaborar ações de conscientização.
A principal “obra” dessa comunidade, porém, é sem dúvida alguma o ranking
anual OWASP Top 10. Trata-se de uma listagem, atualizada frequentemente,
que relaciona as brechas mais críticas, comuns e perigosas quando o assunto é
desenvolvimento de projetos web. O projeto começou de forma
descompromissada, mas, ao longo dos anos, por conta de sua qualidade e
inegável precisão, se tornou um verdadeiro guia reconhecido globalmente por
desenvolvedores que desejam se esquivar de ameaças mais frequentes em
ambientes web.
Brechas mais comuns
A mais recente versão da OWASP Top 10 é a de 2017 — a edição de 2020
ainda está sendo desenvolvida. Confira os problemas mais comuns e graves
listados no ranking:
1) Injeção: falhas de injeção (incluindo SQL, OS e LDAP) ocorrem quando
um interpretador pode ser manipulado por um atacante para que ele execute
comandos maliciosos, culminando na invasão de sistemas e roubo de dados
pessoais em um banco de dados;
2) Quebra de Autenticação: problemas na implementação correta de recursos
de autenticação podem ser explorados por criminosos para comprometer
credenciais e tokens, obtendo acesso não autorizado a sistemas privados;
3) Exposição de Dados Sensíveis: APIs mal configuradas ou servidores
públicos podem acabar expondo dados pessoalmente identificáveis, algo
gravíssimo especialmente em tempos de Lei Geral de Proteção de Dados
(LGPD).
Claro, estes exemplos são apenas o trio mais “mortal” do OWASP Top 10.
Também, temos Entidades Externas de XML (XXE), Quebra de Controles de
Acesso, Configurações de Segurança Incorretas, Cross-Site Scripting (XSS),
Desserialização Insegura, Utilização de Componentes Vulneráveis e Registro e
Monitorização Insuficientes.
Vale observar que o OWASP Top 10 não se limita a listar vulnerabilidades
importantes, mas também oferece uma série de dicas e truques para que você
evite esse tipo de problema em seus projetos, explicando as melhores práticas
para que um projeto web se torne livre desses bugs.
Qual é a importância?
O OWASP Top 10 é um guia indispensável para qualquer desenvolvedor que
esteja trabalhando em projetos de web apps. Com a pandemia do novo
coronavírus (SARS-CoV2), muitos colaboradores estão trabalhando
remotamente e dependendo ainda mais de ferramentas e soluções de
produtividade baseadas na nuvem. Com isso, também cresce a demanda por
esse tipo de projeto baseado em web.
Sendo assim, para evitar problemas com exposições indevidas de dados
pessoais ou ataques cibernéticos contra seus usuários, é essencial que os
desenvolvedores utilizem os recursos da OWASP durante todo o ciclo de
desenvolvimento e manutenção de seus projetos, além de realizar auditorias
constantes para garantir que seu código esteja em conformidade com novos
riscos que surgem diariamente.
Google Cloud Armor
Caso de uso:
Bloquear execução de código remoto
Como a maioria dos ataques contra a desserialização insegura é específica de
um aplicativo, há apenas algumas maneiras de atenuar esses ataques. Por
exemplo, usando um firewall de aplicativos da Web (WAF, na sigla em inglês),
como o Google Cloud Armor. O OWASP recomenda que você não aceite
objetos serializados de fontes não confiáveis. Se possível, restrinja os endpoints
que aceitam esses objetos a um conjunto de endereços IP confiáveis com uma
regra de negação semelhante à seguinte:
request.path.contains("/endpoint") && !(inIpRange(origin.ip,
'1.2.3.4/32')
Substitua:
/endpoint: o caminho do endpoint que aceita objetos serializados
1.2.3.4/32: o intervalo de endereços IP que precisa manter o acesso à interface.
Para reduzir os ataques típicos contra desserialização insegura que usam a
execução de código remoto (RCE, na sigla em inglês), use o conjunto de regras
predefinido contra ataques RCE. É possível usar a regra
evaluatePreconfiguredExpr('rce-stable') para bloquear ataques comuns do RCE
nos shells do UNIX e do Windows.
Os ataques RCE descritos nos desafios do Juice Shop para desserialização não
segura executam funções e expressões regulares no Node.js no servidor. Esses
tipos de ataques não são bloqueados pelo conjunto de regras RCE predefinido e
pela regra correspondente OWASP Modsecurity e precisam ser atenuados com
o uso de patches no lado do servidor ou regras personalizadas.
VirusTotal
Caso de uso:
Verificação de dados não confiável
A API do VirusTotal permite que você faça upload e verifique arquivos em
busca de malware. É possível verificar imagens, documentos, binários e outros
dados não confiáveis antes que eles sejam processados para eliminar
determinadas categorias de entradas mal-intencionadas.
Web Security Scanner
Caso de uso:
Desserialização não segura
O Web Security Scanner verifica os aplicativos da Web em busca de
vulnerabilidades. Por exemplo, se você estiver usando uma versão do Apache
Struts que torna seu aplicativo vulnerável a ataques de injeção de comando
remoto, o Web Security Scanner gera uma descoberta de
STRUTS_INSECURE_DESERIALIZATION.
Proteção de dados confidenciais (parte da proteção de dados confidenciais)
Caso de uso:
Mascaramento automático de dados confidenciais
Identifique informações confidenciais de conformidade nos streams de
registros e mascare ou transforme-as adequadamente antes de arquivá-las nos
registros. Por exemplo, uma mensagem de erro ou despejo de núcleo pode
conter informações confidenciais, como números de cartão de crédito ou
informações de identificação pessoal que precisam ser mascarados.