Medição 3 - Segurança
Objetivo de Medição 3 - Segurança
| Analisar | o i-Educar |
|---|---|
| Para o propósito de | Avaliar |
| Com respeito a | Segurança |
| Do ponto de vista da | Equipe de desenvolvimento |
| No contexto da | Disciplina de Qualidade de Software 1 (FCTE - UnB) |
Perguntas e Hipóteses de Medição
Questão 1: Mecanismos de Autenticação e Autorização
Qual é o nível de robustez do controle de acesso do sistema?
- Hipótese 1.1 (H1.1): Principais rotas (endpoints) com dados sensíveis terão pelo menos uma regra de autorização aplicada para cada papel de usuário.
- Hipótese 1.2 (H1.2): As senhas são armazenadas de com hashing e criptografia.
- Hipótese 1.3 (H1.3): Sessões de usuários são encerradas automaticamente após 60 minutos de inatividade.
Questão 2: Monitoramento e Auditoria
Qual é o nível de rastreabilidade das ações críticas?
- Hipótese 2.1 (H2.1): Pelo menos 70% das ações críticas (login, exclusão, alteração de dados) são registradas em logs.
- Hipótese 2.2 (H2.2): Mais de 60% dos logs incluem usuário, ação e data/hora.
Questão 3: Desenvolvimento Seguro
Em que medida o desenvolvimento do sistema segue práticas de segurança?
- Hipótese 3.1 (H3.1): A densidade de testes de segurança será classificada como "Insatisfatória" (≤ 0.1 Testes/KLOC), indicando uma baixa cobertura de validação de segurança.
- Hipótese 3.2 (H3.2): Dependências externas são atualizadas pelo menos uma vez a cada 6 meses.
Seleção das Métricas
Questão 1: Mecanismos de Autenticação e Autorização
-
Métrica 1.1 – Percentual de rotas críticas com regras de autorização
- Definição: Percentual de rotas (endpoints) críticas que possuem pelo menos uma regra de autorização aplicada para cada papel de usuário identificado.
- Coleta: Revisão do código fonte (ex: arquivos de rota, controllers) para identificar regras de autorização por rota.
- Pontuação de Julgamento:
Excelente Bom Regular Insatisfatório ≥ 90% 70% a 89% 40% a 69% < 40% - Propósito: Avaliar a abrangência do controle de acesso baseado em papéis.
-
Métrica 1.2 – Método de armazenamento de senhas
- Definição: Verificação da presença de técnicas de hashing e criptografia no armazenamento das senhas.
- Coleta: Análise do código fonte do sistema de autenticação.
- Pontuação de Julgamento:
Conforme Não conforme Sim Não - Propósito: Confirmar a segurança no armazenamento de credenciais.
-
Métrica 1.3 – Tempo médio de expiração da sessão
- Definição: Tempo configurado para encerramento automático das sessões por inatividade, em minutos.
- Coleta: Análise das configurações do sistema ou testes funcionais para medir o tempo de expiração.
- Pontuação de Julgamento:
Conforme Não conforme Menor ou igual a 60 Acima de 60 - Propósito: Verificar conformidade com a política de segurança de sessões.
Questão 2: Monitoramento e Auditoria
-
Métrica 2.1 – Percentual de ações críticas registradas em logs
- Definição: Percentual de eventos críticos (login, exclusão, alteração) que são registrados em logs.
- Coleta: Análise dos arquivos de log e documentação do sistema.
- Pontuação de Julgamento:
Excelente Bom Regular Insatisfatório ≥ 90% 70% a 89% 40% a 69% < 40% - Propósito: Avaliar a efetividade do monitoramento de eventos de segurança.
-
Métrica 2.2 – Percentual de logs com informações completas
- Definição: Percentual de registros de log que incluem usuário, ação e data/hora.
- Coleta: Amostragem e análise dos registros de log.
- Pontuação de Julgamento:
Excelente Bom Regular Insatisfatório ≥ 80% 60% a 79% 40% a 59% < 40% - Propósito: Garantir a rastreabilidade adequada dos eventos registrados.
Questão 3: Desenvolvimento Seguro
-
Métrica 3.1 – Densidade de testes de segurança (Testes/KLOC)
- Definição: Quantidade de casos de teste relacionados à segurança, normalizada por mil linhas de código (KLOC) de produção.
- Coleta:
- Identificar e contar o número total de testes de segurança na suíte.
- Contar o KLOC total do código de produção (ex:
cloc src/). - Calcular a densidade:
(Nº Testes de Segurança / (KLOC Total))
- Pontuação de Julgamento:
Excelente Bom Regular Insatisfatório > 1 > 0.5 > 0.1 ≤ 0.1 - Propósito: Avaliar a cobertura proporcional dos testes de segurança no projeto.
-
Métrica 3.2 – Frequência média de atualização de dependências
- Definição: Intervalo médio, em meses, entre atualizações das dependências externas do projeto.
- Coleta: Análise do histórico de commits e arquivos de configuração de dependências.
- Pontuação de Julgamento:
Conforme Não conforme Atualização a cada ≤ 6 meses Atualização > 6 meses - Propósito: Verificar a manutenção do projeto em relação a vulnerabilidades conhecidas.
Critérios de Julgamento para Segurança
- Aceitável: ≥ 70% das métricas classificadas como "Bom" ou "Excelente". O sistema adere às boas práticas de codificação segura.
- Parcialmente aceitável: Entre 40% e 69% das métricas com nível "Regular" ou superior. Foram identificadas vulnerabilidades de baixo ou médio risco.
- Inaceitável: > 30% das métricas atingindo o nível "Insatisfatório". Existem vulnerabilidades críticas que comprometem a integridade ou a confidencialidade dos dados.
Relação entre a Segurança, Perguntas e Métricas
| Questão | Métricas Simplificadas | Tipo de Coleta |
|---|---|---|
| Autenticação e Autorização Qual é o nível de robustez do controle de acesso? |
M1.1: % de rotas críticas com autorização M1.2: Método de armazenamento de senhas M1.3: Tempo de expiração da sessão |
Revisão de código (rotas/controllers) Revisão de código (autenticação) Revisão de configuração / Teste funcional |
| Monitoramento e Auditoria Qual é o nível de rastreabilidade das ações críticas? |
M2.1: % de ações críticas em logs M2.2: % de logs com informações completas |
Revisão de código / Análise de logs Amostragem e análise de logs |
| Desenvolvimento Seguro Em que medida o desenvolvimento segue práticas de segurança? |
M3.1: Densidade de testes de segurança M3.2: Frequência de atualização de dependências |
Inspeção do repositório / `cloc` Inspeção do histórico de commits (ex: `composer.lock`) |
Diagrama GQM - Segurança (Representação Estrutural)
Info
Dê zoom com o scroll do mouse no diagrama para ver melhor. Caso prefira, abra em tela cheia.
Você também mode mover o diagrama com o mouse.
graph TB
BusinessObjective["Objetivo: Avaliar Segurança do i-Educar"]
BusinessObjective --> Question1["Q1: Qual é o nível de robustez do controle de acesso do sistema?"]
BusinessObjective --> Question2["Q2: Qual é o nível de rastreabilidade das ações críticas?"]
BusinessObjective --> Question3["Q3: Em que medida o desenvolvimento do sistema segue práticas de segurança?"]
Question1 --> MetricAuthRoutes["M1.1: Percentual de rotas críticas com regras de autorização"]
Question1 --> MetricPassword["M1.2: Método de armazenamento de senhas"]
Question1 --> MetricSession["M1.3: Tempo médio de expiração da sessão"]
Question2 --> MetricLogsCritical["M2.1: Percentual de ações críticas registradas em logs"]
Question2 --> MetricLogsComplete["M2.2: Percentual de logs com informações completas"]
Question3 --> MetricSecurityTestDensity["M3.1: Densidade de testes de segurança (Testes/KLOC)"]
Question3 --> MetricDependencyUpdate["M3.2: Frequência média de atualização de dependências"]