BLOG | NGINX

Proteção de APIs gRPC com o NGINX App Protect

NGINX-Parte-de-F5-horiz-preto-tipo-RGB
Miniatura de Yaniv Sazman
Yaniv Sazman
Publicado em 10 de fevereiro de 2021

No princípio era o monólito. Ele serviu bem aos desenvolvedores de software por um longo tempo e ainda serve para alguns casos de uso. Mas, à medida que as aplicações cresceram, os monólitos se tornaram difíceis de desenvolver, proteger e manter. Os microsserviços surgiram como uma alternativa: o monólito é dividido em serviços pequenos e autônomos que executam uma única função comercial e se comunicam por uma rede para fornecer a funcionalidade completa do aplicativo. Inicialmente, os desenvolvedores web usavam SOAP como protocolo de comunicação e XML para codificar dados, mas muitos achavam a combinação complicada e lenta. Isso inspirou uma mudança para arquiteturas baseadas em REST e a adoção generalizada de HTTP e JSON como protocolo e método de serialização de dados, respectivamente.

Mas, como costuma acontecer com a tecnologia, os desenvolvedores continuaram a procurar maneiras ainda melhores de projetar aplicativos, por exemplo, para superar as limitações inerentes à orientação baseada em texto do SOAP e REST. Um desses sistemas é o gRPC , que o Google desenvolveu para conectar sua vasta gama de serviços independentes e autônomos. O gRPC usa buffers de protocolo (protobufs) como um mecanismo neutro de plataforma e linguagem para serializar dados estruturados, e HTTP/2 como protocolo de comunicação.

Benefícios do gRPC

Entre as vantagens do gRPC sobre outras estruturas de API estão sua baixa latência de transferência, suporte para vários idiomas, representação compacta de dados e streaming em tempo real, tudo o que o torna especialmente adequado para comunicação entre microsserviços e em redes de baixa potência e baixa largura de banda. A popularidade do gRPC aumentou significativamente nos últimos anos porque facilita a criação de novos serviços de forma mais rápida e eficiente, com maior confiabilidade e escalabilidade e com independência de linguagem para clientes e servidores.

Um exemplo proeminente dos benefícios do gRPC é o open banking , que usa tecnologias de código aberto para criar e entregar APIs, permitindo que desenvolvedores terceirizados ofereçam serviços adicionais aos clientes de um banco ou outra instituição financeira. Toda a base do open banking é construída sobre o ideal de fornecer informações financeiras de forma mais eficaz e eficiente. O gRPC ajuda a atingir esse objetivo porque o formato compacto dos buffers de protocolo e a multiplexação em HTTP/2 tornam a transferência de uma determinada carga muito mais rápida do que com APIs REST: aproximadamente 7 vezes mais rápido ao receber dados e 10 vezes mais rápido ao enviar dados. Como resultado, as instituições financeiras estão adotando o gRPC para suas comunicações entre serviços para fornecer serviços mais rapidamente e com maior eficácia, confiabilidade e escala.

Um caso de uso específico em que a velocidade do gRPC é uma grande vantagem é o processo de integração do cliente, que no open banking é fundamental para o sucesso. Com outras estruturas de API, criar uma nova conta pode ser trabalhoso e demorado tanto para instituições financeiras quanto para clientes. Com o gRPC, a transferência rápida de dados significa que os clientes podem criar uma nova conta em minutos. Isso aumenta muito a satisfação do cliente e diminui substancialmente os custos para a instituição financeira.

Protegendo o gRPC

O padrão gRPC e o formato de buffers de protocolo são implementados como uma biblioteca de código aberto. Os buffers de protocolo são considerados mais seguros contra ataques cibernéticos do que outras representações de dados, pois o analisador da biblioteca rejeita solicitações malformadas e analisa com mais cuidado como a biblioteca se comporta.

Mas algumas oportunidades desconcertantes para ataques contra gRPC permanecem. Por exemplo, o analisador:

  • Permite que um fluxo de mensagens seja enviado sem a palavra-chave stream
  • Permite múltiplas ocorrências de um campo em uma mensagem, mesmo que o campo não seja declarado como repetível
  • Não verifica chaves repetidas em campos de mapa; apenas a ocorrência final da chave é considerada
  • Não verifica um dos tipos de compostos e permite que mais de um campo esteja presente

Um invasor pode explorar essas lacunas no protocolo gRPC para comprometer um aplicativo. Os buffers de protocolo também permitem a criação de campos que não estão definidos nas definições de mensagens. Isso garante a extensibilidade do design – permitindo a compatibilidade com futuras versões estendidas de uma mensagem – mas também pode tornar os aplicativos vulneráveis a ataques de contrabando, nos quais os invasores incorporam campos em suas solicitações que não são explicitamente codificados conforme permitido no aplicativo.

NGINX App Protect protege APIs gRPC

O NGINX App Protect foi projetado para proteger aplicativos modernos baseados em gRPC mais próximos do aplicativo de serviço. Isso capacita as equipes de AppDev, DevOps e DevSecOps a gerenciar a segurança de aplicativos como um código e aproveitar ferramentas nativas.

Por exemplo, o NGINX App Protect garante que as instituições financeiras e seus serviços estejam em conformidade com os padrões bancários abertos ao implementar o gRPC para suas comunicações entre serviços. O mecanismo do NGINX App Protect executa uma inspeção profunda de mensagens gRPC em solicitações de conexão, analisa mensagens de buffer de protocolo e detecta dados maliciosos nos cabeçalhos e cargas úteis das mensagens, incluindo em todas as estruturas de dados aninhadas e complexas. A inspeção é realizada em qualquer solicitação e aplica um mecanismo de detecção de ataque para cada parâmetro de chamada de API.

Com as APIs gRPC, você usa a interface gRPC para definir a política de segurança no arquivo de biblioteca de tipos (arquivo IDL) e nos arquivos de definição proto para buffers de protocolo. Quando os arquivos atualizados são carregados, o NGINX App Protect começa imediatamente a aplicar as novas políticas de segurança sem a necessidade de nenhuma alteração em sua configuração. Os arquivos proto gRPC são frequentemente atualizados como parte dos pipelines de CI/CD, portanto, a atualização das políticas de segurança não interrompe ou adiciona sobrecarga aos seus processos, e seus aplicativos estão sempre protegidos pela política mais recente e atualizada .

Além de proteger o tráfego leste-oeste entre microsserviços baseados em gRPC, o NGINX App Protect protege o tráfego norte-sul entre seus ativos expostos publicamente.

Embora o gRPC melhore a velocidade, a eficiência e a escala das comunicações entre serviços , é crucial proteger e assegurar dados de API (URLs, cabeçalhos e cargas úteis) e serviços de aplicativos que expõem APIs gRPC. É por isso que o NGINX App Protect é essencial para a arquitetura de seus aplicativos modernos.

Para mais informações sobre gRPC com NGINX App Protect, confira nosso vídeo lightboard:

Experimente o NGINX App Protect gratuitamente

Para obter mais informações sobre o suporte ao gRPC no NGINX App Protect, consulte a documentação .

Para experimentar o NGINX Plus e o NGINX App Protect com suas APIs gRPC, inicie um teste gratuito de 30 dias ou entre em contato conosco para discutir seus casos de uso .


"Esta postagem do blog pode fazer referência a produtos que não estão mais disponíveis e/ou não têm mais suporte. Para obter as informações mais atualizadas sobre os produtos e soluções F5 NGINX disponíveis, explore nossa família de produtos NGINX . O NGINX agora faz parte do F5. Todos os links anteriores do NGINX.com redirecionarão para conteúdo semelhante do NGINX no F5.com."