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
Mensagem pronta para colar
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-modelOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/tm7-threat-model/SKILL.md -o SKILL.mdConteú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:
- 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
- Processos (aplicativos web, serviços, funções) →
- 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 comousers-browser. - Defina as coordenadas (
Left/Top/Width/Height) para que os stencils não se sobreponham. - Gere ameaças STRIDE por interação e coloque-as em
<ThreatInstances>. - Serialização usando a estrutura deste guia, espelhando
assets/example-minimal.tm7. - Valide contra a lista de verificação "Erros Comuns" antes de retornar o arquivo.
- 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 eassets/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
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
django-security
Ajuda seu agente a implementar práticas de segurança em aplicações Django. Ele foca em autenticação, autorização e prevenção contra ataques comuns, garantindo um código mais seguro.
affaan-m/ECC
laravel-security
Ajuda seu agente a proteger aplicações Laravel contra ameaças. Implementa práticas de segurança para autenticação, autorização e prevenção de ataques comuns.
affaan-m/ECC
module-regression
Ajuda seu agente a gerenciar mudanças em projetos grandes. Garante que alterações em uma parte do código não quebrem outras partes.
affaan-m/ECC