For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegação principal

Perguntas frequentes sobre a CLI do Codex Security

Respostas sobre varreduras do Codex Security, descobertas, falsos positivos, cobertura, custo e CI.

Encontre respostas para perguntas comuns sobre a varredura de repositórios e o gerenciamento de descobertas de segurança pelo terminal. Para instalar e executar a primeira varredura, comece pelo início rápido da CLI.

Varreduras de repositórios

Quem pode usar a CLI

O pacote @openai/codex-security é público.

É necessário ter acesso ao Codex Security para executar varreduras. Para obter melhores resultados, use uma conta verificada para o Trusted Access for Cyber.

Por que uma varredura usa uma chave de API após o login

Quando seu ambiente inclui OPENAI_API_KEY ou CODEX_API_KEY, as varreduras sem terminal interativo e as varreduras em JSON e JSONL usam, por padrão, a chave de API do ambiente, mesmo após um login bem-sucedido no ChatGPT ou com token de acesso. As varreduras interativas com saída de texto solicitam que você escolha quando o login no ChatGPT também está disponível. As simulações não exibem prompts nem carregam credenciais.

Para usar suas credenciais armazenadas em uma varredura, selecione-as explicitamente:

npx @openai/codex-security scan . --auth chatgpt

Para exigir uma chave de API de OPENAI_API_KEY ou CODEX_API_KEY:

npx @openai/codex-security scan . --auth api-key

Para usar automaticamente suas credenciais armazenadas como padrão, execute unset OPENAI_API_KEY CODEX_API_KEY. Para conhecer todos os modos de autenticação compatíveis, consulte a referência da CLI.

Como funciona a varredura de repositórios em massa

Faça login com a CLI do GitHub:

gh auth login

Descubra e selecione repositórios de uma conta ou organização do GitHub:

npx @openai/codex-security bulk-scan

Para usar uma lista preparada, forneça um CSV de repositórios e um diretório de saída:

npx @openai/codex-security bulk-scan repositories.csv \
  --output-dir /path/outside/repositories/security-scans \
  --workers 4

Consulte Executar varreduras de segurança em massa para conhecer a descoberta de repositórios no GitHub, o formato CSV, os resultados da campanha e as opções disponíveis.

É possível retomar uma varredura em massa interrompida

Sim. Execute o mesmo comando de varredura em massa com o CSV e o diretório de saída originais. O Codex Security ignora os repositórios que já tiveram a varredura concluída.

Adicione --max-attempts 3 para tentar novamente em caso de erros temporários no repositório ou na varredura:

npx @openai/codex-security bulk-scan repositories.csv \
  --output-dir /path/outside/repositories/security-scans \
  --workers 4 \
  --max-attempts 3

Uma varredura concluída com cobertura partial ou unknown mantém os resultados e faz a campanha encerrar com o código de saída 2. Essa varredura não é repetida, mesmo com --max-attempts.

Como uma varredura pode usar a arquitetura e as políticas de segurança

Forneça documentos de arquitetura, modelos de ameaças ou políticas de segurança com --knowledge-base:

npx @openai/codex-security scan . \
  --knowledge-base /path/to/architecture.md \
  --knowledge-base /path/to/security-policies

O Codex Security usa esses documentos como contexto da varredura atual. Para saber quais tipos de arquivo são compatíveis e como os diretórios são tratados, consulte Adicionar contexto de segurança.

Descobertas e cobertura

Onde as equipes podem encontrar resultados de varreduras anteriores

Liste as varreduras salvas do seu repositório:

npx @openai/codex-security scans list /path/to/repository

Use um ID de varredura dos resultados para inspecionar as descobertas dessa varredura:

npx @openai/codex-security scans show SCAN_ID

Cada varredura concluída mantém juntos o relatório, as descobertas, a cobertura e os artefatos de apoio. Consulte Artefatos da varredura para ver a estrutura completa.

Para inspecionar eventos salvos das varreduras e dos workers, execute scans logs SCAN_ID. Esses logs não têm informações ocultadas e podem conter código-fonte ou credenciais.

O que fazer se a CLI não conseguir salvar o histórico de varreduras

O Codex Security mantém o histórico de varreduras em um banco de dados de trabalho. Se o diretório padrão de estado não permitir gravação, escolha um diretório privado fora do repositório:

export CODEX_SECURITY_STATE_DIR=/path/outside/repository/codex-security-state

Como as varreduras distinguem descobertas novas e conhecidas

Liste as descobertas em aberto de todas as varreduras de um repositório:

npx @openai/codex-security findings list /path/to/repository

A lista identifica as descobertas confirmadas na varredura mais recente e as descobertas anteriores em aberto que a varredura não confirmou.

Compare as descobertas entre as duas varreduras:

npx @openai/codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_ID

A comparação associa automaticamente as descobertas pela causa raiz, reutiliza as correspondências salvas e identifica descobertas novas, persistentes, reabertas, resolvidas e desconhecidas. Uma descoberta só é considerada resolvida quando a varredura posterior cobre seu alvo original e o caminho afetado sem lacunas de cobertura.

