Capítulo 2 — Redes e serviços de internet
Mapa da aula
Aula 02 publicada. Mapa, exemplo, EX004.
flowchart TD
N0["2.1 Endereços, prefixos e propriedade"]
N1["2.2 Exclusões dentro das faixas"]
N2["2.3 Nomes versus números"]
N3["2.4 Serviços expostos típicos"]
N4["Laboratório A — verificador de escopo"]
N5["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5
N5 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX004"]
Desenho lógico
flowchart LR
N0["2.1 Endereços, prefixos e propriedade"]
N1["2.2 Exclusões dentro das faixas"]
N2["2.3 Nomes versus números"]
N3["2.4 Serviços expostos típicos"]
N4["Laboratório A — verificador de escopo"]
N5["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX004"]
[2.1 Endereços, prefixos e propriedade]
|
v
[2.2 Exclusões dentro das faixas]
|
v
[2.3 Nomes versus números]
|
v
[2.4 Serviços expostos típicos]
|
v
[Laboratório A — verificador de escopo]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX004]
Objetivos de aprendizagem
Você vai (1) ler faixas de endereços em notação CIDR; (2) separar endereços em escopo, excluídos e fora de escopo com um pequeno script; (3) explicar por que nomes DNS e endereços IP podem se descolar durante um engajamento; (4) listar os serviços de internet que uma operadora de transporte costuma expor.
2.1 Endereços, prefixos e propriedade
Uma rede IPv4 como 192.0.2.0/25 cobre 128 endereços, de .0 a .127. O comprimento do prefixo indica quantos bits iniciais são fixos. Documentos de escopo quase sempre listam prefixos, e não hosts isolados, então um tecnólogo precisa conseguir testar a pertinência com rapidez e sem erros de aritmética mental. Propriedade é outra questão: um prefixo anunciado por um provedor de nuvem pode conter endereços que pertencem a milhares de clientes. O lab_scope imprime 192.0.2.10 e 198.51.100.20 como IN-SCOPE dentro das faixas didáticas /25 documentadas da TRT. Priya ensina comprimento de prefixo com esses endereços da RFC 5737 para que os alunos nunca apontem ferramentas para redes de transporte reais. O responsável por cada prefixo é escrito ao lado do CIDR antes de a Northpoint receber a lista.
2.2 Exclusões dentro das faixas
Escopos reais costumam abrir buracos. O segmento de pagamento de tarifas da TRT, 192.0.2.64/27, fica dentro do bloco maior em escopo por causa de como a rede foi numerada historicamente. Um verificador precisa avaliar as exclusões primeiro; caso contrário, a inclusão mais ampla vence e um sistema proibido é tocado. A exceção de tarifas 192.0.2.70 EXCLUDED fica dentro de um bloco maior de propósito. O verificador de Priya precisa respeitar os buracos, e não só os prefixos externos; do contrário, o ENG-712 liberaria hosts de pagamento de tarifas. Ela demonstra a linha EXCLUDED na reunião de abertura para que a Northpoint veja que o buraco é intencional, e reprova qualquer planilha de escopo que liste apenas os CIDRs externos sem a exceção de tarifas escrita ao lado.
2.3 Nomes versus números
Registros DNS mudam. Um nome de host aprovado na segunda-feira pode resolver para outro endereço na quinta, depois de uma migração, talvez para um endereço compartilhado de rede de distribuição de conteúdo (CDN). A boa prática é aprovar o nome e o endereço, resolver de novo antes de cada sessão e parar se eles divergirem. Depois de uma migração para a CDN, o nome do portal dos funcionários passou a resolver fora dos endereços aprovados. Priya pausou o ENG-712, executou de novo o lab_scope e esperou uma atualização por escrito da equipe branca. Nomes, sozinhos, nunca autorizam; os números na lista assinada, sim. Enquanto a sessão fica suspensa, Priya registra capturas de tela das resoluções antiga e nova como evidência, com uma nota de HOLD, e não um palpite.
2.4 Serviços expostos típicos
Uma operadora de transporte costuma publicar um site para passageiros, uma API de horários ou de tempo real, um gateway de acesso remoto dos funcionários, e-mail e, às vezes, um portal de suporte de fornecedor. O ATT&CK cataloga o uso adversário de gateways de acesso remoto como T1133 External Remote Services, e é por isso que esses gateways costumam ser priorizados nas discussões de escopo. A face exposta comum da TRT é o site dos passageiros, a API de horários, a VPN dos funcionários e o e-mail — não os validadores de tarifa. As declarações de método do ENG-712 listam esses serviços explicitamente. Qualquer coisa que se pareça com fare.trt.example é recusada, mesmo que responda numa porta interessante.
Laboratório A — verificador de escopo
"""Lab A (ch 02): classify synthetic targets against a written scope. Documentation ranges only."""
import ipaddress
IN_SCOPE = [ipaddress.ip_network(n) for n in ("192.0.2.0/25", "198.51.100.16/28")]
EXCLUDED = [ipaddress.ip_network("192.0.2.64/27")] # fare-payment segment, carved out by the client
targets = ["192.0.2.10", "192.0.2.70", "192.0.2.200", "198.51.100.20", "203.0.113.5"]
def verdict(addr):
ip = ipaddress.ip_address(addr)
if any(ip in n for n in EXCLUDED):
return "EXCLUDED"
if any(ip in n for n in IN_SCOPE):
return "IN-SCOPE"
return "OUT-OF-SCOPE"
for t in targets:
print(f"{t:15} {verdict(t)}")
print("testable:", sum(verdict(t) == "IN-SCOPE" for t in targets), "of", len(targets))
Execute com python3 lab_scope.py. Saída verificada:
192.0.2.10 IN-SCOPE
192.0.2.70 EXCLUDED
192.0.2.200 OUT-OF-SCOPE
198.51.100.20 IN-SCOPE
203.0.113.5 OUT-OF-SCOPE
testable: 2 of 5
Exemplo resolvido
Cinco endereços candidatos chegam a Priya pela planilha de planejamento da Northpoint. O script marca 192.0.2.70 como EXCLUDED porque ele cai na exceção de pagamento de tarifas, e 192.0.2.200 como OUT-OF-SCOPE porque um /25 termina em .127. Apenas dois dos cinco são testáveis. Ela devolve a planilha com esses veredictos antes de qualquer sessão ser agendada.
Caso sintético. Os endereços usam faixas de documentação da RFC 5737; o desenho da rede da TRT é fictício.
Erros e limites
Verificar inclusões antes das exclusões, confiar na resposta DNS de ontem e confundir "o cliente usa este endereço" com "o cliente é dono dele" são as falhas clássicas. O script verifica aritmética, não autoridade legal.
Exercícios
- EX004 — Limite da faixa. Usando a saída do laboratório, por que 192.0.2.200 está fora de escopo, mesmo começando com 192.0.2? Rubrica: 3 = o /25 cobre .0–.127, então .200 fica fora; 2 = diz que está fora sem justificar; 1 = diz que está em escopo; 0 = nada.
- EX005 — Erro de ordem. Suponha que um colega reescreva a função para testar IN_SCOPE antes de EXCLUDED. O que 192.0.2.70 retornaria e por que isso é perigoso? Rubrica: 3 = IN-SCOPE; o sistema de pagamento de tarifas seria testado; 2 = aponta o veredicto errado; 1 = nada muda; 0 = nada.
- EX006 — Nome de host à deriva. O nome aprovado portal.trt.example agora resolve para 203.0.113.5. O que Priya deve fazer? Rubrica: 3 = parar, o endereço está fora de escopo, confirmar com o responsável e reaprovar antes de testar; 2 = só parar; 1 = testar o nome mesmo assim; 0 = nada.
Síntese
Pertinência é aritmética, as exclusões vêm primeiro, e todo nome é resolvido e verificado de novo antes do início de uma sessão.
Continue estudando — capítulo 02 de 30
← Capítulo 01 (rascunho) · Índice de capítulos do curso · Capítulo 03 (rascunho) →