Leia sobre dicas e funcionalidades da GoCache CDN para melhorar a seguranca do seu site, loja virtual ou app mobile.

Pentest para API

O mundo se tornou um lugar interconectado por meio de APIs e aplicativos. O problema é que a maioria das empresas não faz o suficiente para garantir a proteção das suas APIs. Pior ainda, a maioria das empresas não considera testar a segurança das suas APIs.

O que é o teste de penetração de API?

O teste de penetração de API é um tipo de teste de segurança executado em interfaces de programação de aplicativos (APIs) para avaliar a força de seus controles de segurança.

O teste de penetração de API visa identificar vulnerabilidades de segurança que os invasores podem explorar para obter acesso a dados confidenciais ou executar outras ações maliciosas.

Ele normalmente envolve tentar atacar a API da mesma forma que um invasor, para encontrar qualquer ponto fraco que um hacker poderia explorar. Isso inclui testes para injeção SQL e cross-site scripting (XSS) e outras vulnerabilidades no nível da API.

É importante observar que o teste de penetração de API difere do teste de segurança geral do aplicativo, pois o foco está especificamente na própria API.

Por que o teste de penetração de API é essencial?

O teste de penetração de API é essencial para garantir a segurança de um aplicativo. Testar a API permite que possíveis vulnerabilidades de segurança sejam identificadas e corrigidas antes que possam ser exploradas. Além disso, o teste de penetração pode ajudar a garantir que a API esteja funcionando conforme o esperado e que não haja riscos de segurança imprevistos.

Ao realizar testes de penetração regulares, as organizações podem reduzir proativamente o risco de violações de segurança e garantir a segurança de seus dados e sistemas.

Além disso, o teste de penetração de API também pode ajudar as organizações a cumprir os regulamentos de conformidade e privacidade.

3 vulnerabilidades comuns encontradas em APIs

Muitos tipos diferentes de vulnerabilidades podem ser encontrados em APIs, mas há três que são particularmente comuns:

1 – Falta de Autenticação e Autorização: esta vulnerabilidade de segurança permite acesso não autorizado a uma API. Isso pode ser explorado para obter acesso a dados confidenciais ou executar ações que o usuário autorizado não deveria ser capaz de fazer.

2 – Limitação de taxa insuficiente: esta vulnerabilidade de segurança permite que muitas solicitações sejam feitas para uma API em um determinado período. Isso pode ser explorado para realizar ataques de negação de serviço ou para sobrecarregar o servidor API.

3 – Comunicação Insegura: Esta é uma vulnerabilidade de segurança que permite que a comunicação entre o cliente API e o servidor seja interceptada. Isso pode ser explorado para escutar conversas ou para visualizar dados confidenciais.

Essas são apenas algumas das muitas vulnerabilidades de segurança que podem ser encontradas em APIs. É importante ter isso em mente quando desenvolver ou usar as APIs.

3 práticas recomendadas para evitar vulnerabilidades de API

Violações de API podem ser devastadoras para qualquer organização. Elas podem levar à perda de dados, danos à reputação e até responsabilidades legais. É por isso que é tão importante implementar medidas de segurança adequadas para evitá-las. Abaixo estão algumas medidas de segurança a serem lembradas para evitar vulnerabilidades de segurança.

1 – Implemente o monitoramento em tempo real

A implementação de um sistema de monitoramento em tempo real é a melhor maneira de proteger sua API contra violações. Ao identificar todos os possíveis pontos de entrada de dados e monitorar cada um deles, você pode detectar violações antes que elas aconteçam e evitar que causem qualquer dano.

2 – Realize verificações regulares de APIs

As varreduras de API são uma parte importante da análise de segurança abrangente. Elas podem ajudar a identificar vulnerabilidades que, de outra forma, poderiam passar despercebidas. As varreduras de API podem ser executadas manualmente ou usando ferramentas automatizadas. As ferramentas automatizadas podem fornecer uma cobertura mais abrangente e podem ser executadas com mais frequência.

3 – Nunca confie nos dados do usuário

Nunca confie nos dados do usuário. Isso é algo que todos os desenvolvedores devem ter em mente ao trabalhar com a entrada do usuário. Só porque um usuário insere algo em um campo de formulário ou caixa de texto não significa que seja preciso ou seguro. Sempre assume que os dados do usuário são maliciosos até que sejam verificados e, mesmo assim, tenha cuidado.

Melhores Práticas de Segurança para APIs

A segurança da API nunca deve ser tomada como garantida. Com a crescente demanda por projetos centrados em dados, as empresas se abriram rapidamente para o seu ecossistema por meio de APIs SOAP ou REST.

As Interfaces de Programação de Aplicativos (ou APIs, para abreviar) são as portas para os dados bem guardados de uma empresa. Elas são extremamente úteis porque permitem que dois aplicativos diferentes se comuniquem.

Superficialmente, isso é ótimo porque torna a vida muito mais fácil para os desenvolvedores, mas, ao mesmo tempo, cria o seguinte desafio: como podemos manter as portas abertas para o ecossistema da API e fechadas para hackers ao mesmo tempo?

Existem maneiras de fazer isso e estratégias que você pode empregar para colher os benefícios que as APIs oferecem, mantendo todos os seus dados seguros. Então, vamos examinar algumas práticas recomendadas para a segurança das API. Aqui estão 12 dicas simples para evitar riscos de segurança e proteger as suas APIs.

1. Criptografia

Seja enigmático. Nada deve ficar claro para comunicações internas ou externas. A criptografia converterá suas informações em código. Isso tornará muito mais difícil que dados confidenciais acabem nas mãos erradas.

Você e seus parceiros devem codificar todas as trocas com TLS (o sucessor do SSL), seja criptografia unidirecional (TLS unidirecional padrão) ou, melhor ainda, criptografia mútua (TLS bidirecional).

Use as versões mais recentes do TLS para bloquear o uso dos conjuntos de cifras mais fracos.

2. Autenticação

Não fale com estranhos. Em termos simples, a autenticidade é real. Significa que algo (ou alguém) é quem diz ser. No mundo digital, a autenticação é o processo de verificação da identidade de um usuário. Ela essencialmente tira a máscara de qualquer pessoa que queira ver as suas informações.

