Por que API Security também é Web Application Security?

No artigo anterior, falamos o quanto o estado atual de ferramentas para Web Application Security e Application Security não estão adaptados para trazer segurança para APIs. Hoje vamos falar porque uma boa estratégia de segurança para aplicações web deve passar por uma boa estratégia de segurança para APIs.

Podemos dizer que as APIs servem a 3 propósitos principais: compartilhamento de regras de negócio entre organizações, desacoplar o front-end do back-end e comunicação entre máquinas. O primeiro propósito pode ser visto desde o que se diz ser os primórdios das APIs no ano 2000, quando Salesforce e eBay disponibilizaram serviços para desenvolvedores incorporarem em suas aplicações por meio desta interface.

A partir de então, o uso da internet veio se intensificando, demandando aplicações mais complexas e interativas. O que não era bem atendido pelo padrão da época, em que as páginas eram geradas estaticamente pelo servidor e qualquer alteração de dados vinda do lado do servidor demandava a geração de uma nova página para ser visualizada. A introdução do AJAX deu início a uma arquitetura que veio para ficar, na qual o cliente que processa atualizações de conteúdo, a partir de requisições a endpoint que fornecem dados atualizados. Desde então vimos o surgimento de Single-Page Applications, frameworks reativos, aplicativos mobile e esses endpoints que alimentam o front-end também passaram a ser chamados de APIs. 

Já o terceiro propósito é mais recente, com a ascensão da Internet das Coisas e desenvolvimento da automação de infraestrutura. Os dois primeiros propósitos das APIs tocam diretamente o campo de aplicações web modernas. Hoje, é extremamente difícil você usar uma aplicação que não tenha pelo menos uma integração com uma empresa de meio de pagamentos ou de cartão de crédito. Como gerar e enviar uma nota fiscal ao governo sem pelo menos uma integração? E se você estivesse comprando em um e-commerce e a página fosse recarregada enquanto você estivesse validando um cupom? Sua visão sobre a experiência não seria nem um pouco afetada?

As APIs são fundamentais para a experiência com aplicações web, e não há um caminho alternativo emergente. O problema é que essa atenção para elas ainda não chegou ao campo de segurança. É comum ver times de desenvolvimento considerando como o suficiente apenas autenticação, SSL e cuidado com ataques comuns como injection. Ou então, equipes de segurança que recebem os pacotes antes do lançamento e fazem avaliações sobre o risco daquele código específico. Ou equipes de operações que consideram WAF e API Gateway e monitoramento das redes o suficiente. Por que essas abordagens não são o suficiente?

O desenvolvimento das APIs trouxe consigo novas práticas. Entre elas, a arquitetura de microsserviços. Como consequência, o risco de uma falha de segurança na interação entre serviços cresce exponencialmente à medida que novos serviços são adicionados. Um provável reflexo disso é o comportamento da Quebra de Controle de Acesso nas listas da OWASP. Na primeira divulgação, em 2004, essa vulnerabilidade ocupava a segunda posição. Após a evolução do conhecimento sobre o assunto e a incorporação disso em frameworks de aplicação, esse problema ocupava a quinta posição na lista de 2017. Agora, se olharmos para a primeira OWASP Top 10 para API, de 2019, a principal ameaça é um tipo de Quebra de Controle de Acesso. E na última publicação da principal lista da OWASP, em 2021, essa vulnerabilidade está no topo, enquanto Injection, que historicamente tem sido um dos principais temores de quem se preocupa com segurança de aplicações, caiu para a terceira posição.

Usando como exemplo o BOLA (Broken Object Level Authorization), que ocupa o topo da OWASP para APIs e é uma quebra de controle de acesso, sua exploração gera uma requisição com características iguais à de um usuário normal, dificultando sua detecção por um WAF (para mais detalhes, veja o artigo anterior). Uma estratégia de mitigação eficiente demanda informações contextuais da lógica da aplicação. Informações que precisam ser adquiridas com agilidade, uma vez que toda essa evolução na arquitetura das aplicações web contribuiu para um salto na velocidade de lançamentos de novas features.

