Kleber Bacili *
Publicada em 20 de dezembro de 2017 no site CIO
Falar sobre abrir dados corporativos, que geralmente são guardados as sete chaves para que desenvolvedores possam criar, a partir deles, aplicações inovadoras para dentro e fora das empresas pode parecer um tabu. Mas, sem as APIs a ‘transformação digital’ se torna apenas mais um clichê corporativo. No entanto, quando se fala em estratégia de APIs para permitir a inovação, a segurança é sempre a principal preocupação. Uma prova disso foi a recente pesquisa da Sensedia e IDG Now! que mostrou que embora 75% das empresas brasileiras já usem APIs, para 85% das grandes e médias empresas a segurança é um fator preocupante.
E, venhamos e convenhamos, essa é a parte mais estratégica de um projeto que envolve APIs. Pensando nas mudanças recentes nos ambientes de TI, a OWASP (Open Web Application Security Project) realizou uma pesquisa para mostrar os dez principais riscos à segurança que as empresas enfrentam na web. O intuito foi mostrar ao mercado que antes de adotar uma estratégia de APIs ou de Aplicações na Web, é preciso aplicar mecanismos e procedimentos adequados, porque algumas dessas ameaças podem ser fatais para a sobrevida das organizações.
É verdade que a detecção de vulnerabilidades em APIs pode ser mais difícil do que em aplicações, em virtude da falta de uma interface (UI) para testes e do uso de estruturas mais complexas de dados. Além disso, muitas vezes as APIs têm comunicação direta com sistemas críticos e, quando possuem brechas, podem facilitar o acesso e manipulação não-autorizada de dados sensíveis ou até o sequestro total do sistema. E por isso, a adoção de uma plataforma de API Management é essencial no projeto, por conter recursos de proteção do back end, de detecção de falhas, apoio ao design adequado das APIs, que possibilitam a separação de ambientes e a implementação de diversos mecanismos para segurança, controle e análise de dados.
Conheça um pouco mais sobre os riscos:
1. Injeção: acontece quando dados maliciosos são enviados a um ‘interpretador’, como comandos ou consultas que habilitam ações indesejadas. É um tipo de ataque comum, de fácil detecção, mas com impactos técnicos severos. Basicamente, para prevenir esse tipo de ataque, é preciso checar se os dados trafegados pelas APIs possuem comandos em SQL, JSON, XML, entre outros, e isso pode ser feito com a ajuda de um API Management. Além disso, também é preciso evitar o uso do interpretador e oferecer uma interface parametrizada.
2. Quebra de Autenticação: o segundo maior problema em relação à segurança que as empresas temem e enfrentam é a quebra de autenticação que leva a acessos não autorizados. Embora seja a segunda principal forma de ataques em relação a APIs, e muito comum de acontecer, a quebra traz consequências graves e a detecção desse tipo de problema não é tão simples. Para evitar, é preciso ter um tipo de comunicação segura com two way SSL e padrões de autenticação como o OAuth.
3. Exposição de dados sensíveis: a terceira principal incidência também pode trazer graves consequências, principalmente se os dados estiverem gravados em algum ambiente não criptografado. Para evitar esse tipo de vulnerabilidade é preciso criptografar o canal de comunicação e utilizar two-way SSL, desabilitar o autocompletar de formulários e o cache de páginas que contenham esses dados. E, o mais importante, não armazenar dados sensíveis sem necessidade. E, quando eles estiverem em repouso e trânsito, sempre criptografá-los.
4. Arquivos XML: as entidades externas dos arquivos de XML, conhecidas como External Entities (XXE), também estão no topo da lista das ameaças. Falhas em processadores antigos pode levar a extração de dados, e a consequência disso pode ser grave, levando a ataques de DoS, e outros mais sérios. Por isso, atualizar processadores e aplicar correções é uma das dicas para evitar que os XMLs estejam vulneráveis. Com o uso de um API Management, o módulo de Security Gateway também deve ser habilitado para evitar esse tipo de problema.
5. Controle de acesso ‘quebrado’: com impactos técnicos moderados e de fácil detecção, esse tipo de ataque acontece por falta da configuração correta de segurança. Para detectar as faltas de atualizações, erros na configuração, uso de contas padrões, entre outros, é importante fazer varreduras automáticas e periódicas.
6. Configuração Incorreta de Segurança: essa falha pode permitir que os usuários executem ações indesejadas, no entanto, embora a detecção dessa vulnerabilidade seja fácil, a sua prevalência pode ser generalizada e trazer impactos técnicos relevantes. A prevenção pode ser feita com varreduras automáticas e periódicas, no entanto, manter o ambiente sepre protegido e atualizado é essencial. Além disso, é preciso contar com uma arquitetura que permita fazer a separação segura dos componentes.
7. Cross-Site Scripting (XSS): o ataque também é fácil de identificar, e pode trazer impactos técnicos para as organizações. Geralmente, acontece quando scripts são adicionados antes dos dados serem enviados para o browser e executados. As consequências são sérias, pois sessões são sequestradas e redirecionadas para sites maliciosos ou, até mesmo, páginas são desconfiguradas. Para evitar as ameaças, é preciso validar requisições e respostas que não contenham scripts, e contar com um interceptor de proteção para XSS que verifica padrões maliciosos.
8. Des-serialização Insegura: acontece quando aplicativos são distribuídos com listeners públicos ou quando os apps dependem de manutenção do estado do cliente, e esse é um tipo de vulnerabilidade bem comum, que pode trazer grandes impactos técnicos para uma organização. Para se prevenir, é preciso evitar aceitar objetos serializados de fontes não confiáveis. Mas, se isso não for possível, é recomendado implementar verificações de integridade, criptografia de objetos serializados, restrições de ‘strict type’ durante a des-serialização.
9. Componentes com vulnerabilidades conhecidas: por meio do scanning ou análise manual é possível identificar os componentes vulneráveis. E, para prevenir, o uso de ferramentas para inventário de versões e dependências dos componentes é indispensável. Assim como a necessidade frequente de monitorar as vulnerabilidades em componentes de fontes públicas, e o uso de um software de análise automática
10. Logging e monitoramento insuficientes: registro inadequado de falhas, falta de alertas e bloqueios abre as portas para ataques. Geralmente, as ameaças são testadas até que uma, de fato, aconteça. Esse tipo de ameaça é difícil de detectar, e para evitar é preciso aplicar alguns dos mecanismos de segurança já mencionados, a fim de garantir uma comunicação segura. Além de investir na autenticação, controle de acesso, e nas proteções contra todos os tipos de injeções.
É preciso ter em mente que lidar com APIs exige um cuidado com a segurança, e que por isso o uso de uma solução para gestão de APIs oferece mecanismos de proteção, análise das APIs e do backend, além de garantir que os recursos e ferramentas para engajamento dos desenvolvedores sejam otimizados. Quer saber mais sobre segurança em APIs? Assista o Webinar que a Sensedia preparou com esse tópico: Webinar Segurança de APIs - Sensedia.
(*) Kleber Bacili é CEO da Sensedia
Nenhum comentário:
Postar um comentário