Capítulo 4 — Replicação da linha de base e piloto
Mapa da aula
Aula 04 publicada. Mapa, exemplo, EX021.
flowchart TD
N0["4.1 Por que uma linha de base"]
N1["Laboratório — Privilégios excessivos em relação às l"]
N2["4.2 Pilotando o privilégio excessivo"]
N3["4.3 Auditando a medida"]
N4["4.4 Lições do piloto"]
N0 --> N1 --> N2 --> N3 --> N4
N4 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX021"]
Desenho lógico
flowchart LR
N0["4.1 Por que uma linha de base"]
N1["Laboratório — Privilégios excessivos em relação às l"]
N2["4.2 Pilotando o privilégio excessivo"]
N3["4.3 Auditando a medida"]
N4["4.4 Lições do piloto"]
N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX021"]
[4.1 Por que uma linha de base]
|
v
[Laboratório — Privilégios excessivos em relação às l]
|
v
[4.2 Pilotando o privilégio excessivo]
|
v
[4.3 Auditando a medida]
|
v
[4.4 Lições do piloto]
|
v
[Exemplo resolvido] --> [Exercício EX021]
Objetivos de aprendizagem
Você vai (1) replicar uma medição de linha de base antes do estudo principal; (2) pilotar uma medida de privilégio excessivo; (3) auditar a qualidade da medição.
4.1 Por que uma linha de base
Antes de testar efeitos, Yusuf precisa mostrar que suas medidas funcionam com os dados da Fernvale. Ele replica, com a sua extração, o número que a própria prefeitura relatou para a latência de correção crítica do ano anterior e encontra uma mediana a menos de um dia do valor relatado. Ele investiga a pequena diferença e descobre que a prefeitura excluiu os sistemas com desativação programada. Ele documenta a exclusão e decide segui-la, para que sua linha de base corresponda à definição que os departamentos já entendem. O líder de segurança da Fernvale confirma por escrito a regra de exclusão para o estudo.
Laboratório — Privilégios excessivos em relação às linhas de base das funções em 600 contas sintéticas
"""Measure excess privileges against role baselines in synthetic accounts (stdlib only)."""
import random
random.seed(17)
roles = {"clerk": {"read_cases", "edit_cases"}, "finance": {"read_ledger", "post_ledger"},
"it_support": {"reset_password", "read_logs"}}
extra_pool = ["read_ledger", "post_ledger", "edit_cases", "admin_console", "read_logs", "export_all"]
accts = []
for i in range(600):
r = random.choice(list(roles))
perms = set(roles[r])
for p in extra_pool:
if p not in perms and random.random() < 0.06: perms.add(p)
accts.append((r, perms))
excess = [(r, p - roles[r]) for r, p in accts if p - roles[r]]
n_extra = sum(len(e) for _, e in excess)
admin = sum(1 for _, e in excess if "admin_console" in e)
print(f"accounts 600; with excess privilege {len(excess)} ({100*len(excess)/600:.1f}%)")
print(f"excess grants {n_extra}; accounts holding admin_console without need {admin}")
Execute com python3 lab_privilege.py. Saída verificada:
accounts 600; with excess privilege 152 (25.3%)
excess grants 166; accounts holding admin_console without need 34
4.2 Pilotando o privilégio excessivo
A medida de privilégio excessivo é nova para a Fernvale, então Yusuf a pilota em seiscentas contas sintéticas distribuídas em três funções: escriturário, finanças e suporte de TI. Cada função tem um conjunto de permissões de linha de base. O laboratório encontra 152 contas, 25,3 por cento, com pelo menos uma permissão além da sua linha de base, com 166 concessões excessivas no total. Trinta e quatro contas têm a permissão do console administrativo sem precisar dela, o que é o achado mais grave, porque permite mudanças de configuração em todo o sistema. Yusuf relata esses números apenas ao líder de segurança, e não em rascunhos públicos.
4.3 Auditando a medida
Yusuf audita o piloto tomando uma amostra aleatória das contas sinalizadas e perguntando aos gerentes dos departamentos se cada permissão excessiva é de fato desnecessária. A maioria é confirmada como desnecessária. Algumas refletem atribuições temporárias não registradas na linha de base da função, como um escriturário que cobre as finanças durante uma licença. Ele refina a medida para excluir as permissões com uma exceção aprovada e ainda válida, e registra esse refinamento como uma mudança de definição pré-especificada, feita antes de qualquer comparação de desfechos, o que o pré-registro permite para esclarecimentos na fase de piloto. Os gerentes dão sua aprovação.
4.4 Lições do piloto
O piloto mostra que as próprias linhas de base das funções estão incompletas em alguns departamentos, o que poderia fazer os adotantes parecerem piores se a adoção também melhorasse as linhas de base. Yusuf acrescenta uma verificação: as linhas de base são congeladas no início do período do estudo, e as mudanças posteriores nelas são acompanhadas separadamente. A Prof.ª Hald observa que os pilotos muitas vezes revelam que o sistema de medição faz parte da intervenção, e que separar os dois é essencial para interpretar qualquer diferença posterior entre os departamentos. Yusuf acrescenta as linhas de base congeladas ao plano de gestão de dados e as arquiva com uma soma de verificação.
Exemplo resolvido
Yusuf replica a linha de base da latência de correção da prefeitura com diferença de menos de um dia, pilota o privilégio excessivo, encontrando 152 de 600 contas (25,3 por cento) com 166 concessões e 34 detentores desnecessários do console administrativo, audita as sinalizações e congela as linhas de base das funções.
Caso sintético. As contas são sintéticas; as saídas vêm de lab_privilege.py.
Erros e limites
Deixar as linhas de base mudarem durante um estudo confunde a medida com a intervenção.
Exercícios
-
EX021 — Causa da diferença na linha de base. O que explicou a pequena diferença na linha de base? Rubrica: 3 = a prefeitura excluiu os sistemas com desativação programada;; 2 = parcialmente correto;; 1 = vago;; 0 = nenhuma.
-
EX022 — Proporção excessiva. Que proporção das contas do piloto tinha privilégio excessivo? Rubrica: 3 = 25,3% (152 de 600);; 2 = parcialmente correto;; 1 = errado;; 0 = nenhuma.
-
EX023 — Achado administrativo. Quantas contas tinham acesso ao console administrativo sem necessidade? Rubrica: 3 = 34;; 2 = parcialmente correto;; 1 = errado;; 0 = nenhuma.
-
EX024 — Gravidade administrativa. Por que o acesso desnecessário ao console administrativo é o mais grave? Rubrica: 3 = permite mudanças de configuração em todo o sistema;; 2 = parcialmente correto;; 1 = vago;; 0 = nenhuma.
-
EX025 — Refinamento da medida. Que refinamento foi feito depois da auditoria? Rubrica: 3 = excluir permissões com exceções aprovadas e ainda válidas;; 2 = parcialmente correto;; 1 = vago;; 0 = nenhuma.
-
EX026 — Congelamento da linha de base. Por que as linhas de base das funções são congeladas? Rubrica: 3 = para que as mudanças nelas não confundam a medida;; 2 = parcialmente correto;; 1 = vago;; 0 = nenhuma.
Continue estudando — aula 04 (capítulo 04 de 08)
← Capítulo 03 · Índice das aulas · Capítulo 05 →
Continue para a próxima aula já escrita.