Essa maior velocidade na implementação de código em produção é um fator que piora o cenário de vulnerabilidade em APIs/Aplicações Web. Uma pesquisa da ESG (Enterprise Strategy Group) apontou que 48% dos respondentes lançam código com vulnerabilidade com frequência. Entre os principais motivos, 54% responderam que foi para cumprir um deadline e 45%, porque as vulnerabilidades foram descobertas muito tarde para serem corrigidas a tempo. Imagine a potencial superfície de ataque em um ambiente com inúmeras APIs (algumas não catalogadas e “esquecidas” pelo time, inclusive), múltiplos microsserviços se comunicando, sendo que frequentemente alguns deles contêm vulnerabilidades.

Portanto, é fundamental que uma abordagem que resolva problemas específicos de segurança para APIs esteja incluída em uma abordagem de segurança para aplicações web. 

Diante disso, é dever da GoCache se alinhar às novas necessidades, assim, anunciamos que estamos desenvolvendo uma nova suite para proteção de APIs. 

Uma série de novidades serão anunciadas, e se você quiser saber em primeira mão e participar do beta, entre em contato com produto@gocache.com.br

Vamos construir o futuro da Segurança de Aplicações Web juntos?

Por Victor Queiroz Vilas Boas, Product Manager GoCache.

Por que Web Application Security não é suficiente para segurança em API’s?

Houve um tempo em que as aplicações web eram formadas por um grande bloco de código, homogêneo, em que o backend já entregava a página renderizada ao cliente. Esse grande bloco era hospedado em um grande servidor (ou alguns), dentro de um datacenter, no qual o perímetro de rede era ferrenhamente guardado, tal qual um castelo, mas onde tudo o que estivesse dentro do perímetro, era considerado seguro.

Ok! Isso não é assunto para arqueologia, já que boa parte das aplicações atuais ainda usam essa arquitetura. Mas o ponto importante aqui, é que as ferramentas de Web Application Security, como WAF e Application Security, como Application Security Testing (AST) surgiram dentro deste paradigma.

Como as páginas eram entregues prontas do servidor, a aplicação era um bloco homogêneo e estável, e o perímetro de rede era totalmente conhecido e controlável, a superfície de ataques era bastante reduzida e em questão de alguns ajustes, a proteção de um WAF era efetiva. Da mesma forma, testes com SAST e DAST reproduziam o comportamento da aplicação em produção, com menos distorções.

Mas de lá para cá, muita coisa vem acontecendo gradualmente: Single-Page Application, Mobile, integração entre empresas, cloud, frameworks de frontend reativos, arquitetura de microsserviços. E junto com tudo isso, emergiu um elemento fundamental para o funcionamento de tudo o que foi mencionado anteriormente: API ou Application Programing Interface.

A segurança de APIs é peculiar em relação à segurança de aplicações web a ponto de ter a sua própria lista de top 10 ameaças da OWASP. Apesar de ter grandes vulnerabilidades em comum com aplicações web, como injection, estão em destaque problemas de autenticação e autorização, como Broken Object Level Authorization e Broken Authentication.

Um exemplo destes tipos de vulnerabilidade aconteceu com a Uber em 2019. Ao criar uma conta, o browser do motorista enviava uma chamada com o parâmetro “userUuid”, e em troca recebia um JSON com detalhes da conta. O problema é que a API não validava que quem estava chamando era realmente o dono do “userUuid”, sendo que um atacante poderia enviar uma chamada com o “userUuid” de qualquer usuário, recebendo dentre outras informações sensíveis, o token de identificação, que poderia ser usado para roubar a conta. Felizmente isso foi descoberto antes de ser explorado, mas mostra a gravidade do problema.

E por que um WAF não protege contra um ataque como esse? A resposta é que esse tipo de vulnerabilidade depende intimamente do contexto específico da aplicação. No caso acima, a requisição é idêntica a uma requisição comum, de forma que difícil ela se encaixaria no padrão de alguma regra. Seria necessário detectar que a chamada na API não foi realizada em um fluxo normal, ou que o atacante não tem autorização sobre o “userUuid”, o que é muito específico à forma como a aplicação foi construída.

