Awesome CopilotAdventures

Documentação do produto verificada

Ensaie a remediação de segredos com segurança

Excluir uma credencial vazada do arquivo mais recente não a revoga nem a remove do histórico. O provedor da credencial é a autoridade sobre sua validade.

[!CAUTION] Nunca crie nem faça commit de um token real para este exercício. Não contorne a proteção de push, publique um repositório intencionalmente vulnerável nem cole valores de segredos no Copilot. O laboratório principal é uma simulação e não contata nenhum provedor.

Resumo do laboratório

Uma ferramenta em forma de chave se move entre um módulo de arquivo e suportes separados em uma sequência de etapas.

Ilustração conceitual original (SVG)

Ensaie decisões de incidentes sem uma credencial real.

Em resumo Sua rota
Nível e tempo 300; 45 minutos (estimativa de facilitação)
Ação inicial Use apenas o marcador de treinamento e diferencie a simulação da ação do provedor.
Materiais do aluno Baixe 12-secrets.zip
Workspace Abra a raiz do kit extraído; execute a baseline de . relativa a essa raiz
Verificação inicial esperada Os testes base fornecidos passam.
Ajuda de configuração Baixe, extraia, Git local e GitHub opcional

[!NOTE] Remover um literal não revoga sua autoridade.

Conceitos · Primeira tarefa · Lista de evidências · Redefinir

Objetivos de aprendizagem

  • Separe triagem, revogação, remediação de código, revisão da exposição e prevenção.
  • Use evidências para justificar o encerramento de um alerta.
  • Reconheça o que uma simulação local não consegue comprovar.

Antes de começar

Prepare 12-secrets com a configuração comum. Node 24 é suficiente. A verificação de segredos em repositórios privados depende do plano e da política; não torne um repositório público para habilitar uma funcionalidade do laboratório.

Conceitos e casos de uso

Ação Estabelece Não estabelece
Remover um literal O arquivo atual não o contém mais Revogação pelo provedor
Revogar/rotacionar com o proprietário A credencial antiga perde autoridade Que nenhum acesso não autorizado ocorreu no passado
Revisar exposição/histórico Escopo da exposição e consumidores dependentes Exclusão automática de todas as cópias remotas
Fechar um alerta Um encaminhamento documentado Segurança se nenhuma mitigação foi realizada
Proteção de push Prevenção para padrões com suporte Detecção de todos os segredos possíveis

Cenário do exercício

A fixture descreve uma exposição simulada de token de serviço usando somente o valor TRAINING_ONLY_NOT_A_CREDENTIAL. Intencionalmente, não contém token ativo nem credencial no formato de um provedor. Sua saída é um plano de resposta a incidentes, não uma alegação de que o GitHub detectou ou revogou alguma coisa.

Tarefa 1 - Leia o incidente e estabeleça o escopo

  1. Inspecione incident.json e response.json.

  2. Identifique proprietário, consumidor hipoteticamente afetado, escopo da exposição e evidências ausentes.

  3. Em Ask:

    This is a simulation with no real credential. Draft the triage questions:
    owner, provider, exposure locations, validity, dependent consumers, and
    possible misuse. Do not request or print a token value.
    
  4. Mantenha os fatos não verificados identificados como perguntas.

Tarefa 2 - Planeje a remediação começando pela revogação

Use esta sequência:

---
config:
  theme: base
  look: classic
  themeVariables:
    darkMode: false
    background: "#ffffff"
    primaryColor: "#f5f5f5"
    primaryTextColor: "#111111"
    primaryBorderColor: "#555555"
    secondaryColor: "#e0e0e0"
    secondaryTextColor: "#111111"
    secondaryBorderColor: "#666666"
    tertiaryColor: "#bdbdbd"
    tertiaryTextColor: "#111111"
    tertiaryBorderColor: "#444444"
    lineColor: "#444444"
    textColor: "#111111"
    mainBkg: "#f5f5f5"
    nodeBorder: "#555555"
    clusterBkg: "#ffffff"
    clusterBorder: "#999999"
    edgeLabelBackground: "#ffffff"
    actorBkg: "#e0e0e0"
    actorBorder: "#555555"
    actorTextColor: "#111111"
    actorLineColor: "#777777"
    signalColor: "#333333"
    signalTextColor: "#111111"
    labelBoxBkgColor: "#f5f5f5"
    labelBoxBorderColor: "#777777"
    labelTextColor: "#111111"
    loopTextColor: "#111111"
    activationBkgColor: "#bdbdbd"
    activationBorderColor: "#555555"
    noteBkgColor: "#f5f5f5"
    noteTextColor: "#111111"
    noteBorderColor: "#777777"
    attributeBackgroundColorOdd: "#f5f5f5"
    attributeBackgroundColorEven: "#e0e0e0"