Portanto, você sempre deve saber quem está chamando as suas APIs. Existem vários métodos para autenticar:

Autenticação básica HTTP, em que um usuário precisa fornecer ID de usuário e senha

Chave de API, em que um usuário precisa de um identificador exclusivo configurado para cada API e conhecido pelo API Gateway

Um token que é gerado por um servidor IdP (Provedor de Identidade). OAuth 2 é o protocolo mais popular que oferece suporte a esse método.

No mínimo você deve usar uma chave API (chave assimétrica) ou autenticação básica de acesso (usuário/senha) para aumentar a dificuldade para invadir o seu sistema. Mas você deve considerar o uso do OAuth 2 como seu protocolo de escolha para uma segurança robusta das suas APIs.

3. Conexão OAuth e OpenID

Delegue todas as responsabilidades. Um bom gerente delega responsabilidades e uma ótima API também. Você deve delegar autorização e/ou autenticação das suas APIs a provedores de identidade (IdP) terceirizados.

O que é OAuth 2? É um mecanismo mágico que evita que você tenha que se lembrar de dez mil senhas. Em vez de criar uma conta em cada site, você pode se conectar por meio das credenciais de outro provedor, por exemplo, Facebook ou Google.

Funciona da mesma forma para APIs: o provedor de API depende de um servidor terceirizado para gerenciar as autorizações. O consumidor não insere suas credenciais, mas fornece um token fornecido pelo servidor de terceiros. Ele protege o consumidor, pois ele não divulga suas credenciais, e o provedor da API não precisa se preocupar em proteger os dados de autorização, pois recebe apenas tokens.

OAuth é um protocolo de delegação comumente usado para transmitir autorizações. Para proteger ainda mais suas APIs e adicionar autenticação, você pode adicionar uma camada de identidade sobre ela: este é o padrão Open Id Connect, estendendo o OAuth 2.0 com tokens ID.

4. Chame especialistas em segurança

Não tenha medo de pedir (ou usar) alguma ajuda. Chame alguns especialistas em segurança. Use sistemas antivírus experientes ou servidores ICAP (Internet Content Adaptation Protocol) para ajudá-lo na verificação da carga útil das suas APIs. Isso o ajudará a evitar que qualquer código ou dados maliciosos afetem seus sistemas.

Existem várias APIs de segurança que você pode usar para proteger os seus dados. Elas podem fazer coisas como:

Integrar a autenticação de dois fatores

Criar login sem senha ou senhas únicas baseadas em tempo

Enviar alertas push se houver uma violação

Proteger contra vírus e malware

Evitar fraudes

Informar se uma senha é uma senha conhecida usada por hackers

Adicionar inteligência de ameaças

Fornecer monitoramento de segurança

A melhor parte é que alguns desses sistemas antivírus são gratuitos. Outros oferecem planos mensais. Os planos premium fornecem mais proteção, mas você pode decidir por si mesmo o tipo de segurança de que precisa.

5. Monitoramento: auditoria, log e versão

Seja um stalker. Monitorar continuamente sua API e o que ela faz pode compensar. Seja vigilante como aquele pai superprotetor que quer saber tudo sobre as pessoas ao redor de seu filho ou filha.

Como você faz isso? Você precisa estar pronto para solucionar problemas em caso de erro. Você precisará auditar e registrar informações relevantes no servidor — e manter esse histórico enquanto for razoável em termos de capacidade para seus servidores de produção.

Transforme seus logs em recursos para depuração em caso de incidentes. Manter um registro completo ajudará você a acompanhar e tornar qualquer coisa suspeita mais perceptível.

Além disso, painéis de monitoramento são ferramentas altamente recomendadas para rastrear o seu consumo de API.

Não se esqueça de adicionar a versão em todas as APIs, de preferência no caminho da API, para oferecer várias APIs de versões diferentes funcionando e para retirar e depreciar uma versão em detrimento da outra.

6. Compartilhe o mínimo possível

Seja paranoico. Tudo bem ser excessivamente cauteloso. Lembre-se, é vital proteger seus dados.

Exiba o mínimo de informações possível em suas respostas, especialmente em mensagens de erro. Bloqueie assuntos e conteúdo de e-mail para mensagens predefinidas que não podem ser personalizadas. Como os endereços IP podem fornecer locais, guarde-os para você.

Use IP Whitelist e IP Blacklist, se possível, para restringir o acesso aos seus recursos. Limite o número de administradores, separe o acesso em diferentes funções e oculte informações confidenciais em todas as suas interfaces.

7. Proteção do sistema com limitação e cotas

Acelere-se. Você deve restringir o acesso ao seu sistema a um número limitado de mensagens por segundo para proteger a largura de banda do seu sistema de back-end de acordo com a capacidade de seus servidores. Menos é mais.

Você também deve restringir o acesso pela API e pelo usuário (ou aplicativo) para garantir que ninguém irá abusar do sistema ou de qualquer API em particular.

Limites e cotas de estrangulamento – quando bem definidos – são cruciais para evitar que ataques vindos de diferentes fontes inundem seu sistema com várias solicitações (DDOS – Distributed Denial of Service Attack). Um DDOS pode bloquear usuários legítimos de seus próprios recursos de rede.

8. Validação de dados

Seja exigente e recuse presentes surpresa, especialmente se forem muito grandes. Você deve verificar tudo o que seu servidor aceita. Tenha cuidado para rejeitar qualquer conteúdo adicionado ou dados que sejam muito grandes e sempre verifique o conteúdo que os consumidores estão enviando para você. Use a validação de esquema JSON ou XML e verifique se seus parâmetros são o que deveriam ser (string, integer…) para evitar qualquer injeção SQL ou bomba XML.

9. Infraestrutura

Rede e estar atualizada. Uma boa API deve se apoiar em uma boa rede de segurança, infraestrutura e software atualizados (para servidores, balanceadores de carga), para ser sólida e sempre se beneficiar das últimas correções de segurança.

10. OWASP Top 10

Evite vespas. O Top 10 do OWASP (Open Web Application Security Project) é uma lista das dez piores vulnerabilidades, classificadas de acordo com sua capacidade de exploração e impacto. Além dos pontos acima, para revisar seu sistema, verifique se você protegeu todas as vulnerabilidades OWASP.