Algumas são as razões para a emergência dessas vulnerabilidades específicas. Como a renderização é feita do lado do cliente, as APIs ficam mais próximas às fontes de dados sensíveis. Além disso, com a emergência da arquitetura de microsserviços, a autenticação e a lógica da API são executadas em serviços diferentes, provavelmente geridos por equipes diferentes. Mesmo que as equipes adotem boas práticas de autorização, cada interação entre microsserviços corre o risco de expor uma falha. Como a complexidade se eleva exponencialmente em relação à quantidade de serviços e equipes, os pontos potenciais de falha são multiplicados. Por isso AST também perde eficiência neste contexto: o código do serviço pode estar perfeito, mas o problema está na interação com outros serviços.

Tendo em vista tudo o que foi mencionado, para a GoCache, é fundamental investir em novas soluções mais direcionadas aos problemas de vulnerabilidades de API. E é exatamente o que está acontecendo! Estamos preparando uma série de novidades em uma nova suite de produtos de API Protection.

Entre em contato com produto@gocache.com.br para participar do beta e ajudar a construir o futuro da Segurança de Aplicações Web. Afinal, API Security também é Web Application Security, e esse é o tema do próximo artigo desta série.

Por Victor Queiroz Vilas Boas, Product Manager GoCache.

Você já ouviu falar na iniciativa MANRS?

A internet funciona como uma grande rede colaborativa entre sistemas autônomos que trocam informações de roteamento entre si, essa colaboração é possível graças ao BGP, protocolo de roteamento que permite a troca de rotas entre ASes e é baseado em confiabilidade, ou seja, assume-se como corretas as informações de roteamento que se recebe de outros ASes, porém sabendo que cada sistema autônomo opera suas políticas de roteamento independentemente, utilizar abordagens de segurança que previnam o recebimento e anúncio de rotas indevidas é crucial para manter a saúde do seu sistema Autônomo e da Internet.

O crescimento de incidentes de roteamento acaba sendo uma consequência do crescimento da internet sem a devida preocupação dos Ases com segurança ou implementação das melhores práticas, a maioria desses incidentes ocorre por causa de vazamento de rotas ou em casos mais graves roubo de prefixos. O roubo de prefixos ocorre quando determinado bloco de IPs públicos é anunciado indevidamente por um sistema autônomo, podem ser acidentais ou intencionais e causam grande impacto para internet como um todo e poderiam ser evitados ou ter seu impacto minimizado se práticas de segurança simples fossem implementadas por todos os Sistemas Autônomos. 

O MANRS – Mutually Agreed Norms for Routing Security é uma iniciativa criada em 2014 com objetivo de melhorar a segurança e resiliência do sistema de roteamento global a partir de uma lista de recomendações a serem seguidas, essa lista foi chamada de “Routing Resilience Manifesto”.

Atualmente o MANRS é apoiado pela ISOC e a sua lista de recomendações inclui:

  • Prevenir a propagação de informações de roteamento incorretas;
  • Prevenir tráfego com origem ilegítimas (anti-spoofing);
  • Facilitar a comunicação e coordenação entre operadores de rede;
  • Facilitar a validação de informações de roteamento em uma escala global.

Ser um Participante do MANRS significa implementar, apoiar e estar comprometido com a segurança da Internet. Para se tornar um participante é necessário implementar a lista de recomendações, que será posteriormente submetida à avaliação pelo MANRS, e se atestado que as recomendações foram corretamente implementadas o sistema autônomo passa a fazer parte da iniciativa.

A GoCache atualmente é participante do MANRS, é dessa maneira que atestamos e reafirmamos o nosso comprometimento com as boas práticas operacionais na internet e encorajamos outros sistemas autônomos a participar dessa iniciativa para que juntos possamos tornar a internet mais resiliente e segura.

 

