
Uma ferramenta de modelagem de ameaças alimentada por IA que utiliza os modelos GPT da OpenAI para gerar modelos de ameaça para uma determinada aplicação com base na metodologia STRIDE.
STRIDE GPT é uma ferramenta de modelagem de ameaças baseada em IA que utiliza Modelos de Linguagem de Grande Escala (LLMs) para gerar modelos de ameaças e árvores de ataque para uma determinada aplicação, baseando-se na metodologia STRIDE. Os utilizadores fornecem detalhes da aplicação, como o tipo de aplicação, métodos de autenticação, e se a aplicação está exposta à Internet ou processa dados sensíveis. O modelo então gera a sua saída com base nas informações fornecidas.
Se achar o STRIDE GPT útil, considere apoiar o projeto:

mitre_attack em SARIFembed.diagrams.net alojado; para implementações auto-hospedadas ou isoladas, aponte-o para o seu próprio draw.io através da variável de ambiente STRIDE_GPT_DRAWIO_URL/analyze também emite um DFD a nível de sistema juntamente com as suas descobertasQuer personalizar o STRIDE-GPT para a sua organização? Consulte o nosso guia abrangente de Operacionalização para aprender como:
O guia inclui instruções passo a passo, exemplos de código e padrões de implementação para organizações que procuram escalar a modelagem de ameaças baseada em IA nas suas equipas.
Em janeiro de 2024, dei uma palestra sobre o STRIDE GPT no Open Security Summit. Durante a palestra, discuti o início do projeto, as suas funcionalidades principais, atualizações recentes e alguns planos futuros. Pode assistir à apresentação completa abaixo:
Este vídeo é um excelente recurso para qualquer pessoa interessada em entender como o STRIDE GPT funciona e como pode ser usado para melhorar a modelagem de ameaças.
--version (#161): stride-gpt --version agora imprime a versão instalada e termina, e o banner da TUI interativa mostra a versão em execução para que possa confirmar rapidamente qual está a usar.uv.lock é agora a única fonte de verdade para todas as dependências. Os ficheiros requirements.txt duplicados foram retirados; a imagem Docker da interface do utilizador e o fluxo de trabalho de verificação de segurança instalam a partir de uv.lock via uv export, para que o que é distribuído e o que é verificado já não possa divergir do que está bloqueado. Sem alterações para os utilizadores de pip install stride-gpt.STRIDE_GPT_DRAWIO_URL (predefinição: embed.diagrams.net), a origem postMessage do iframe está delimitada a este, e o XML de diagramas não confiável é analisado com defusedxml.deepseek-v4-pro e deepseek-v4-flash. As chamadas são encaminhadas através da integração nativa deepseek/ do LiteLLM (ponto de extremidade alojado, sem necessidade de URL base personalizado); defina a sua chave via DEEPSEEK_API_KEY./analyze da CLI também produz um DFD a nível de sistema após a síntese, renderizado como um bloco Mermaid no relatório markdown, transportado no campo JSON data_flow_diagram e mostrado na vista HTML através de um runtime Mermaid carregado por CDN. A geração de DFD é envolvida de modo a que um diagrama defeituoso nunca cause falha num bom relatório./ e o sufixo .git são removidos) antes da análise, para que .../repo/ e .../repo.git já não causem 404 indevidamente.-o <caminho> é passado para /analyze ou /quick, ficheiros JSON irmãos são escritos ao lado do relatório — <base>.plan.json (o AnalysisPlan), <base>.findings.json (descobertas de subsistemas, ameaças transversais e o diagrama de fluxo de dados) e <base>.run.json (um RunManifest que regista modelos, hash de configuração, versão, temporização, quais cartões de referência foram realmente carregados e um run_summary que indica se a execução foi concluída ou truncada por um limite de chamadas). Os manifestos excluem chaves de API e pontos de extremidade e ocultam caminhos do sistema de ficheiros, pelo que são seguros para consolidar ou anexar a um ticket. A opção de formato -f governa apenas o artefacto do relatório; os irmãos são sempre JSON.MITRE_ATTACK como uma string separada por vírgulas (ex.: "T1190, T1059, AML.T0053") em vez da forma de lista canónica, os IDs das técnicas são agora recuperados em vez de descartados. Anteriormente, os relatórios markdown/HTML mostravam a coluna "MITRE ATT&CK" mas deixavam todas as células em branco, e a exportação SARIF perdia os IDs completamente. Todos os renderizadores (markdown, pills HTML, SARIF) e a verificação de visibilidade da coluna agora passam por um normalizador único, e prosa livre que não seja um ID de técnica é filtrada para que a coluna nunca se encha com falsos positivos.The api_key client option must be set quando nenhuma chave de fornecedor cloud estava presente no ambiente. O LM Studio é encaminhado através do prefixo openai/ do LiteLLM, e o SDK da OpenAI recusa-se a construir um cliente sem chave mesmo quando api_base aponta para localhost, pelo que a CLI agora passa um placeholder para fornecedores que não autenticam. Relacionadamente, a verificação de ambiente de último recurso do nível de trabalho já não se aplica a esses fornecedores: uma ANTHROPIC_API_KEY ou OPENAI_API_KEY configurada era anteriormente enviada para o anfitrião que api_base nomeasse, o que simultaneamente mascarava este bug e colocava uma chave real na rede. Se utiliza LM Studio e tem essa chave definida, ela já não é transmitida para o seu ponto de extremidade./analyze e /quick podem agora transportar identificadores padronizados de técnicas adversárias do MITRE ATT&CK Enterprise (v17.1) e do MITRE ATLAS (2026.05). Dois novos cartões de referência com divulgação progressiva (mitre_enterprise, mitre_atlas) instruem o agente a usar apenas os IDs e nomes catalogados, eliminando a alucinação de IDs. Os cartões são regenerados a partir de STIX/YAML a montante via scripts/refresh_mitre_cards.py em vez de escritos por memorização do modelo. As técnicas são renderizadas como uma coluna MITRE ATT&CK em tabelas markdown, pills azul-céu clicáveis em HTML e arrays properties.mitre_attack em SARIF./analyze e /quick agora emitem um relatório HTML autossuficiente e visualizável em navegador juntamente com as saídas markdown/JSON/SARIF, adequado para partilha com partes interessadas.claude-opus-4-8, o modelo de topo mais recente da Anthropic, juntamente com o Opus 4.7 existente. Qualquer um pode ser selecionado como modelo arquiteto ou de trabalho.mrwadams/stridegpt-ui) foi removida; a interface web Streamlit reside agora apenas em mrwadams/stridegpt. Os utilizadores da CLI devem pip install stride-gpt em vez de descarregar um contentor.mistralai não utilizado (o acesso ao Mistral já flui através do LiteLLM). Atualizada a base python:3.12-slim para a imagem da interface do utilizador e removido o curl, eliminando 21 alertas CVE de média/alta gravidade nos PRs #113–#115.except genérico, código morto) (#116).pip install stride-gpt, separada da interface web Streamlet legada. Dois comandos principais: /analyze (análise agêntica autónoma de código-fonte com um planeador, ciclos de agente com uso de ferramentas por subsistema e uma passagem de síntese transversal) e /quick (modelo de ameaças de disparo único a partir de uma descrição escrita da aplicação).genai (OWASP LLM Top 10), agentic (OWASP ASI Top 10) e insider_threat autodescrevem-se através de frontmatter YAML; o agente descobre-os via list_references e obtém os corpos via load_reference.stride_gpt/__init__.py para que os avisos de pré-carregamento do Bedrock/SageMaker não apareçam em instalações novas sem botocore.Suporte a Aplicações de IA Agêntica: Adicionado suporte abrangente para modelagem de ameaças de sistemas de IA agêntica com integração do OWASP Top 10 para Aplicações Agênticas (ASI01-ASI10). Basta selecionar "Aplicação de IA agêntica" e descrever o seu sistema — o LLM deteta automaticamente padrões arquiteturais e aplica categorias de ameaças relevantes. Cada risco ASI é mapeado para a categoria STRIDE apropriada para uma análise de ameaças consistente.
Suporte a Aplicações de IA Generativa: Adicionado suporte para modelagem de ameaças de aplicações GenAI com integração do OWASP LLM Top 10 (LLM01-LLM10). Selecione "Aplicação de IA generativa" e descreva o seu sistema para receber uma análise de ameaças adaptada especificamente a LLMs. As aplicações de IA agêntica incluem ambas as categorias de risco LLM e ASI para uma cobertura abrangente.
Deteção de Padrões Arquiteturais Inspirada no MAESTRO: Análise de ameaças agêntica melhorada com deteção automática de padrões arquiteturais a partir de descrições de aplicações, inspirada no framework MAESTRO da Cloud Security Alliance. O LLM agora identifica e aplica ameaças específicas de padrões para:
Análise de Ameaças entre Camadas: Os modelos de ameaças agora incluem cadeias de ataque entre componentes que mostram como o comprometimento numa camada arquitetural pode permitir ataques noutras (ex.: envenenamento de RAG → desvio de objetivo do agente → uso indevido de ferramenta → exfiltração de dados).
Sugestões de Melhoria Reforçadas: Para aplicações agênticas, as sugestões de melhoria agora solicitam detalhes arquiteturais específicos, como framework de agente, protocolos de comunicação entre agentes, mecanismos de sandbox e implementações de disjuntores.
Atualizações de Modelos OpenAI: Atualizados para a série de modelos GPT-5.2 (gpt-5.2, gpt-5.2-pro, gpt-5-mini, gpt-5-nano, gpt-5, gpt-4.1). Removidos modelos obsoletos (gpt-4o, gpt-4o-mini, o3, o3-mini, o4-mini).
Modelos Anthropic Claude 4.5: Atualizados para a série Claude 4.5 (claude-sonnet-4-5, claude-haiku-4-5, claude-opus-4-5). Adicionada a caixa de seleção "Ativar Extended Thinking" para capacidades de raciocínio reforçadas em qualquer modelo Claude. Aumentados os tokens máximos para 32k (modo normal) e 48k (modo de pensamento).
Preview do Google Gemini 3: Adicionados modelos de preview do Gemini 3 (gemini-3-pro-preview, gemini-3-flash-preview) juntamente com os modelos Gemini 2.5. Suporte ao modo de pensamento estendido para modelos Gemini 3.
Atualizações de Modelos Mistral: Atualizados para as versões mais recentes dos modelos Mistral, incluindo Mistral Large 3, Medium 3.1, Small 3.2, Ministral 3 (8B/14B) e Magistral 1.2 (Medium/Small).
Novo Logotipo do Projeto: Marca renovada com um design de escudo + rede neural mais limpo e minimalista.
Correção de Erro: Corrigido problema em que a saída do modelo de ameaças desaparecia após clicar no botão de descarregamento.
max_completion_tokens em vez do obsoleto max_tokens para GPT-5 e outros modelos de raciocínio da OpenAI, garantindo compatibilidade com os requisitos mais recentes da API da OpenAI.Release highlights:
This release added support for the following models:
GPT4o mini: Adicionei suporte para o modelo GPT4o mini recentemente lançado pela OpenAI. O GPT4o mini é um modelo pequeno e econômico que ainda fornece respostas de alta qualidade para tarefas de modelagem de ameaças.
Gemini 1.5 Pro (estável): Os usuários agora podem escolher entre as versões estável ou de pré-visualização do modelo Gemini 1.5 Pro.
Release highlights:
Release highlights:
Release highlights:
Release highlights:
Release highlights:
Release highlights:
Release highlights:
Lançamento inicial do aplicativo.
pip install stride-gpt
This installs the `stride-gpt` command. The CLI and the Streamlit web UI are now distinct products — `pip install stride-gpt` gives you the lean CLI with no Streamlit footprint. To run the web UI from source, see Option 2 below.
### Opção 2: A partir do código-fonte
1. Clone o repositório:
```bash
git clone https://github.com/mrwadams/stride-gpt.git
cd stride-gpt
```
2. Instale com [uv](https://docs.astral.sh/uv/) (recomendado — `uv.lock` é a única fonte da verdade para dependências): ```bash
# CLI plus the Streamlit web UI deps
uv sync
Ou instale apenas a CLI com pip: ```bash pip install -e .
3. (Opcional) Configurar variáveis de ambiente: ```bash
cp .env.example .env
Edite .env para adicionar suas chaves de API — ou configure-as posteriormente executando stride-gpt e usando o comando /config no REPL interativo, ou através da interface Streamlit.
A interface web do Streamlit é fornecida como uma imagem Docker:```bash docker pull mrwadams/stridegpt:latest
Para a CLI, use `pip install stride-gpt` — não há uma imagem CLI separada. Se precisar de uma CLI em sandbox, crie a sua própria a partir de uma imagem base Python mínima.
## Layout do repositório
O STRIDE-GPT está organizado como um pequeno monorepo: uma biblioteca Python compartilhada, um ou mais aplicativos que a consomem.```
stride-gpt/
├── stride_gpt/ # shared library + Python CLI (core, agent loop, prompts, schemas, models)
├── apps/
│ └── web/ # Streamlit web UI
├── tests/ # pytest suite
└── pyproject.toml # single project file; web UI deps live in the `web` dependency-group
O diretório apps/ é o local para frontends adicionais implantáveis — por exemplo, um futuro CLI Node/TypeScript ficaria junto com apps/web/. O próprio CLI Python permanece em stride_gpt/cli.py porque está fortemente acoplado à biblioteca compartilhada.
Análise agentiva de base de código — o agente explora autonomamente uma base de código, planeja sua análise e produz um modelo de ameaças STRIDE:```bash
stride-gpt analyze .
stride-gpt analyze ./my-app --worker-model anthropic/claude-sonnet-4-6 -y
stride-gpt analyze . -o report.json -f json # also writes report.html alongside stride-gpt analyze . -o report.sarif -f sarif stride-gpt analyze . -o report.html -f html
> Toda análise também salva automaticamente um arquivo JSON e um HTML complementar em `~/.stride-gpt/reports/analyze/`, para que a visualização no navegador esteja sempre a um clique de distância, mesmo quando você executa sem `-o`.
> **Nota sobre custo:** A análise agentiva é minuciosa — o agente faz muitas chamadas LLM e lê muitos arquivos enquanto explora. O uso de tokens e o custo aumentam com o tamanho da base de código e o modelo escolhido, e uma execução completa em um repositório grande com um modelo de ponta pode ser cara. Defina limites de gastos no painel do seu provedor antes de executar e considere modelos mais rápidos/baratos para as primeiras passagens.
**Modo rápido de disparo único** — gere um modelo de ameaças a partir de uma descrição em texto (como na interface Streamlit, mas no terminal):```bash
# Read description from a file
stride-gpt quick -i app-description.txt
# Pipe from stdin
echo "A web API that processes payments..." | stride-gpt quick
REPL Interativo — inicia uma sessão interativa com conclusão por tab e histórico:```bash stride-gpt
Dentro do REPL, digite `/help` para ver os comandos e flags disponíveis. A versão é mostrada abaixo do banner ASCII na inicialização. Veja a [folha de dicas do REPL interativo](#folha-de-dicas-do-repl-interativo) abaixo para a referência completa de comandos e atalhos.
#### Folha de dicas do REPL interativo
Inicie o REPL com `stride-gpt` (sem argumentos) e use estes comandos e atalhos.
**Comandos** — digite um comando com barra no prompt:
| Comando | O que faz |
|---------|-----------|
| `/analyze [path]` | Analisa uma base de código para ameaças STRIDE (um caminho de diretório simples também funciona) |
| `/quick` | Modelo de ameaça rápido a partir de uma descrição textual |
| `/reports` | Lista relatórios de análise anteriores (`/reports <n>` exibe um) |
| `/config` | Visualiza ou altera configurações (modelo, provedor, chaves de API) |
| `/help` | Mostra comandos, flags e exemplos disponíveis |
| `/quit` | Sai (aliases: `/exit`, `/q`) |
`/analyze`, `/quick` e `/reports` aceitam flags: `-o`/`--output <caminho>`, `-f`/`--format <markdown\|json\|sarif\|html>`, `-y`/`--yes` e `-i`/`--input <caminho>` (`/quick`). Digite `/help` para a lista completa.
**Atalhos de teclado:**
| Tecla | Ação |
|-------|------|
| `Tab` | Completa comandos com barra e caminhos de arquivo |
| `↑` / `↓` | Percorre o histórico de comandos |
| `→` / `End` | Aceita a sugestão de histórico esmaecida |
| `Ctrl+L` | Limpa a tela e o histórico de rolagem |
| `Ctrl+C` / `Ctrl+D` | Sai do REPL |
**Verifique a versão instalada:**```bash
stride-gpt --version # prints e.g. "stride-gpt 0.19.0" and exits
Flags comuns:
| Flag | Descrição |
|---|---|
--version | Exibe a versão instalada (stride-gpt <version>) e sai |
-o, --output | Salva o relatório em um arquivo |
-f, --format | Formato de saída: markdown (padrão), json, sarif, html |
-i, --input | Lê a descrição do aplicativo de um arquivo (apenas quick) |
-y, --yes | Aprova automaticamente o plano de análise (apenas analyze) |
--worker-model | Modelo de nível padrão que lida com a maioria das chamadas (ex.: anthropic/claude-sonnet-4-6). Usa a configuração salva se omitido. |
--architect-model | Modelo mais forte para planejamento/síntese (ex.: openai/gpt-5.4). Usa a configuração salva se omitido. |
--no-architect | Ignora o nível de arquiteto nesta execução; o worker lida com todas as chamadas. |
--app-type | Substitui o tipo de aplicativo detectado pelo planejador (apenas analyze): auto (padrão), web, genai, agentic. |
--max-llm-calls | Limita o total de chamadas LLM em ambos os níveis (apenas analyze; 0 = ilimitado). |
--max-tool-calls | Limita o total de execuções de ferramentas (apenas analyze; 0 = ilimitado). |
Cada nível também aceita --worker-api-key / --worker-api-base / --worker-max-tokens (e os equivalentes --architect-*). Execute stride-gpt analyze --help ou stride-gpt quick --help para a lista completa.
Intermediários estruturados — quando -o <path> é usado, três arquivos JSON irmãos são escritos junto com o relatório para que a execução possa ser auditada ou consumida por ferramentas downstream:
| Arquivo | Conteúdo |
|---|---|
<stem>.plan.json | O AnalysisPlan que o arquiteto produziu — subsistemas, áreas de foco, tipo de aplicativo detectado (apenas analyze). |
<stem>.findings.json | Lista SubsystemFinding por subsistema, ameaças transversais e diagrama de fluxo de dados em nível de sistema (apenas analyze). |
<stem>.run.json | Um RunManifest — modelos, hash de prompt + configuração, referências ao agente realmente carregado, git SHA, versão, tempo. Emitido tanto para analyze quanto para quick. |
A flag de formato (-f) controla apenas o artefato do relatório; os irmãos são sempre JSON. Os caminhos de arquivo no manifesto e nos findings são ocultados (./… quando no diretório de trabalho, ~/… quando em $HOME) para que um manifesto seja seguro para compartilhar. O auto-arquivo em ~/.stride-gpt/reports/{analyze,quick}/ não é afetado — os irmãos são emitidos apenas quando você passa -o.
Visualizar relatórios anteriores:```bash stride-gpt reports # List recent reports stride-gpt reports 1 # View report #1 stride-gpt reports 1 -o r.json -f json # Export a report
### Interface Web do Streamlit
A interface web é um aplicativo separado da CLI. Inicie-o com:```bash
streamlit run apps/web/main.py
Abra o URL fornecido no seu navegador e siga as etapas na tela.
docker run -p 8501:8501 --env-file .env mrwadams/stridegpt
## Exemplo de saída
Toda execução de `stride-gpt analyze` e `stride-gpt quick` gera um relatório em markdown por padrão (com JSON, SARIF e uma visualização HTML autocontida disponíveis via `-f`). O markdown agrupa ameaças por subsistema em tabelas STRIDE, adiciona uma seção transversal para ameaças que abrangem componentes e termina com um resumo da execução. Colunas opcionais (OWASP LLM/ASI, Insider Category, MITRE ATT&CK) aparecem apenas quando uma execução as preenche.
Abaixo está o markdown de uma execução contra uma API de pagamentos fictícia, para que você possa ver a forma da saída antes de executar a ferramenta. É uma renderização real do mecanismo de relatório, não um rascunho.
<details>
<summary>Exemplo de modelo de ameaças em markdown (clique para expandir)</summary>````markdown
# STRIDE Threat Model: acme-payments-api
> Generated by STRIDE-GPT on 2026-07-16T09:42:00Z
## Overview
A Python FastAPI service that accepts card payments, stores customer profiles in PostgreSQL, and calls a third-party payment processor. Authentication is handled by JWT bearer tokens issued by an internal auth service; the API is internet-facing behind an API gateway.
## Data Flow Diagram
```mermaid
flowchart LR
Client[Client App] -->|HTTPS + JWT| Gateway[API Gateway]
Gateway --> API[Payments API]
API -->|SQL| DB[(PostgreSQL)]
API -->|HTTPS| Processor[Payment Processor]
app/auth/jwt.pyapp/auth/dependencies.py| Threat Type | Scenario | Potential Impact | MITRE ATT&CK |
|---|---|---|---|
| Spoofing | An attacker forges a JWT using a weak or leaked signing secret to impersonate another customer. | Full account takeover and unauthorized access to stored payment methods. | T1550.001 (Application Access Token) |
| Elevation of Privilege | A standard user calls an admin-only refund endpoint that only checks authentication, not role. | Unauthorized refunds and financial loss. | T1068 (Exploitation for Privilege Escalation) |
app/payments/routes.pyapp/db/models.py| Threat Type | Scenario | Potential Impact | MITRE ATT&CK |
|---|---|---|---|
| Information Disclosure | Full card numbers are logged in request debug logs when a payment fails. | PCI-DSS violation and exposure of cardholder data to anyone with log access. | T1552.001 (Credentials In Files) |
| Tampering | The payment amount is taken from a client-supplied field and not re-validated server-side against the order. | A user pays less than the order total by editing the request body. |
| Threat Type | Scenario | Potential Impact | MITRE ATT&CK | Affected Subsystems |
|---|---|---|---|---|
| Denial of Service | No rate limiting on the payment endpoint lets an attacker exhaust the processor quota and DB connections. | Legitimate payments fail during the attack; possible processor throttling. | T1499 (Endpoint Denial of Service) | Authentication & Authorization, Payments & Data Storage |
</details>
`stride-gpt quick` produz a mesma forma de tabela a partir de uma descrição escrita, colapsada em um único subsistema **Application** em vez de resultados por subsistema.
## Melhores Práticas de Segurança
O STRIDE GPT foi projetado para implantação local e de usuário único. Ao usar a ferramenta:
### Protegendo suas Chaves de API
**Suas chaves de API são credenciais sensíveis que podem gerar cobranças na sua conta.**
✅ **FAÇA:**
- Insira as chaves de API através da interface (elas ficam na sua sessão do navegador)
- Use o arquivo .env para conveniência na sua máquina pessoal
- Defina limites de gastos no painel do seu provedor de LLM
- Revise regularmente o uso e os custos da API
- Limpe a sessão ao usar em computadores compartilhados
❌ **NÃO FAÇA:**
- Envie arquivos .env para o controle de versão (já está no .gitignore)
- Compartilhe capturas de tela com chaves de API visíveis
- Execute o STRIDE GPT em sistemas não confiáveis ou comprometidos
- Compartilhe suas chaves de API com outras pessoas
- Ignore cobranças inesperadas de API
### Considerações sobre Privacidade de Dados
Ao gerar modelos de ameaças, o STRIDE GPT envia dados para o provedor de LLM escolhido:
- Detalhes da aplicação (tipo, métodos de autenticação, arquitetura)
- Descrições da arquitetura do sistema
- Diagramas/imagens de arquitetura enviados
- Modelos de ameaças e mitigações gerados
**O que isso significa:**
- OpenAI, Anthropic, Google, etc. podem registrar esses dados conforme suas políticas de privacidade
- Considere usar detalhes genéricos/fictícios do sistema para demonstrações
- Revise as políticas de retenção de dados e privacidade do seu provedor de LLM
- Para sistemas sensíveis, considere:
- Usar modelos locais (LM Studio)
- Usar provedores com garantias de privacidade mais rigorosas
- Anonimizar as descrições do sistema antes da entrada
### Para Implantações em Equipe/Organização
Se implantar o STRIDE GPT para múltiplos usuários (não é o caso de uso padrão):
- Adicione autenticação/autorização (não incluído por padrão)
- Use um serviço de gerenciamento de segredos para as chaves de API
- Implante atrás de VPN ou rede interna
- Revise o documento [SECURITY.md](https://github.com/mrwadams/stride-gpt/blob/master/SECURITY.md) para considerações adicionais
- Considere requisitos de residência de dados e conformidade
- Implemente controles de acesso apropriados para os modelos de ameaças gerados
### Segurança de Dependências
Mantemos as dependências e monitoramos vulnerabilidades:
- As dependências são atualizadas regularmente via Dependabot
- A varredura de segurança automatizada é executada em cada commit
- Avisos de segurança são rastreados na aba Segurança do GitHub
- Execute `pip-audit` para verificar vulnerabilidades conhecidas localmente
Consulte [SECURITY.md](https://github.com/mrwadams/stride-gpt/blob/master/SECURITY.md) para informações abrangentes de segurança, incluindo varredura de segurança automatizada, relatório de vulnerabilidades e práticas de desenvolvimento seguro.
### Relatando Problemas de Segurança
Encontrou um problema de segurança? Por favor, relate-o de forma responsável:
- Crie um aviso de segurança através do [relatório de vulnerabilidade privada](https://github.com/mrwadams/stride-gpt/security/advisories/new) do GitHub
- Não publique problemas de segurança publicamente
- Reconheceremos em até 48 horas
- As correções serão priorizadas e lançadas rapidamente
## Contribuindo
Pull requests são bem-vindos. Para mudanças importantes, por favor abra primeiro uma issue para discutir o que você gostaria de alterar.
## Licença
[MIT](https://choosealicense.com/licenses/mit/)