Controlar o acesso e garantir a segurança dos dados de funcionários e clientes tem sido um dos maiores desafios de segurança enfrentados pelas organizações atualmente, e isto se intensifica quando as informações e ativos sensíveis são armazenados em locais onde os identificadores de acesso não são protegidos. 

Configurar e conceder acesso em ambientes em nuvem, por exemplo, tem dado dor de cabeça até aos administradores de sistemas mais experientes. Recentemente, em seu blog, a empresa Imperva, que oferece serviço WAF – “Web Application Firewall” ou Firewall de Aplicação Web, um sistema que fica entre o servidor da aplicação e a internet protegendo de ataques como Injeções SQL, DDoS e outros – deu detalhes de um incidente de segurança que ocorreu por meio do roubo de uma chave da API da AWS e resultou na extração de dados de seus clientes. 

Mas antes de falar mais sobre o assunto, precisamos conhecer algumas definições a respeito das chaves de API.

O que são Chaves de API?

Primeiramente, APIs são códigos de instrução de uma aplicação que permite que outros softwares desenvolvam produtos, adaptando as funcionalidades originais para moldes nos quais seus serviços possam ser utilizados. 

Facebook, Google, Twitter e outros serviços disponibilizam uma documentação para que suas APIs possam ser usadas em diversas aplicações. Como exemplo, podemos citar o momento que uma aplicação oferece autenticação através de uma conta do Google, a aplicação em questão utilizou uma Google API para que esta funcionalidade fosse implementada em seu código. 

Tanto a Google como outras empresas provedoras de APIs utilizam chaves para identificar e rastrear as requisições e, assim, mensurar o quanto a aplicação utiliza de seus serviços.

Chaves de API são as credenciais de acesso que autorizam o uso de funcionalidades específicas da API e ajudam a evitar que esta seja usada de forma indevida, identificando sua permissão e compartilhando os dados necessários, com isso, o servidor pode bloquear requisições feitas acima do normal associadas àquela Chave de API.

É importante ressaltar que as chaves identificam a aplicação que está chamando as funções e não o usuário que está usando. Sendo assim, não podem restringir usuários, mas sim requisições, ambientes, aplicativos e IPs. 

Ainda que exista a possibilidade de restringir o seu uso, chaves de API são ativos que devem ser mantidos em segurança, já que não têm expiração e podem ser usadas por qualquer um que as conheça, o que se torna mais grave quando essas chaves são usadas para acessar ambientes onde dados críticos são armazenados. 

Armazenamento das Chaves de API

Muitas organizações, hoje, já conhecem os benefícios de utilizar a nuvem, armazenam dados e muitas informações sensíveis nesse ambiente, entretanto utilizam configurações padrões ou básicas que estes serviços oferecem. Em outros cenários, até realizam as configurações de segurança corretamente, mas quando as credenciais como contas, chaves, tokens e outros itens utilizados para acessar e manipular os ambientes não são protegidos, a ocorrência de um incidente é praticamente certa. 

No caso do AWS – plataforma de serviços de computação em nuvem da Amazon – o controle de acesso e as chaves são integradas na sua segurança. Entretanto, muitas chaves do serviço já foram expostas em repositórios públicos ou dadas a desenvolvedores para agilizar a execução de tarefas, porém isso não é recomendado. 

O incidente que ocorreu com a Imperva, segundo seu Diretor de Tecnologia Kunal Anand, deveu-se ao acesso de uma instância interna onde a Chave da API da AWS estava armazenada. O diretor descreveu as decisões que levaram ao vazamento:

Chaves de APIs, na maior parte dos cenários, não são as chaves de acesso para todo o reino, porém abrem caminhos para chegar até as joias da coroa. Infelizmente, esse item tão valioso é manipulado sem o devido cuidado ou relevância, armazenados em locais acessíveis a qualquer um, quando deveriam ser gerenciadas, rastreadas, protegidas e ter seu uso moderado. 

Como Proteger Chaves de API

Proteger qualquer ativo em uma organização não é uma tarefa simples, alguns controles, por mais robustos que sejam, necessitam de medidas adicionais para serem efetivos. 

Para garantir a mínima segurança de suas Chaves API, algumas medidas são importantes:

  • Não colocar as chaves em arquivos de configuração no sistema, pois pode ser encontrada facilmente. 
  • Cada integração deve ter sua própria chave. 
  • Assim como credenciais e senhas, as chaves devem ser trocadas de tempos em tempos, pois caso tenham sido comprometidas, sejam válidas por pouco tempo. 
  • Elimine chaves que não são mais necessárias para diminuir a superfície de ataque. 
  • Rotule cada chave para saber quais funcionam em cada aplicativo, um inventário de chaves é uma boa medida. 
  • Chaves de API não devem ser enviadas por e-mail para que não haja risco de ser interceptada. 
  • Monitore o uso da API para mudança imediata da chave quando ocorrer ou for observado uso indevido ou anormal. 

Estas e outras medidas podem ser realizadas por meio de uma solução PAM, que tem como objetivo fazer a gestão dos acessos privilegiados, utilizando-se de um conjunto de tecnologias e práticas para monitorar e gerenciar os acessos a dados críticos. 

Uma solução PAM pode auxiliar na criação e execução de um workflow de acesso que consista na requisição e aprovação para utilizar a chave, além de possibilitar a exigência de uma autenticação no momento da visualização e uso da chave, evitando que um usuário sem permissão possa manipulá-la. 

Por mais que os provedores de API disponibilizem configurações de segurança, as organizações não devem se omitir da responsabilidade de fazer a sua parte em garantir que o acesso e o uso aos ativos sejam feitos de forma correta e autêntica. Neste contexto, uma solução PAM se torna ainda mais necessária quando cabe à organização e não à provedora da API rotacionar, conceder e revogar o uso das chaves. 

Proteger qualquer tipo de credencial de acesso é a base para qualquer estratégia que vise assegurar ativos e informações sensíveis. Se contas, senhas e chaves não forem preservadas, controles posteriores não serão tão efetivos o quanto se imagina, cabe a implementação de controles de segurança sobre as credenciais para começar a reduzir as possibilidades de um incidente. 

REFERÊNCIA

ANAND, Kunal. Security Incident Update. 10 out. 2019. Disponível em: https://www.imperva.com/blog/ceoblog/https://www.imperva.com/blog/ceoblog/. Acesso em: 25 out. 2019.