Por Nathalia Nascimento, Network Engineer GoCache

Um em cada três sites do mundo usam WordPress

De todas as plataformas para criação de sites do mundo, a mais usada, disparadamente, é o WordPress. E, ao contrário do que muitos pensam, foi-se o tempo em que ela era empregada apenas para a criação de blogs.

Na verdade, a criação de sites com o WordPress é cada vez mais comum e já representa quase 30% de todos os sites novos construídos.

Mas as estatísticas não param por aí.

Quando se fala exclusivamente de sites ou blogs criados por gerenciadores de conteúdo, isto é, por meio de ferramentas que permitem a alguém que não entende nada de programação criar sua página na web, os números são ainda mais impressionantes: 58,7% desses sites foram criados com WordPress.

Dados de uma pesquisa realizada pela W3Techs, há alguns anos, estimavam que a cada 74 segundos um novo site era criado com ajuda da plataforma.

 

POR QUE O WORDPRESS DOMINA A INTERNET?

A explicação é simples: ele conjuga o melhor de dois mundos, pois tanto pode ser usado por “amadores” para criarem, principalmente, seus blogs, como não deixa de apresentar as funcionalidades e recursos necessários para que quem entende de programação avançada possa usar o WordPress com segurança  e qualidade.

Além disso, existe toda uma comunidade que se formou ao redor da plataforma, com desenvolvedores criando plugins para WordPress, integrações com outras ferramentas, temas prontos para usar em sites e muito mais.

Para quem não sabe, plugins são programas desenvolvidos para se “encaixarem” em outro e adicionarem novos recursos e funcionalidades a ele.

Ao usar temas prontos, por exemplo, uma pessoa que está construindo seu site não precisa iniciar o trabalho do zero e ter uma ideia totalmente original.

Dependendo do seu objetivo, que pode ser apresentar seu portfólio, criar um blog, divulgar sua empresa ou um pequeno comércio, diversos temas prontos do WordPress , totalmente customizáveis, podem ser usados.

Temas WordPress

Outro ponto de destaque do WordPress são os plugins ou funcionalidades nativas especialmente desenvolvidas para aumentar o chamado SEO de um site.

SEO, Search Engine Optimization, em inglês, trata-se da otimização de um site para que seja mais facilmente encontrado pelas ferramentas de busca, como o Google e o Bing, por exemplo, aumentando muito seu número de acessos.

E o WordPress conta com excelentes ferramentas com esse objetivo, que ajudam a definir os melhores conteúdos para que os assuntos tratados em blogs e sites correspondam aos interesses do público-alvo mais adequado para essas páginas.

woocommerce

Atualmente, o sucesso do WordPress é tanto que as principais plataformas gratuitas de criação de lojas virtuais para e-commerce, como o WooCommerce  e o Magento, já disponibilizam integrações para que possam trabalhar da melhor forma possível com a mais popular ferramenta de criação de sites do mundo.

Fáceis de criar, com todas as funcionalidades que um desenvolvedor possa desejar, cheio de facilidades, plugins e temas para turbiná-los, os sites em WordPress estão se tornando praticamente uma unanimidade na internet.

E, ao que tudo indica, nenhum concorrente parece pronto a tomar sua dianteira em um futuro próximo.

 

O brasileiro passa 9 horas por dia na internet, no mundo, 4,3 bilhões estarão conectados até o fim de 2017. Como conquistar esse público?

139 milhões de brasileiros usam a internet e quase 60% de nossa população tem perfil em alguma rede social, como Facebook, Twiter, Instagram e outros.

E os dados não param por aí. Segundo pesquisa divulgada pela We Are Social em parceria com o aplicativo Hootsuite, hoje, acessar a internet pelo smartphone já faz parte da rotina de 52% dos brasileiros que, aliás, contam com quase 240 milhões de números de telefones celulares ativos, 14% a mais que a quantidade de habitantes do país.

