Assinatura e verificação de arquivos verificados por executivo (Veriexec) para o Junos OS

Saiba mais sobre a assinatura e verificação de arquivos Veriexec, os benefícios e como usá-la.

O Verified Exec (também conhecido como veriexec) é um esquema de assinatura e verificação de arquivos que protege o Sistema operacional Junos (SO) contra software e atividades não autorizadas que podem comprometer a integridade do seu dispositivo. Originalmente desenvolvido para o sistema operacional NetBSD, o veriexec foi adaptado para o Junos OS e é habilitado por padrão.

Arquivos autorizados, ou seja, certos arquivos que vêm com o Junos OS, têm uma impressão digital associada que a veriexec verifica para determinar se o arquivo pode ser usado (executado ou mesmo aberto). Qualquer arquivo que não tenha uma impressão digital válida não pode ser executado ou acessado por aplicativos que exijam entrada verificada.

O/bin/sh arquivo não requer entrada verificada. Você pode usar esse arquivo para executar scripts arbitrários. Do ponto de vista do risco, esses scripts são iguais aos comandos interativos, que são controlados por meio de autenticação e permissões do usuário. No entanto, se um script de shell verificado contiver instruções para executar um script arbitrário, ou seja, um arquivo sem uma assinatura no manifesto, a execução desse arquivo será impedida.

Como funciona a Veriexec

A Veriexec fornece ao kernel um manifesto assinado digitalmente que consiste em um conjunto de impressões digitais para todos os executáveis e outros arquivos que devem permanecer imutáveis. O carregador veriexec alimenta o conteúdo do manifesto para o kernel somente se as assinaturas digitais associadas ao manifesto forem verificadas com êxito. O kernel pode então verificar se um arquivo corresponde à sua impressão digital. Se veriexec for imposto, somente executáveis com uma impressão digital verificada serão executados. Os arquivos protegidos não podem ser gravados, modificados ou alterados.

Cada imagem de instalação contém um manifesto, que é um arquivo somente leitura. Os exemplos de impressão digital neste tópico usam hashes SHA-1 para ilustração. O algoritmo de hash usado pela Veriexec pode variar dependendo da versão e da plataforma do Junos OS. Ele contém entradas como as seguintes:

A mensagem de log está no seguinte formato:

Se um arquivo tiver sido modificado e a impressão digital resultante for diferente da do manifesto, você verá uma mensagem de log, como o exemplo a seguir:

A incompatibilidade de impressão digital indica que o arquivo foi modificado. Não tente executar esse arquivo, pois ele pode conter código corrompido. Entre em contato com a JTAC para obter orientação.

Benefícios do Veriexec

  • Sistemas seguros — proteja os roteadores, switches e firewalls da Juniper Networks contra violações de segurança.

  • Impedir o acesso não autorizado — Impeça que os agentes de ameaças obtenham acesso persistente e não autorizado ou causem falha no sistema.

  • Impedir a execução de malware— Bloqueie modificações não autorizadas e malware através da prevenção da execução binária não assinada.

  • Suporte a código autorizado — adicione código assinado e autorizado ao Junos OS com aplicação veriexec usando o JET SDK. Para obter mais informações sobre a solução SDK, consulte o Guia do desenvolvedor do Juniper Extension Toolkit.

Como verificar se o Veriexec funciona — Opção 1

Algumas plataformas Junos OS oferecem uma versão opcional do Junos OS com a aplicação veriexec desativada. Para obter informações detalhadas, consulte Automação aprimorada do Junos.

Os administradores podem verificar se o veriexec é aplicado executando os seguintes comandos do shell CLI do Junos OS:

  1. Inicie o shell.

  2. Use o comando para o sysctl security.mac.veriexec.state Junos OS versão 15.1 e posterior

    Se veriexec for imposto, a saída será security.mac.veriexec.state: loaded active enforce. Se veriexec não for imposto, a saída será security.mac.veriexec.state: loaded active.

Como verificar se o Veriexec funciona — Opção 2

Você pode confirmar se veriexec está funcionando copiando um arquivo autorizado (por exemplo, /usr/bin/id) para um novo local, conforme mostrado abaixo. O Veriexec impede a operação, pois mesmo que o arquivo seja idêntico, existe uma impressão digital válida apenas para /usr/bin/id, não para /tmp/id. Embora o conteúdo do arquivo permaneça inalterado após ser copiado, a veriexec valida o arquivo em relação às informações armazenadas no manifesto, incluindo o caminho do arquivo e os metadados associados. Como resultado, o arquivo copiado não corresponde a uma entrada de manifesto protegida e é bloqueado.

  1. Inicie o shell.

  2. Altere os diretórios e copie um arquivo autorizado, por exemplo, /usr/bin/id, para um novo local.

Resultados

Se veriexec estiver sendo imposto, uma mensagem de erro de autenticação será gerada. Se uma mensagem de erro não for gerada, o arquivo será executado normalmente.

Saída gerada quando veriexec é imposto, mostrando que o arquivo está bloqueado:

Saída gerada quando veriexec não é imposto, mostrando que o arquivo foi copiado

Instale o Veriexec Loader

O carregador veriexec valida a imagem do Junos OS que você instala a partir de um servidor TFTP (Trivial File Transfer Protocol) ou de um dispositivo de armazenamento USB.

  • Para instalar a imagem do Junos OS de um servidor TFTP, use este comando:

  • Instale a imagem do Junos OS de um dispositivo de armazenamento USB usando o seguinte comando.

O carregador compatível com verieexec valida a imagem do Junos OS. O carregador inicializa apenas novas imagens do Junos OS com impressões digitais e não inicializa imagens existentes sem impressões digitais ou um kernel. Você pode usar a nextboot função para verificar o dispositivo de inicialização atual.

Bootupgrade é uma ferramenta disponível no pacote Junos OS para oferecer suporte à atualização do firmware do BIOS. Você pode usar o comando para atualizar, verificar o bootupgrade U-Boot, carregar manualmente e instalar o carregador compatível com veriexec. O bootupgrade -c loader comando imprime a cadeia de caracteres de versão do carregador atual.

Antes de instalar o carregador compatível com veriexec em uma imagem do Junos OS, a identificação das impressões digitais do Junos OS é realizada em ambas as partições de raiz dupla. O carregador compatível com veriexec pode ser instalado apenas quando ambas as partições dual-root têm o Junos OS com impressões digitais.

Instale o carregador compatível com verieexec a partir do shell Junos OS CLI:

  1. Inicie o shell.

  2. Use o bootupgrade -l /boot/veloader comando para instalar o carregador compatível com veriexec.

  3. Você pode ver diferentes cenários aqui:

    • Use request system software add /var/tmp/xxx.tgz no-copy no-validate o comando para instalar o Junos OS com impressões digitais.

    • Se o carregador compatível com veriexec não suportar as imagens do Junos OS de destino de versões anteriores, você poderá fazer o downgrade para uma versão anterior do carregador compatível com a versão. Use o request system software add /var/tmp/xxx.tgz no-copy no-validate comando para fazer downgrade automaticamente para uma versão anterior do carregador.
    • Use o request system software add /var/tmp/xxx comando para verificar se o pacote Junos OS é compatível com a instalação com o carregador veriexec.

      Neste exemplo, você vê que a instalação foi encerrada porque o carregador veriexec não é suportado para versões do Junos OS anteriores à 20.3R1.