Teste de segurança - Security testing
O teste de segurança é um processo que visa revelar falhas nos mecanismos de segurança de um sistema de informações que protegem os dados e mantêm a funcionalidade conforme pretendido. Devido às limitações lógicas dos testes de segurança, passar no processo de teste de segurança não é uma indicação de que não existem falhas ou de que o sistema atende adequadamente aos requisitos de segurança.
Os requisitos de segurança típicos podem incluir elementos específicos de confidencialidade , integridade , autenticação , disponibilidade, autorização e não repúdio . Os requisitos de segurança reais testados dependem dos requisitos de segurança implementados pelo sistema. O teste de segurança como um termo tem vários significados diferentes e pode ser concluído de várias maneiras diferentes. Como tal, uma taxonomia de segurança nos ajuda a entender essas diferentes abordagens e significados, fornecendo um nível básico a partir do qual trabalhar.
Confidencialidade
- Uma medida de segurança que protege contra a divulgação de informações a outras partes que não o destinatário pretendido não é, de forma alguma, a única forma de garantir a segurança.
Integridade
A integridade das informações se refere à proteção das informações contra modificações por terceiros não autorizados
- Uma medida destinada a permitir que o receptor determine se as informações fornecidas por um sistema estão corretas.
- Os esquemas de integridade geralmente usam algumas das mesmas tecnologias subjacentes dos esquemas de confidencialidade, mas geralmente envolvem a adição de informações a uma comunicação, para formar a base de uma verificação algorítmica, em vez de codificar toda a comunicação.
- Para verificar se as informações corretas são transferidas de um aplicativo para outro.
Autenticação
Isso pode envolver a confirmação da identidade de uma pessoa, rastreando as origens de um artefato, garantindo que um produto seja o que sua embalagem e rotulagem afirmam ser, ou garantindo que um programa de computador seja confiável.
Autorização
- O processo de determinar se um solicitante tem permissão para receber um serviço ou executar uma operação.
- O controle de acesso é um exemplo de autorização.
Disponibilidade
- Garantir que os serviços de informação e comunicação estejam prontos para uso quando for esperado.
- As informações devem ser mantidas à disposição de pessoas autorizadas, quando necessário.
Não repúdio
- Em referência à segurança digital, não repúdio significa garantir que uma mensagem transferida foi enviada e recebida pelas partes que afirmam ter enviado e recebido a mensagem. O não repúdio é uma forma de garantir que o remetente de uma mensagem não possa negar posteriormente o envio da mensagem e que o destinatário não possa negar o recebimento da mensagem.
- Um remetente-id é geralmente um cabeçalho transmitido junto com a mensagem que reconhece a origem da mensagem.
Taxonomia
Termos comuns usados para a entrega de testes de segurança:
- Descoberta - O objetivo desta etapa é identificar os sistemas dentro do escopo e os serviços em uso. Não se destina a descobrir vulnerabilidades, mas a detecção de versão pode destacar versões obsoletas de software / firmware e, portanto, indicar vulnerabilidades em potencial.
- Varredura de vulnerabilidade - Após o estágio de descoberta, ela procura problemas de segurança conhecidos usando ferramentas automatizadas para combinar as condições com vulnerabilidades conhecidas. O nível de risco relatado é definido automaticamente pela ferramenta sem verificação manual ou interpretação pelo fornecedor do teste. Isso pode ser complementado com a verificação baseada em credenciais que procura remover alguns falsos positivos comuns usando credenciais fornecidas para autenticar com um serviço (como contas locais do Windows).
- Avaliação de vulnerabilidade - usa descoberta e varredura de vulnerabilidade para identificar vulnerabilidades de segurança e coloca as descobertas no contexto do ambiente em teste. Um exemplo seria remover falsos positivos comuns do relatório e decidir os níveis de risco que devem ser aplicados a cada descoberta do relatório para melhorar a compreensão e o contexto do negócio.
- Avaliação de segurança - baseia-se na avaliação de vulnerabilidade adicionando verificação manual para confirmar a exposição, mas não inclui a exploração de vulnerabilidades para obter acesso posterior. A verificação pode ser na forma de acesso autorizado a um sistema para confirmar as configurações do sistema e envolver o exame de registros, respostas do sistema, mensagens de erro, códigos, etc. Uma avaliação de segurança está procurando obter uma ampla cobertura dos sistemas em teste, mas não a profundidade de exposição que uma vulnerabilidade específica pode causar.
- Teste de penetração - O teste de penetração simula um ataque de uma parte mal-intencionada. Construir sobre os estágios anteriores e envolve a exploração de vulnerabilidades encontradas para obter mais acesso. O uso dessa abordagem resultará na compreensão da capacidade de um invasor de obter acesso a informações confidenciais, afetar a integridade dos dados ou a disponibilidade de um serviço e o respectivo impacto. Cada teste é abordado usando uma metodologia consistente e completa de uma forma que permite ao testador usar suas habilidades de resolução de problemas, o resultado de uma gama de ferramentas e seu próprio conhecimento de redes e sistemas para encontrar vulnerabilidades que seriam / não poderiam ser identificadas por ferramentas automatizadas. Essa abordagem analisa a profundidade do ataque em comparação com a abordagem de avaliação de segurança que analisa a cobertura mais ampla.
- Auditoria de segurança - orientada por uma função de auditoria / risco para examinar um controle específico ou problema de conformidade. Caracterizado por um escopo estreito, esse tipo de envolvimento pode fazer uso de qualquer uma das abordagens anteriores discutidas ( avaliação de vulnerabilidade , avaliação de segurança, teste de penetração).
- Análise de segurança - Verificação de que os padrões de segurança internos ou da indústria foram aplicados aos componentes do sistema ou produto. Isso normalmente é concluído por meio de análise de lacunas e utiliza revisões de construção / código ou revisão de documentos de design e diagramas de arquitetura. Esta atividade não utiliza nenhuma das abordagens anteriores (avaliação de vulnerabilidade, avaliação de segurança, teste de penetração, auditoria de segurança)
Ferramentas
- CSA - Análise de Segurança de Contêineres e Infraestrutura
- DAST - Teste de Segurança de Aplicativos Dinâmicos
- DLP - Prevenção contra perda de dados
- IAST - Teste Interativo de Segurança de Aplicativos
- IDS / IPS - Detecção de Intrusão e / ou Prevenção de Intrusão
- OSS - Scanning de software de código aberto
- RASP - Autoproteção de aplicativo em tempo de execução
- SAST - Teste de Segurança de Aplicativo Estático
- SCA - Análise de Composição de Software
- WAF - Firewall de aplicativo da Web