1. Uma pergunta de auditoria precisa de uma população
Uma equipa quer avaliar se as mudanças em produção receberam aprovação antes da execução. A unidade pode ser uma mudança, uma execução ou uma combinação de mudança e ambiente. Escolher uma unidade diferente altera tanto o denominador como o que será testado. Regista período, sistemas, tipos de mudança, exceções de processo e origem da listagem. Uma seleção aleatória de uma lista incompleta continua a excluir trabalho que nunca entrou nessa lista. Antes de calcular o tamanho, reconcilia o universo com evidência adequada ao objetivo e verifica identificadores duplicados. No laboratório, existem 100 identificadores sintéticos distintos. Essa população conhecida permite demonstrar matemática; não prova que um inventário real de tickets contém todas as mudanças executadas.
2. Escolher o método pela conclusão pretendida
Uma seleção orientada para mudanças de emergência pode ser útil para investigar um risco específico. Não passa a ser uma amostra aleatória de todas as mudanças por conter muitos elementos. Se o objetivo for inferir uma taxa para uma população finita, define um desenho probabilístico adequado e conserva a sua lógica na análise. A amostragem aleatória simples sem reposição dá a cada conjunto do tamanho previsto a mesma probabilidade no modelo ideal. A seleção por estratos pode melhorar cobertura de grupos relevantes, mas exige considerar tamanhos e probabilidades de seleção. O método deve também respeitar critérios de independência, proteção da evidência e recursos disponíveis. A matemática não escolhe, por si, o risco de amostragem aceitável para o trabalho.
3. Planeamento de deteção com pressupostos explícitos
No exercício, o responsável define como situação a detetar uma população de 100 elementos com pelo menos cinco desvios. Pretende uma probabilidade de pelo menos 95% de encontrar um ou mais, usando uma amostra fixa aleatória simples. O código calcula a probabilidade de não encontrar nenhum por contagem de combinações e obtém um mínimo de 45 elementos. Com 44, a probabilidade de falhar a deteção ainda excede 5%; com 45, fica aproximadamente em 4,62%. O número cinco é uma hipótese de planeamento, não uma estimativa observada. O plano pressupõe classificações corretas e o desenho declarado. Não é uma regra universal de 45 itens para qualquer controlo, população ou auditoria.
4. Selecionar e conservar o que foi selecionado
O laboratório ordena identificadores únicos e usa random.sample com uma seed definida para permitir repetição do exemplo no runtime registado. Guarda os IDs selecionados, a população, o tamanho, a seed e a versão de Python. A função não altera a lista inicial e rejeita unidades duplicadas. A seed pública serve a aprendizagem; não demonstra que um auditor escolheu independentemente a amostra. Repetir sorteios até obter menos exceções introduziria seleção orientada pelos resultados. A mesma seed também não garante a mesma amostra em todas as versões futuras de Python. Num trabalho real, documenta o processo de seleção aprovado, protege-o de interferência e conserva o resultado efetivo em vez de confiar apenas na capacidade de o gerar novamente.
5. Examinar estratos e padrões periódicos
O segundo exemplo separa 20 mudanças de emergência e 180 normais. São examinadas dez e 30, respetivamente, encontrando dois e um desvios. A estimativa ponderada é dez desvios em 200, ou 5%; juntar simplesmente três em 40 daria 7,5%, sobreponderando emergências. O laboratório não calcula aqui intervalo de confiança. Outro exemplo contém dez desvios separados por doze posições numa população ordenada de 120. Selecionar cada décimo segundo elemento com início aleatório encontra desvios apenas num de doze inícios possíveis. Todos os elementos têm a mesma probabilidade de inclusão, mas a distribuição não é a de uma amostra aleatória simples. Usa uma análise compatível com o desenho e procura padrões antes de escolher um intervalo sistemático.
# From content/labs/cisa-sampling-decisions
# Full exercise: python3 run.py --output evidence-local.json
from fractions import Fraction
from sampling import zero_detection_size, cdf
n = zero_detection_size(100, 5, Fraction(1, 20))
print(n) # 45 under these specific assumptions
print(float(cdf(100, 5, n, 0))) # about 0.0462
Para N=100 e cinco desvios assumidos, 45 seleções aleatórias sem reposição reduzem a probabilidade de não encontrar nenhum para cerca de 4,62%. Esta é uma hipótese de desenho, não uma conclusão sobre um cliente.
Armadilhas comuns
Usar o número 45 como regra universal; sortear de uma lista incompleta; trocar elementos em falta; repetir seeds à procura de um resultado favorável; aplicar análise aleatória simples a um desenho diferente.
Tópicos relacionados: Interpretar amostras e desvios
A seleção só suporta a conclusão quando população, unidade, desenho e evidência estão alinhados e documentados.
Referência: ISACA glossary: sampling, population, evidence and tolerable error · CISA outline effective August 1, 2024