11. Firewall API

Construa uma parede. Para algumas pessoas, construir um muro pode resolver todos os problemas da imigração. Este é o caso, pelo menos para as APIs! Sua segurança de API deve ser organizada em duas camadas:

A primeira camada está na DMZ, com um firewall de API para executar mecanismos básicos de segurança, como verificação do tamanho da mensagem, injeções de SQL e qualquer segurança baseada na camada HTTP, bloqueando intrusos antecipadamente. Em seguida, encaminhe a mensagem para a segunda camada.

A segunda camada está em LAN com mecanismos avançados de segurança no conteúdo dos dados.

Quanto mais desafiador for para os invasores cibernéticos obterem suas informações, melhor.

12. API Gateway (Gerenciamento de API)

Porta de entrada para o céu. Todos os mecanismos acima são longos para implementar e manter. Em vez de reinventar a roda, você deve optar por uma solução de gerenciamento de API madura e de alto desempenho com todas essas opções para economizar seu dinheiro, tempo e recursos e aumentar seu tempo de lançamento no mercado. Um API Gateway ajudará você a proteger, controlar e monitorar seu tráfego.

Além de ajudá-lo a proteger facilmente suas APIs, uma solução de gerenciamento de API ajudará você a entender seus dados de API para tomar decisões técnicas e de negócios: a chave para o sucesso!

Agora você sabe mais sobre os mecanismos básicos para proteger suas APIs! Divirta-se protegendo-as, esperançosamente com uma ótima solução de gerenciamento de API.

Não subestime a segurança da API

É lamentável, mas as ameaças da Internet são abundantes e os hackers são implacáveis. Implementar um sólido plano de segurança de API é fundamental para proteger suas informações. Crucialmente, a prática final recomendada é incorporar a segurança da API na mentalidade geral e no processo de como as APIs são projetadas e desenvolvidas.

A Amplify API Management Platform da Axway torna mais fácil do que nunca proteger suas experiências digitais. Ela não apenas monitora e protege sua API, mas você também terá todas as informações necessárias em um só lugar. É visível e fácil de ler. Você nunca ficará vulnerável a ataques cibernéticos, permitindo que você se concentre no que precisa ser feito.

E se você combinar a tecnologia certa com um processo mais deliberado, incorporando segurança ao processo de design desde o início, poderá descobrir e lidar com as ameaças à segurança antes que elas surjam.

Por que a segurança aa API deve ser uma das principais preocupações

Crescimento maciço da API
As APIs servem como blocos de construção de arquiteturas de aplicativos e design de sistemas modernos, e a maior parte do tráfego na Web hoje passa por elas. Um sistema geralmente requer uma API para acessar seus recursos. Quase todas as linhas de código usam uma chamada de API, que ajuda os programadores a criarem os seus produtos com base em esforços anteriores.

O uso de APIs pode acelerar e reduzir o custo do desenvolvimento de aplicativos, permitir flexibilidade, simplificar o design, a administração e o uso e permitir a inovação ao criar novas ferramentas e produtos ou gerenciar os atuais.

O uso generalizado de APIs tornou a segurança da API uma preocupação fundamental. O relatório do Gartner, “How to Build an Effective API Security Strategy”, afirma que “até 2022, os abusos de API serão o vetor de ataque mais frequente, resultando em violações de dados para aplicativos da web corporativos”. Para se proteger contra ataques de API, o Gartner recomenda a adoção de “uma abordagem contínua para a segurança da API em todo o ciclo de desenvolvimento e entrega da API, projetando a segurança [diretamente] nas APIs”.

Essas mudanças no cenário de segurança levaram recentemente a OWASP a lançar uma lista específica de API: as 10 principais vulnerabilidades de segurança de API do OWASP.

As 10 principais ameaças à segurança de API do OWASP

API1: Autorização Quebrada a Nível de Objeto

API6: Atribuição em Massa

API2: Autenticação Quebrada

API7: Configuração Incorreta de Segurança

API3: Exposição Excessiva de Dados

API8: Injeção

API4: Falta de Recurso e Limitação de Taxa

API9: Gestão Inadequada de Ativos

API5: Autenticação Quebrada a Nível de Função

API10: Registro e Monitoramento Insuficientes

Além do top 10 do OWASP, há outros problemas de segurança de API a serem monitorados:

Hackers que também são usuários
Usando regras sofisticadas de controle de acesso, um hacker pode ser um insider ou pode ter usado um endereço de e-mail falso ou uma conta de mídia social para se inscrever no aplicativo.

Contas e credenciais válidas
O preenchimento de credenciais e as compras na dark web são duas das muitas maneiras pelas quais os invasores podem obter credenciais válidas. Os hackers podem assumir o controle de contas legítimas ignorando a primeira camada de regras de controle de acesso porque sabem que os usuários reutilizam senhas.

Tokens roubados
Phishing, olhar para repositórios públicos no GitHub e outros métodos podem levar à perda de um token OAuth. Como a maioria das confirmações de token são tokens de portador leves, um token vazado pode ser usado por qualquer pessoa em qualquer lugar até que expire.

Cenários fora do aplicativo
Os hackers tentam encontrar vulnerabilidades de API ocultas ignorando o aplicativo pelo lado do cliente. Os próprios provedores de API geralmente desconhecem essas vulnerabilidades.

Embora as empresas possam mitigar essas ameaças adicionais à segurança da API, reforçando os procedimentos de segurança, os riscos permanecem.

Ferramentas antigas não irão protegê-lo

Muitas empresas ainda usam ferramentas de segurança antigas, como gateways de API e Web Application Firewalls (WAFs), além de outros métodos tradicionais de proteção. No entanto, à medida que as ameaças se tornam mais complicadas e sofisticadas, as ferramentas padrão ignoram completamente os ataques direcionados às APIs.

Aqui estão alguns exemplos:

Gateways de API: as ferramentas de gerenciamento de API coletam todas as solicitações do usuário e as transformam em uma. Elas se tornam o ponto de entrada para cada nova solicitação executada pelo aplicativo. No entanto, eles protegem apenas as APIs conhecidas por essa ferramenta, enquanto muitas funcionam fora desses gateways.

