Visão geral de aplicativos de terceiros no Junos OS Evolved
RESUMO Você pode executar aplicativos de terceiros dentro de contêineres Linux ou nativamente no Junos OS Evolved com as chaves de assinatura. Os aplicativos usam APIs da Juniper para interagir com o sistema Junos OS Evolved e APIs Linux para tarefas de rede. Aplicativos não verificados são evitados por uma solução de integridade chamada Integrity Measurement Architecture (IMA).
Introdução a aplicativos de terceiros no Junos OS Evolved
O Junos OS Evolved é executado nativamente no Linux, o que significa que você pode integrar aplicativos e ferramentas de terceiros desenvolvidos para Linux no Junos OS Evolved. As ferramentas de desenvolvimento do Linux também lhe dão o poder de criar e executar seus próprios aplicativos no Junos OS Evolved. Você pode optar por executar esses aplicativos dentro de um contêiner ou nativamente no dispositivo com as chaves de assinatura.
Execução de aplicativos em contêineres
O Junos OS Evolved oferece suporte à execução de aplicativos dentro de contêineres Docker. Os contêineres são executados no Junos OS Evolved, e aplicativos são executados dentro dos contêineres, mantendo-os isolados do OS. Você pode usar imagens pré-construídas do contêiner Docker e instalar ferramentas e bibliotecas adicionais dentro do contêiner. Os contêineres podem ser atualizados usando o fluxo de trabalho do Linux.
Os contêineres já são um método comumente usado para executar aplicativos Linux, de modo que muitos aplicativos de terceiros existentes podem ser facilmente importados para o Junos OS Evolved, implantando-os dentro de contêineres. A natureza isolada dos contêineres os torna fáceis de implantar e remover sem comprometer a integridade do Junos OS Evolved. Além disso, o Junos OS Evolved coloca limites padrão no uso de recursos de contêineres, para garantir que contêineres desonestos não possam sobrecarregar o seu sistema.
O serviço de contêiner Docker não é iniciado automaticamente na inicialização do sistema. Para ativar a inicialização automática do serviço de contêiner Docker, insira o seguinte comando da shell do Linux:
# systemctl enable --now docker.service
Para obter mais informações sobre a execução de aplicativos em contêineres, veja como executar aplicativos de terceiros em contêineres
Executando aplicativos nativamente com as chaves de assinatura
Aplicativos de terceiros podem ser executados nativamente no Junos OS Evolved usando chaves de assinatura. Você gera chaves de assinatura e as usa para assinar arquivos executáveis ou objetos compartilhados. A assinatura de um arquivo executável lhe dá permissão para ser executado no dispositivo, permitindo que você aprove aplicativos confiáveis para serem executados junto com o software autorizado da Juniper Networks.
As chaves de assinatura são controladas por um subsistema linux chamado Integrity Measurement Architecture (IMA). A política de IMA consiste em regras que definem quais ações precisam ser tomadas antes que um arquivo possa ser executado. A política de medição de IMA medirá e armazenará o hash de um arquivo, e a política de avaliação do IMA garantirá que o arquivo tenha uma assinatura digital ou hash válida. A IMA só permitirá que um arquivo seja executado se essa validação for bem sucedida.
O Junos OS Evolved exige que os usuários assinem todos os arquivos que serão mapeados na memória para execução. A verificação da IMA ajuda a garantir que esses arquivos não tenham sido alterados acidentalmente ou maliciosamente. Contêineres e arquivos dentro de contêineres não precisam ser assinados.
Para obter mais informações sobre como usar as chaves de assinatura, veja a assinatura de aplicativos de terceiros para serem executados nativamente no Junos OS Evolved
Pré-requisitos do aplicativo
Aplicativos de terceiros são suportados para as seguintes versões Junos OS Evolved:
-
Junos OS Evolved versão 20.1R1 e posterior para aplicativos em contêineres.
-
Junos OS Evolved versão 22.4R1 e posterior para aplicativos nativos.
-
O Junos OS Evolved versão 23.2R1 e posterior para aplicativos dual Routing Engine.
Os aplicativos devem oferecer suporte à versão do kernel linux em execução no Junos OS Evolved para funcionar corretamente. Use o show version
comando para visualizar a versão atualmente em execução do kernel do Linux.
Os aplicativos escritos para o Junos OS Evolved normalmente exigem a capacidade de ler e modificar o estado da rede, de enviar e receber pacotes, de ler e modificar a configuração. O Junos OS Evolved oferece suporte a um número limitado de APIs, portanto, os aplicativos devem ser configurados com essas APIs em mente.
APIs de aplicativos
Existem duas categorias de APIs usadas por aplicativos:
-
APIs linux para leitura e modificação do estado de rede e envio e recebimento de pacotes.
-
APIs da Juniper para interagir com o sistema.
O Junos OS Evolved oferece suporte a essas duas categorias de APIs. A Tabela 1 oferece uma visão de alto nível do conjunto de APIs usadas por aplicativos:
API |
Funcionalidade |
APIs de soquete de Pacote IO e Linux |
Capacidade de enviar e receber pacotes em interfaces de dados e/ou mgmt. Libc padrão – enviar, receber, ouvir etc. |
Capacidade de usar rtnetlink para consultar o estado da rede, como interfaces, rotas etc. |
|
Capacidade de configurar dispositivos de rede. |
|
Capacidade de consultar estruturas de dados do kernel usando interfaces padrão fornecidas pelo kernel do Linux. |
|
Junos APIs |
Capacidade de acessar APIs da Juniper para o norte — NetConf/JET/Telemetria. |
Para obter mais informações sobre as APIs juniper northbound, veja o seguinte:
Advertências de segurança
O Junos OS Evolved foi projetado desde o início com a segurança em mente. Os contêineres IMA e Linux ajudam a controlar o impacto de segurança de aplicativos de terceiros no Junos OS Evolved, mas aplicativos de terceiros ainda têm o potencial de introduzir vulnerabilidades de segurança por meio de código malicioso.
Considere sempre as implicações de segurança de adicionar um aplicativo de terceiros ao Junos OS Evolved. Certifique-se de que todos os aplicativos que você adicionar ao Junos OS Evolved sejam avaliados minuciosamente para possíveis riscos de segurança.
Segurança de arquivos com IMA
Os dispositivos de rede que executam o Junos OS Evolved são protegidos por uma solução de integridade chamada Integrity Measurement Architecture (IMA).
A integridade é uma propriedade de segurança fundamental que representa confiança, integridade e liberdade de alteração. Na segurança do computador, alvos comuns para proteções de integridade são arquivos do sistema operacional. Um método comum para garantir a integridade é comparar um arquivo com um bom arquivo conhecido.
No contexto do Junos OS Evolved, o objetivo de segurança é garantir que o software em execução em um dispositivo não tenha sido alterado acidentalmente ou maliciosamente. O software em execução em um dispositivo é um software Junos autêntico da Juniper Networks ou software autorizado implantado por um cliente.
O modelo de ameaças para dispositivos de rede inclui tentativas de atores maliciosos de implantar malware que viola as políticas implícitas ou explícitas dos proprietários de dispositivos. Esses malwares podem incluir portas traseiras, cavalos de Tróia ou implantes que poderiam prejudicar a operação segura e segura de dispositivos ou redes. Os agentes maliciosos usam uma variedade de ferramentas, técnicas e procedimentos para violar a integridade, incluindo ataques físicos, ataques locais e ataques remotos.
Muitos esquemas regulatórios cobram requisitos de integridade de arquivos, incluindo PCI-DSS - Padrão de segurança de dados do setor de cartões de pagamento (Requisito 11,5), SOX - Lei Sarbanes-Oxley (Seção 404), NERC CIP - NERC CIP Standard (CIP-010-2), FISMA - Lei Federal de Gerenciamento de Segurança da Informação (NIST SP800-53 Rev3), HIPAA - Lei de Portabilidade e Responsabilização de Seguros de Saúde de 1996 (Publicação NIST 800-66) e controles críticos de segurança SANS (Controle 3).
Para garantir a integridade dos arquivos e mitigar o risco de malware, o Junos OS Evolved executa IMA e um mecanismo complementar: o módulo de verificação estendida (EVM). Essas proteções de código aberto fazem parte de um conjunto de módulos de segurança linux que são padrão do setor e consistentes com os mecanismos de confiança especificados pelo Trusted Computing Group.
A Juniper Networks aplica assinaturas digitais aos arquivos Junos OS Evolved e permite que os clientes apliquem assinaturas digitais também. As assinaturas digitais são criadas usando chaves privadas protegidas e depois verificadas usando chaves públicas incorporadas em um ou mais chaveiros.
O subsistema IMA/EVM protege o sistema realizando verificações de tempo de execução. Se um arquivo falhar na verificação, ele não será aberto ou executado.
Isso significa que o software não verificado está bloqueado em um dispositivo que executa o Junos OS Evolved.