---
stateDiagram-v2
    accTitle: Ciclo simulado de remediação de segredos
    accDescr: A triagem leva à revogação coordenada com o proprietário, à correção dos consumidores, à revisão da exposição e à prevenção antes de um encerramento documentado.
    state "Triagem" as Triage
    state "Revogar" as Revoke
    state "Substituir" as Replace
    state "Revisar exposição" as ReviewExposure
    state "Prevenir" as Prevent
    state "Encerrar" as Close
    [*] --> Triage
    Triage --> Revoke: Coordenar com o proprietário da credencial
    Revoke --> Replace: Atualizar os consumidores afetados com segurança
    Replace --> ReviewExposure: Inspecionar o histórico e as evidências de acesso
    ReviewExposure --> Prevent: Adicionar proteções e verificação
    Prevent --> Close: Registrar o encaminhamento
    Close --> [*]

Legenda. Os nós arredondados são etapas da resposta, as setas mostram sua ordem e os círculos preenchidos indicam o início/fim do exercício. Os rótulos descrevem o ponto de controle de evidências.

Explicação. A sequência impede que “excluir a string e fechar o alerta” seja considerado remediação. Em um incidente real, a revogação e a coordenação com os consumidores seguem o processo de incidentes do proprietário; este diagrama não executa essas operações.

  1. Adicione os seis IDs de etapas da fixture a response.json na ordem revisada.
  2. Para cada um, declare as evidências que seriam necessárias.
  3. Inclua um plano de interrupção para os consumidores afetados. Nunca registre a credencial substituta em logs.
  4. Proponha somente uma alteração de código de escopo definido: ler um valor nomeado de configuração, falhar claramente se ele estiver ausente e evitar um valor alternativo de “desenvolvimento” fixo no código.

Tarefa 3 - Verifique o plano, não um incidente fabricado

node --test --test-concurrency=1 policy.test.mjs
node verify.mjs

Os testes da política devem passar. O verificador de resposta rejeita o projeto inicial em branco; após a conclusão, valida somente a ordem das etapas e as descrições das evidências.

Depois, coloque temporariamente o encerramento antes da revogação. Confirme que o verificador falha e restaure o plano correto.

Tarefa 4 - Inspeção autorizada opcional no GitHub

Se você já possui um repositório com alertas legítimos e tem autorização para inspecioná-los, revise a aba Security e registre somente metadados com informações sensíveis ocultadas. Não crie um alerta vazando um token. Mantenha as ações no provedor manuais e aprovadas separadamente. Use os motivos de alerta documentados atualmente; não descarte um segredo real como “usado em testes”.

Se o Actions, o faturamento ou a política bloquear a funcionalidade, a simulação continua utilizável. Registre “Operações do GitHub/provedor não executadas” nas evidências.

Verifique seu trabalho

  • Nenhuma credencial foi gerada, incluída em commit, impressa ou enviada a um modelo.
  • A resposta separa revogação, substituição, histórico/exposição e prevenção.
  • Fechar um alerta exige evidências, não a ausência de um literal.
  • Uma resposta reordenada falha localmente.
  • Os resultados da simulação não são apresentados como verificação do provedor ou do GitHub.

Solução de problemas

Não se espera um alerta do GitHub para o marcador de treinamento. Um commit mais recente limpo não comprova que o histórico esteja limpo. Não reescreva o histórico Git compartilhado nem remova a credencial de outra pessoa sem o processo de incidentes aprovado pelo proprietário.

Prática independente

Escreva uma lista de verificação de implantação para substituir um segredo revogado sem expor o substituto nos logs. Use valores provisórios e nenhuma infraestrutura real.

Restauração

Restaure somente response.json na sua cópia. Feche a sessão de aprendizagem. Não há credenciais, repositórios, serviços pagos ou recursos de nuvem a remover no laboratório principal.

Referências oficiais

Buscar

Busca em português do Brasil. Os caminhos e os exemplos executáveis mantêm o texto original.