Você está vendo a documentação do Apigee Edge.
Acesse a
documentação da Apigee X. informações
Visão geral
Os ecossistemas de APIs sofrem vários ataques de clientes externos e internos. A oferta e o uso de APIs cria grandes oportunidades para os provedores de serviços, mas também apresenta alguns riscos à segurança. Os desenvolvedores precisam estar cientes desses desafios e resolvê-los ao criar e usar APIs.
O OWASP é uma comunidade aberta dedicada a ajudar as organizações a desenvolver, comprar e manter aplicativos e APIs confiáveis. Por meio do projeto de segurança da API OWASP, a OWASP publica os riscos de segurança mais críticos para aplicativos da Web e APIs REST e fornece recomendações para lidar com esses riscos.
Com a Apigee, a camada de proxy de API pode detectar, bloquear e informar solicitações de API malformadas do cliente antes que elas sejam processadas nos sistemas de back-end. Isso reduz os riscos e protege seus serviços. Solicitações malformadas podem incluir qualquer componente que componha o protocolo HTTP em nível de aplicativo:
- URL
- Cabeçalhos
- Caminho
- Payload
Solicitações de API malformadas podem ser de clientes conhecidos ou desconhecidos desenvolvidos por desenvolvedores externos, desenvolvedores internos ou bots maliciosos. Esses tipos de solicitações representam a maioria das ameaças OWASP, mas há outros componentes da camada de proxy de API subjacente que podem mitigar riscos, como mascaramento de dados, geração de registros, administração e assim por diante.
A plataforma inteligente de gerenciamento de APIs da Apigee permite resolver as principais vulnerabilidades de segurança da API OWASP sem problemas à medida que você adota uma abordagem focada no consumo para projetar suas APIs e conectá-las aos seus sistemas de back-end. Veja a seguir uma lista de políticas/configurações recomendadas pela Apigee para as principais ameaças REST OWASP.
Soluções da Apigee para os 10 principais OWASP de 2017
Quando se trata de criar e proteger aplicativos da Web, há muitas preocupações com segurança. O OWASP lançou a lista das 10 principais ameaças de segurança do OWASP de 2017 (em inglês) para aplicativos da Web. Embora um aplicativo da Web tenha muitas partes, a maioria dos apps modernos da Web depende muito de APIs REST. A Apigee não foi criada para atender a todas as necessidades de segurança de um aplicativo da Web, mas ela pode desempenhar um papel essencial na proteção das APIs REST. Veja a seguir as principais ameaças de segurança do OWASP com descrições de como é possível usar a Apigee para ajudar a lidar com essas ameaças.
A1:2017 - Injeção
Para se proteger contra injeção de dados não confiáveis, como SQL, NoSQL, LDAP e JavaScript, que pode resultar na execução de comandos não intencionais ou acesso não autorizado a dados, a Apigee oferece várias políticas de validação de entrada para verificar se os valores fornecidos por um cliente correspondem à expectativa antes de permitir mais processamento. O Apigee Edge, atuando como um servidor para as solicitações de API recebidas, verifica se a estrutura do payload está dentro de um intervalo aceitável, também conhecido como verificação de limite. É possível configurar um proxy de API para que a rotina de validação de entrada a transforme para remover sequências de caracteres arriscadas e substituí-las por valores seguros.
Há várias abordagens para validar a entrada com a plataforma Apigee:
- O JSONThreatProtection verifica se há ameaças no payload JSON.
- O XMLThreatProtection verifica o payload XML em busca de ameaças.
- A validação de parâmetro pode ser realizada usando JavaScript.
- A validação do cabeçalho pode ser realizada usando JavaScript.
- SQLCodeInjection pode ser processado usando a política RegularExpressionProtection.
Validar tipos de conteúdo:
- Solicitação: use a lógica condicional no fluxo do proxy para verificar o tipo de conteúdo. Use a política AssignMessage ou a política AumentarFault para retornar uma mensagem de erro personalizada.
- Resposta: use a lógica condicional no fluxo do proxy para verificar o tipo de conteúdo. Use a políticaAssignMessage para definir um cabeçalho Content-Type ou use uma política AttributionMessage ou IncreaseFault para retornar uma mensagem de erro personalizada.
A2:2017 - Falha na autenticação e no gerenciamento de sessão
Os invasores podem acessar senhas, tokens de sessão e chaves para falsificar a identidade de outros usuários ao aproveitar as falhas de implementação nos aplicativos. Isso é mais um problema de implementação e não de produto. A Apigee oferece políticas VerifyApiKey, OAuth e JSON Web Token (JWT), que ajudam na proteção contra essa vulnerabilidade.
Validação de chave de API
A validação de chaves de API é a forma mais simples de segurança baseada em app que pode ser configurada para uma API. Um app cliente simplesmente apresenta uma chave de API com a solicitação. Em seguida, o Apigee Edge, por uma política anexada a um proxy de API, verifica se a chave de API está em estado aprovado para o recurso solicitado.
A Apigee oferece suporte para a geração e validação de chaves de API. A Apigee gera uma chave de API e uma chave secreta quando um app do desenvolvedor é criado e aprovado e vinculado a um ou mais produtos de API.
Às vezes, o termo "chaves de API" pode ter significados diferentes. Na Apigee, quando a relação entre o app e o produto é formada, a Apigee gera um ID e uma chave secreta do cliente. Alguns se referem ao ID e ao secret como a chave de API. Algumas se referem apenas ao ID do cliente como a chave de API. Na interface do Edge, você vai ver "chave do cliente" e "chave secreta do cliente".
Na política VerifyAPIKey, apenas o ID do cliente, ou "chave do cliente", é verificado. Os desenvolvedores recebem uma chave do consumidor quando registram o app na Apigee e o associam a um produto de API. Os desenvolvedores incluem a chave do consumidor nas chamadas que o app faz para proxies de API que estão agrupados no produto de API.
A Apigee também permite a importação de chaves de API atuais de fontes externas.
Para tipos de concessão do OAuth, são usados tanto o ID do cliente quanto a chave secreta.
OAuth 2.0
O framework de autorização OAuth 2.0 permite que um aplicativo de terceiros tenha acesso limitado a um serviço HTTP em nome do proprietário de um recurso, orquestrando uma interação de aprovação entre o proprietário do recurso e o serviço HTTP ou permitindo que o aplicativo de terceiros consiga acesso em seu próprio nome.
As políticas do OAuth 2.0 da Apigee permitem que você implemente e personalize os quatro tipos de concessão do OAuth 2.0. A aplicação do token de acesso OAuth pode ser feita usando a política do OAuthv2. O consumidor precisa estar registrado e ter um app aprovado que conceda acesso à API. Em troca, ele receberá um ID e uma chave secreta do cliente da API. O consumidor precisa passar por uma das concessões do OAuth para ser autenticado, o que concede a ele um token de acesso opaco. Esse token pode ser usado para controlar o acesso à API.
JWT
JSON Web Tokens, ou JWT, geralmente são usados para compartilhar declarações ou asserções entre aplicativos conectados. A Apigee oferece suporte a JWT usando três políticas.
- Gerar tokens JWT (suporta assinaturas HS256 e RS256)
- Validar tokens JWT
- Decodificar tokens JWT sem validar
A3:2017 - Exposição a dados confidenciais
Os invasores visam dados confidenciais, como detalhes de cartão de crédito, CPF ou CNPJ, credenciais de login, informações de identificação pessoal (PII) e CPF/CNPJ, para cometer roubo de identidade, roubo de dinheiro, fraude e outros crimes. Os aplicativos da Web precisam implementar criptografia, em repouso e em trânsito, e outras estratégias para garantir a proteção dos dados sensíveis.
O TLS (Transport Layer Security, cujo antecessor é SSL) é a tecnologia de segurança padrão para estabelecer um link criptografado entre um servidor da Web e um cliente da Web, como um navegador ou um aplicativo. A Apigee oferece suporte a TLS unidirecional e bidirecional.
O TLS (cliente que se conecta à API que atua como servidor) é compatível com o uso de uma configuração de host virtual. Um host virtual pode ser configurado para TLS unidirecional ou bidirecional.
O uso de uma configuração de Servidor de destino é compatível com o TLS sul-americano (apigee como um cliente conectado ao serviço de back-end) por meio do uso de uma configuração. Um servidor de destino pode ser configurado para TLS unidirecional ou bidirecional.
A Apigee oferece suporte a várias opções de configuração de TLS.
A aplicação do TLS bidirecional garante que o cliente esteja usando um certificado que já foi integrado à Apigee. O OWASP também fornece práticas recomendadas de TLS.
Na Apigee híbrida, o TLS está disponível na entrada por meio de um alias de host, que é um conceito semelhante a um host virtual.
Confira a seguir as diretrizes para proteger dados sensíveis:
- Use uma plataforma que ofereça suporte a TLS unidirecional e bidirecional, que protegerá o nível do protocolo.
- Use políticas como a políticaAssignMessage e a política de JavaScript para remover dados sensíveis antes que eles sejam retornados ao cliente.
- Use as técnicas padrão do OAuth e adicione HMAC, hash, estado, valor de uso único, PKCE ou outras técnicas para melhorar o nível de autenticação de cada solicitação.
- Use configurações de mascaramento de dados para mascarar dados confidenciais na ferramenta Edge Trace.
- Tenha cuidado ao armazenar dados confidenciais no cache (ou criptografar dados confidenciais armazenados em cache). No Edge, é possível criptografar dados sensíveis em repouso nos mapas de chave-valor.
A4:2017 - Entidades externas em XML
Sistemas ou aplicativos que processam XML precisam processar "referências de entidades externas" em XML, referências a arquivos ou dados que são substituídos pelos dados reais durante o processamento do XML. Se os aplicativos ou processadores XML forem antigos ou mal implementados, os invasores poderão invadir os dados e usá-los para roubar informações ou iniciar vários tipos de ataques ao sistema, como negação de serviço.
A política ExtractVariables da Apigee permite extrair o conteúdo de uma solicitação ou resposta e atribuir esse conteúdo a uma variável. É possível extrair qualquer parte da mensagem, incluindo cabeçalhos, caminhos de URI, payloads JSON/XML, parâmetros de formulário e parâmetros de consulta. Essa política aplica um padrão de texto ao conteúdo da mensagem e, ao encontrar uma correspondência, define uma variável com o conteúdo especificado da mensagem.
A Apigee tem um analisador XML integrado como parte da plataforma que usa XPath para extrair dados. Ele também tem uma política XMLThreatProtection para proteger contra payloads XML maliciosos.
A5:2017 - Controle de acesso corrompido
Depois que os usuários fazem login e têm acesso a um sistema, controles de autorização adequados precisam estar em vigor para que os usuários possam ver e fazer apenas o que têm permissão. Sem controles de acesso fortes, os invasores podem visualizar dados não autorizados e geralmente confidenciais ou manipular de maneira maliciosa dados e o comportamento do sistema.
A Apigee oferece suporte a uma abordagem em camadas para implementar controles de acesso e evitar que usuários de má-fé façam alterações não autorizadas ou acessem o sistema.
Controles de acesso para a interface do Edge
- Configure o Logon único com o provedor de identidade da sua empresa.
- Configure o controle de acesso baseado em papéis (RBAC, na sigla em inglês) para permitir que os usuários acessem apenas a funcionalidade e a configuração de que precisam.
- O recurso Teams oferece mais recursos para restringir o acesso a proxies, produtos e apps.
- Configure a máscara de dados para ocultar dados confidenciais dos usuários.
- Crie mapas de chave-valor criptografados para armazenar pares de chave-valor confidenciais, que aparecem mascarados na interface do Edge e nas chamadas de API de gerenciamento.
Controles de acesso para o portal do desenvolvedor da Apigee
- Configure o Logon único com o provedor de identidade da sua empresa.
- Configure o controle de acesso baseado em papéis (RBAC, na sigla em inglês) para permitir que os usuários acessem apenas a funcionalidade e a configuração de que precisam em portais de desenvolvedores baseados em Drupal.
- Configure portais de desenvolvedores para mostrar produtos de API específicos de acordo com a função do usuário.
- Configure o portal para mostrar ou ocultar conteúdo com base na função do usuário.
Controles de acesso para acessar as APIs do ambiente de execução da Apigee
- O acesso às APIs pode ser aplicado com chaves de API, tokens OAuth, escopos OAuth, certificados e outras técnicas.
- O provedor da API configura quais recursos estão disponíveis definindo um produto de API. O acesso é concedido manualmente na interface, pela API de gerenciamento ou pelo portal do desenvolvedor. Quando o app de um desenvolvedor recebe acesso a um produto da API, ele recebe um ID do cliente e uma chave secreta que são usados no processo de autenticação.
- A Apigee pode ser integrada a qualquer provedor de identidade para executar o OAuth.
- A Apigee pode gerar tokens JWT ou outras técnicas para enviar identidade do usuário aos serviços de destino. Os serviços de destino podem usar essa identidade para restringir o acesso a serviços e dados conforme necessário.
A6:2017 - Configuração incorreta de segurança
Configurações incorretas de segurança são fáceis de ignorar, geralmente porque administradores e desenvolvedores confiam erroneamente que os sistemas usados são inerentemente seguros. Configurações incorretas de segurança podem ocorrer de várias maneiras diferentes, como confiar nas configurações padrão ou definir configurações parciais que podem não ser seguras, permitir que mensagens de erro contenham detalhes confidenciais, armazenar dados na nuvem sem os controles de segurança adequados, configurar cabeçalhos HTTP de maneira incorreta e assim por diante. A plataforma Apigee oferece uma série de mecanismos para permitir o controle, o gerenciamento e o monitoramento de configurações de segurança, incluindo fluxos compartilhados reutilizáveis.
Com um fluxo compartilhado, os desenvolvedores de API podem combinar políticas e recursos em um grupo reutilizável. Ao capturar a funcionalidade reutilizável em um só lugar, um fluxo compartilhado ajuda a garantir a consistência, diminuir o tempo de desenvolvimento e gerenciar o código com mais facilidade. É possível incluir um fluxo compartilhado em proxies de API individuais ou ir além e colocar fluxos compartilhados em hooks de fluxo para executar automaticamente a lógica de fluxo compartilhado para cada proxy de API implantado no mesmo ambiente que um fluxo compartilhado.
As versões de produtos da Apigee garantem proteção contra bibliotecas com vulnerabilidades. A Apigee pode lançar patches ou atualizações adicionais se novas vulnerabilidades forem encontradas. A nuvem pública de borda recebe patches automaticamente. Os clientes do Edge para nuvem privada (no local) precisam aplicar os patches de produtos por conta própria.
Scripting em vários locais (XSS) A7:2017
O scripting em vários sites (XSS) permite que invasores executem scripts em navegadores da Web para controlar sessões do usuário, manipular sites ou afetar os usuários de maneira maliciosa de outras maneiras. Os problemas de XSS não estão necessariamente relacionados a APIs, mas a Apigee fornece políticas de proteção contra ameaças que podem ser usadas para proteger contra XSS na API. Usando expressões regulares, seja com a política RegularExpressionProtection ou a política JavaScript, verifique os valores de payload e parâmetro em relação a JavaScript e outros ataques do tipo por injeção.
O CORS, uma das soluções com frequência implementadas para a política de mesma origem aplicada por todos os navegadores, pode ser implementado usando a políticaAssignMessage.
A8:2017 - Desserialização não segura
Os atacantes podem usar falhas na desserialização para diferentes tipos de ataques, como repetição, escalonamento de privilégios e injeção. A desserialização não segura também pode ativar a execução remota de código.
A Apigee não recomenda a desserialização. No entanto, a política JSONThreatProtection e a política RegularExpressionProtection podem ajudar a proteger contra payloads JSON maliciosos. A política de JavaScript também pode ser usada para verificar a presença de conteúdo malicioso nos payloads. O cache e outras políticas podem ser usados para proteção contra ataques de repetição. No nível da infraestrutura, a plataforma da Apigee também tem proteções integradas para proteger os processos em execução.
A9:2017 - Uso de componentes com vulnerabilidades conhecidas
Como frameworks, bibliotecas e módulos são executados com execução completa e acesso CRUD, os invasores podem aproveitar as vulnerabilidades de componentes para atacar sistemas.
As versões regulares de produtos da Apigee garantem proteção contra vulnerabilidades de componentes, especialmente quando vulnerabilidades específicas são descobertas. A nuvem pública da Apigee é corrigida automaticamente, e a Apigee notifica o Edge para clientes da nuvem privada quando os patches no local estão disponíveis para instalação.
A10:2017 - Geração de registros e monitoramento insuficientes
Quando você não executa adequadamente a geração de registros, o monitoramento e o gerenciamento de incidentes nos sistemas, os invasores podem realizar ataques mais profundos e prolongados nos dados e no software.
A Apigee tem várias maneiras de executar registros, monitoramento, tratamento de erros e registros de auditoria.
Geração de registros
- As mensagens de registro podem ser enviadas para o Splunk ou outro endpoint syslog usando a política MessageLogging.
- Os dados de análise de APIs podem ser extraídos por meio da API Analytics e importados ou exportados para outros sistemas.
- No Edge para nuvem privada, é possível usar a política MessageLogging para gravar arquivos de registros locais. Arquivos de registro de cada um dos componentes em execução também estão disponíveis.
- A política JavaScript pode ser usada para enviar mensagens de registro a um endpoint REST de maneira síncrona ou assíncrona.
Monitoramento
- Use a interface ou a API de monitoramento de APIs para monitorar regularmente APIs e back-ends e acionar alets.
- Use o monitoramento de integridade para monitorar regularmente os back-ends do servidor de destino.
- A Apigee fornece recomendações para monitorar o Edge para nuvem privada.
- A Apigee também fornece práticas recomendadas que sua equipe pode usar para monitorar seu programa de APIs.
Tratamento de erros
A Apigee oferece um mecanismo de tratamento de falhas poderoso e versátil para proxies de API. Da mesma forma que um programa Java captura exceções, os proxies de API podem detectar falhas e determinar como retornar respostas apropriadas aos clientes. O tratamento de falhas personalizado da Apigee permite adicionar funcionalidades, como geração de registros de mensagens, sempre que um erro ocorre.
Registros de auditoria
A plataforma Apigee mantém um registro de auditoria que rastreia alterações em proxies de API, produtos e histórico da organização. Esse registro está disponível na interface ou na API Audits.
Soluções Apigee para vulnerabilidades do OWASP em 2013
Quando o OWASP atualizou a lista de 2017, algumas vulnerabilidades da lista de 2013 foram deixadas de lado. Elas ainda são ameaças válidas. As seções a seguir descrevem como lidar com essas ameaças com a Apigee.
A8:2013 - Falsificação de solicitação entre sites (CSRF, na sigla em inglês)
As solicitações de falsificação entre sites permitem que os invasores encaminhem os detalhes de autenticação, o cookie de sessão e outros dados de um usuário para um aplicativo da Web vulnerável por HTTP, induzindo o aplicativo da Web a acreditar que as solicitações são legítimas.
Diretrizes:
- Isso se trata mais de um problema do navegador, não de um problema com o produto da API. É possível solucionar essa vulnerabilidade com o OpenID Connect, o OAuth e outras técnicas.
- Considere o uso de técnicas HMAC, estado, hash, valor de uso único ou PKCE para evitar ataques de falsificação e repetição.
A10:2013 - Redirecionamentos e encaminhamentos não validados
Se um aplicativo da Web faz redirecionamentos, mas não valida que eles estão levando os usuários a sites confiáveis e pretendidos, os invasores podem enviar os usuários a destinos maliciosos para realizar phishing, execução de malware e outros ataques.
Diretrizes:
- Usar o OAuth e aplicar a validação em cada solicitação.
- Evite redirecionamentos 302 inesperados verificando os códigos de resposta na lógica do proxy da API e processando os redirecionamentos corretamente.