WAF: Muitas soluções nesta categoria dependem exclusivamente de métodos tradicionais de segurança de aplicativos. Nesta categoria, as assinaturas são usadas para procurar padrões de ataque conhecidos, mas as assinaturas são ineficazes, pois cada API é diferente e possui seu próprio conjunto de vulnerabilidades. Essas soluções baseadas em proxy carecem da arquitetura necessária para compreender o contexto da API e, como resultado, são incapazes de entender a lógica exclusiva ou identificar invasores visando vulnerabilidades específicas.

Ataques de API acontecem com os melhores de nós
Aqui estão alguns exemplos de ataques de API famosos:

USPS (2018): dados de 60 milhões de usuários expostos
A API de visibilidade de informações da empresa, mapeada para seu site online, suportava solicitações não autenticadas para rastreamento de dados

Facebook (2018): dados pessoais de 87 milhões de usuários coletados
A Graph API do desenvolvedor da empresa suportava consultas em alguns membros sem consentimento e limites de taxa.

Venmo (2018 e 2019): detalhes de 207 milhões e 7 milhões de transações de pagamento “raspados”
A API do desenvolvedor da empresa suportava solicitações não autenticadas para download de detalhes da transação com limites de taxa ineficazes ao longo do tempo.

Equifax (2017): informações confidenciais sobre 148 milhões de cidadãos americanos comprometidas
Houve duas comunicações críticas baseadas em HTTP durante a cadeia de eliminação deste ataque cibernético:

Exploração inicial por meio de uma solicitação HTTP manipulada

Exfiltração com um alto volume acumulado de cargas úteis de resposta HTTP

Capital One (2019): informações confidenciais sobre 100 e 6 milhões de cidadãos americanos e canadenses, respectivamente, foram comprometidas. Dois conjuntos críticos de chamadas de API da AWS criaram esta violação:

  • Solicitações forjadas (por SSRF) para um endpoint de metadados para obter credenciais temporárias
  • Uma solicitação de sincronização para o armazenamento S3 para baixar todos os dados na máquina de ataque local

Mesmo as empresas mais sofisticadas podem sofrer com vulnerabilidades de API, resultando em milhões de violações de dados de usuários. No entanto, elas também poderiam ter evitado esse dano com uma solução de segurança de API adequada.

O que você pode fazer
Com o uso massivo e crescente de APIs na Internet, não é de admirar que a segurança da API esteja se tornando uma preocupação significativa para todas as organizações. As ferramentas tradicionais não são mais adequadas, e uma solução específica para APIs agora é obrigatória para qualquer organização.

O que é Pentest?

Um teste de penetração, também chamado de pentest ou hacking ético, é uma técnica de segurança cibernética que as organizações usam para identificar, testar e destacar vulnerabilidades em sua postura de segurança. Esses testes de penetração geralmente são realizados por hackers éticos. Esses funcionários internos ou terceirizados imitam as estratégias e ações de um invasor para avaliar a hackabilidade dos sistemas de computador, rede ou aplicativos da Web de uma organização. As organizações também podem usar testes de penetração para avaliar sua adesão aos regulamentos de conformidade.

O teste de penetração é considerado uma medida proativa de segurança cibernética porque envolve melhorias consistentes e autoiniciadas com base nos relatórios gerados pelo teste. Isso difere das abordagens não proativas, que não corrigem as fraquezas à medida que surgem. Uma abordagem não proativa para segurança cibernética, por exemplo, envolveria uma empresa atualizando o seu firewall após a ocorrência de uma violação de dados. O objetivo das medidas proativas, como o teste de penetração, é minimizar o número de atualizações retroativas e maximizar a segurança de uma organização.

Quais são os tipos de pentest?

Existem três estratégias principais de teste de penetração, cada uma oferecendo um certo nível de informação necessária para quem está conduzindo o teste realizar seu ataque.

White box – O teste fornece aos testadores todos os detalhes sobre o sistema de uma organização ou rede de destino e verifica o código e a estrutura interna do produto que está sendo testado. Esse teste também é conhecido como caixa-branca, vidro aberto (open glass), teste transparente (transparente test), ou teste baseado em código (code-based testing).

Black box – O teste é um tipo de teste comportamental e funcional em que os testadores não recebem nenhum conhecimento do sistema. As organizações normalmente contratam hackers éticos para testes de caixa preta (Black box), onde um ataque do mundo real é realizado para ter uma ideia das vulnerabilidades do sistema.

Gray box – O teste é uma combinação de técnicas dos testes de caixa branca e caixa preta. Ele fornece aos testadores conhecimento parcial do sistema, como credenciais de baixo nível, fluxogramas lógicos e mapas de rede. A ideia principal por trás do teste de caixa cinza (gray box) é encontrar possíveis problemas de código e funcionalidade.

Quais são as etapas do pentest?

O pentest pode ser dividido em seis etapas:

  1. Reconhecimento e planejamento. Os testadores coletam todas as informações relacionadas ao sistema de destino de fontes públicas e privadas. As fontes podem incluir pesquisas anônimas, engenharia social, recuperação de informações de registro de domínio e rede não intrusiva e verificação de vulnerabilidades. A informação é vital para os testadores, pois fornece pistas sobre a superfície de ataque do sistema alvo e vulnerabilidades abertas, como componentes de rede, detalhes do sistema operacional, portas abertas e pontos de acesso.
  2. Varredura. Com base nos resultados da fase inicial, os testadores podem usar várias ferramentas de varredura para explorar ainda mais o sistema e seus pontos fracos. Ferramentas de pentest – incluindo dialers de guerra, scanners de porta, scanners de vulnerabilidade de segurança e mapeadores de rede – são usadas para detectar o máximo possível de vulnerabilidades e brechas. As vulnerabilidades são selecionadas para exploração.
  3. Obtenção de entrada. Durante esta fase, os testadores exploram as vulnerabilidades avaliadas na fase anterior, fazendo uma conexão com o alvo. Os testadores conduzem ataques comuns de segurança de aplicativos da web – incluindo um ataque de negação de serviço (DoS), injeções de SQL e backdoors, ataques de sessão hijacking e cross-site scripting – para expor as vulnerabilidades do sistema, que são então exploradas por meio de escalonamento de privilégios, interceptação de tráfego ou técnicas de roubo de dados.
  4. Manutenção do acesso. Este estágio garante que os testadores de penetração permaneçam conectados ao alvo pelo maior tempo possível e explorem as vulnerabilidades para infiltração máxima de dados. Este estágio imita uma ameaça persistente avançada, que pode permanecer ativa em um sistema por períodos prolongados para roubar dados confidenciais e causar mais danos.
  5. Análise. Os testadores analisam os resultados obtidos no teste de penetração e os compilam em um relatório. O relatório detalha cada etapa realizada durante o processo de teste, incluindo o seguinte: • as vulnerabilidades que os testadores exploraram;
    • os tipos de dados confidenciais que os testadores acessaram; e
    • a quantidade de tempo que os testadores permaneceram conectados ao alvo.
  6. Limpeza e correção. Após a conclusão do teste, os testadores devem remover todos os vestígios de ferramentas e processos usados ​​durante os estágios anteriores para evitar que um agente de ameaça do mundo real os use como âncora para infiltração no sistema. Durante esse estágio, as organizações devem começar a corrigir quaisquer problemas encontrados em seus controles de segurança e infraestrutura.

