Capítulo 6 — Python para verificações de segurança
Mapa da aula
Aula 06 publicada. Mapa, exemplo, EX016.
flowchart TD
N0["6.1 Começando"]
N1["6.2 Conferindo dados"]
N2["6.3 Saída clara"]
N3["6.4 Mantendo os scripts seguros"]
N0 --> N1 --> N2 --> N3
N3 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX016"]
Desenho lógico
flowchart LR
N0["6.1 Começando"]
N1["6.2 Conferindo dados"]
N2["6.3 Saída clara"]
N3["6.4 Mantendo os scripts seguros"]
N0 --> N1 --> N2 --> N3 --> Q["EX016"]
[6.1 Começando]
|
v
[6.2 Conferindo dados]
|
v
[6.3 Saída clara]
|
v
[6.4 Mantendo os scripts seguros]
|
v
[Exemplo resolvido] --> [Exercício EX016]
Objetivos de aprendizagem
Você vai (1) escrever scripts simples em Python; (2) ler e conferir arquivos de dados; (3) produzir resultados claros para outras pessoas.
6.1 Começando
Aisha escreve seus primeiros scripts em Python usando apenas a biblioteca padrão, para que rodem em qualquer computador da universidade ou da Ashfield sem instalações extras. Seu primeiro script lê de um arquivo de texto uma lista sintética de contas de funcionários e conta quantas existem. O Dr. Carrow explica que os scripts permitem que a equipe de segurança confira milhares de registros de forma rápida e coerente, onde a conferência manual seria lenta e sujeita a erros. Ela escreve o script num editor de texto simples, o executa pela linha de comando e confere a contagem com o número de linhas do arquivo. Os dois números coincidem.
6.2 Conferindo dados
O script seguinte de Aisha confere a data do último login de cada conta. As contas sem login há noventa dias são listadas para revisão. Ela usa o módulo datetime para comparar as datas. Quando uma linha tem a data faltando, o script a registra separadamente, em vez de travar. Ela aprende que os dados reais contêm lacunas e erros, e que um bom script de conferência relata os problemas da sua entrada com a mesma clareza dos resultados que foi escrito para encontrar. Três linhas do arquivo sintético não têm data.
6.3 Saída clara
O Dr. Carrow pede que Aisha torne sua saída legível para os gerentes. Ela imprime um título, a data da conferência, o número de contas conferidas, o número de contas sinalizadas e uma lista das contas sinalizadas com as datas do último login. Ela também salva os resultados num arquivo CSV usando o módulo csv. Ela aprende que a pessoa que lê um relatório de segurança muitas vezes decide o que acontece em seguida, então a clareza importa. O Dr. Carrow avalia a segunda versão como clara e pede que a turma use o formato dela como modelo para os relatórios seguintes.
6.4 Mantendo os scripts seguros
Os scripts de Aisha lidam com dados sensíveis. Ela os guarda, junto com suas saídas, numa pasta protegida, nunca envia por e-mail para endereços pessoais resultados que contenham nomes de contas e apaga os arquivos temporários depois do uso. Ela também evita escrever senhas dentro dos scripts. O Dr. Carrow observa que as ferramentas de segurança podem se tornar riscos de segurança se suas saídas vazarem, porque uma lista de contas inativas é útil para um atacante que procura logins sem monitoramento. Ela escreve uma breve lista de verificação para o tratamento das saídas e a anexa a cada pasta de scripts, para que os colegas que trabalham com ela sigam as mesmas regras.
Exemplo resolvido
Aisha escreve scripts com a biblioteca padrão que contam contas, sinalizam inatividade de noventa dias, tratam datas faltantes e produzem relatórios legíveis e arquivos CSV guardados com segurança.
Caso sintético. Os dados são sintéticos.
Erros e limites
Os relatórios de segurança vazados podem ajudar os atacantes.
Exercícios
-
EX016 — Limiar de inatividade. Que contas são sinalizadas? Rubrica: 3 = sem login há noventa dias;; 2 = parcialmente correto;; 1 = vago;; 0 = nenhuma.
-
EX017 — Datas faltantes. Como o script trata as datas faltantes? Rubrica: 3 = as registra separadamente;; 2 = parcialmente correto;; 1 = trava;; 0 = nenhuma.
-
EX018 — Risco de vazamento. Por que uma lista de contas inativas poderia ajudar os atacantes? Rubrica: 3 = ela mostra logins sem monitoramento;; 2 = parcialmente correto;; 1 = vago;; 0 = nenhuma.
Continue estudando — aula 06 (capítulo 06 de 40)
← Capítulo 05 · Índice das aulas · Capítulo 07 →
Continue para a próxima aula já escrita.