Como funciona o feedback sobre falsos positivos

Inspecione a varredura salva para encontrar o ID da ocorrência:

npx @openai/codex-security scans show SCAN_ID

Registre por que essa descoberta não se aplica:

npx @openai/codex-security findings false-positive FINDING_OCCURRENCE_ID \
  --reason "The framework escapes this input before it reaches the query"

As futuras varreduras do mesmo repositório recebem essa explicação como contexto. Elas continuam verificando de forma independente o código-fonte atual, os controles e a alcançabilidade. O descarte não suprime uma regra, um caminho nem uma classe de vulnerabilidade.

Para ver detalhes do comando, consulte a referência de descobertas.

Por que varreduras repetidas podem retornar descobertas diferentes

As varreduras assistidas por IA podem variar, mesmo com a mesma configuração de varredura. Comece executando novamente sua varredura de referência:

npx @openai/codex-security scans rerun BASELINE_SCAN_ID

A nova execução preserva a configuração original da varredura e exige a mesma versão do plug-in. Se o plug-in instalado tiver sido alterado, o comando é interrompido.

Compare a varredura de referência com a nova varredura:

npx @openai/codex-security scans compare BASELINE_SCAN_ID REPEAT_SCAN_ID

Forneça orientações compartilhadas de arquitetura e segurança quando a falta de contexto puder contribuir para a variação. A correspondência pode identificar a mesma descoberta subjacente em diferentes execuções, mas não torna as varreduras determinísticas. Verifique diretamente qualquer descoberta importante que desaparecer.

Como uma equipe pode confirmar que uma correção funcionou

Depois de aplicar uma correção, execute novamente a varredura original:

npx @openai/codex-security scans rerun BEFORE_SCAN_ID

Compare as descobertas originais com a nova varredura:

npx @openai/codex-security scans compare BEFORE_SCAN_ID AFTER_SCAN_ID

Confirme se a nova varredura cobre o alvo original e o caminho afetado sem lacunas de cobertura. Em seguida, verifique diretamente a descoberta original no checkout atual:

npx @openai/codex-security validate /path/to/original/findings.json \
  "Recheck the SQL injection in src/orders.ts:42 against the current code"

A ausência de uma descoberta ou apenas uma comparação de varreduras não comprova que uma correção funcionou.

O que significa cobertura incompleta

A cobertura pode ser complete, partial ou unknown. Examine coverage.json para identificar caminhos excluídos, superfícies cuja análise foi adiada e questões em aberto antes de considerar uma varredura como evidência de revisão.

As varreduras com cobertura parcial ou desconhecida retornam o código de saída 2, mesmo sem uma política de gravidade. Elas ainda mantêm as descobertas e os dados de cobertura disponíveis. Uma varredura posterior não pode confirmar que uma descoberta anterior deixou de existir quando não cobre o caminho original dessa descoberta.

Automação e custo

Como funcionam os limites de tempo das varreduras aprofundadas

Defina um prazo de execução para os workers ao iniciar uma varredura aprofundada:

npx @openai/codex-security scan . --mode deep --max-time-hours 1.5

O prazo padrão é de 96 horas. Use qualquer valor positivo de até 96, incluindo frações. Ao atingir o prazo, o Codex Security interrompe os workers que não concluíram a execução, preserva os resultados das varreduras padrão concluídas e os consolida no relatório final. Se nenhum worker concluir a revisão do código-fonte, o relatório registra cobertura parcial e a CLI retorna o código de saída 2.

Para configurações persistentes ou campanhas em massa, defina max_time_hours em [deep_scan] na configuração da varredura aprofundada.

Como funcionam os limites de custo das varreduras

Defina um limite de custo estimado em USD antes de iniciar a varredura:

npx @openai/codex-security scan . --max-cost 5

O limite é uma estimativa, não um teto rígido de gastos. As solicitações já em andamento podem ser concluídas acima desse limite. Se uma varredura aprofundada atingir o limite depois que o Codex Security consolidar os resultados dos workers que concluíram a execução, a CLI salvará o relatório concluído com cobertura parcial e será encerrada com o código 2. Caso contrário, preservará qualquer saída parcial disponível.

As varreduras podem verificar commits e pull requests

Instale uma verificação de segurança pré-commit para alterações preparadas e não preparadas:

npx @openai/codex-security install-hook

Para verificar pull requests, analise as alterações registradas em commits e defina um limite de gravidade:

npx @openai/codex-security scan . \
  --diff origin/main \
  --fail-on-severity high

Uma verificação completa retorna o código de saída 1 quando encontra uma issue de gravidade igual ou superior à selecionada. Consulte Executar verificações em CI para conhecer o fluxo de trabalho completo do GitHub Actions, o tratamento de artefatos e a exportação SARIF.

Outro aplicativo pode executar verificações diretamente

Sim. Use o TypeScript SDK para iniciar verificações, selecionar alvos, inspecionar achados e a cobertura, acompanhar o progresso e aplicar controles de custos a partir de um aplicativo ou de uma ferramenta de desenvolvimento.