Políticas de confiança zero para APIs

Visão Geral
“Zero Trust” é uma estrutura para proteger a infraestrutura e os dados. É a única abordagem desse tipo projetada para atender às preocupações corporativas atuais, como trabalho remoto, configurações de nuvem híbrida, ransomware e ataques de API. Muitos fornecedores tentaram definir o Zero Trust em seus próprios termos. Além disso, uma variedade de padrões de organizações respeitáveis pode ajudá-lo a alinhar o Zero Trust com o seu próprio negócio. Aqui está o que você precisa saber para começar.

A abordagem Zero Trust serve em parte para lidar com as mudanças contínuas trazidas pela metodologia Agile. Essa metodologia, a abordagem atual mais comum no mundo da tecnologia, tenta entregar o melhor produto por meio de pequenas equipes internas multifuncionais. Essas equipes fornecem regularmente pequenas peças de funcionalidade, permitindo a entrada frequente do cliente e a correção de curso. Para o desenvolvimento de APIs, a Agile vincula mudanças e atualizações constantes no software, código e arquitetura de software do produto. Cada atualização pode introduzir novos riscos de segurança.

Uma Política de confiança zero
Zero Trust é um conceito de segurança baseado na premissa de que as organizações não devem confiar em nada dentro ou fora de seus perímetros e devem verificar qualquer tentativa de conexão com seus sistemas antes de fornecer acesso. A arquitetura Zero Trust baseia-se no princípio de que nada pode ser confiável, incluindo qualquer dispositivo, usuário ou programa que tente interagir com a sua arquitetura. Sua configuração padrão é considerar tudo como uma ameaça potencial a ser verificada.

Porque a sua API deve seguir a Política de confiança zero
Existem razões convincentes para adotar uma política de confiança zero. Os programas de software se comunicam entre si usando APIs. Eles são o núcleo dos padrões de software modernos, como arquiteturas de microsserviços. Como resultado, o uso da API explodiu nos últimos anos.

Em um aplicativo, o lado do cliente (por exemplo, um aplicativo móvel ou da Web) interage com o lado do servidor por meio de uma API, seja para consumidores, funcionários, parceiros ou cenários máquina a máquina. As APIs simplificam, para um desenvolvedor, projetar um aplicativo do lado do cliente, aproveitando os microsserviços.

As APIs mudam regularmente – em semanas, dias ou até horas – graças às abordagens de desenvolvimento Agile. O teste de segurança durante o processo de compilação nunca é suficiente para capturar todas as lacunas e vulnerabilidades de codificação no ritmo de desenvolvimento atual. Além disso, as APIs geralmente são amplamente documentadas ou facilmente submetidas a engenharia reversa porque geralmente estão disponíveis em redes públicas, permitindo o acesso de qualquer pessoa. Por serem amplamente utilizadas e por permitirem o acesso às funções e dados essenciais de software, elas se tornaram o principal alvo dos hackers.

Os programas de software modernos são vulneráveis a vários perigos, por isso é aconselhável manter-se atualizado sobre as últimas explorações e falhas de segurança. Os benchmarks para tais defeitos são críticos para garantir a segurança do aplicativo antes que um ataque se torne agudo. Além disso, o Open Web Application Security Project (OWASP) é uma organização sem fins lucrativos respeitável, que publica avaliações de segurança de software. Ela lista as 10 principais vulnerabilidades de API que os invasores podem usar para prejudicar qualquer organização, extrair dados PII (informações de identificação pessoal) ou até mesmo derrubar um sistema em grande escala.

APIs – State of Mind

A economia da API
Interfaces de programação de aplicações (API) são funções e recursos que permitem que aplicativos interajam entre si. As APIs, geralmente descritas como interfaces máquina a máquina, incluem bibliotecas, estruturas, kits de ferramentas e kits de desenvolvimento de software.

As APIs estão impulsionando a Internet e nossa economia. Você usa uma API toda vez que entra em um aplicativo como o Instagram, envia uma mensagem ou verifica seu e-mail. As APIs permitem uma troca de dados tranquila.

Além disso, as APIs simplificam para os desenvolvedores adicionarem novas funcionalidades aos seus aplicativos. Em vez de construir um produto do zero, um desenvolvedor pode usar uma API e construir em cima do que outros, ou ele mesmo, já fizeram. Esse atalho economiza tempo e garante que funcionalidades importantes funcionem corretamente.

Além disso, com a disseminação da tecnologia em nuvem, mais e mais programas SaaS estão migrando para a nuvem. Esses serviços em nuvem usam APIs para se comunicarem. De mensagens de texto a comércio eletrônico e simplesmente verificar as notícias, as atividades diárias dependem do suporte da API.

Como resultado dessas conveniências, o uso da API está aumentando rapidamente. Com isso, pode haver dezenas, centenas ou até milhares de APIs conectando aplicativos internos entre si e com o mundo externo em uma única organização. Mas nem tudo são boas notícias.

