Padrão de Verificação de Segurança De Aplicação OWASP (ASVS)
Com o número de aplicações no mercado atingindo novos patamares, a segurança tornou-se uma grande preocupação. OWASP significa Open Web Application Security Project que é uma fundação sem fins lucrativos que produz artigos, documentação, metodologias, ferramentas e tecnologias para melhorar a segurança do software. O OWASP começou a publicar recursos gratuitos e abertos em vista do aumento dos ataques cibernéticos.
Os aplicativos são o principal alvo dos hackers para roubo e manipulação de dados. Uma pequena segurança pode resultar em danos irreparáveis tanto para as empresas quanto para os consumidores. A implantação de medidas de segurança adequadas é de extrema importância, pois um grande número de aplicativos está sujeito a ataques cibernéticos regularmente. Se olharmos para as estatísticas, cerca de 43% das tentativas de violação de dados foram direcionadas para aplicações web. O ASVS é um dos principais projetos do OWASP desenvolvidos para aumentar a segurança das aplicações. Este artigo irá orientá-lo sobre o OWASP ASVS e sua importância para as equipes de segurança.
ASVS significa Application Security Verification Standard (Padrão de Verificação de Segurança de Aplicativos). O Projeto OWASP ASVS contém uma lista de requisitos de segurança para testadores, desenvolvedores, profissionais de segurança e consumidores. O ASVS estabelece uma estrutura de requisitos e controles de segurança que atuam como base para testar controles técnicos de segurança de aplicativos Web.
O objetivo do ASVS é estabelecer uma estrutura de segurança que normalize os controles de segurança funcionais e não funcionais implementados em diferentes estágios de desenvolvimento e teste de aplicações web. O ASVS rege a verificação da segurança do aplicativo com o uso de um padrão aberto. O ASVS é um esforço da comunidade online que ajuda testadores e profissionais de segurança a testar controles de segurança dentro do aplicativo e controles implantados no ambiente do aplicativo para fornecer proteção contra ataques de XSS (Cross-Site Scripting) e injeção de SQL.
O ASVS é desenvolvido para cumprir os objetivos abaixo mencionados:
- Para ser usado como métrica: o ASVS pode servir como um parâmetro para os desenvolvedores de aplicativos determinarem o nível de segurança de seus aplicativos.
- A ser usado como orientação: Também fornece orientação sobre os controles de segurança a serem implementados de modo a atender efetivamente aos requisitos.
- Para ser usado durante a aquisição: Atua como uma diretriz para especificar requisitos de verificação de segurança de aplicativos em contratos ao adquirir ferramentas e serviços.
Entendendo as principais diferenças entre ASVS 3.0 e ASVS 4.0
O ASVS 4.0 foi lançado em março de 2019 após avaliar o mercado e incorporar o feedback de especialistas do setor. Vamos entender rapidamente as principais diferenças entre ASVS 3.0 e ASVS 4.0:
- A versão mais recente do ASVS abrange as práticas de DevSecOps e o nível 0 foi eliminado.
- As versões anteriores tinham nível 0A e 0B para varredura automatizada de ferramentas e teste básico de penetração, respectivamente, enquanto o nível 1 é o teste de nível básico na nova versão. A nova versão começa com o nível 1 que também cobre mais vulnerabilidades do OWASP Top 10 do que na versão anterior.
- Com a nova versão, é possível cobrir o Nível 1 sem acessar o código-fonte ou a documentação do aplicativo.
- O novo documento ASVS é fácil de entender em comparação com a versão anterior. Os requisitos agora são divididos em subcapítulos.
- A versão 4 tem cofres de chaves e GUIDs incluídos nele. Além disso, backups, caches e armazenamento de dados secundários são novas adições na lista de ativos a serem protegidos.
- Há uma nova seção sobre Controles de Privacidade introduzida na versão ASVS 4.0.
- A versão mais recente engloba a substituição de senha e os requisitos de complexidade de senha. Ele também abrange tokens de autenticação e gerenciadores de senhas.
- A seção Requisitos de verificação de lógica de negócios foi expandida para incluir a modelagem de ameaças na nova versão.
O que há de novo na versão ASVS 4.0?
A nova versão foi reestruturada para facilitar a compreensão e os capítulos mais longos foram divididos em capítulos menores. Isso ajuda a minimizar os controles que um desenvolvedor ou equipe precisa cumprir. Eles podem pular seções que não são aplicáveis a seus aplicativos. Uma das principais adições à nova versão é o NIST 800-63-3 Digital Identity Guidelines, que abrange controles de autenticação baseados em evidências. Essas diretrizes descrevem os requisitos para as agências que implementam serviços de identidade digital. A versão 4.0 inclui mapeamento CWE que ajuda os fabricantes de ferramentas a combinar seus resultados de avaliação de vulnerabilidade de outras ferramentas e versões anteriores do ASVS.
A nova versão contém uma lista de verificação de segurança que auxilia a conformidade com o OWASP Top 10 2017 e o OWASP Proactive Controls 2018. A versão mais recente também é compatível com o regulamento PCI DSS 3.2.1, pois inclui capítulos sobre estouro de buffer, operações de memória não seguras e sinalizadores de compilação relacionados à memória não segura. Embora o ASVS fosse anteriormente focado em controles do lado do servidor, agora ele engloba todas as APIs e aplicativos. A nova versão não contém mais controles de segurança desatualizados ou menos relevantes.
Noções básicas sobre os níveis de verificação de segurança de aplicativos
Há três níveis de verificação de segurança no ASVS projetados para melhorar a segurança de aplicativos com diferentes necessidades de segurança. São eles:
ASVS Nível 1 Básico
O ASVS Nível 1 é relevante para aplicativos que não lidam com informações confidenciais e são menos suscetíveis a ataques. Cada aplicativo deve aderir aos padrões básicos de segurança estabelecidos no ASVS Nível 1. Este nível descreve os controles de segurança projetados para proteger contra vulnerabilidades conhecidas. As medidas de segurança listadas neste nível são testáveis por caneta e por integração. O nível 1 é adequado para pequenas e médias empresas que não enfrentam grandes riscos de segurança.
ASVS Nível 2 Padrão
As diretrizes de nível 2 são aplicáveis a aplicativos que realizam transações entre empresas. Seguir essas diretrizes ajudará os desenvolvedores de aplicativos a proteger seus aplicativos contra acesso ilegítimo, falhas de injeção, erros de validação e autenticação. O ASVS Level 2 Standard garante que as medidas implementadas estejam alinhadas com as vulnerabilidades e ameaças que representam um risco para o aplicativo em foco. O ASVS Nível 2 é recomendado por especialistas em segurança para proteger a maioria dos aplicativos. O teste neste nível requer acesso ao código-fonte, documentação, configuração, bem como pessoas envolvidas no desenvolvimento.
ASVS Nível 3 Avançado
Os aplicativos que lidam com informações altamente confidenciais precisam aderir ao ASVS Nível 3 Avançado. Exemplos de tais aplicações incluem saúde, defesa, finanças, aplicativos de gerenciamento de documentos jurídicos, entre outros. Para atender aos requisitos do nível 3, os desenvolvedores de aplicativos devem incorporar camadas de segurança ao aplicativo desde os estágios anteriores. Além disso, todos os esforços de segurança devem ser documentados e auditados.
Uma visão geral da estrutura do ASVS 4.0
A seguir estão os capítulos abordados no documento ASVS que contém instruções para atender a requisitos de segurança específicos:
V1: Requisitos de arquitetura, design e modelagem de ameaças
O foco principal do primeiro capítulo é disponibilidade, privacidade, confidencialidade, integridade e não repúdio. Além disso, este capítulo também enfatiza a relevância da modelagem de ameaças para os sistemas de segurança modernos.
V2: Requisitos de autenticação e verificação
O segundo capítulo do ASVS 4.0 aborda métodos mais avançados de autenticação. Este capítulo sofreu muitas mudanças. Métodos mais seguros, como hashing e criptografia, são discutidos neste capítulo.
V3: Requisitos de verificação de gerenciamento de sessão
Este capítulo destaca os recursos importantes de gerenciamento de sessão que um aplicativo deve possuir. A seguir estão as características a ter em mente:
- As sessões devem ser exclusivas para cada indivíduo
- As sessões devem ser suspensas se não houver ação/entrada por um período considerável de tempo.
V4: Requisitos de verificação de controle de acesso
As diretrizes para atender aos requisitos de controle de acesso para aplicativos são as seguintes:
- O aplicativo deve permitir o acesso somente a usuários com as credenciais necessárias
- Somente um número limitado de usuários deve receber privilégios e funções específicos
- O controle de acesso e os metadados de permissão precisam ser armazenados com segurança para proteger contra roubo e adulteração.
V5: Requisitos de validação, higienização e verificação de codificação
Este capítulo se concentra em requisitos como o estabelecimento de um pipeline seguro para validação de entrada e codificação de saída para impedir ataques de injeção. Ele também requer que o aplicativo verifique o intervalo e o comprimento dos dados de entrada corretamente e codifique os dados de saída para protegê-los de agentes mal-intencionados.
V6: Requisitos de verificação de criptografia armazenada
O sexto capítulo exige que o pedido satisfaça os seguintes requisitos:
- O aplicativo deve ter um mecanismo seguro de tratamento de erros
- Os módulos criptográficos implementados precisam ser à prova de falhas
- Deve haver um gerador de números eficiente no local que se alinhe com a criptografia do aplicativo
- As chaves criptográficas precisam ser armazenadas com segurança.
V7: Tratamento de erros e requisitos de verificação de log
O sétimo capítulo do documento trata do registro em log e do tratamento de erros. Os aplicativos devem evitar coletar informações confidenciais do usuário, a menos que sejam absolutamente essenciais. Os dados registados devem ser protegidos em conformidade com as normas prescritas e os dados recolhidos devem ser eliminados após um determinado período de tempo.
V8: Requisitos de verificação da proteção de dados
Confidencialidade, disponibilidade e integridade são as principais áreas de foco deste capítulo. A confidencialidade dos dados deve ser mantida em todos os momentos (armazenamento e trânsito). Os dados também devem ser protegidos contra manipulação e exclusão, garantindo que permaneçam acessíveis a usuários legítimos.
V9: Requisitos de verificação de comunicação
Este capítulo enfatiza a importância de usar criptografia e segurança da camada de transporte em todos os momentos. Os desenvolvedores de aplicativos devem fazer uso de algoritmos avançados em vez de confiar em algoritmos fracos e desatualizados. Os desenvolvedores devem fazer questão de substituir cifras e algoritmos mais fracos de tempos em tempos para manter o desempenho e a segurança ideais.
V10: Requisitos de verificação de código malicioso
Este capítulo destaca a importância de gerenciar atividades maliciosas sem permitir que elas afetem todo o aplicativo. O aplicativo deve estar livre de elementos como rootkits, bombas-relógio ou outros elementos nocivos que possam ser explorados por hackers.
V11: Requisitos de verificação da lógica de negócios
O aplicativo deve atender aos seguintes requisitos de verificação de lógica de negócios de acordo com este capítulo:
- A lógica de negócios deve ser construída com segurança rígida, tornando difícil para os hackers evitá-la.
- A lógica de negócios deve ser sequencial
- Ele deve ser capaz de detectar ataques e mitigá-los
- Falhas de segurança como adulteração e falsificação precisam ser tratadas de forma eficaz
V12: Requisitos de verificação de arquivos e recursos
O décimo segundo capítulo especifica que os aplicativos devem ter um mecanismo seguro e compatível para gerenciar dados de fontes desconhecidas. Ele também exige permissões limitadas para dados coletados de fontes não confiáveis. Esses dados devem ser sempre armazenados fora da webroot.
V13: Requisitos de verificação de API e serviço Web
Este capítulo é sobre as APIs do aplicativo. Os seguintes requisitos devem ser cumpridos:
- É obrigatório que as APIs tenham parâmetros de gerenciamento de sessão. Deve haver uma autenticação adequada para acessar os serviços Web.
- Deve haver validação de entrada adequada se os parâmetros mudarem de níveis de confiança mais baixos para mais altos.
- Os controles de segurança necessários precisam ser implementados ao lidar com APIs na nuvem e sem servidor.
V14: Requisitos de configuração e verificação
Este capítulo trata dos requisitos de configuração que determinam que o ambiente de aplicativo deve sempre ser protegido contra vulnerabilidades. Os desenvolvedores de aplicativos devem monitorar bibliotecas de terceiros e também implementar um sistema de gerenciamento de configuração e dependência para remover componentes que representam um risco para a segurança do aplicativo.
Lista de verificação do OWASP ASVS para auditoria de segurança
Vamos dar uma olhada nas diferentes seções abordadas na lista de verificação para auditorias de segurança.
Arquitetura:
Esta seção abrange uma ampla gama de requisitos de segurança. Da verificação da modelagem de ameaças à análise dos mecanismos de controle de acesso do aplicativo, a seção de arquitetura auxilia na verificação dos limites de confiança do aplicativo.
Autenticação:
Esta lista de verificação lida com requisitos de autenticação que incluem verificação de credenciais, armazenamento seguro de credenciais e verificação de caminhos de autenticação e APIs de gerenciamento de identidade. Ele abrange Requisitos de Segurança de Senha, Requisitos Gerais do Autenticador, Requisitos do Ciclo de Vida do Autenticador, Requisitos de Armazenamento de Credenciais, Requisitos de Recuperação de Credenciais, Requisitos de Verificador Secreto de Pesquisa, Requisitos de Verificador Fora de Banda, Requisitos de Verificador Único ou Multifatorial, Requisitos de Verificador de Software e Dispositivos Criptográficos e Requisitos de Autenticação de Serviço.
Gerenciamento de Sessão:
Esta lista de verificação descreve os requisitos a serem atendidos para gerenciar o logout e o tempo limite da sessão. Ele também inclui gerenciamento de sessão baseado em cookies e tokens, juntamente com defesas contra explorações de gerenciamento de sessão.
Controle de acesso:
O controle de acesso deve ser imposto em servidores, gateways de controle de acesso e funções sem servidor. O controle de acesso deve ser flexível o suficiente para atender às necessidades do aplicativo. Esta lista abrange o projeto geral de controle de acesso, o controle de acesso em nível de operação e outras considerações sobre controle de acesso.
Validação de entrada:
Os requisitos de entrada e saída precisam ser verificados para garantir que eles definam técnicas de processamento de dados com base no tipo, conteúdo e leis aplicáveis. A lista de verificação inclui tudo, desde requisitos de validação de entrada até requisitos de prevenção de desserialização.
Criptografia em repouso:
Esta lista de verificação enfatiza a importância de ter uma arquitetura criptográfica forte. O armazenamento de chaves criptográficas deve ser gerenciado corretamente. As chaves e senhas precisam ser substituíveis e as chaves simétricas compartilhadas com os clientes devem ser usadas apenas para proteger dados de baixo risco. Classificação de dados, algoritmos, valores aleatórios e gerenciamento secreto são as principais áreas de foco nesta seção
Tratamento de erros e registro em log:
Esta seção lida principalmente com a verificação do conteúdo do log e os requisitos para processamento de log e proteção de log, juntamente com o tratamento de erros.
Proteção de dados:
Os dados confidenciais precisam ser categorizados em diferentes níveis de proteção, conforme mencionado nesta parte da lista de verificação. Esta seção também abrange diretrizes relacionadas à proteção do lado do cliente e dados gerais.
Segurança da Comunicação:
Esta lista de verificação que inclui os requisitos de segurança de comunicação do servidor indica que os aplicativos precisam criptografar todas as comunicações entre componentes. Todos os componentes envolvidos na comunicação precisam ser protegidos para evitar ataques de pessoa no meio. Somente certificados TLS confiáveis devem ser usados.
Código malicioso:
Esta seção trata da verificação de ferramentas de análise de código. Pesquisa de código mal-intencionado, controles de integridade de código e controles de integridade de aplicativos estão sob o escopo desta seção.
Lógica de Negócios:
Esta seção contém todos os requisitos de segurança de lógica de negócios que protegerão o aplicativo contra ameaças externas.
Arquivos e Recursos:
Esta seção destaca os requisitos a serem cumpridos para o upload seguro de arquivos. Ele abrange requisitos de upload de arquivos, requisitos de integridade de arquivos, requisitos de armazenamento de arquivos, requisitos de download de arquivos e requisitos de proteção SSRF.
Serviço Web:
Esta seção fornece requisitos relacionados à verificação de serviço Web RESTful, verificação de serviço Web SOAP, segurança genérica de serviço Web e GraphQL e outros requisitos de segurança de camada de dados de serviço Web.
Configuração:
Esta lista de verificação envolve compilação, dependência, requisitos relacionados a cabeçalhos de segurança HTTP e divulgação de segurança não intencional.
Considerações Finais
O OWASP ASVS oferece uma cobertura de teste mais abrangente, permitindo que desenvolvedores e equipes de segurança realizem uma avaliação completa da segurança de aplicativos da Web. Há três níveis de padrão ASVS, com cada nível projetado para atender a diferentes requisitos de segurança, dependendo da natureza do aplicativo. A adesão aos padrões ASVS aumentará muito a segurança dos aplicativos. Dado o aumento dos ataques cibernéticos nos dias de hoje, o uso do ASVS é recomendado para todas as organizações para manter a credibilidade e a reputação no mercado. Seguir as diretrizes de segurança listadas no OWASP ASVS prova que a organização prioriza a segurança.
A proliferação de vulnerabilidades de aplicativos tornou essencial para as empresas realizar uma avaliação abrangente de aplicativos da Web e o OWASP ASVS serve como um guia perfeito para as equipes de desenvolvimento reforçarem a segurança dos aplicativos. O ASVS pode ser usado como parâmetro para avaliar a confiança dos aplicativos. Ele inclui 286 controles e permite que os provedores de serviços de segurança ofereçam serviços padronizados e repetíveis usando ASVS como base para testes. Alinhar as atividades de desenvolvimento e avaliação com o nível ASVS apropriado poupará sua empresa de correções dispendiosas no futuro.
A Appsealing é um provedor robusto de soluções de segurança de aplicativos móveis especializado na segurança de aplicativos Android, iOS e híbridos. Com experiência em setores como jogos, fintech, O2O e e-commerce, oferecemos proteção escalável no aplicativo com análise de ameaças em vetores de ataque. Caracterizadas por recursos de codificação zero, nossas soluções de segurança são compatíveis com ferramentas de terceiros e facilitam a proteção de dados confidenciais contra roubo, adulteração e acesso não autorizado de dados. Entre em contato conosco e aproveite nossas soluções de segurança hoje mesmo para proteger seu aplicativo contra agentes mal-intencionados.