Hoje, empresas que não estão utilizando APIs não estão na moda, porém muitas vezes por falta de conhecimento os times realizam implantações que acabam não tendo padrões básicos de segurança e com isso, implementam uma inovação que acaba deixando a empresa exposta.
Desta forma, resolvi escrever este artigo para direcionar e dar algumas dicas básicas de ações que podem ser feitas para aumentar o nível de segurança nas implantações de APIs que podem ser do tipo REST e/ou SOAP.
- Basic Authentication: Esta implantação é baseada na utilização de um usuário de senha muitas vezes chamadas de access token (chave de acesso ao ambiente) e Client ID (Identificador do dono da credencial). Onde, com este conjunto de credenciais é possível acessar o ambiente em sua totalidade. O grande problema desta implantação é a gestão dos componentes em todo ciclo de vida (Security by Design) ou seja, desde o momento de sua criação, armazenamento (algumas vezes podem ficar em hardcode) e revogação (podendo ser muito demorado para trocar na aplicação).
- Oauth 2.0 Authentication: permite que o client ID consiga acessar o ambiente de forma perfilada ou seja, de acordo com o dispositivo que está acessando e possível restrigir o acesso diferente do primeiro ponto que de posse do Access Token e Client ID é possível acessar de forma full o ambiente. Com o Oauth 2.0 é possível criar um conjunto de roles “perfis” segregados como: Resource Owner, Resource Server, Client e Authorization Server. Facilitando muito a gestão do consumo das APIs.
- Bearer Authentication (OpenAPI 3.0): Foi criado baseado no OAuth 2.0 in RFC 6750. É baseado no scheme de autenticação, onde se inicia uma comunicação para após realizar a troca das chaves criptográficas.
Com a compreensão dos itens acima sugiro a adição de um front-end que faça o papel de API gatware onde, poderá receber todas as conexões para realizar um tratamento inicial antes do consumo da aplicação.
Conforme a figura acima de uma solução chamada DataPower da IBM é possível ter a visibilidade de forma lúdica a utilização da camada de gatware para gestão e proteção do ambiente.
Seguem algumas fontes que podem ajudar na profundidade dos temas abordados:
https://imasters.com.br/desenvolvimento/como-funciona-o-protocolo-oauth-2-0
https://swagger.io/docs/specification/authentication/bearer-authentication/
https://www.ibm.com/support/knowledgecenter/en/SS9H2Y_7.7.0/com.ibm.dp.doc/apigw_overview.html
- Por Alex Amorim, CISO e DPO