Ameaças à API
À medida que o uso de APIs aumenta, o mesmo acontece com as ameaças que as visam. Um ataque de API ocorre quando uma API é usada ou testada de forma maliciosa. Os ataques baseados em API são três vezes mais comuns do que os ataques contra aplicativos HTML. As APIs incluem documentação sobre sua estrutura e métodos de implementação, tornando mais fácil para os hackers usarem essas informações para lançar ataques cibernéticos. Se uma API for quebrada, exposta ou não estiver adequadamente protegida, isso pode resultar na exposição de dados confidenciais ou pessoais. Falhas de segurança, ou mesmo equívocos, podem levar a esses ataques. Portanto, a segurança da API deve evoluir para permanecer atualizada nesse ambiente em constante mudança.

Equívocos
Muitas empresas e organizações não entendem completamente as APIs. Esses equívocos podem levar uma API a ficar desprotegida e vulnerável a ataques. Aqui estão três equívocos comuns:

Não preciso conhecer todas as minhas APIs
Algumas organizações pensam que não têm nenhuma API, algumas não estão cientes de todas as suas APIs e outras podem pensar que há pouco tráfego passando por elas. Muitas empresas hoje não mantêm um inventário completo de todas as APIs, o que cria uma vulnerabilidade significativa.

Conhecer todas as APIs usadas por seus aplicativos, incluindo APIs de sombra, facilita o conhecimento das alterações e dos riscos em evolução. Configurações incorretas, comportamento suspeito e ataques cibernéticos podem ocorrer quando as equipes de segurança não têm conhecimento das APIs e os protocolos de violação de dados confidenciais não podem proteger suficientemente os aplicativos de possíveis ataques.

WAF é suficiente
Muitas empresas ainda contam com ferramentas de segurança tradicionais, como gateways de API e firewall de aplicativo Web (Web Application Firewalls – WAFs) ou outros métodos de proteção convencionais. Mas, embora esses meios possam proteger suas APIs de ameaças conhecidas, eles não protegem você de outras ameaças.

As ferramentas tradicionais perdem completamente os ataques que visam a lógica das APIs à medida que as ameaças se tornam mais complicadas e sofisticadas. Como esses ataques lentos e de baixo volume ocorrem ao longo de horas ou dias, os WAFs não podem coletar e analisar as grandes quantidades de dados necessários para estabelecer o contexto e identificar essas atividades sutis do invasor.

Hackers não conseguem ver minha API
Outro equívoco comum é que as APIs estão escondidas nos bastidores e se beneficiam da segurança por meio da obscuridade. Em comparação com aplicativos da Web típicos, as APIs, por sua própria natureza, revelam muito mais funcionalidades e dados do aplicativo do que você imagina. Como resultado, os invasores podem explorar facilmente as APIs usando as mesmas ferramentas dos desenvolvedores, usando métodos sutis para mapear a API, entender a lógica e buscar vulnerabilidades.

Além disso, algumas empresas podem não estar cientes de APIs públicas ou não documentadas em seus sistemas e aplicativos, potencialmente permitindo a entrada de hackers.

Resumindo
À medida que o uso de APIs cresce, cresce também a motivação dos hackers para explorar as lacunas de segurança. O Gartner prevê que, até 2022, os abusos de API passarão de um vetor de ataque pouco frequente para o mais frequente. Não ter um status da API pode fazer com que empresas e negócios sejam expostos ou atacados.

A segurança da API requer o seu próprio conjunto de táticas e soluções para compreender e mitigar vulnerabilidades e preocupações de segurança específicas. A única maneira de proteger as APIs é protegê-las de forma holística e abrangente durante todo o ciclo de vida do software. Você precisa descobrir todas as suas APIs, aprender sua lógica de negócios, fazer a linha de base e rastrear o tráfego, identificar falhas de segurança ou ameaças em potencial e considerar possíveis remediações – durante todo o ciclo de vida de cada API.

Top 10 OWASP – Vulnerabilidades de Segurança da API

As APIs expõem a funcionalidade do aplicativo, bem como dados confidenciais, como informações de identificação pessoal (Personally Identifiable Information – PII), tornando-as um alvo para invasores. As APIs fornecem um contrato, mas não possuem as salvaguardas necessárias para garantir que o contrato seja cumprido, oferecendo um risco de segurança significativo para os serviços de back-end aos quais se conectam.

O aumento de ameaças de segurança relacionadas à API nos últimos anos levou o Open Web Application Security Project (OWASP) a lançar o API Security Top 10, que ajuda a aumentar a conscientização sobre os problemas de segurança de API mais sérios que afetam as organizações.

API1: BROKEN OBJECT-LEVEL AUTHORIZATION

As APIs geralmente fornecem endpoints que envolvem identificadores de objetos, expondo assim uma grande superfície de ataque. Qualquer função que receba a entrada do usuário e a utilize para acessar uma fonte de dados pode causar um problema de controle de acesso, expondo o sistema a novos ataques. Para todas essas funções, você deve fazer verificações de autorização em nível de objeto para evitar infiltração.

API2: BROKEN AUTHENTICATION

A autenticação de API é um assunto difícil e complexo. Os invasores geralmente aproveitam os mecanismos de autenticação aplicados incorretamente. Os mecanismos de autenticação tornam-se alvos fáceis para os invasores, especialmente se forem totalmente abertos ou acessíveis ao público. Os invasores podem comprometer um token de autenticação ou usar defeitos de implementação para se passar por outro usuário, temporária ou permanentemente. Se a capacidade do sistema de identificar o cliente/usuário estiver comprometida, a segurança geral da API também estará.

API3: EXCESSIVE DATA EXPOSURE

Antes de mostrar os dados ao usuário, os desenvolvedores frequentemente utilizam filtros do lado do cliente. Essa técnica pode levar a grandes riscos de segurança ao expor muitos dados, que podem ser facilmente abusados ​​pela detecção de tráfego e pela análise das respostas da API em busca de informações confidenciais que não devem ser transmitidas ao usuário. Como resultado, os dados devem ser filtrados constantemente no lado do servidor, com apenas dados relevantes sendo enviados ao cliente.

API4: LACK OF RESOURCES & RATE LIMITING

