Pular para o conteúdo
Skillpedia
Segurança40 mil · #5396

tm7-threat-model

Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.

O que ela faz

Este agente cria arquivos de modelo de ameaças (.tm7) para a ferramenta da Microsoft. Ele transforma descrições de sistemas em diagramas e ameaças de segurança, no formato exato que a ferramenta entende.

Quando usar

  • ✓Quando você precisa criar um arquivo de modelo de ameaças (.tm7).
  • ✓Ao realizar modelagem de ameaças STRIDE e precisar de um arquivo .tm7.
  • ✓Se você quer gerar ou modificar um arquivo .tm7 para a ferramenta da Microsoft.

Exemplo do que pedir para a IA

“Crie um arquivo .tm7 para um sistema com um usuário, um aplicativo web e um banco de dados.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/github/awesome-copilot/blob/main/skills/tm7-threat-model/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/tm7-threat-model/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ele identifica os componentes do seu sistema (como processos e bancos de dados), atribui identificadores únicos e organiza tudo em um arquivo XML com uma estrutura específica. O arquivo é formatado de maneira exata para ser lido pela Ferramenta de Modelagem de Ameaças da Microsoft.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add github/awesome-copilot --skill tm7-threat-model

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/tm7-threat-model/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Gerador de Arquivos Microsoft Threat Modeling Tool (.tm7)

Você gera arquivos válidos .tm7 para o Microsoft Threat Modeling Tool (v7.3+). Um arquivo .tm7 não é XML genérico — é um documento DataContractSerializer WCF com um namespace e estrutura de elementos exatos. Se a estrutura estiver incorreta, a ferramenta se recusará a abrir o arquivo com:

"O arquivo não é um modelo de ameaça real ou o modelo de ameaça pode estar corrompido."

Seu trabalho é traduzir um sistema descrito (componentes, armazenamentos de dados, atores externos, fluxos de dados, limites de confiança) em um diagrama mais ameaças STRIDE, serializado no formato .tm7 exato descrito abaixo.

Fluxo de Trabalho

Ao ser solicitado a produzir um arquivo .tm7:

  1. Modele o sistema. Identifique os elementos:
    • Processos (aplicativos web, serviços, funções) → StencilEllipse, GE.P
    • Armazenamentos de dados (bancos de dados, caches, filas, blobs) → StencilParallelLines, GE.DS
    • Interatores externos (usuários, navegadores, sistemas de terceiros) → StencilRectangle, GE.EI
    • Limites de confiança → BorderBoundary, GE.TB
    • Fluxos de dados conectando os itens acima → Connector, GE.DF
  2. Atribua um UUID minúsculo único (ex: 148ade68-5c80-40f3-8e1f-4e2cabdb5991) a cada stencil e a cada fluxo. Nunca use IDs legíveis por humanos como users-browser.
  3. Defina as coordenadas (Left/Top/Width/Height) para que os stencils não se sobreponham.
  4. Gere ameaças STRIDE por interação e coloque-as em <ThreatInstances>.
  5. Serialização usando a estrutura deste guia, espelhando assets/example-minimal.tm7.
  6. Valide contra a lista de verificação "Erros Comuns" antes de retornar o arquivo.
  7. Escreva o arquivo sem declaração XML e sem indentação de "pretty-print" (um único fluxo XML contínuo é o que o serializador emite).

Sempre abra assets/example-minimal.tm7 primeiro e adapte-o — reutilize seu esqueleto de serialização exato e altere apenas os tipos de stencil, nomes, coordenadas, fluxos e ameaças.

CRÍTICO: Formato de serialização

Arquivos TM7 usam XML DataContractSerializer WCF, não XML padrão.

O arquivo DEVE começar com este elemento raiz exato — sem declaração <?xml?>:

<ThreatModel xmlns="http://schemas.datacontract.org/2004/07/ThreatModeling.Model" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">

NUNCA use:

  • <?xml version="1.0" encoding="utf-8"?> — causa falha na desserialização.
  • xmlns:xsi / xmlns:xsd — estes são namespaces XML padrão, não namespaces DataContract.
  • Elementos inventados como <SecurityGaps> ou <Mitigations> — eles não existem no esquema TM7.

Nota: <MetaInformation> (com filhos como <Owner>, <Contributors>, <Reviewer>, <Assumptions>, <ExternalDependencies>, <HighLevelSystemDescription>, <ThreatModelName>), <Notes> e <KnowledgeBase> são parte do esquema real e são emitidos pela ferramenta — mantenha-os (veja a estrutura abaixo e assets/example-minimal.tm7). Apenas não invente elementos que a ferramenta nunca produz.

Prefixo de namespace obrigatórios

Prefixo URI Usado para
(padrão) http://schemas.datacontract.org/2004/07/ThreatModeling.Model ThreatModel Raiz
xmlns:i http://www.w3.org/2001/XMLSchema-instance Atributos de Tipo
xmlns:z http://schemas.microsoft.com/2003/10/Serialization/ IDs de referência (z:Id)
xmlns:a http://schemas.microsoft.com/2003/10/Serialization/Arrays Arrays / coleções
xmlns:b http://schemas.datacontract.org/2004/07/ThreatModeling.KnowledgeBase Propriedades de Stencil
xmlns:c http://www.w3.org/2001/XMLSchema Valores de tipo primitivo

Estrutura do arquivo (ordem correta)

Uma exportação completa da ferramenta contém, nesta ordem: DrawingSurfaceList, MetaInformation, Notes, ThreatInstances, ThreatMetaData (frequentemente vazio/auto-fechado), então o grande KnowledgeBase genérico como um irmão de nível superior (não aninhado dentro de ThreatMetaData), e finalmente Profile.

<ThreatModel xmlns="..." xmlns:i="...">
  <DrawingSurfaceList>
    <DrawingSurfaceModel z:Id="i1" xmlns:z="...">
      <GenericTypeId xmlns="...Abstracts">DRAWINGSURFACE</GenericTypeId>
      <Guid xmlns="...Abstracts">{guid}</Guid>
      <Properties xmlns="...Abstracts" xmlns:a="...Arrays">...</Properties>
      <TypeId xmlns="...Abstracts">DRAWINGSURFACE</TypeId>
      <Borders xmlns:a="...Arrays">
        <!-- Elementos stencil: processos, armazenamentos de dados, entidades externas, limites -->

…
Perguntas frequentes

O que é um arquivo .tm7?

É um arquivo usado pela Ferramenta de Modelagem de Ameaças da Microsoft para salvar e compartilhar modelos de segurança de sistemas.

O que é STRIDE?

STRIDE é um método para identificar ameaças de segurança em sistemas, focado em Spoofing (Falsificação), Tampering (Adulteração), Repudiation (Repúdio), Information Disclosure (Divulgação de Informação), Denial of Service (Negação de Serviço) e Elevation of Privilege (Elevação de Privilégio).

Por que o formato do arquivo é tão importante?

O arquivo .tm7 tem uma estrutura XML muito específica. Se ela estiver incorreta, a Ferramenta de Modelagem de Ameaças da Microsoft não conseguirá abrir o arquivo, mostrando uma mensagem de erro.

Detalhes

Descrição original do autor

Creates valid Microsoft Threat Modeling Tool (.tm7) files compatible with the Microsoft Threat Modeling Tool v7.3+. Use this skill whenever asked to create, generate, or modify a .tm7 threat model file, or when performing STRIDE threat modeling that should output a .tm7 file that opens cleanly in the Microsoft Threat Modeling Tool.

repo: github/awesome-copilot

Popularidade

Estrelas no GitHub
40 mil
Posição no ranking
#5396
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas