Lançado no Japão no início de julho e disponível no Brasil a partir de 03 de agosto, o jogo de realidade aumentada Pokémon Go tornou-se instantaneamente uma febre global. Hoje mais de 40 países estão dentro do jogo. Segundo o instituto de pesquisas norte-americano App Annie, a aplicação já foi baixada mais de 100 milhões de vezes. Quer seja por causa de tantos acessos simultâneos, quer seja por ataques de negação de serviços que inundam o servidor de falsos acessos, impedindo que o portal seja acessado por usuários legítimos, os serviços do Pokémon Go têm frustrado muita gente.
Diante das falhas do Pokémon GO, a Niantic Labs garante que não sofreu ataques DDoS de negação de serviços. A empresa justifica a instabilidade do sistema pelo excesso de acessos. Dois grupos de hackers – o OurMine e o DDoSers –, por outro lado, assumiram a autoria de ataques que, segundo a Niantic Labs, nunca aconteceram.
Independentemente das razões por trás das falhas, o caso Pokémon Go serve de farol para prevenir problemas semelhantes enfrentados pelas corporações usuárias de TIC.
Vamos investigar, inicialmente, as especificidades do caso Pokémon Go:
Jogos online são tremendamente sensíveis a problemas de latência e disponibilidade – isso faz de uma aplicação como o Pokémon Go um alvo ideal para ataques de negação de serviços. Mitigar esse tipo de ataque num servidor de jogos, ainda mais jogos de realidade aumentada, é uma tarefa bastante complexa. O ataque efetivamente consegue atingir os jogadores, que se incomodam muito com problemas de latência. Diante de qualquer problema, as redes sociais ficam imediatamente repletas de posts cheios de reclamações em diversas línguas e intensidades.
Como a aplicação em questão é um jogo, parece que os hackers potencialmente envolvidos veem toda esta questão como uma brincadeira ou uma provocação. Os dois grupos de hackers que se dizem responsáveis pelos ataques contra o Pokémon Go afirmam que tudo foi feito para “ajudar a Niantic Labs a resolver seus problemas de segurança digital”. Na minha visão, esse tipo de afirmação apenas tenta esconder as verdadeiras intenções de hackers teoricamente “do bem” que, ainda assim, cobram resgates para resolver os problemas criados por eles mesmos.
Hackers do bem colaboram com empresas, não expõem empresas
A verdade é que se esses hackers desejassem realmente ajudar a Niantic Labs, eles atuariam como outros pesquisadores de vulnerabilidades que, quando se deparam com um problema potencial, imediatamente avisam a empresa responsável pela aplicação Web. É comum que esses “hackers do bem” entreguem relatórios detalhados de falhas, trabalhando ombro a ombro com os desenvolvedores do sistema original para resolver todas as vulnerabilidades.
Acredito que todos fariam melhor em desistir de esperar misericórdia de hackers como os grupos OurMine e DDoSers. O caminho da segurança passa pela adoção de novos parâmetros em infraestrutura de TIC e desenvolvimento de aplicações.
Supondo, por exemplo, que a Niantic Labs tenha sido incapaz de fazer frente à demanda de seus usuários, isso poderia indicar um problema de planejamento de capacidade. Poucos indícios apontam nesta direção. Como esse jogo utiliza serviços na nuvem, teoricamente contaria com toda a escalabilidade de que viesse a precisar. Para que os ganhos da escalabilidade da nuvem se façam tangíveis, porém, é necessário que a aplicação Pokémon Go tenha sido construída para ser escalada de forma infinita por meio de toda a infraestrutura da nuvem. Se, por outro lado, o sistema Pokémon Go foi construído de modo tradicional, ou, então, adaptado de um sistema antigo, poderia enfrentar problemas para fazer bom uso da escalabilidade que a nuvem traz. Naturalmente a mesma lógica também se aplica às áreas de TI das empresas.
Outro fator que não pode ser esquecido: a inclusão de um serviço de balanceamento de carga deve ser uma exigência em qualquer arquitetura de aplicações. Um serviço de balanceamento de carga não apenas supre a necessidade de “equipar-se para as falhas” devido ao seu inerente suporte a failover entre duas instâncias de aplicação. É importante destacar que isso é feito, sempre, de modo a preservar a qualidade do serviço oferecido ao usuário final da aplicação, independentemente de o sistema ser o Pokémon Go ou um ERP como o SAP.
Pode ser que o erro da Niantic Labs tenha sido não se planejar para o sucesso planetário e instantâneo do Pokémon Go. Pode ser que a empresa tenha sido alvo de ataques DDoS. De uma forma ou de outra, uma história como essa nos lembra que as mesmas métricas de qualidade de serviços exigidas por jogadores de um sistema de realidade aumentada também são valorizadas por usuários corporativos. Para evitar que sua aplicação distribuída ou Web cause frustrações é bom trabalhar a partir de três premissas básicas: preparar-se para a falha, preparar-se para escalar, na nuvem ou com recursos próprios, mais infraestrutura de rede e, finalmente, realizar o balanceamento entre diferentes elementos do sistema de modo a não interromper nem o jogo, nem os negócios.
* Eduardo Saito é arquiteto de soluções da F5 Networks América Latina e Caribe