API Security: 6 pontos principais

APISecurity

Você já parou para avaliar a segurança das suas APIs?

Neste artigo vamos abordar como a adoção deste recurso facilitou a implementação de soluções, trazendo também alguns riscos à segurança das aplicações. 

Entenda porquê avaliar a segurança das APIs é importante, saiba quais são os pontos principais que devem ser observados para manter as suas APIs seguras.

API Security: porque pensar em segurança

A adoção de APIs tanto internas quanto externas vem se tornando prática cada vez mais comum nos últimos anos.

O uso deste recurso facilita a implementação de soluções e possibilita ainda que terceiros possam acessar dados que um aplicativo pode gerar ou receber.

No entanto, apesar das facilidades que o uso de APIs oferece, alguns pontos relacionados a segurança devem ser observados. Com o aumento do uso deste recurso, é natural que aumente também o interesse negativo relacionado a ele.

6 pontos-chave para considerar em API Security

Quando falamos em API Security, é importante que exista uma preocupação com a forma como esta API será construída ou mesmo mantida. 

Para ajudar neste pensamento de segurança em APIs, vamos colocar abaixo alguns pontos que devem ser observados durante a construção e o gerenciamento de APIs.

1. Protegendo o tráfego com a API

Se você acha que o simples uso de HTTPS, HTTPS sem autenticação pode não trazer tanta segurança quanto você imagina.

O uso de HTTPS no acesso a APIs não é nenhuma novidade para desenvolvedores. Podemos dizer, inclusive, que o mais comum é encontrarmos APIs que permitem o acesso por meio de canais mais seguros com o uso do protocolo HTTPS.

No entanto, o acesso sem algum tipo de autenticação não proporciona mais segurança. Podemos citar como exemplo o caso onde a montadora NISSAN teve problemas com sua API, que globalmente ajudava no monitoramento e controle dos carros do modelo LEAF.

Neste caso, o processo de autenticação para o acesso à API era feito pelo simples envio do número de registro do carro, coisa que facilmente poderia ser obtida por qualquer pessoa, considerando que este número está aparente nas janelas dos carros.

O grande problema foi a fragilidade do processo de autenticação por meio de uma informação que é publicamente acessível, pois este erro na lógica de negócio permitiu o acesso às informações do veículo.

Lembrando que nas APIs também temos funções que devem ser oferecidas com muito cuidado para não sermos surpreendidos de forma negativa – como o “delete”, por exemplo. Uma boa solução seria entender melhor como habilitar as funções CORS em websites.

Para fecharmos este ponto sobre HTTPS, é importante considerar a implementação de mecanismos de Certificate Pinning, principalmente em aplicações mobile, que já possuem nativamente  suporte a Mutual SSL.

2. Limite o tráfego em sua API

Um segundo ponto que deve ser observado é a limitação na quantidade de tráfego que a API pode fornecer a um aplicativo, ou mesmo a um usuário autenticado individualmente.

Sem este cuidado a sua API pode ser inundada de requisições falsas ou incompletas, sobrecarregando o servidor.

Esta fragilidade no processo de comunicação levaria à negação de serviço, tornando assim o fornecimento de informações legítimas inviável.

A limitação deste tráfego é, portanto, uma boa prática para a proteção da API e pode trazer melhores resultados se o desenvolvedor implementar limitações por aplicativos ou mesmo por usuário.

3. Monitoramento é fundamental

No entanto, para que as limitações de tráfego sejam realmente eficazes, o monitoramento do comportamento das APIs deve ser mantido de forma contínua.

Isto permite que os desenvolvedores possam identificar eventuais comportamentos anormais, garantindo a segurança do ambiente.

4. Empregando tempo e recursos da maneira correta

Este ponto não é exatamente um ponto técnico,  mas sim gerencial.

Para que a segurança da sua API seja pensada de forma correta é necessário realizar um bom planejamento do tempo e das condições apropriadas para que as validações de segurança sejam realizadas com maior eficácia.

Garantir tempo e recursos para que a API seja testada é ponto fundamental para a implementação de barreiras de proteção dos dados manipulados pelos aplicativos que usam a API.

Quando se pensa em aplicar parte dos recursos para testes, deve-se imaginar que não está em jogo apenas a disponibilização de uma API. Se tratada de forma errada, a liberação de dados e informações pode trazer resultados catastróficos para a empresa.

5. Validar inputs é importante

Assim como a observação das melhores práticas de desenvolvimento seguro é importante para web application, quando falamos de segurança de API precisamos ter um olhar atento à validação de dados de entrada.

Diferente de dados a serem validados em web application, os dados de entrada nas APIs são enviados por meio das URLs e estas devem ser cuidadosamente analisadas e validadas antes de serem aceitas pela API.

Por questões de segurança, quando analisamos parâmetros passados para a API, é necessário ter uma definição padrão que não aceite a passagem de strings e objetos sem a devida validação.

Também é muito importante ter a mesma atenção quando o assunto é a passagem de headers, body e anexos enviados para a API.

6. Use sempre API Keys

Um outro ponto importante para fortalecer a Segurança das APIs é usar as API Keys como forma de autenticação padrão.

Isso pode contribuir para a manutenção de um ambiente seguro, já que as API Keys são criadas a partir de um código randômico e difícil de deduzir.

Desta forma, a autenticação fica mais complexa quando comparada à simples adoção de usuários e senhas. 

Além de implementar mais segurança ao processo de autenticação, o uso de API Keys torna a validação um processo mais rápido do que usar a senha criptografada em bases de dados. 

No entanto, ao optar pelo uso da criptografia para autenticação é necessário considerar que este processo acrescentará uma etapa para descriptografar e validar o hash armazenado.

Isso significa que o login será um pouco mais demorado, o que acarreta em um aumento do consumo de processamento no caso de uma API com uso intenso por parte de usuários.

Ainda assim, é importante ter em mente que o uso de API Keys não é a solução para todos os problemas de segurança no processo de autenticação.

Portanto, podemos dizer que se você está usando somente API Keys, você está fazendo isso de forma errada. 

API Security: a segurança em primeiro lugar 

De uma forma geral, podemos dizer que o cuidado que deve ser empregado na segurança de APIs é bastante semelhante ao que já conhecemos nas práticas usadas em desenvolvimento de aplicações web.

Isso quer dizer que é necessário pensar a segurança desde o início do desenvolvimento,  e em todos os aspectos do uso da aplicação.

Quando falamos em processo de Desenvolvimento Seguro, precisamos ter em mente que ele está mais ligado a uma mudança de pensamento e cultura do que a um conhecimento técnico extremo.

Essa mudança cultural necessária para buscar a segurança em aplicações web deve iniciar no desenvolvimento, por meio da produção de códigos cada vez mais seguros, mas não pode parar por aí.

Sugerimos como leitura complementar este artigo em que falamos sobre a atuação dos Security Champions como agentes catalizadores da transformação cultural dentro das empresas.

Portanto, embora estas dicas sejam valiosas, o processo de segurança no desenvolvimento é um cenário muito maior e exige um comprometimento de várias áreas para que seja executado com excelência.

Tags

Deixe um comentário

topo
%d blogueiros gostam disto: