Abílio Azevedo.

Segurança em Aplicativos Móveis

Cover Image for Segurança em Aplicativos Móveis
Abílio Azevedo
Abílio Azevedo

Ao desenvolvermos aplicações precisamos tomar cuidado com segurança.

O Open Web Application Security Project® (OWASP) é uma fundação sem fins lucrativos que trabalha para melhorar a segurança do software.

Eles fazem um documento, chamado de OWASP Top 10, para conscientização de desenvolvedores com relação a segurança de aplicativos da web.

E para o mundo de aplicações móveis eles também tem um documento equivalente e também existe um documento de padrões de segurança o OWASP MASVS (Mobile Application Security Verification Standard) que possui as seguintes categorias:

  • MASVS-ARMAZENAMENTO: Armazenamento seguro de dados sensíveis em um dispositivo (data-at-rest).
  • MASVS-CRIPTO: Funcionalidades criptográficas utilizadas para proteger dados sensíveis.
  • MASVS-AUTENTICACAO: Mecanismos de autenticação e autorização utilizados pelo aplicativo móvel.
  • MASVS-REDE: Comunicação segura em rede entre o aplicativo móvel e endpoints remotos (data-in-transit).
  • MASVS-PLATAFORMA: Interação segura com a plataforma móvel subjacente e outros aplicativos instalados.
  • MASVS-CODIGO: Melhores práticas de segurança para processamento de dados e manutenção do aplicativo atualizado.
  • MASVS-RESILIENCIA: Resiliência a engenharia reversa e tentativas de adulteração.

Ok, mas como podemos analisar essas vulnerabilidades em nossas aplicações?

O Mobile Security Framework (MobSF) é um framework automatizado e completo para aplicativos móveis (Android/iOS/Windows) para teste de vunerabilidades, análise de malware e estrutura de avaliação de segurança capaz de realizar análises estáticas e dinâmicas.

Você pode instalar ele em sua máquina e colocar o APK ou IPA de seus aplicativos para rodar os testes: Screen Shot 2022-05-24 at 15.18.28

No final ele dá um relatório com as vulnerabilidades: Screen Shot 2022-05-24 at 17.38.00

Um ponto importante são credenciais que as vezes deixamos expostos ou arquivos de testes que as vezes são colocados no nosso aplicativos. Por exemplo, no React Native é possível excluir alguns arquivos do bundle de nosso app:

const exclusionList = require('metro-config/src/defaults/exclusionList');

    // exclusionList is a function that takes an array of regexes and combines
    // them with the default exclusions to return a single regex.

    module.exports = {
      resolver: {
    blacklistRE: exclusionList([/dist\/.*/])
      }
    };

Também existe um kit de ferramentas de instrumentação dinâmica para desenvolvedores, engenheiros reversos e pesquisadores de segurança chamado Frida que pode te auxiliar a rodar testes de segurança.

Busque formas de sempre protejer seus aplicativos.

Embedded content: https://docs.google.com/presentation/d/1jVQCL2h-xKEypVAPo-MU_LGoQS-CsYYXhAC9RNOpJ94/edit?usp=sharing


Mais posts

Cover Image for Documentos Técnicos

Documentos Técnicos

Aprenda a importância vital da documentação técnica abrangente para projetos de software em crescimento. Descubra as melhores práticas, como Requests for Comments (RFCs) e Architectural Decision Records (ADRs), que promovem transparência, colaboração e registro de decisões arquiteturais. Explore ferramentas poderosas como wiki.js e Backstage para criar centros de documentação eficazes. Mantenha seu projeto organizado, compreensível e sustentável com essa abordagem à documentação técnica.

Abílio Azevedo
Abílio Azevedo
Cover Image for Superlógica - BFF para o Gruvi

Superlógica - BFF para o Gruvi

Construindo um BFF (Backend for Frontend) para o SuperApp Gruvi que tem mais de 120 mil usuários ativos e milhões de possíveis usuários para disponibilizar no ecossistema Superlogica.

Abílio Azevedo
Abílio Azevedo

NewsLetter

Eu enviarei o conteúdo postado aqui no blog. Sem Spam =)

Engenheiro de software experiente, formado em Engenharia Elétrica, com mais de 10 anos de experiência prática na construção de aplicativos móveis, web e back-end robustos e escaláveis em vários projetos, principalmente no setor de fintech. Mobile (React Native), Web (React e Next.JS) e Backend (Node.JS, PHP e DJANGO). Meu objetivo é criar produtos que agreguem valor às pessoas. - © 2024, Abílio Azevedo