Perguntas frequentes sobre a CLI do Codex Security
Respostas sobre análises do Codex Security, resultados, falsos positivos, cobertura, custos e CI.
Encontre respostas a perguntas frequentes sobre a análise de repositórios e a gestão de resultados de segurança a partir do terminal. Para obter instruções de instalação e realizar uma primeira análise, comece pelo início rápido da CLI.
Análises de repositórios
Por que motivo uma análise utiliza uma API key após o início de sessão
Quando o seu ambiente inclui OPENAI_API_KEY ou CODEX_API_KEY, as análises
sem um terminal interativo e as análises JSON e JSONL utilizam, por predefinição, a
API key do ambiente, mesmo após um início de sessão bem-sucedido com o ChatGPT ou um token de acesso.
As análises interativas com saída de texto pedem-lhe que escolha quando também está
disponível um início de sessão com o ChatGPT. As simulações não apresentam pedidos nem carregam credenciais.
Para utilizar as credenciais guardadas numa análise, selecione-as explicitamente:
npx @openai/codex-security scan . --auth chatgptPara exigir uma API key de OPENAI_API_KEY ou CODEX_API_KEY:
npx @openai/codex-security scan . --auth api-keyPara tornar as credenciais guardadas a opção automática predefinida, execute
unset OPENAI_API_KEY CODEX_API_KEY. Para conhecer todos os modos de autenticação suportados,
consulte a referência da CLI.
É possível retomar uma análise em massa interrompida
Sim. Execute o mesmo comando de análise em massa com o CSV e o diretório de saída originais. O Codex Security ignora os repositórios concluídos.
Adicione --max-attempts 3 para tentar novamente após erros temporários do repositório ou da análise:
npx @openai/codex-security bulk-scan repositories.csv \
--output-dir /path/outside/repositories/security-scans \
--workers 4 \
--max-attempts 3As análises concluídas conservam os resultados e não são repetidas, mesmo quando subsistem lacunas
de cobertura. As lacunas de cobertura não fazem com que a campanha termine com o código 2.
Resultados e cobertura
Onde podem as equipas encontrar resultados de análises anteriores
Liste as análises guardadas para o seu repositório:
npx @openai/codex-security scans list /path/to/repositoryUtilize um ID de análise dos resultados para inspecionar os respetivos resultados de segurança:
npx @openai/codex-security scans show SCAN_IDCada análise concluída mantém em conjunto o respetivo relatório, resultados, cobertura e artefactos de suporte. Consulte Artefactos da análise para conhecer a estrutura completa.
Para inspecionar os eventos guardados da análise e dos processos de trabalho, execute scans logs SCAN_ID. Estes registos
não são expurgados e podem conter código-fonte ou credenciais.
O que fazer se a CLI não conseguir guardar o histórico de análises
O Codex Security mantém o histórico de análises numa base de dados do workbench. Se não for possível escrever no diretório de estado predefinido, escolha um diretório privado fora do repositório:
export CODEX_SECURITY_STATE_DIR=/path/outside/repository/codex-security-stateComo distinguem as análises os resultados novos dos já conhecidos
Liste as conclusões em aberto de todas as análises de um repositório:
npx @openai/codex-security findings list /path/to/repositoryA lista identifica as conclusões confirmadas na análise mais recente e as conclusões anteriores em aberto que a análise não confirmou.
Compare as ocorrências entre as duas análises:
npx @openai/codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_IDA comparação associa automaticamente as constatações pela causa raiz, reutiliza associações guardadas e identifica constatações novas, persistentes, reabertas, não observadas, resolvidas e desconhecidas. Quando uma análise posterior não encontra uma constatação anterior no código que analisou, a constatação é considerada não observada. Só é considerada resolvida depois de ser explicitamente encerrada como já corrigida. Os caminhos excluídos e as associações incertas permanecem com estado desconhecido.
Como funciona o feedback sobre falsos positivos
Inspecione a análise guardada para encontrar o ID da ocorrência:
npx @openai/codex-security scans show SCAN_IDRegiste o motivo pelo qual esse resultado 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 análises futuras do mesmo repositório recebem essa explicação como contexto. Ainda assim, verificam de forma independente o código-fonte, os controlos e a acessibilidade atuais. Uma rejeição não suprime uma regra, um caminho nem uma classe de vulnerabilidade.
Para obter detalhes sobre os comandos, consulte a referência de resultados.
Por que motivo podem análises repetidas devolver resultados diferentes
As análises assistidas por IA podem variar, mesmo com a mesma configuração de análise. Comece por executar novamente a sua análise de referência:
npx @openai/codex-security scans rerun BASELINE_SCAN_IDA repetição da análise mantém a configuração da análise original e requer a mesma versão do plugin. Se o plugin instalado tiver sido alterado, o comando para.
Compare a análise de referência com a nova análise:
npx @openai/codex-security scans compare BASELINE_SCAN_ID REPEAT_SCAN_IDForneça orientações comuns de arquitetura e segurança quando a falta de contexto puder contribuir para a variação. A correspondência pode identificar o mesmo resultado subjacente em diferentes execuções, mas não torna as análises determinísticas. Volte a verificar diretamente qualquer resultado importante que desapareça.
Como pode uma equipa confirmar que uma correção funcionou
Volte a verificar a constatação original na cópia de trabalho alterada. A partir dessa cópia de trabalho, forneça o respetivo relatório e o problema que pretende validar:
npx @openai/codex-security validate /path/to/original/findings.json \
"Recheck the SQL injection in src/orders.ts:42 against the current code"Reveja as evidências de que o percurso vulnerável foi eliminado e de que o comportamento legítimo continua a funcionar. Execute o procedimento original de reprodução ou o teste de regressão, quando disponível. Se não for possível executar a verificação, registe no resultado a incerteza que subsiste.
Uma comparação de análises pode mostrar como as constatações mudaram, mas a ausência de uma constatação, por si só, não comprova uma correção.
O que significa uma cobertura incompleta
Consulte coverage.json para ver caminhos excluídos, áreas adiadas e questões em aberto.
Os novos resultados não incluem um campo de completude da cobertura. Consulte scan.status em
scan-manifest.json para ver o estado da execução.
As lacunas de cobertura não alteram o código de saída de uma análise concluída. O código de saída 0 não significa que
todos os ficheiros tenham sido revistos. Uma análise posterior não pode comprovar que uma constatação anterior
já não existe se não abranger o caminho original dessa constatação.
Automatização e custos
Como funcionam os limites de tempo das análises aprofundadas
Defina um prazo para os workers ao iniciar uma análise aprofundada:
npx @openai/codex-security scan . --mode deep --max-time-hours 1.5O valor predefinido é de 96 horas. Utilize qualquer valor positivo até 96, incluindo
frações. Ao atingir o prazo, o Codex Security interrompe os processos de trabalho por concluir, conserva
os resultados das análises padrão concluídas e agrega-os no relatório final.
Consulte o relatório para ver as áreas revistas e o trabalho adiado. O prazo, por si só,
não determina o código de saída; este depende do estado da execução e da política de gravidade.
Para definições persistentes ou campanhas em massa, defina max_time_hours em
[deep_scan] na configuração de análises
aprofundadas.
Como funcionam os limites de custos das análises
Defina um limite de custo estimado em USD antes de iniciar a análise:
npx @openai/codex-security scan . --max-cost 5O limite é uma estimativa, não um teto rígido de despesas. Os pedidos já em
curso podem terminar acima desse valor. Se uma análise aprofundada atingir o limite depois de o Codex
Security agregar os resultados dos processos de trabalho concluídos, a CLI pode guardar um relatório
concluído com um aviso de orçamento. Devolve 0, ou 1 se as constatações atingirem o
limiar de gravidade configurado. Se não conseguir produzir um resultado concluído válido,
devolve 2 e preserva todos os dados de saída disponíveis.
Para verificações de pull requests do GitHub e análises agendadas de repositórios, utilize a
Codex Security GitHub Action. Com
action-v0.3.0, uma análise concluída significa que a análise configurada produziu um
resultado válido. As exclusões de âmbito e as investigações adiadas não contornam a
política de gravidade. Reveja coverage.json para avaliar o âmbito e as
limitações da análise. Para também rejeitar diffs vazios e execuções de simulação, exija que a saída
scan-status da Action seja completed; consulte Escolher uma política de
gravidade.
Para outros fornecedores, consulte a descrição geral de CI/CD.
Para efetuar uma verificação antes de cada commit, utilize
install-hook.