A quantidade e o tamanho dos recursos que um cliente/usuário pode solicitar é frequentemente irrestrito pelas APIs. As consultas de API usam recursos de rede, CPU, memória e armazenamento, que podem degradar o desempenho do servidor de API, resultando em ataques DoS, expondo fraquezas de autenticação e permitindo ataques de força bruta.

API5: BROKEN FUNCTION-LEVEL AUTHORIZATION

Políticas de controle de acesso excessivamente complicadas ou falta de demarcação clara entre operações normais e administrativas são causas comuns de problemas de autorização. Usuários sem privilégios podem ver alguns endpoints de API, tornando-os mais vulneráveis ​​a invasores. Os invasores podem utilizar essas falhas para obter acesso aos recursos de um usuário ou para realizar tarefas administrativas.

API6: MASS ASSIGNMENT

Os dados fornecidos pelo cliente (ou seja, JSON) são frequentemente vinculados a um modelo de dados com base em uma lista de permissões sem filtragem de propriedade suficiente, resultando em atribuição em massa. Os invasores podem alterar os atributos do objeto usando uma variedade de métodos, incluindo explorar endpoints de API, ler documentação, adivinhar valores de objetos e fornecer propriedades extras por meio de cargas úteis de solicitação.

API7: SECURITY MISCONFIGURATION

Configurações padrão inadequadas, configurações ad-hoc ou incompletas, cabeçalhos HTTP mal configurados ou métodos HTTP inadequados, compartilhamento de recursos de origem cruzada (CORS) insuficientemente restritivo, armazenamento em nuvem aberta ou mensagens de erro contendo informações confidenciais são causas comuns de configuração incorreta de segurança.

API8: INJECTION

As APIs online são vulneráveis ​​a problemas de injeção, que são frequentes em aplicações web. Problemas de injeção (como injeção de SQL, injeção de NoSQL e injeção de comando) afetam os dados fornecidos a um intérprete por um comando ou consulta de uma fonte não confiável. Os invasores podem enviar dados maliciosos para enganar o intérprete e fazê-lo executar instruções prejudiciais ou obter acesso não autorizado aos dados.

API9: IMPROPER ASSET MANAGEMENT

Compreender a possível exposição e risco requer manter um inventário de API atualizado com documentação adequada. As APIs geralmente expõem mais endpoints do que os aplicativos da Web padrão, exigindo documentação completa e atualizada. A superfície de ataque pode ser ampliada por problemas como endpoints de depuração expostos e versões de API desatualizadas. É fundamental acompanhar as versões da API que foram entregues e os hosts que foram configurados corretamente.

API10: INSUFFICIENT LOGGING & MONITORING

Registro e monitoramento inadequados, bem como integração de resposta a incidentes ruim ou inadequada, podem ser explorados por invasores. Essas lacunas permitem que eles permaneçam ativos em um sistema por mais tempo, fortaleçam sua aderência e extraiam ou excluam mais dados. Um ataque persistente pode levar até 200 dias para ser identificado, e a maioria das violações é detectada por terceiros, destacando a necessidade crucial de monitoramento adequado da API.

Quem é responsável pela segurança da API?

Interface de Programação de Aplicação (API) são interfaces de software que permitem que os aplicativos se comuniquem. Por exemplo, você utiliza uma API toda vez que usa o Google ou o Twitter, envia uma mensagem instantânea ou verifica a previsão do tempo no seu telefone. Uma interface gráfica de usuário não é necessária para que o software se comunique. Em vez disso, as APIs são interfaces legíveis por máquina que permitem que os produtos de software compartilhem dados e funcionalidades com facilidade.

A dependência do desenvolvedor em APIs aumentou no ano passado em meio à pandemia global. Uma pesquisa do RapidAPI revela que essa dependência continuará a se expandir. Organizações de todos os tamanhos de uma ampla variedade de setores planejam ingressar na economia da API este ano, e o teste e a segurança da API foram as principais preocupações entre os entrevistados.

As APIs, como qualquer outro recurso disponível na internet, possuem vulnerabilidades. Portanto, manter a segurança é fundamental porque as APIs podem ser acessadas pela Internet, incluindo Uniform Resource Identifiers (URIs) com dados confidenciais anexados.

Riscos da API

As APIs dão a terceiros acesso aos seus dados por design. Cada API inclui um endpoint que responde a solicitações de API.

Existem falhas em todos os sistemas. Uma fraqueza em um sistema (hardware ou software) que um invasor pode explorar é conhecida como vulnerabilidade. Um endpoint de API é semelhante a um servidor da Web acessível pela Internet. Quanto maior o acesso livre e aberto do público a um recurso, maior a ameaça potencial dos abusadores. As APIs fornecem apenas controle de acesso mínimo, se houver. A superfície de ataque cresceu à medida que as APIs se tornaram uma parte essencial do desenvolvimento de aplicativos modernos. Por outro lado, muitos sites empregam controle de acesso e exigem que usuários autorizados façam login.

Um ataque de API ocorre quando um invasor usa uma API de forma maliciosa ou tenta violá-la. Os ataques de API afetam uma variedade de verticais e negócios. Ameaças perigosas estão se tornando mais comuns e aprimorando o direcionamento de aplicativos da web específicos.

O aumento de ameaças de segurança relacionadas à API nos últimos anos levou o Open Web Application Security Project (OWASP) a lançar o API Security Top 10, que ajuda a aumentar a conscientização sobre os problemas de segurança de API mais sérios que afetam as organizações.

Aplicação

À medida que as APIs se tornam mais centrais para os negócios modernos, a falta de clareza sobre quem é responsável pela segurança da API coloca organizações e usuários em perigo. Embora os riscos sejam conhecidos, quase um terço das APIs são aprovadas sem revisão pela equipe de segurança de TI de uma empresa.

Quem é responsável por proteger as APIs? Alguns acreditam que é trabalho dos desenvolvedores, enquanto outros pensam que é responsabilidade da equipe da API. Sem surpresa, as equipes de API culpam o DevOps, e o DevOps joga a bola de volta para o departamento de TI. Infelizmente, toda essa confusão leva a lacunas de segurança significativas, que hackers talentosos ficam felizes em explorar.

