Verificação de segurança e desempenho

De MSTECH wiki
Ir para: navegação, pesquisa

O objetivo da verificação de segurança e desempenho é analisar através dos testes não funcionais dois dos principais requisitos não funcionais que podem afetar de forma drástica a estabilidade e a qualidade das nossas entregas, sendo de extrema importância na obtenção de um diagnóstico cada vez mais preciso nas ações de melhoria contínua e na garantia da qualidade, visando alcançar patamares mais elevados no desenvolvimento dos nossos produtos.

Pré-requisitos para execução da verificação de segurança e desempenho

  • Providenciar a publicação do sistema/aplicação, com a última versão estável, em ambiente de teste administrado pelo DevOps;
  • Definir o escopo do teste de segurança e desempenho;
  • Descrição resumida das funcionalidades do sistema/aplicação, considerar também as funcionalidades mais críticas (que diferenciam e destacam o produto);
  • Informação da existência de problemas de segurança e desempenho conhecidos no sistema/aplicação;
  • Definir as permissões por nível de usuário para as principais funcionalidades e ativos do sistema(lista de credenciais ativas(usuário e senha)com pelo menos um usuário para cada nível de permissão.

Verificação de segurança

A verificação de segurança consiste identificar vulnerabilidades, classificá-las e indicar estratégias de mitigação para estas. É realizada uma análise ativa na qual são simulados ataques a um determinado sistema, identificando vulnerabilidades que podem ser exploradas em um ataque real.

Uma vulnerabilidade é uma falha ou fraqueza no design, implementação, operação ou gerenciamento de um sistema que pode ser explorada a fim de violar a política de segurança do mesmo. Uma ameaça é um ataque em potencial que, explorando uma vulnerabilidade, pode comprometer os ativos de uma aplicação (recursos, dados, funcionalidades).

Esse processo, conhecido como "Vulnerability Assessment", deve ser executado em uma versão estável do sistema, após a etapa de desenvolvimento. Primeiramente o sistema é submetido a scanners de vulnerabilidades automáticos. As vulnerabilidades encontradas pelos scripts automáticos são então verificadas, para eliminar falsos positivos.

Após o processo automático, o sistema é verificado manualmente por vulnerabilidades de detecção mais difícil, seguindo as diretrizes do OWASP Guide v4

Ferramentas utilizadas

  • Ferramentas de Proxy web (WebScarab,CAT,OWASP ZAP,Paros)
  • Scanners de vulnerabilidades automatizados (WCSA,OWASP ZAP,N-Stalker,Web Securify,Microsoft WACA,W3AF,VEGA)
  • Sniffers (Wireshark,Ettercap)
  • Gerador de pacotes e requisições HTTP (Engage Packet Builder,WebScarab,CAT)

Verificação de desempenho

A verificação de desempenho é uma classe de testes implementada e executada para caracterizar o desempenho relacionado a características do sistema/produto, como fluxos de execução, tempos de respostas e limites operacionais. A verificação de desempenho abrange os seguintes tipos de testes:

  • Teste de carga: Verifica a aceitabilidade do comportamento de desempenho do objeto de teste em condições operacionais variáveis (como número de usuários, número de transações, entre outros), enquanto as configurações permanecem as mesmas.
  • Teste de stress: Verifica a aceitabilidade do comportamento de desempenho do objeto de teste quando condições anormais ou externas forem encontradas, como a redução dos recursos ou um número extremamente alto de usuários.
  • Teste de desempenho: Testa a aplicação em uma situação normal de uso, verificando se o tempo de resposta e a utilização do hardware são os desejados.


Ambiente padrão de teste

Para a realização dos testes foi criado um ambiente padrão composto de servidores web e servidor SQL com distribuição de carga pelo ARR. A VM utilizada para simular usuários navegando pelo sistema é denominado Test Agent e o controlador dos agentes denominado Test Controller. Abaixo é apresentada a configuração dos equipamentos que compõe o ambiente gerador de carga para os testes.

Ambiente padrão de teste
ARR Estão configurados com DFS entre os arquivos de sistema. Cada um tem 4 núcleos, 4GB de RAM e disco de 200GB dinâmico.
HOST É um Xeon 2.3 Ghz com 48 núcleos de 384GBde RAM.
Servidores Web Possuem 8 núcleos cada, 6GB de RAM e disco de 100GB dinâmico. O acesso ao site é através de uma pasta compartilhada no servidor hospedeiro, utilizando o parâmetro caspol do .NET 32 e 64 bits v3.5 e 4 com opção fulltrust.
Servidor SQL O SQL Server está na versão 2014 Standard e o servidor tem 16 GB de RAM, 16 núcleos, 100GB de disco para dados, 1TB de disco para bancos e 500 GB de disco de backup. Os discos de bancos e backup são volumes diretos na storage, utilizando conexão iSCSI.
Test Controller Possuem 8 núcleos e 8 GB de RAM, com disdo de 200GB para SO.
Test Agent Os slaves do JMeter possuem 8 núcleos e 8 GB de RAM com disco de 200GB para SO cada.

Ferramentas utilizadas

  • Ferramenta de teste (JMeter)
  • Web Debugging Proxy (Fiddler)
  • Resource and Performance Monitor (Perfmon)
  • Zabbix

Resultado da verificação de segurança e desempenho

Como resultado da verificação de segurança e desempenho será enviado um relatório aos responsáveis do produto contendo as vulnerabilidades e itens de melhorias que deverão ser inseridas na Product Backlog e analisadas em conjunto com a equipe e responsáveis pelas verificações. Este resultado também será disponibilizado no menu "Produtos" [Plataforma de Produtos MSTECH].

Produtos verificados
Sistema Teste de desempenho Teste de segurança
Transporte Escolar Versão 1.1.1.21 Versão 1.1.1.21
Controle Patrimonial Versão 2.25.2.0 Versão 2.25.2.0
Biblioteca Versão 1.45.0.0
Approxima Versão 1.0.0.74
Portal Construtor
Almoxarifado Versão 1.1.0.0
Atribuição de Aulas Versão 1.0.5.0
Avalia+
Alimentação
BlueMonitor
BlueControlWeb
BlueControl
Boletim Online
ClassPad
Censo Escolar
Central de Projetos
CoreSSO
Coreedu
Certificados
Controle de Obras
Controle Financeiro de Repasses
Dupla Regência
Educopédia
Fiscalização e Contratos
Fluxos DRH
Gestão Acadêmica
Gestão Escolar / SGP Comparação de versões 01 - Verificação de ambientes
Gestão Privado
Gestão de Metas
Loomi
Mapa de Indicadores
Moodle Versão 3.1.1 - Verificação de ambientes
OnCorretor Versão 3.0.0.0
OpenId
Portal Institucional Versão 1.5.9.0
Quadro de Horários
Remoção
Repositório OA
Sala de Gestão