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
Theme

Revise a segurança das alterações de código

Revise pull requests e alterações locais manualmente ou em CI/CD para identificar regressões de segurança.

Execute uma revisão de segurança para identificar regressões em um conjunto específico de alterações no Git. O Codex revisa cada arquivo alterado que contém código-fonte ou conteúdo semelhante, além do código que lhe dá suporte direto. A revisão não se estende a uma auditoria completa do repositório.

Para verificar um repositório inteiro em vez de uma alteração específica, consulte Execute uma verificação de segurança.

Execute uma revisão manual

No aplicativo para desktop, abra Segurança, selecione Verificações e depois + Verificação. Escolha o repositório e selecione Alterações. Você pode revisar alterações ainda sem commit, um único commit ou o intervalo entre uma revisão de base e uma revisão final. A opção Verificação aprofundada não está disponível para verificações de alterações.

Em uma conversa, você também pode pedir ao Codex que revise as alterações ainda sem commit:

Use $codex-security:security-diff-scan to review my current uncommitted changes for security regressions.

Para revisar um intervalo de commits ou comparar branches, especifique as duas revisões quando necessário:

Use $codex-security:security-diff-scan to review the changes from origin/main to HEAD for security regressions. Focus on authentication, authorization, input handling, filesystem access, network requests, and secrets.

Você também pode indicar um pull request se as revisões de base e final estiverem disponíveis na cópia local do repositório.

Confirme as alterações na configuração

  1. Selecione Alterações.
  2. Confirme o repositório aberto localmente, a branch atual e o commit mais recente.
  3. Em Alterações a revisar, escolha:
    • Uncommitted changes para revisar as alterações da árvore de trabalho atual.
    • O commit mais recente para revisar um único commit.
    • Uma revisão de base e uma revisão final para revisar um intervalo de uma branch ou de um pull request.
  4. Confirme se o resumo descreve as alterações que você pretende revisar.
  5. Selecione Iniciar verificação.

O Codex não muda para outra branch nem troca a árvore de trabalho selecionada. Se uma revisão solicitada não estiver disponível localmente, busque-a no repositório remoto antes da revisão ou indique revisões de base e final disponíveis localmente.

Trate os problemas identificados

Depois de revisar os resultados, corrija e verifique um problema aceito ou exporte e acompanhe os problemas identificados.

Automatize as revisões em CI/CD

Para usar a CLI independente, consulte Execute o Codex Security em CI para saber como obter resultados em JSON estruturado, aplicar uma política de severidade e enviar arquivos SARIF. Continue nesta seção para executar a habilidade do plugin instalado com codex exec.

Execute $codex-security:security-diff-scan em CI quando o executor puder chamar a CLI do Codex sem interação. Primeiro, instale a CLI sem expor a credencial da verificação:

npm install --global @openai/codex

Instale o plugin Codex Security na CLI:

codex plugin add codex-security@openai-curated

O comando de instalação usa o marketplace público de plugins da CLI do Codex. Consulte o histórico de alterações do plugin para conferir os requisitos de cada versão.

Em seguida, disponibilize uma chave de API da OpenAI armazenada no gerenciador de segredos da CI na variável CODEX_SECURITY_API_KEY. Exponha a credencial apenas durante a verificação:

CODEX_API_KEY="$CODEX_SECURITY_API_KEY" codex exec \
  --sandbox workspace-write \
  "Use \$codex-security:security-diff-scan to review changes from $BASE_REVISION to $HEAD_REVISION for security regressions. Do not modify the checkout."

Com permissão de escrita no sandbox, a verificação pode criar artefatos temporários. Mesmo assim, o prompt exige que o Codex mantenha intacta a cópia local do código-fonte.

A verificação grava os resultados em $TMPDIR/codex-security-scans/<repository>/<scan-id>/:

Arquivo Conteúdo
report.md Relatório principal, que serve de ponto de partida para explorar todo o diretório da verificação.
findings/<slug>/ Relatórios detalhados de vulnerabilidades e arquivos de prova de conceito que os acompanham, quando solicitados.
hardening/ Orientações para reforçar a segurança da estrutura do código e propostas relacionadas, quando solicitadas.
findings.json Problemas identificados, com identificadores estáveis, severidade, nível de confiança, localização no código-fonte e medidas de correção. Use esses campos em fluxos de trabalho de segurança ou em ferramentas que processam os resultados.
scan-manifest.json Comprovante selado da verificação, com o alvo revisado, as revisões e os hashes dos artefatos.
coverage.json Áreas revisadas, áreas cuja revisão foi adiada, exclusões e informações sobre até que ponto a cobertura está completa.

Para consultar a definição dos campos, veja o schema dos problemas identificados. Use findingId para identificar o problema e occurrenceId para identificar sua ocorrência nesta verificação.

Por exemplo, este comando exibe uma linha por problema, com os campos separados por tabulações:

jq -r '
  .findings[] |
  [.findingId, .severity.level, .confidence.level, .locations[0].path, .locations[0].startLine, .title] |
  @tsv
' findings.json

Os exemplos pressupõem um executor Linux confiável com Node.js e npm, Git, Python 3, jq e as ferramentas de linha de comando do provedor. O executor precisa ter permissão de escrita no diretório definido pelo prefixo global de pacotes do npm.

Os resultados da verificação podem incluir informações sensíveis sobre vulnerabilidades. Mantenha os artefatos privados e confira o destino e o conteúdo antes de publicar os problemas identificados. Escolha o exemplo correspondente ao seu provedor de CI:

Choose an option
name: Codex Security review

on:
  pull_request:

jobs:
  security-review:
    if: github.event.pull_request.head.repo.full_name == github.repository
    runs-on: ubuntu-latest
    permissions:
      contents: read
    steps:
      - uses: actions/checkout@v5
        with:
          ref: ${{ github.event.pull_request.head.sha }}
          fetch-depth: 0
          persist-credentials: false

      - name: Install Codex Security
        env:
          CODEX_HOME: ${{ runner.temp }}/codex-home
        run: |
          npm install --global @openai/codex
          codex plugin add codex-security@openai-curated

      - name: Review code changes
        env:
          CODEX_SECURITY_API_KEY: ${{ secrets.CODEX_SECURITY_API_KEY }}
          CODEX_HOME: ${{ runner.temp }}/codex-home
          TMPDIR: ${{ runner.temp }}/codex-security
          BASE_SHA: ${{ github.event.pull_request.base.sha }}
          HEAD_REVISION: ${{ github.event.pull_request.head.sha }}
        run: |
          BASE_REVISION="$(git merge-base "$BASE_SHA" "$HEAD_REVISION")"
          CODEX_API_KEY="$CODEX_SECURITY_API_KEY" codex exec \
            --sandbox workspace-write \
            "Use \$codex-security:security-diff-scan to review changes from $BASE_REVISION to $HEAD_REVISION for security regressions. Do not modify the checkout."

      - uses: actions/upload-artifact@v4
        if: always()
        with:
          name: codex-security-review
          path: ${{ runner.temp }}/codex-security/codex-security-scans

Os exemplos ignoram pull requests originados de forks. Execute jobs que usam credenciais somente a partir de uma definição de pipeline protegida e apenas para colaboradores a quem você confiaria a credencial da verificação. Arquive codex-security-scans para manter juntos os problemas identificados em formato estruturado, o manifesto, os dados de cobertura e o arquivo report.md, além dos resultados em findings/ ou hardening/, quando solicitados. Comece usando os resultados apenas como orientação e avalie a cobertura e o tempo de execução antes de tornar o job uma verificação obrigatória.

Para saber como lidar com chaves de API e configurar os controles do sandbox, consulte Modo não interativo. Se a sua organização permitir o uso da GitHub Action do Codex, ela poderá instalar a CLI durante a execução. Ainda assim, você precisa instalar o plugin primeiro e configurar a entrada codex-home da ação para apontar para o mesmo CODEX_HOME.