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
Quem pode utilizar a CLI
O pacote @openai/codex-security é público. Instale a CLI e o SDK:
npm install @openai/codex-securityA execução de análises requer acesso ao Codex Security. Para obter os melhores resultados, utilize uma conta verificada para Trusted Access for Cyber.
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.
Como funciona a análise de repositórios em massa
Inicie sessão com a GitHub CLI:
gh auth loginDetete e selecione repositórios de uma conta ou organização do GitHub:
npx @openai/codex-security bulk-scanPara 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 4Consulte Executar análises de segurança em massa para obter informações sobre a deteção no GitHub, o formato CSV, os resultados da campanha e as opções disponíveis.
É 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 quando os artefactos de análise registados permanecem intactos.
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 3Como pode uma análise utilizar políticas de arquitetura e 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-policiesO Codex Security utiliza estes documentos como contexto para a análise atual. Para conhecer os tipos de ficheiro suportados e o comportamento dos diretórios, consulte Adicionar contexto de segurança.
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.
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
Faça corresponder os resultados que partilham uma causa principal entre as duas análises:
npx @openai/codex-security scans match PREVIOUS_SCAN_ID CURRENT_SCAN_IDCompare os resultados correspondentes:
npx @openai/codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_IDA comparação identifica resultados novos, persistentes, reabertos, resolvidos e desconhecidos. Um resultado só é considerado resolvido quando a análise posterior abrange o respetivo alvo original e caminho afetado sem lacunas de cobertura.
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_IDFaça corresponder os resultados de referência à nova análise:
npx @openai/codex-security scans match BASELINE_SCAN_ID REPEAT_SCAN_IDCompare os resultados correspondentes:
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
Depois de aplicar uma correção, execute novamente a análise original:
npx @openai/codex-security scans rerun BEFORE_SCAN_IDFaça corresponder os resultados originais à nova análise:
npx @openai/codex-security scans match BEFORE_SCAN_ID AFTER_SCAN_IDCompare os resultados correspondentes:
npx @openai/codex-security scans compare BEFORE_SCAN_ID AFTER_SCAN_IDConfirme que a nova análise abrange o alvo original e o caminho afetado sem lacunas de cobertura. Em seguida, volte a verificar diretamente o resultado original na versão atualmente extraída:
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 um resultado ou apenas a comparação de análises não prova que uma correção funcionou.
O que significa uma cobertura incompleta
A cobertura pode ser complete, partial ou unknown. Consulte coverage.json
para verificar caminhos excluídos, superfícies adiadas e questões em aberto antes de considerar uma
análise como prova de revisão.
As análises com cobertura parcial ou desconhecida devolvem o código de saída 2, mesmo sem uma
política de gravidade. Continuam a conservar todos os resultados e dados de cobertura disponíveis. Uma análise
posterior não pode determinar que um resultado anterior deixou de existir quando não
abrange o caminho original desse resultado.
Automatização e custos
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 limite máximo rígido de despesas. Os pedidos já em curso podem terminar acima do limite. O Codex Security mantém os resultados disponíveis quando a análise é interrompida.
Podem as análises verificar commits e pull requests
Instale uma verificação de segurança pre-commit para alterações em staging e fora de staging:
npx @openai/codex-security install-hookPara verificações de pull requests, analise as alterações incluídas em commits e defina um limiar de gravidade:
npx @openai/codex-security scan . \
--diff origin/main \
--fail-on-severity highUma análise completa devolve o código de saída 1 quando encontra um problema com gravidade igual ou superior à
selecionada. Consulte Executar análises em CI para conhecer o
fluxo de trabalho completo do GitHub Actions, o tratamento de artefactos e a exportação SARIF.
Pode outra aplicação executar análises diretamente
Sim. Utilize o TypeScript SDK para iniciar análises, selecionar alvos, inspecionar resultados e cobertura, acompanhar o progresso e aplicar controlos de custos a partir de uma aplicação ou ferramenta de desenvolvimento.