Práticas recomendadas de segurança para APIs REST
O que é uma API REST?
O estilo arquitetônico de software da transferência de estado representativo (REST) remonta a uma dissertação de doutorado de 2000 pelo cientista de computador Roy Fielding. Nas décadas desde então, as APIs REST, às vezes chamadas de APIs RESTful, evoluíram para se tornarem um modelo de arquitetura de API muito popular para aplicativos Web e móveis, bem como aplicativos business-to-business e sistemas internos das organizações.
Embora outras abordagens de API (como SOAP, GraphQL e gRPC) também sejam usadas em muitas implementações, as APIs REST são as mais usadas, principalmente devido à facilidade de implementação. Um projeto de API REST é muito fácil para estruturas de front-end modernas, tornando-o uma escolha popular para aplicativos da Web, aplicativos móveis e muitas implementações de API internas e de negócios para negócios.
As cinco melhores práticas recomendadas de segurança para APIs REST
Embora as APIs REST possam ser implementadas de maneira altamente segura e resiliente, há uma série de padrões fundamentais de segurança de APIs que são essenciais para qualquer implementação.
As cinco principais maneiras de criar segurança em um projeto de API REST são:
Sempre usar criptografia TLS
Implementar um modelo de autenticação e autorização sólido e escalável
Não incluir informações confidenciais em URLs
Definir estritamente as solicitações e respostas de API RESTful permitidas
Implementar recursos contínuos de descoberta de API
Sempre usar criptografia TLS
Assim como com outros tipos de tráfego HTTP confidencial, o uso de TLS para APIs RESTful garantirá a criptografia de toda a comunicação entre o consumidor da API e o ponto de extremidade da API. Isso é tão importante para a segurança de APIs REST quanto para a segurança de aplicativos da Web, pois o tráfego HTTP resultante inclui detalhes de autenticação confidenciais, como senhas, chaves de API ou tokens.
Implementar um modelo de autenticação e autorização sólido e escalável
Muitas técnicas diferentes podem ser usadas para gerenciar o acesso a APIs REST. As mais usadas são chaves de API e tokens de segurança. Mas gerenciar chaves e tokens pode ser bastante complexo.
Isso geralmente leva a vulnerabilidades de segurança não intencionais contra APIs REST. O risco pode ser mitigado integrando-se um provedor de gerenciamento de identidade compatível com OAuth 2.0para autenticação e emissão de tokens de acesso. Um gateway de API centralizado também pode ser usado para padronizar e proteger sua abordagem de segurança de APIs REST.
Não incluir informações confidenciais em URLs
Uma falha de design comum de APIs REST é a inclusão de informações confidenciais, incluindo credenciais de usuário, chaves ou tokens, em URLs. Mesmo quando o TLS está em uso, essas informações permanecem fáceis de serem descobertas pelos agentes de ameaça. Os URLs também são frequentemente registrados por vários servidores e dispositivos de rede ao longo do caminho de dados da solicitação de API, resultando em mais vazamento de dados se os URLs incluírem informações confidenciais.
Definir estritamente as solicitações e respostas de API RESTful permitidas
É importante supor que os agentes de ameaça tentarão usar APIs de formas maliciosas ou não intencionais. Portanto, é importante não confiar implicitamente em solicitações de API RESTful. Uma das etapas mais importantes a seguir é validar atributos como formato, comprimento e tipo de quaisquer parâmetros ou objetos.
Você também deve reger rigorosamente os tipos de respostas que a API REST pode fornecer. Por exemplo, as respostas devem ser limitadas a tipos de conteúdo explicitamente permitidos, como GET, PUT e POST.
Implementar recursos contínuos de descoberta de API
Até mesmo as organizações que aderem às melhores práticas de segurança de APIs REST podem ser surpreendidas pelas APIs shadow que foram implementadas fora dos processos normais ou por APIs zombie esquecidas na infraestrutura legada que ainda não foi desativada. Portanto, é essencial implementar recursos de descoberta de API contínuos em toda a empresa.
A melhor maneira de garantir que um inventário completo de todas as APIs exista é por meio da coleta de dados de todas as fontes disponíveis de informações de atividade de API, incluindo:
Gateways de API
Redes de entrega de conteúdo
Logs de provedores de nuvem
Sistemas de gerenciamento de logs
Ferramentas de orquestração
A análise desses dados em busca de evidências da atividade da API garantirá que sua equipe de segurança esteja ciente de todas as APIs em uso em toda a empresa. Quaisquer APIs REST inesperadas descobertas podem ser desativadas ou colocadas em um inventário formalizado com a aplicação das práticas recomendadas de APIs REST apropriadas.
As quatro melhores práticas avançadas de segurança de APIs REST
A implementação de um conjunto de padrões básicos de segurança em seu projeto de API REST é uma primeira etapa essencial, mas essas etapas por si só não manterão suas aplicações totalmente seguras. Muitos agentes de ameaça desenvolveram técnicas avançadas para contornar medidas de segurança de APIs RESTful de linha de base. Afinal, nem todos os ataques de segurança contra APIs REST têm o objetivo de invadir a infraestrutura de aplicações da Web.
Em muitos casos, o objetivo é simplesmente usar a funcionalidade da API de maneiras não intencionais para acessar dados confidenciais e obter uma vantagem competitiva. Essas atividades podem se originar de fontes confiáveis, como clientes ou parceiros que receberam acesso a APIs REST. Credenciais, chaves e tokens também podem ser roubados ou sequestrados, permitindo que os agentes de ameaças façam avançar atividades semelhantes além dos padrões de segurança de APIs REST de linha de base.
Para fornecer proteção adicional contra essas formas mais sofisticadas de abuso de API, você pode usar as quatro práticas recomendadas de segurança avançadas de APIs REST:
Use a nuvem para coletar grandes conjuntos de dados de segurança de APIs REST
Aplique análises comportamentais aos dados de APIs REST
Forneça insights sobre o uso de APIs REST para as equipes de desenvolvimento e operações
Conduza atividades proativas de busca de ameaças a APIs REST
Use a nuvem para coletar grandes conjuntos de dados de segurança de APIs REST
Muitas técnicas de segurança de API de primeira geração operam no local. Como resultado, eles estão limitados a analisar janelas de atividade muito curtas, depois das quais os dados de API são descartados. Isso é ineficaz, pois muitos tipos de abuso de API são realizados de maneira lenta e baixa ao longo de semanas, ou até mesmo meses. O envio de dados de atividade de API para a nuvem desbloqueia a escala necessária para armazenar detalhes de API que abrangem um mês ou mais. Isso abre a porta para técnicas de análise mais sofisticadas.
Aplique análises comportamentais aos dados de APIs REST
Depois de ter uma quantidade significativa de informações de atividade de APIs REST, você também pode acessar a escala de computação da nuvem para realizar análises comportamentais. A primeira maneira de melhorar sua estratégia de segurança de APIs REST é identificando as entidades envolvidas, para que você tenha um contexto maior. As entidades podem incluir usuários, bem como processos de negócios significativos.
Quando você tem esse contexto, pode definir a linha de base para padrões normais de uso de suas APIs. A partir daí, você pode realizar análises adicionais para detectar anomalias. Esse tipo de detecção de anomalias é a melhor maneira de identificar abusos, principalmente quando se originam de usuários autenticados.
Forneça insights sobre o uso de APIs REST para as equipes de desenvolvimento e operações
Uma das melhores maneiras de proteger sua organização contra vulnerabilidades de segurança de API REST é evitando-as totalmente. Compartilhar informações sobre como suas APIs RESTful estão sendo usadas - e abusadas - com seus desenvolvedores e pessoal de operações ajudará sua organização a "mudar para a esquerda" com melhores práticas de segurança de API REST no início dos processos de desenvolvimento e implementação.
Conduza atividades proativas de busca de ameaças a APIs REST
É importante não esperar até que o abuso da API REST se agrave para um incidente de segurança de alta gravidade para agir. Investigar proativamente o uso de APIs REST e procurar tentativas de abuso, mesmo que não tenham sucesso, ajudará você a encontrar pontos fracos em suas práticas de segurança de APIs REST.
Examinar a atividade de uso da API também é uma maneira eficaz de descobrir a presença de vulnerabilidades de segurança da API REST, como as descritas na API Open Web Application Security Project (OWASP) Security Top 10. Encontrar e eliminar essas vulnerabilidades antes que os agentes de ameaça possam explorá-los é uma das maneiras mais eficazes de melhorar sua postura de segurança de API REST.
Tudo pronto para começar?
A Akamai ajuda algumas das organizações mais reconhecidas do mundo a implementar práticas recomendadas de segurança de APIs REST básicas e avançadas. Desde a descoberta de APIs para análise comportamental para busca gerenciada de ameaças, nossa abordagem ajudará você a acelerar seus esforços de segurança de APIs REST.
Saiba mais
Quer saber mais? Conheça a solução API Security da Akamai.