O que é uma API?
Uma interface de programação de aplicativos, ou API, é um tipo de software que permite a comunicação entre diferentes softwares e serviços.
Existem quatro arquiteturas de API principais:
REST é uma arquitetura uniforme e sem estado, onde o cliente e o servidor operam de forma independente e interagem via HTTP.
SOAP é mais complexo e consome mais largura de banda que REST, trabalhando exclusivamente com o formato de dados XML.
RPC , ou protocolo de Chamada de Procedimento Remoto, permite que procedimentos sejam executados em um servidor remoto dentro de um sistema distribuído.
GraphQL é uma infraestrutura fortemente tipada e orientada por esquemas, com sua linguagem de consulta exclusiva, permitindo que os clientes obtenham dados específicos em uma única solicitação.
Melhores práticas de segurança avançada de API [Folha de dicas]
Baixe o Guia de Melhores Práticas de Segurança de API da Wiz e fortaleça sua infraestrutura de API com técnicas comprovadas e avançadas, adaptadas para gerenciamento de API seguro e de alto desempenho.
Baixar Folha de DicasO que é segurança de API?
As APIs estão sujeitas a uma ampla gama de ameaças. Algumas vêm de fora, como intrusões não autorizadas de hackers, mas outras vêm de dentro e podem interromper sistemas ou deixar a API aberta para ataques. A segurança da API se refere às estratégias, conjuntos de ferramentas e procedimentos projetados para manter as APIs seguras.
A segurança da API se concentra em três setores de segurança significativos:
segurança de aplicação
segurança da informação
segurança de rede
A segurança de API também pode ajudar a resolver problemas como controle de acesso, segurança baseada em identidade, validação de conteúdo, limitação de taxa, limitação de solicitação, monitoramento e análise e proteção de dados. Dado que as APIs servem como pontos de entrada para aplicativos ou redes, a segurança de API é fundamental para proteger as organizações de ameaças potenciais.
Por que a segurança da API é importante?
APIs são agora fundamentais no desenvolvimento de software moderno. A maioria das organizações utiliza APIs para trocar dados e interagir com componentes de software internos ou externos.
No entanto, APIs são suscetíveis a ataques cibernéticos e são frequentemente alvos de hackers que buscam explorar vulnerabilidades para propósitos maliciosos. APIs quebradas ou expostas estão entre as principais causas de violações significativas de dados.
Garantir a segurança de uma API significa preservar a confidencialidade de seus dados e garantir que somente usuários autorizados possam acessá-la. Isso inclui proteger a integridade dos dados durante e após a transmissão. Essa conscientização ampliada ampliou o foco na segurança da API.
Por que os ataques de API são a preocupação número 1 dos profissionais de segurança em nuvem
Leia maisRiscos de segurança de API: os 10 principais da OWASP
O OWASP Top 10 é uma lista de riscos de segurança com curadoria para ajudar desenvolvedores a projetar aplicativos com a segurança em mente. Vamos dar uma olhada em como esses pontos se relacionam com APIs:
Autorização quebrada em nível de objeto: APIs podem conectar identificadores de objetos de controle e, sem a segurança adequada em vigor, a API pode revelar esses identificadores, deixando-os abertos a ataques. Por exemplo, em 2018, o United States Postal Service (USPS) sofreu uma vulnerabilidade devido a controles fracos de acesso e autorização, comprometendo dados críticos de mais de 60 milhões de usuários.
Autenticação quebrada: Sem mecanismos de autenticação robustos, é possível que invasores obtenham acesso a APIs e as usem para fins maliciosos. Em junho de 2021, uma API exposta sem autenticação adequada foi explorada, comprometendo os dados pessoais de aproximadamente 1,3 milhão de indivíduos. A autenticação simples de token ou chave poderia ter frustrado esse ataque.
Autorização quebrada em nível de objeto-propriedade: Desenvolvedores ocasionalmente retornam dados supérfluos, assumindo que as APIs serão acessadas somente por usuários autenticados. No entanto, invasores podem explorar esse excesso de dados. A HealthEngine sofreu com essa vulnerabilidade em sua API de feedback, vazando mais de 59.000 informações pessoais de pacientes.
Consumo irrestrito de recursos: Toda vez que uma solicitação de API é feita, uma certa quantidade de recursos é usada, incluindo largura de banda de rede, memória e computação. Isso apresenta uma vulnerabilidade interna, pois solicitações ilimitadas podem sobrecarregar uma API, aumentando os custos operacionais ou até mesmo causando negação de serviço para usuários legítimos.
Autorização de nível de função quebrada: Muitos sistemas têm políticas de controle de acesso que são complexas. Se as autorizações de nível de função não forem implementadas, os invasores podem acessar funções não autorizadas. Um caso recente em setembro de 2022 viu um invasor se infiltrar na infraestrutura de TI da Uber devido a essa vulnerabilidade.
Acesso irrestrito a fluxos comerciais sensíveis: O acesso excessivo a fluxos comerciais críticos pode interromper as operações. Em 2011, a CITI sofreu uma violação de dados que afetou 350 mil portadores de cartão norte-americanos devido a um ataque que manipulou seus fluxos comerciais.
Falsificação de solicitação do lado do servidor (SSRF): vulnerabilidades SSRF ocorrem quando uma API busca dados de uma URL definida pelo usuário não validada, potencialmente permitindo que invasores ignorem medidas de segurança. Pilhas de tecnologia modernas, como Docker e Kubernetes, são especialmente vulneráveis.
Configuração incorreta de segurança: configurações de API inseguras podem levar a vários ataques que expõem dados e ganham acesso não autorizado. Essas vulnerabilidades surgem de uma miríade de fatores, como patches ausentes, sistemas desatualizados ou detalhes de erro expostos.
Gerenciamento de inventário inadequado: com APIs frequentemente expondo mais endpoints do que aplicativos web tradicionais, manter uma documentação precisa é essencial. O gerenciamento de inventário inadequado pode resultar de armazenamento inseguro, criptografia fraca ou controles de acesso inadequados.
Consumo inseguro de APIs: o consumo de APIs geralmente depende da confiança que os desenvolvedores depositam em respostas de terceiros. Muitos desenvolvedores acreditam que APIs de terceiros, especialmente aquelas oferecidas por empresas conhecidas, são inerentemente seguras. Essa confiança equivocada pode levar a vulnerabilidades. Em vez de mirar diretamente em suas APIs, os invasores podem explorar essas integrações de terceiros. Incidentes, como os ataques SSRF, podem se manifestar devido à validação e higienização inadequadas de respostas. Por exemplo, em janeiro de 2021, o Parler enfrentou problemas de segurança ao permitir que APIs de terceiros acessassem dados sem autenticação. Os invasores adivinharam URLs contendo informações confidenciais e acessaram os dados sem autenticação.
Ao entender esses riscos e implementar medidas de segurança adequadas, as organizações podem mitigar significativamente as ameaças potenciais associadas às APIs. Visite o API Security Top 10 da OWASP para obter uma análise detalhada de cada risco.
Segurança de API para SOAP, REST e GraphQL
Cada uma das três arquiteturas principais de API — SOAP, REST e GraphQL — tem suas próprias implicações de segurança exclusivas.
API Architecture | Security Implications |
---|---|
Segurança da API SOAP | SOAP é um protocolo de mensagens simplificado, baseado em XML, projetado para troca de dados estruturados em redes de computadores descentralizadas. Ele é adaptável em vários protocolos, como HTTP e SMTP. As camadas de segurança do SOAP incorporam tanto a segurança da camada de transporte (como HTTPS) para criptografar dados em trânsito quanto a segurança em nível de mensagem, incluindo assinaturas digitais XML, para manter a integridade da mensagem. Ao seguir as especificações de Web Services (WS), que oferecem diretrizes padronizadas, o SOAP fornece recursos de segurança robustos, como WS-ReliableMessaging para tratamento de erros aprimorado. |
Segurança da API REST | As APIs REST empregam JSONs para representação de dados e dependem de HTTP/s para transferências de dados, simplificando o processo de desenvolvimento. Como o REST não possui mecanismos de segurança inerentes, sua segurança depende do design da API. Implementar medidas de segurança na transmissão de dados, implantação e interações com o cliente é essencial. Normalmente, as APIs REST dependem de protocolos como HTTPS e empregam autenticação baseada em token para aumentar a segurança. |
Segurança da API GraphQL | GraphQL, uma linguagem de API de código aberto, funciona tanto como uma linguagem de consulta quanto como um tempo de execução para execução de consulta. Seu esquema estritamente tipado garante a consistência dos dados. No entanto, sua flexibilidade pode ser uma faca de dois gumes: consultas complexas e não filtradas podem levar os servidores ao erro, potencialmente executando solicitações maliciosas. Adotar práticas de segurança como limitação, definir limites de profundidade de consulta e implementar tempos limite de consulta pode mitigar essas vulnerabilidades. |
Sua empresa está desenvolvendo aplicativos com GenAI? Assim como qualquer outro serviço multilocatário, os aplicativos que incorporam GenAI podem sofrer com vulnerabilidades de API tradicionais. Aprenda a implementar modelos de IA generativos como parte de seus aplicativos de nuvem multilocatários com segurança .
Padrões de segurança da API
A chave para manter suas APIs seguras é manter melhores padrões de segurança de API. Você pode começar aderindo aos seguintes pontos:
Descoberta e inventário de API
Para proteger uma API, você precisa estar ciente de sua existência primeiro. Descoberta e inventário automatizados contínuos usando scanners são cruciais para detectar todos os endpoints de API e entender seus parâmetros e tipos de dados.
Identificar riscos e vulnerabilidades de API
Reconhecer as vulnerabilidades do seu sistema é essencial para manter as APIs seguras. Mantenha-se atualizado com os componentes do sistema, identifique potenciais pontos fracos no ciclo de vida da sua API e empregue ferramentas de segurança de API multicamadas contra ameaças que foram abordadas nos principais riscos de API, ataques de bot e ataques DDoS da OWASP.
Usar criptografia
APIs criptografadas são menos propensas a violações. Aproveitar assinaturas garante que somente usuários autorizados possam acessar e alterar dados. Métodos como protocolos de criptografia TLS protegem efetivamente os dados da API.
Implementar autenticação e autorização fortes
A autenticação verifica o usuário, normalmente usando chaves de API ou autenticação de acesso básico, enquanto a autorização garante que os usuários acessem apenas dados permitidos, geralmente obtidos por meio do Role Based Access Control (RBAC). Ambos são vitais para uma segurança de API robusta.
Use limites de taxa e limitação
Ataques DoS e DDoS apresentam sérias ameaças às suas operações, e APIs são um vetor comum. Ao impor cotas e limites de taxa, você pode frustrar tais ameaças e riscos adicionais, como credential stuffing.
Use um gateway de API
APIs gerenciadas reduzem vulnerabilidades. Como os gateways de API servem como mediadores intermediários para clientes e serviços de backend, eles podem autenticar tráfego e aprimorar a segurança da sua API.
Uma nova abordagem para segurança de API
Como discutimos, a segurança de API começa com a descoberta de APIs e inventário. As soluções existentes para segurança de API são baseadas principalmente em agentes e scanners de rede. No entanto, eles não conseguem dar visibilidade completa e também são complexos de implementar. Com o Wiz Dynamic Scanner , a Wiz trouxe uma abordagem nova e moderna para a segurança de API.
Com sua varredura sem agente para todos os principais provedores de nuvem, o Wiz Dynamic Scanner analisa todas as camadas de nuvem da sua implantação, possibilitando detectar quaisquer componentes de risco e caminhos de ataque que possam estar presentes no seu ambiente de nuvem.
Essa abordagem oferece visibilidade completa para identificar todas as suas APIs que estão expostas na internet, juntamente com o contexto associado, para que você possa ter uma compreensão completa do que está exposto e qual seria o raio de alcance caso fossem exploradas.
Para entender melhor e ver como ele se comporta no seu ambiente, agende uma demonstração com a Wiz para ver pessoalmente como ele funciona e todos os recursos que ele oferece.
Uma abordagem contextual e sem agentes para segurança de API
Aprenda como, com o Wiz, os clientes agora podem simplesmente responder à pergunta de onde tenho APIs expostas no meu ambiente com todo o contexto associado ao ambiente de execução.
Perguntas frequentes sobre segurança de API