Segurança do aplicativo - Application security

A segurança do aplicativo (curto AppSec ) inclui todas as tarefas que introduzem um ciclo de vida de desenvolvimento de software seguro para as equipes de desenvolvimento. Seu objetivo final é aprimorar as práticas de segurança e, por meio disso, localizar, corrigir e, preferencialmente, prevenir problemas de segurança nos aplicativos. Ele abrange todo o ciclo de vida do aplicativo, desde a análise de requisitos, design, implementação, verificação e manutenção.

Abordagens

Diferentes abordagens encontrarão diferentes subconjuntos de vulnerabilidades de segurança à espreita em um aplicativo e são mais eficazes em diferentes momentos do ciclo de vida do software. Cada um deles representa diferentes compensações de tempo, esforço, custo e vulnerabilidades encontradas.

  • Revisão de design . Antes de o código ser escrito, a arquitetura e o design do aplicativo podem ser revisados ​​para problemas de segurança. Uma técnica comum nesta fase é a criação de um modelo de ameaça .
  • Revisão de segurança da caixa branca ou revisão de código . Este é um engenheiro de segurança que entende profundamente o aplicativo por meio da revisão manual do código-fonte e da observação das falhas de segurança. Através da compreensão das vulnerabilidades do aplicativo, exclusivas para o aplicativo podem ser encontradas.
  • Auditoria de segurança da caixa preta . Isso ocorre apenas por meio do uso de um aplicativo para testá-lo quanto a vulnerabilidades de segurança, sem a necessidade de código-fonte.
  • Ferramentas automatizadas. Muitas ferramentas de segurança podem ser automatizadas por meio da inclusão no ambiente de desenvolvimento ou teste. Exemplos disso são ferramentas DAST / SAST automatizadas que são integradas ao editor de código ou plataformas CI / CD.
  • Plataformas de vulnerabilidade coordenadas . Essas são soluções de segurança de aplicativos acionadas por hackers, oferecidas por muitos sites e desenvolvedores de software, por meio das quais os indivíduos podem receber reconhecimento e compensação por relatar bugs.

Segurança de aplicativos da web

A segurança de aplicativos da web é um ramo da segurança da informação que lida especificamente com a segurança de sites , aplicativos da web e serviços da web . Em um alto nível, a segurança de aplicativos da web baseia-se nos princípios de segurança de aplicativos, mas os aplica especificamente à Internet e aos sistemas da web .

Ferramentas de segurança de aplicativos da Web são ferramentas especializadas para trabalhar com tráfego HTTP, por exemplo, firewalls de aplicativos da Web .

Ameaças à segurança

O Open Web Application Security Project ( OWASP ) oferece recursos abertos e gratuitos. É liderado por uma organização sem fins lucrativos chamada The OWASP Foundation. O OWASP Top 10 - 2017 é o resultado publicado de uma pesquisa recente com base em dados abrangentes compilados de mais de 40 organizações parceiras. A partir desses dados, aproximadamente 2,3 milhões de vulnerabilidades foram descobertas em mais de 50.000 aplicativos. De acordo com o OWASP Top 10 - 2017, os dez riscos de segurança de aplicativos da web mais críticos incluem:

  1. Injeção
  2. Autenticação quebrada
  3. Exposição de dados sensíveis
  4. Entidades externas XML (XXE)
  5. Controle de acesso quebrado
  6. Configuração incorreta de segurança
  7. Cross-site scripting (XSS)
  8. Desserialização insegura
  9. Usando componentes com vulnerabilidades conhecidas
  10. Registro e monitoramento insuficientes

Ferramentas para testes de segurança

As técnicas de teste de segurança procuram vulnerabilidades ou brechas de segurança nos aplicativos. Essas vulnerabilidades deixam os aplicativos abertos para exploração . O ideal é que o teste de segurança seja implementado em todo o Ciclo de Vida de Desenvolvimento de Software (SDLC) para que as vulnerabilidades possam ser tratadas de maneira oportuna e completa.

Existem muitos tipos de ferramentas automatizadas para identificar vulnerabilidades em aplicativos. As categorias de ferramentas comuns usadas para identificar vulnerabilidades de aplicativos incluem:

  • O teste de segurança de aplicativos estáticos (SAST) analisa o código-fonte em busca de vulnerabilidades de segurança durante o desenvolvimento de um aplicativo. Comparado ao DAST, o SAST pode ser utilizado antes mesmo que o aplicativo esteja em um estado executável. Como o SAST tem acesso ao código-fonte completo, é uma abordagem de caixa branca. Isso pode gerar resultados mais detalhados, mas pode resultar em muitos falsos positivos que precisam ser verificados manualmente.
  • O Teste de Segurança de Aplicativos Dinâmicos (DAST, frequentemente chamado de scanners de vulnerabilidade ) detecta vulnerabilidades rastreando e analisando sites da web automaticamente. Este método é altamente escalável, facilmente integrado e rápido. As ferramentas DAST são adequadas para lidar com ataques de baixo nível, como falhas de injeção, mas não são adequadas para detectar falhas de alto nível, por exemplo, falhas de lógica ou lógica de negócios. Fuzzing , ferramentas são comumente usadas para teste de entrada.
  • O Interactive Application Security Testing (IAST) avalia os aplicativos de dentro, usando instrumentação de software . Isso combina os pontos fortes dos métodos SAST e DAST, além de fornecer acesso a código, tráfego HTTP, informações de biblioteca, conexões de back-end e informações de configuração. Alguns produtos IAST exigem que o aplicativo seja atacado, enquanto outros podem ser usados ​​durante os testes normais de garantia de qualidade.
  • A autoproteção de aplicativos em tempo de execução aumenta os aplicativos existentes para fornecer detecção e prevenção de intrusão a partir de um tempo de execução de aplicativos.
  • Os scanners de dependência (também chamados de Análise de Composição de Software) tentam detectar o uso de componentes de software com vulnerabilidades conhecidas. Essas ferramentas podem funcionar sob demanda, por exemplo, durante o processo de construção do código-fonte, ou periodicamente.
  • Abstração é a ideia de tornar as coisas mais complexas menos complexas.

Normas e regulamentos de segurança

  • CERT Secure Coding
  • ISO / IEC 27034-1: 2011 Tecnologia da informação - Técnicas de segurança - Segurança de aplicativos - Parte 1: Visão geral e conceitos
  • ISO / IEC TR 24772: 2013 Tecnologia da informação - Linguagens de programação - Orientação para evitar vulnerabilidades em linguagens de programação por meio da seleção e uso de linguagem
  • Publicação especial NIST 800-53
  • OWASP ASVS: Padrão de Verificação de Segurança de Aplicativos da Web

Veja também

Referências