quinta-feira, 21 de dezembro de 2017

API Management é essencial para garantir a segurança

Kleber Bacili *

Publicada em 20 de dezembro de 2017  no site CIO


Resultado de imagem para api management

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.

APICIO

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