Capítulo 15 — Integração e dependências
Mapa da aula
Aula 15 publicada. Mapa, exemplo, EX057.
flowchart TD
N0["15.1 Dependências"]
N1["15.2 Autorização separada"]
N2["15.3 O lado da NMT"]
N3["15.4 Matriz de responsabilidades"]
N4["15.5 Quebras"]
N5["15.6 Contratos"]
N6["15.7 Autenticidade dos callbacks"]
N7["15.8 Escopo da varredura de segredos"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
N7 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX057"]
Desenho lógico
flowchart LR
N0["15.1 Dependências"]
N1["15.2 Autorização separada"]
N2["15.3 O lado da NMT"]
N3["15.4 Matriz de responsabilidades"]
N4["15.5 Quebras"]
N5["15.6 Contratos"]
N6["15.7 Autenticidade dos callbacks"]
N7["15.8 Escopo da varredura de segredos"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX057"]
[15.1 Dependências]
|
v
[15.2 Autorização separada]
|
v
[15.3 O lado da NMT]
|
v
[15.4 Matriz de responsabilidades]
|
v
[15.5 Quebras]
|
v
[15.6 Contratos]
|
v
[15.7 Autenticidade dos callbacks]
|
v
[15.8 Escopo da varredura de segredos]
|
v
[Exemplo resolvido] --> [Exercício EX057]
Objetivos de aprendizagem
Você vai (1) mapear dependências de terceiros; (2) saber quando o teste delas exige autorização separada; (3) testar o lado da NMT nas integrações; (4) registrar a responsabilidade compartilhada.
15.1 Dependências
Blocos de mapa, notificador por SMS, links diretos de pagamento, e-mail na nuvem. As dependências também incluem as CDNs de blocos de mapa e os provedores de identidade, e Sam as lista para que o ENG-512 não relate o tempo esgotado de uma CDN como achado contra a API da NMT. Ele compara cada tempo esgotado com os horários de atividade do ENG-512 antes de decidir a quem ele pertence, e guarda essa comparação ao lado do chamado da CDN. O notificador por SMS e os links diretos de pagamento recebem o mesmo tratamento, porque suas falhas aparecem dentro das telas dos passageiros da NMT. Sam registra um contato externo para cada dependência, quando há um conhecido, para que um chamado possa ir direto a quem consegue corrigi-lo.
15.2 Autorização separada
Testar o núcleo do fornecedor de SMS exige a autorização do fornecedor. Do mesmo modo, a assinatura da NMT nunca autoriza os sistemas de um processador de tarifas; esses processadores precisam de autorização escrita própria. Sam registra esses terceiros como exclusões explícitas na tabela de escopo, e cada linha de exclusão cita o ID da cláusula contratual ao lado do nome do processador. Uma linha explícita evita discussões posteriores sobre se um endpoint do fornecedor estava coberto implicitamente só porque o tráfego da NMT chega até ele. Quando um fornecedor quer que os próprios sistemas sejam testados, ele combina essa autorização diretamente com a própria equipe de segurança.
15.3 O lado da NMT
Sam pode testar como a NMT trata os callbacks dos fornecedores e o armazenamento de segredos quando esses caminhos estão no escopo. O lado da NMT num achado de dependência é a configuração que a NMT controla: redirecionamentos, chaves de API guardadas na NMT e regras do WAF. Os chamados de Sam miram esses itens, porque os responsáveis da NMT podem mudá-los. Os calendários de correção dos fornecedores são registrados como notas no achado, mas não são chamados de Sam e não pertencem a ele. Isso mantém cada item de correção atribuído a alguém que tem de fato a autoridade e o acesso para fazer a correção.
15.4 Matriz de responsabilidades
Quem corrige o quê fica escrito, para que os achados cheguem ao responsável certo. A matriz de responsabilidades nomeia um responsável da NMT e um responsável do fornecedor para cada dependência. Cada chamado de dependência precisa preencher as duas colunas antes que a revisão o aceite. Quando uma das células de responsável está vazia, o robô de triagem comenta que a matriz é necessária, e o chamado volta a quem o relatou antes que alguém atribua trabalho. A divisão evita que os achados fiquem pulando entre a NMT e um fornecedor enquanto cada lado supõe que o outro é responsável pela correção.
15.5 Quebras
Indisponibilidades de fornecedores durante os testes são paradas, e não oportunidades para insistir. Quando um caminho de CDN quebra durante o ENG-512, Sam não alega causalidade até que a quebra tenha sido correlacionada com os horários do engajamento. Os intervalos de relógio do ENG são colados nas notas do incidente da CDN, e a alegação espera por um aviso do SOC com relógios alinhados que corresponda à janela. Relógios sincronizados e aviso prévio ao SOC protegem os dois lados de culpas falsas, seja porque o teste causou a indisponibilidade, seja porque apenas estava rodando quando ela começou.
15.6 Contratos
Cláusulas de contato de segurança nos contratos com fornecedores agilizam a divulgação responsável. Os contratos também podem proibir testes nos sistemas do fornecedor, então Sam lê a cláusula pertinente antes de propor qualquer verificação voltada ao fornecedor. As cláusulas de proibição de teste são coladas na lista de exclusões das ROE, e as iniciais da revisão jurídica aparecem ao lado de cada cláusula colada no apêndice. Sem essas iniciais, a colagem é tratada como texto de ROE incompleto, porque uma cláusula mal lida poderia comprometer a NMT com testes que o contrato do fornecedor não permite. Qualquer dúvida sobre uma cláusula volta ao jurídico antes mesmo de a proposta ser redigida.
15.7 Autenticidade dos callbacks
Ao testar como a NMT trata os callbacks dos fornecedores, Sam usa ambientes de teste documentados, e não tráfego forjado contra endpoints de pagamento da produção. A autenticidade dos callbacks dos webhooks dos fornecedores é verificada apenas com segredos da homologação, nunca com segredos da produção. Os testes de Sam nunca reproduzem callbacks reais de passageiros, nem mesmo para uma demonstração. Os IDs dos segredos de homologação usados em cada teste de webhook são listados no índice de evidências, para que um revisor possa confirmar quais credenciais foram exercitadas e que nenhum segredo da produção nem dado de passageiro entrou no teste em momento algum.
15.8 Escopo da varredura de segredos
As varreduras de segredos rodam nos repositórios da NMT listados nas ROE, e não em todos os forks públicos da internet. O escopo da varredura de segredos fica dentro dos repositórios da NMT autorizados para o ENG-512, e o texto do escopo nomeia caminhos de repositório, e não a internet inteira. Varrer o GitHub público de um fornecedor sem permissão escrita está fora do escopo, por mais tentadora que seja uma busca rápida. A lista de caminhos permitidos das ferramentas de varredura é revista sempre que surgem novos repositórios da NMT, para que a cobertura só cresça por meio de uma decisão de escopo registrada.
15.9 Disciplina de campo
O mapa de dependências de Sam inclui uma coluna de "dados compartilhados": o que a NMT envia a cada fornecedor. Se a NMT não deveria enviar telefones de passageiros ao provedor de blocos de mapa, isso vira ao mesmo tempo um controle de privacidade e uma verificação de teste: inspecionar as requisições de saída em busca de campos inesperados durante os testes autorizados na homologação. A disciplina de campo para dependências é a matriz, a autorização separada e as correções do lado da NMT primeiro. Os fornecedores de tarifa ficam fora das sondagens comuns. A coluna de dados compartilhados amarra tudo isso, porque mostra quais fluxos de fornecedores a NMT pode testar do próprio lado e quais pertencem ao fornecedor.
15.10 Nota de encerramento
Se um fornecedor pede a Sam que "teste rapidinho" o portal dele usando credenciais da NMT, ele recusa e o encaminha ao próprio processo de autorização. Credenciais da NMT não viajam. O capítulo de dependências termina onde termina a tabela de escopo: dizendo com clareza quais sistemas de fornecedores a NMT não autorizou para testes. Sam repete essa lista no relatório, para que os leitores não suponham uma cobertura de processadores de tarifa que a Northline Municipal Transit nunca contratou. A mesma lista vai para a nota de passagem, para que o próximo técnico herde as exclusões junto com os achados.
Exemplo resolvido (NMT sintética)
Sam encontra uma chave de API de SMS num repositório de homologação. Isso é um achado da NMT (armazenamento de segredos). Ele não faz teste de carga no fornecedor de SMS.
Caso sintético — Northline Municipal Transit (NMT). A operadora de transporte, Sam Park e todos os números foram inventados para fins didáticos.
Erros e limites
Sistemas de transporte reais e equipamentos de tarifa nunca são testados sem uma autorização separada e especializada. Este livro usa apenas dados sintéticos e não concede autorização para testar sistemas reais.
Exercícios
- EX057 — Exemplo de autorização separada. Dê uma dependência que Sam não pode testar sem a autorização do fornecedor. Rubrica: 3 = fornecedor de SMS / blocos de mapa / pagamento; 2 = parcial; 1 = o site da NMT; 0 = nada.
- EX058 — Achado do lado da NMT. Por que uma chave de API de SMS vazada na homologação da NMT é um achado da NMT? Rubrica: 3 = a NMT armazena/manuseia o segredo; 2 = parcial; 1 = só do fornecedor; 0 = nada.
- EX059 — Indisponibilidade do fornecedor. O fornecedor esgota o tempo durante a janela. O que Sam faz? Rubrica: 3 = parar as verificações relacionadas; anotar a dependência; não martelar; 2 = parcial; 1 = tempestade de novas tentativas; 0 = nada.
- EX060 — Matriz. O que uma matriz de responsabilidades resolve? Rubrica: 3 = o responsável certo para cada achado; 2 = parcial; 1 = não resolve nada; 0 = nada.
Síntese
Conheça o mapa de dependências; teste o lado da NMT; não ataque fornecedores sem a autorização deles.
Continue estudando — capítulo 15 de 18
← Capítulo 14 (rascunho) · Índice de capítulos do curso · Capítulo 16 (rascunho) →