Se você acha esses dados impressionantes, veja mais estas estatísticas da pesquisa, juntamente com outras, divulgadas pela União Internacional de Telecomunicações:

  • Até o fim de 2017, 4,3 bilhões de pessoas terão um smartphone com acesso à banda larga, ou seja, quase dois terços da população mundial;
  • 71% dos jovens entre 14 e 24 anos, no mundo, usa a internet. 39% desses jovens são chineses ou indianos;
  • O acesso à internet, hoje, é proporcionalmente 50% mais barato que há 4 anos;
  • 37% da população mundial, isto é, mais de uma em cada três pessoas, usam mídias sociais ativamente;
  • 2,5 bilhões de pessoas no mundo usam as redes sociais via smartphone

Mas mesmo com tanta gente usando a rede mundial de computadores, está cada vez mais difícil para as empresas disputarem a preferência desses usuários por seus sites e blogs.

O motivo? Tempo. As pessoas não têm tempo a perder na internet, elas querem aproveitar ao máximo cada minuto que passam por lá.

 

MUNDO CONECTADO: O TEMPO ONLINE É PRECIOSO

A expressão pode ser antiga, mas com o crescimento exponencial da internet nos últimos anos, ganhou relevância novamente: tempo é dinheiro.

Sim, o tempo é o mesmo para todo mundo, mas se, em média, o brasileiro passa 8h56m na internet, cada segundo desse tempo é precioso.

E para captar a preferência (e o tempo) desse público, as empresas cada vez mais usam um arsenal de tecnologias e estratégias.

Mesmo usando técnicas como:

  • SEO: Search Engine Optimization, ou Otimização de Mecanismos de Busca, que usa as palavra mais procuradas do Google em um site para aumentar as chances dele ser encontrado
  • Marketing de conteúdo, em que se escrevem artigos de qualidade e relevantes para seu público com essas palavras-chave
  • Anúncios pagos no Google ou em Mídias Sociais

Se o site de uma empresa demorar para carregar, é bem provável que seus visitantes desistam de esperar para ler seu conteúdo.

E, para o ranking do Google, que decide quais sites aparecerem nas primeiras posições de busca, uma página que é abandonada rapidamente por seus visitantes perde muitos pontos e dificilmente terá uma localização no topo da lista.

Uma maneira de evitar isso é usar os chamados CDN para otimizar os sites das empresas.

 

MAS O QUE É CDN ?

CDN, Content Delivery Network, em inglês, trata-se de uma rede de servidores que armazenam o conteúdo de um site de forma otimizada e, em seguida, o distribuem rapidamente para os usuários mais próximos, o que diminui muito o tempo de carregamento da site, reduzindo as chances dele ser abandonado por visitantes impacientes.

Este fator é tão importante que já é uma prática amplamente usada nos Estados Unidos, com excelentes resultados, mas ainda tímida no Brasil.

Segundo pesquisa realizada em 2017 pela empresa GoCache, as grandes empresas brasileiras, em termos de número de acessos aos seus sites, seguem esta boa prática Norte Americana, com 70% delas usando CDN, em comparação a 75% nos EUA.

No entanto, quando analisamos os sites classificados como médio-grandes, a diferença aumenta consideravelmente, com apenas 53% deles usando CDN, contra 70% nos Estados Unidos.

Se formos mais adiante, dos sites considerados médios-pequenos no Brasil, somente 31% usa CDN, enquanto nos EUA este percentual corresponde a mais da metade dos sites.

A conclusão a que se chega é que as empresas brasileiras empregam altas quantias na captação de visitantes, mas quando eles chegam até seus sites, muitas vezes os abandonam, devida a demora de carregamento da página.

Você, quanto tempo esperaria para um site “abrir” antes de desistir de ler seu conteúdo?

Segundo dados do Google, se um site não carregar no celular de um usuário em menos de 3 segundos, será abandonado.

É um dado bastante relevante que mais empresas brasileiras deveriam levar em consideração.

Entenda, no vídeo abaixo, com uma CDN pode ajudar a proteger e acelerar seu site:

[youtube https://www.youtube.com/watch?v=WKxS_spzMOE&w=640&h=360]