Segurança de API 101: Guia de Estratégia e Fundamentos de Segurança de API
As APIs estão no centro das iniciativas de inovação digital de hoje e se tornaram o vetor de ataque número um para aplicativos. Descubra o que é segurança de API, por que ela é tão importante e o que você pode fazer para proteger suas APIs contra ameaças modernas.
O que é segurança de API?
Interfaces de programação de aplicativos (APIs) são os blocos de construção dos aplicativos modernos. Pense nelas como as rampas de acesso ao mundo digital. Elas mantêm todos conectados a dados e serviços vitais, possibilitam todos os tipos de operações de negócios críticas e tornam a transformação digital possível.
À medida que o número de APIs continua a crescer e com organizações em todo o mundo dependendo cada vez mais delas para entregar suas iniciativas de negócios críticas, elas se tornaram um alvo principal para atacantes. Nosso Relatório de Segurança de API do 1º Trimestre de 2023 mostra que o número de atacantes únicos cresceu 400% em um período de seis meses. E, no entanto, 30% dos entrevistados ainda não possuem uma estratégia de segurança de API implementada.
O Open Web Application Security Project (OWASP) define a segurança de API como o foco em estratégias e soluções para entender e mitigar as vulnerabilidades únicas e os riscos de segurança das APIs — e são muitos.
Continue lendo para saber por que a segurança de API se tornou uma preocupação crítica para as organizações de hoje e como ela difere da segurança de aplicativos.
Por que a segurança de API é importante?
As APIs se tornaram um vetor de ataque primário para cibercriminosos, com atores mal-intencionados percebendo o quão lucrativo é mirar nas APIs que conectam os serviços digitais e dados sensíveis de hoje. De fato, de acordo com o Relatório de Segurança de API do 1º Trimestre de 2023, 94% das empresas enfrentaram problemas de segurança de API em APIs em produção no último ano. Em 2017, a empresa de análise Gartner previu que, até 2022, as APIs se tornariam o principal vetor de ataque para cibercriminosos, e eles certamente provaram estar certos. Com os ataques de API ganhando as manchetes em todo o mundo nos últimos anos, o Gartner incluiu a segurança de API em sua arquitetura de referência de segurança em 2022, reconhecendo a necessidade de ferramentas e métodos dedicados à segurança de API.
Então…
Até 2022, os abusos de API passarão de um vetor de ataque infrequente para o mais frequente, resultando em violações de dados para aplicativos web corporativos.”
20 de novembro de 2017
“Previsões 2018: Proteção de Infraestrutura”
—Premissa de Planejamento Estratégico
…e agora
À medida que 2022 se aproxima, essa previsão poderia ser considerada ‘perdida’ — mas apenas porque subestimamos o aumento acentuado nos ataques a APIs.”
6 de dezembro de 2021
“Previsões 2022: APIs Exigem Segurança e Gerenciamento Aprimorados”
A importância crítica da segurança de API também está a tornar-se cada vez mais óbvia para os altos funcionários nas organizações de hoje. De facto, quase metade (48%) dos inquiridos no nosso estudo "State of API Security" indicou que a segurança de API se tornou agora uma discussão a nível C-level. Esta descoberta é também apoiada pelos resultados de um inquérito global conduzido pela empresa de pesquisa independente Global Surveyz em nome da Salt Security, onde a maioria (78%) dos CISOs globalmente disse que a segurança de API é uma prioridade mais alta hoje do que era há dois anos, e 95% disse que a segurança de API será uma prioridade máxima nos próximos dois anos.
Embora as medidas de segurança tradicionais, como gateways de API e Web Application Firewalls (WAFs), possam agregar valor à pilha de segurança de uma organização, elas não conseguem acompanhar os métodos de ataque de API cada vez mais sofisticados de hoje. Na verdade, elas não estão a impedir os atacantes de roubar dados sensíveis, afetar a experiência do utilizador ou causar outros danos. Para prevenir e mitigar ataques de API, é necessária uma estratégia e tecnologia de segurança construída especificamente para APIs.
Os ataques mudaram e são fáceis de ignorar
Atores maliciosos que visam APIs foram além dos ataques tradicionais "uma e feita", como SQLi e XSS. O seu foco agora é encontrar vulnerabilidades na lógica de negócio das APIs. As suas APIs são únicas, por isso os ataques também têm de o ser. Leva dias, semanas ou até meses para os atacantes sondarem e aprenderem as suas APIs, e eles usam técnicas "lentas e graduais" que permanecem sob o radar das ferramentas de segurança tradicionais.
Passado:
Uma e feita
Chamada de API única – segundos a minutos
Ataques conhecidos – SQLi, XSS, etc.
Hoje:
Lento e gradual
Sequência de chamadas de API – dias a semanas
Ataques de lógica de negócio – requer contexto
Os diferentes tipos de segurança de API: de APIs REST a SOAP e GraphQL
A segurança de API REST, a segurança SOAP e a segurança GraphQL desempenham um papel importante na garantia da proteção de APIs e aplicações web. Cada uma destas tecnologias tem uma abordagem diferente à segurança, o que requer considerações de segurança específicas.
Segurança de API REST
REST significa Representational State Transfer e é um estilo arquitetónico comummente usado em serviços web. Baseia-se em métodos HTTP padrão como GET, POST, PUT, DELETE e usa URLs para identificar recursos. As APIs REST trazem o seu conjunto único de considerações de segurança, tais como:
- Mecanismos de autenticação — As APIs REST frequentemente usam mecanismos de autenticação como chaves de API, tokens OAuth ou JSON Web Tokens (JWT) para verificar a identidade dos clientes e conceder acesso aos recursos.
- Mecanismos de autorização: Depois de um utilizador ser autenticado, as APIs REST usam mecanismos de autorização para controlar a que recursos podem aceder.
- Limitação de taxa: Implemente a limitação de taxa para restringir o número de pedidos que um cliente pode fazer dentro de um determinado período, prevenindo abusos e ataques DoS.
- Validação de entrada: Isto deve ser aplicado para prevenir vulnerabilidades de segurança comuns como injeção de SQL e ataques de Cross-Site Scripting (XSS).
- Criptografia HTTPS: Criptografar os dados transmitidos entre o cliente e o servidor é essencial nas APIs REST. A criptografia HTTPS é usada para evitar a interceção não autorizada.
- Partilha de recursos de origem cruzada (CORS): Os cabeçalhos CORS devem ser usados na arquitetura REST para controlar quais domínios podem aceder à API em questão.
Para proteger as APIs REST de forma eficaz, todos esses aspetos devem ser tidos em conta, além de outras melhores práticas de segurança de API REST.
Segurança SOAP
SOAP (Simple Object Access Protocol) é um protocolo usado para trocar informações em serviços web. Geralmente, ele usa XML e depende de outros protocolos web como HTTP, SMTP e TCP. Há também algumas considerações de segurança importantes para SOAP:
- Criptografia de dados sensíveis: Dados sensíveis em mensagens SOAP devem ser criptografados para garantir a confidencialidade durante o trânsito.
- Validação XML: validar XML contra um esquema predefinido ajuda a prevenir injeção de XML e ataques relacionados.
- Padrão WS-security: SOAP oferece este padrão de segurança para proteger mensagens, que inclui recursos como integridade da mensagem, confidencialidade, autenticação e autorização.
- Segurança HTTPS: Assim como nas APIs REST, as mensagens SOAP devem ser transmitidas por meio de criptografia HTTPS para proteger os dados em trânsito.
- Assinaturas digitais: As assinaturas digitais devem ser usadas sempre que possível para avaliar a integridade e a legitimidade das mensagens SOAP.
Segurança GraphQL
GraphQL é uma linguagem de consulta para APIs e um ambiente de execução para essas consultas com um sistema de backend. Ao contrário do REST, que expõe múltiplos endpoints de API para diferentes recursos, o GraphQL usa um único endpoint para todas as consultas. Aqui estão algumas das considerações de segurança mais importantes para GraphQL:
- Autenticação e autorização: As APIs GraphQL devem implementar mecanismos de autenticação e autorização para controlar o acesso a várias consultas e mutações. Nos últimos anos, sabe-se que agentes mal-intencionados têm explorar vulnerabilidades de autorização GraphQL com sucesso para executar ataques de API.
- Limitação de taxa: A aplicação de limitação de taxa é essencial para controlar o número de consultas GraphQL que um cliente pode executar em um determinado momento.
- Validação de entrada: Validar e higienizar as entradas do usuário em GraphQL pode ajudar a prevenir vulnerabilidades de segurança comuns.
- Limites de profundidade de consulta: É necessário definir limites para a profundidade das consultas GraphQL para evitar consultas complexas e que consomem muitos recursos, o que poderia levar a ataques de negação de serviço (DoS).
Em última análise, a segurança de qualquer API, seja REST, SOAP ou GraphQL, depende de uma combinação de melhores práticas que abrangem mecanismos de autenticação e autorização, validação de dados e o uso de protocolos de comunicação seguros. Uma estratégia robusta de segurança de API que cubra descoberta, proteção em tempo de execução e práticas de "shift-left" é essencial para manter as APIs protegidas contra ameaças emergentes.
Salt — segurança de API completa para proteção total
Quais são os tipos mais comuns de ataques de API?
O primeiro passo para proteger APIs de forma eficaz é entender por que os ataques de hoje são diferentes. Os ataques de API mais comuns atualmente podem ser divididos em quatro categorias:
Falta de visibilidade e governança
Neste tipo de ataque, os atacantes se aproveitam de APIs que são completamente desconhecidas para uma organização — APIs sombra ou zumbis — ou APIs cuja postura de segurança não é visível, como APIs não gerenciadas ou de terceiros.
Abuso e uso indevido de APIs
Para executar este tipo de ataque, um agente mal-intencionado usará uma API exatamente como projetada, mas aproveitará os resultados de maneira não intencional e maliciosa, explorando falhas de design ou desenvolvimento que permitem resultados maliciosos, como exfiltração de dados.
Exploração de falhas na lógica de negócios
Em um ataque baseado em lógica de negócios, hackers usarão técnicas de reconhecimento ao longo do tempo para procurar vulnerabilidades na lógica de negócios exclusiva de cada API. Durante a fase de reconhecimento, que pode durar dias, semanas ou até meses, os atacantes buscam áreas para explorar, como obter acesso não autorizado a dados ou funcionalidades dentro da API.
Credenciais roubadas e engenharia social
Este tipo de ameaça se manifesta quando um agente mal-intencionado usa técnicas de engenharia social para acessar chaves de API privilegiadas. Isso permite que ele roube credenciais e use a API como se fosse um usuário ou administrador legítimo e autenticado. De acordo com o Relatório de Segurança de API do 1º Trimestre de 2023, no último ano, 78% dos ataques vieram de usuários aparentemente legítimos que obtiveram maliciosamente a autenticação adequada.
Top 10 de Segurança de API da OWASP
Para ajudar a indústria de segurança de API a obter uma compreensão mais profunda dos ataques de API mais comuns, o Open Web Application Security Project (OWASP) lançou sua primeira lista Top 10 de vulnerabilidades de segurança de API em 2019. A lista foi atualizada em 2023 e lista as dez vulnerabilidades de API mais significativas. Destas, as mais comuns são:
API1:2023 autorização quebrada em nível de objeto
A autorização quebrada em nível de objeto (BOLA) representa cerca de 40% dos ataques a APIs e é a ameaça de API mais comum.
Como as APIs frequentemente expõem endpoints que lidam com IDs de objetos, isso cria uma grande superfície de ataque potencial. A autorização em nível de objeto é um método de controle de acesso que é tipicamente implementado no nível do código para verificar a capacidade de um usuário de acessar um determinado objeto. Aplicações modernas utilizam uma variedade de sistemas intrincados e abrangentes de autorização e controle de acesso. Os desenvolvedores frequentemente negligenciam a aplicação dessas verificações antes de acessar um objeto, mesmo quando uma aplicação inclui uma infraestrutura robusta para verificações de autorização. Atacantes podem facilmente explorar endpoints de API vulneráveis à autorização quebrada em nível de objeto, manipulando o ID de um objeto que é enviado dentro de uma requisição de API. Falhas de autorização BOLA podem levar à exfiltração de dados, bem como à visualização, modificação ou destruição não autorizada de dados. Em última análise, BOLA pode levar à tomada completa de conta (ATO).
API2:2023 autenticação de usuário quebrada
Atacantes podem facilmente visar processos de autenticação, especialmente se estiverem totalmente expostos ou acessíveis ao público. A segunda vulnerabilidade mais frequente relatada pela OWASP é a autenticação de usuário quebrada, que permite aos atacantes utilizar preenchimento de credenciais (credential stuffing), tokens de autenticação roubados e ataques de força bruta para obter acesso não autorizado a aplicativos. Os atacantes são então capazes de controlar as contas dos usuários, obter acesso ilegal aos dados de outros usuários e realizar transações não autorizadas. Problemas tecnológicos, como complexidade inadequada de senhas, falta de critérios de bloqueio de conta, tempos de rotação excessivamente longos para senhas e certificados, ou o uso de chaves de API como único método de autenticação, podem resultar em autenticação falha em APIs.
Atacantes que conseguem explorar com sucesso as fraquezas nos procedimentos de autenticação podem ser capazes de acessar os dados de outro usuário sem autorização e realizar transações ilícitas usando a conta desse usuário.
API3:2023 autorização quebrada em nível de propriedade de objeto
A Autorização Quebrada em Nível de Propriedade de Objeto (Broken Object Property Level Authorization) mescla ataques que ocorrem ao obter acesso não autorizado a informações sensíveis por meio de Exposição Excessiva de Dados (anteriormente listada como número 3 no Top 10 de Segurança de API da OWASP de 2019) ou Atribuição em Massa (anteriormente em sexto lugar na lista de 2019). Ambas as técnicas são baseadas na manipulação de endpoints de API para obter acesso a dados sensíveis.
A principal razão para introduzir esta nova ameaça na lista é que, mesmo que uma API possa aplicar medidas de segurança de autorização em nível de objeto suficientes, isso ainda pode não ser o bastante para protegê-la. Frequentemente, é necessária uma autorização mais específica que cubra os objetos e suas características. Os diferentes níveis de acesso dentro de um objeto de API também devem ser considerados, pois um objeto de API geralmente possui uma propriedade pública e uma privada.
API4:2023 consumo irrestrito de recursos
A vulnerabilidade de Consumo Irrestrito de Recursos substituiu a antiga número 4 no Top 10 de Segurança de API da OWASP, Falta de Recursos e Limitação de Taxa. No entanto, embora o nome tenha mudado, esta vulnerabilidade permanece a mesma no geral.
Recursos, como rede, CPU, memória e armazenamento, são consumidos por chamadas de API. A entrada do utilizador e a lógica de negócios do endpoint têm um impacto significativo no número de recursos necessários para atender a um pedido. O tamanho ou a quantidade de recursos que um cliente ou utilizador pode solicitar podem não ser necessariamente restringidos pelas APIs. Isso não só tem o potencial de afetar negativamente o desempenho do servidor de API e causar Negação de Serviço (DoS), mas também torna as APIs que suportam autenticação e recuperação de dados vulneráveis a ataques de força bruta e enumeração, incluindo quebra de tokens e credenciais.
De acordo com o Relatório do Estado da Segurança de API T1 2023, apenas 54% dos inquiridos priorizam as 10 Principais Ameaças de Segurança de API da OWASP como parte dos seus programas de segurança, embora 62% dos ataques tentados contra organizações utilizem pelo menos um desses métodos.
O que torna a segurança de API diferente?
As soluções de segurança tradicionais, incluindo WAFs, gateways de API, ferramentas de gestão de API e ferramentas de gestão de identidade e acesso (IAM), não foram projetadas para prevenir ataques a APIs. Isso porque proteger APIs oferece desafios únicos:
Proliferação de APIs: um cenário em constante mudança
Com as APIs a serem constantemente desenvolvidas e alteradas pelas equipas de DevOps de hoje, os tipos de ameaças enfrentadas pelas APIs também mudaram. No passado, ataques baseados em transações, como injeção de SQL e outros métodos de execução de código, eram as táticas mais prevalentes, mas os ataques de hoje frequentemente visam explorar a lógica de aplicação e de negócios subjacente a cada API. Com 37% das empresas a atualizarem as suas APIs uma vez por semana, não é realista esperar que as equipas de desenvolvimento identifiquem todas as possíveis vulnerabilidades de API antes de implementar uma API nova ou atualizada.
Ataques de API lentos e discretos: o poder do reconhecimento
Ataques tradicionais, como injeções de SQL ou cross-site scripting, ainda ocorrem, mas os ataques de API baseados na lógica da aplicação mais bem-sucedidos de hoje não seguem esses tipos de mecanismos "uma e feita" que exploram vulnerabilidades conhecidas. Como cada endpoint de API é diferente e cada ataque raramente provém de uma única chamada de API, cada ataque de API é essencialmente um ataque de dia zero, com as ferramentas tradicionais sendo incapazes de os detetar através das suas abordagens baseadas em regras e assinaturas. Atores maliciosos estão a dedicar tempo às suas atividades de reconhecimento. Eles podem levar semanas ou até meses para procurar dados, procurando falhas e induzindo comportamentos anormais para encontrar maneiras subtis de perturbar a cadeia de suprimentos ou exfiltrar dados de uma API.
As deficiências das táticas shift-left e a necessidade de proteção em tempo de execução
Historicamente, as organizações têm dependido de testes para identificar falhas de segurança antes de implementar uma aplicação. No entanto, a adoção generalizada de metodologias de desenvolvimento ágil e a questão da proliferação de APIs tornaram simplesmente impossível testar cada vulnerabilidade de API. Embora os testes padrão de pré-produção possam encontrar algumas lacunas nas melhores práticas de segurança de API, eles não descobrirão vulnerabilidades enraizadas em lacunas da lógica de negócios da API — que são precisamente as falhas que os atacantes de hoje tentarão explorar. Além disso, não é realista esperar que qualquer desenvolvedor escreva código totalmente seguro sempre, então a única maneira de detetar e parar ameaças de API é ter proteção em tempo de execução.
Quais melhores práticas de segurança de API podem ser usadas para prevenir e mitigar os ataques atuais?
As APIs são difíceis de proteger. As soluções tradicionais não conseguem lidar com as complexidades do ecossistema de API. Os atacantes sabem disso, e é por isso que se concentram nas APIs.
As seguintes melhores práticas podem ajudá-lo a melhorar a sua postura de segurança de API:
Desenvolvimento e testes
- Promover segurança Design de API
- e desenvolvimento: Crie práticas seguras de codificação e configuração para construir e integrar APIs. O OWASP Application Security Verification Standard (ASVS) é um bom recurso.Reduza a exposição de dados sensíveis
- : Evite enviar muitos dados para aplicativos clientes e, em seguida, depender deles para filtrar os dados.
- Conduza revisões de design: Certifique-se de incluir a lógica de negócios nas revisões de design.
- Documente suas APIs: A documentação ajuda as pessoas a entender como uma API é construída ou integrada. Você precisa especialmente de documentação para revisões de design, testes de segurança e proteção. Use um formato de máquina para documentação: Use formatos de máquina comoEspecificação OpenAPI (OAS)
- . Em seguida, você pode usar as especificações para testes básicos e proteção. Mantenha um inventário de API preciso: Dê às suas equipes de segurança uma visão realista da superfície de ataque com um inventário atualizado. A melhor maneira de capturar essas informações é com ferramentas automatizadas Descoberta de API
- que abrange REST, GraphQL e outros formatos de API.
Faça testes de segurança: Use ferramentas de teste de segurança para identificar problemas de configuração ou vulnerabilidades em suas APIs. Scanners não são bons em analisar a lógica de negócios, então você deve analisar suas APIs e realizar testes de fuzzing em tempo de execução para identificar código explorável.
- Produção
- Ative o registro e o monitoramento: Dados de telemetria ajudam a detectar ataques, responder a incidentes e proteger APIs em tempo de execução. Use os dados como sua linha de base para o comportamento normal. Dessa forma, quaisquer eventos atípicos podem ser rapidamente identificados e resolvidos.
- Identifique o desvio da API: Certifique-se de ter um plano para descobrir quando uma API foi alterada. Novamente, plataformas automatizadas que podem comparar a documentação com o comportamento em tempo de execução de suas APIs ajudarão a identificar essas lacunas. Em seguida, atualize sua documentação de acordo. [SEG SEGMENT 5] Intermedie suas APIs: Use ferramentas de mediação como gateways de API para melhorar a visibilidade e a segurança. Estenda as capacidades dessas plataformas com uma solução de segurança de API que forneça um contexto mais aprofundado sobre as APIs.
- Use os controles de segurança de rede corretos: Alguns controles de rede podem ajudar na segurança de APIs. Por exemplo, criptografe os dados que as APIs estão enviando. Você também pode usar limitação de taxa dinâmica e listas de permissão e negação de endereços IP (assumindo que o número de usuários da API seja pequeno).
- Autentique e autorize continuamente: Torne os controles de acesso e os armazenamentos de identidade externos. Inclua gateways de API, armazenamentos de identidade, IAM, gerenciamento de chaves, infraestrutura de chave pública e gerenciamento de segredos nesta etapa. Evite usar chaves de API para autenticação.
- Implante proteção em tempo de execução: Certifique-se de que sua proteção em tempo de execução possa identificar problemas de configuração na infraestrutura de API. Ela também deve detectar anomalias de comportamento, como credential stuffing, ataques de força bruta ou tentativas de scraping.
Quais métodos e ferramentas podem ser usados para proteger APIs?
A melhor proteção para APIs é uma plataforma dedicada construída do zero com a segurança de API em mente. A plataforma de segurança de API certa deve automaticamente:
- Descubra todas as APIs novas e alteradas, bem como quaisquer dados sensíveis que elas exponham.
- Detecte e pare ataques em APIs durante a fase de reconhecimento.
- Elimine vulnerabilidades na fase de construção , sempre que possível, fornecendo insights acionáveis às suas equipes de desenvolvimento.
Proteção em todo o ciclo de vida da API
A solução completa de segurança de API deve ser capaz de coletar, armazenar e analisar centenas de atributos em milhões de usuários e chamadas de API e, mais importante, aproveitar a inteligência artificial (IA) e o aprendizado de máquina (ML) para correlacioná-los ao longo do tempo. Obter essa amplitude de contexto exigirá big data em escala de nuvem, pois abordagens baseadas em servidor ou máquina virtual não terão um conjunto de dados amplo o suficiente ao longo do tempo para identificar os ataques de API sofisticados, lentos e de baixo perfil de hoje. Somente com esse tipo de inteligência adaptativa e contexto profundo você terá o que precisa para proteger todas as suas APIs.
Para saber mais sobre como a Salt pode ajudar a defender sua organização contra riscos de API, você pode entrar em contato com um representante ou agendar uma demonstração personalizada.
Pronto para nos ver em ação?
Agende uma demonstração hoje para ver como se proteger do vetor de ameaça da API.