Quando tantas equipes lidam com o desenvolvimento da API, é difícil atribuir a responsabilidade pela sua segurança. Cada organização tem a sua própria estrutura e método de distribuição de responsabilidade, que muitas vezes é mal planejado e mal compreendido. As vulnerabilidades de segurança da API continuarão a ser exploradas por abusadores até que uma estrutura de propriedade definida esteja em vigor. No entanto, à medida que as APIs evoluem e se tornam mais amplamente utilizadas, as vulnerabilidades de segurança só aumentam.

Além disso, como as APIs operam em um ciclo constante de criação e atualizações, loops de feedback iterativo entre os estágios de desenvolvimento, teste e produção conectam as equipes de segurança e desenvolvimento e permitem um modelo de melhoria contínua da segurança.

O que você pode fazer

O software moderno é vulnerável a uma ampla gama de ameaças. Manter-se atualizado com as mais recentes explorações e problemas de segurança é uma prática inteligente, mas desafiadora. Ter benchmarks para esses problemas ajuda a garantir a segurança do aplicativo antes que ocorra um ataque.

Como as APIs criam tantos pontos de entrada na arquitetura de uma rede, colocar um firewall na frente de um servidor não é mais suficiente para proteger todos os pontos de entrada. Além disso, uma solução tradicional baseada em WAF não pode distinguir chamadas de API maliciosas e legítimas.

A única maneira de proteger totalmente as suas APIs é proteger e cobrir todas as APIs durante todo o ciclo de vida de desenvolvimento de software da API, pois várias equipes as desenvolvem. Como resultado, algumas vulnerabilidades só podem ser identificadas no nível do código em desenvolvimento. Algumas podem ser capturadas por testes com simulações inteligentes. Outras só podem ser descobertas monitorando APIs em tempo real na produção, definindo uma linha de base do comportamento esperado e detectando anomalias.

O que é mTLS

O mTLS é um protocolo de criptografia de autenticação mútua que tem como principal finalidade garantir que as duas pontas de uma conexão de rede são quem afirmam ser, verificando também suas respectivas chaves privadas. Ele se baseia no Transport Layer Security (TLS), que tem como papel autenticar o servidor em uma conexão client-server e criptografar as comunicações.

O TLS trabalha utilizando a técnica de criptografia assimétrica, que depende de um par de chaves: uma chave pública e uma chave privada.

mTLS –  Como funciona:

O mutual TLS, é um método que faz com que o servidor faça a validação do cliente, utilizando TLS.

Qual o uso de mTLS ?

O mTLS é usualmente usado no mercado financeiro, principalmente para identificação de instituições e suas transações entre si, já que as mesmas terão suas chaves de identificação.

Portanto, ao analisar uma requisição em uma API financeira, é possível verificar que a entidade A fez uma transação com entidade B, através dos certificados usados, que normalmente é gerado por uma certificadora que faz as devidas validações de instituição.

Como funciona o mTLS GoCache ?

Na GoCache é possível fazer a configuração do mTLS por subdomínio, além de definir através das SmartRules quais requests de forma detalhada serão afetadas pelas autenticação, colocando o certificado a ser usado nessas conexões, além de regras de conexão, levando em consideração se o Certificado do Cliente é Revogado, Vazio, Server_None (Se o Host não tem um certificado configurado) e Sucesso. Além disso, é possível customizar as respostas em relação a cada um dos status do mTLS.

Para adicionar um mTLS em sua conta basta acessar a área de Configurações e escolher a aba de SSL. Atualmente o recurso de certificado mTLS está disponível para clientes do plano CUSTOM.

Quais são os principais tipos de ataque DDoS

Os ataques DDoS são a mais complexa das duas ameaças, porque usam uma variedade de dispositivos que aumentam a gravidade dos ataques. Ser atacado por um computador não é o mesmo que ser atacado por uma botnet de cem dispositivos ou mais.

Parte de estar preparado para ataques DDoS é estar familiarizado com o maior número possível de formas de ataque. Nesta seção, veremos isso com mais detalhes para que você possa ver como esses ataques são usados para danificar as redes corporativas.

Os ataques DDoS podem vir de várias formas, incluindo:

Inundação SYN – Os ataques de inundação SYN são outro tipo de ataque DoS em que o invasor usa a sequência de conexão TCP para tornar a rede da vítima indisponível. O invasor envia solicitações SYN para a rede da vítima, que responde com uma resposta SYN-ACK. O remetente deve responder com uma resposta ACK, mas, em vez disso, o invasor não responde (ou usa um endereço IP de origem falsificado para enviar solicitações SYN). Cada solicitação que não é respondida ocupa recursos de rede até que nenhum dispositivo possa fazer uma conexão.

Slowloris – Slowloris é um tipo de software de ataque DDoS que foi originalmente desenvolvido por Robert Hansen ou RSnake para derrubar servidores web. Um ataque Slowloris ocorre quando o invasor envia solicitações HTTP parciais sem a intenção de completá-las. Para manter o ataque, o Slowloris envia periodicamente cabeçalhos HTTP para cada solicitação para manter os recursos da rede de computadores vinculados. Isso continua até que o servidor não possa fazer mais conexões. Essa forma de ataque é usada por invasores porque não requer nenhuma largura de banda.

Inundação HTTP – Em um ataque de Inundação HTTP, os usuários do invasor solicitam HTTP GET ou POST para lançar um ataque a um servidor ou aplicativo da web individual. Inundações HTTP são um ataque de camada 7 e não usam pacotes malformados ou falsificados. Os invasores usam esse tipo de ataque porque exigem menos largura de banda do que outros ataques para tirar a rede da vítima de operação.

Ataques Zero-Day – Ataques Zero-Day são ataques que exploram vulnerabilidades que ainda não foram descobertas. Este é um termo geral para ataques que podem ser enfrentados no futuro. Esses tipos de ataques podem ser particularmente devastadores porque a vítima não tem uma maneira específica de se preparar para eles antes de sofrer um ataque ao vivo.

Inundações de XML-RPC do WordPress – Nesse tipo de ataque, o invasor explora pingbacks do WordPress, entre outros, realizando comparativos antes de configurar o ataque. Inundações de HTTP aleatórias e inundações de desvio de cache são os ataques DDoS de camada 7 mais amplamente reconhecidos.