10 dicas para aumentar a segurança de aplicações com Twilio Flex

May 09, 2022
Escrito por

Devido à alta demanda do Twilio Flex como plataforma de Contact Center Omnichannel, é muito importante que cada novo projeto seja construído pensando na segurança desde o primeiro momento.

Já que o cliente e/ou parceiro são os encarregados de construir os projetos dentro do Flex, preparamos uma lista de dicas a serem implementadas durante a fase de desenvolvimento que permitam garantir um alto nível de segurança com o Twilio Flex.

Variáveis de Ambiente

Tanto os plugins do Twilio Flex quanto as chamadas para as APIs da Twilio devem ser autenticadas por meio de Account SID e AuthToken ou API Key. A prática recomendada é que estes valores não sejam declarados como variáveis no código, mas sim como variáveis de ambiente (dentro de um arquivo de tipo .env na fase de desenvolvimento).

Exemplo de código:

Exemplo de código para declarar variáveis de ambiente

Neste post explicamos o passo a passo de como carregar credenciais desde variáveis de ambiente. 

Esta prática traz consigo dois benefícios muito importantes:

  1. O Account SID e o Auth Token ou API Key não ficarão expostos no código. Este ponto fica mais relevante ainda se o código ficar hospedado em repositórios de código como o Github, por exemplo.
  2. Caso ocorra algum comportamento não esperado, suspeito ou algum tipo de incidente, as credenciais poderiam ser revogadas com uma simples alteração.

IMPORTANTE: Caso você queira usar uma ferramenta de controle de versões com acesso público, como o GitHub, é imprescindível ignorar o arquivo de variáveis de ambiente por meio do arquivo .gitignore.

API Keys ao invés de Auth Tokens

Opte por usar API Keys ao invés de Auth Tokens. A funcionalidade de ambas é essencialmente a mesma, mas a principal diferença é que os API Keys são fáceis de revogar, e caso isso aconteça, o tráfego todo será interrompido de forma imediata. Para voltar a produção, será necessário realizar apenas uma alteração e com isso o tráfego será restabelecido imediatamente. Outra recomendação é dispor todos os API Keys em uma única localização para agilizar as alterações necessárias.

O passo a passo para criar API Keys pode ser consultado neste post.

Troca Regular de API Keys

Dependendo da natureza e do nível de risco da sua operação, recomendamos realizar uma substituição semestral dos API Keys, isso quer dizer: revogá-las a cada 6 meses e substituí-las por novas chaves.  

Permissões Geográficas - Geo Permissions (para casos de uso com Voz)

Para os projetos de Flex que envolvam Voz, é possível configurar permissões geográficas através do Console da Twilio: por exemplo, se a sua operação ocorre apenas na Colômbia, no México e na Argentina, é possível que você possa bloquear qualquer tráfego de voz para os outros países.

Usage Triggers

Os Usage Triggers, ou "gatilhos de uso", são muito úteis para realizar monitoramento de uso da plataforma Twilio. Isso pode agilizar as medidas de segurança necessárias para picos inesperados ou situações com suspeita de fraude.

Para criar Usage Triggers, é necessário entrar no Console da Twilio > "Billing" > Triggers, assim:

           

Print do console mostrando a configuração dos Usage Tiggers.

Neste exemplo estamos criando um Trigger que será ativado quando houver mais de 10000 chamadas de voz em um minuto. Caso isso aconteça, o Trigger enviará uma mensagem ao email cadastrado no campo Email Address. Além de enviar o alerta, o Trigger também pode acionar Webhooks para automatizar processos de segurança (como revogação da API Key, por exemplo).

Password Managers

Recomendamos utilizar Password Managers para criar e administrar todas as senhas dos usuários que acessarem o Console da Twilio.

2FA - autenticação de 2 fatores

Recomendamos ativar a autenticação de 2 fatores para reforçar a segurança de todos os usuários da plataforma. A validação pode ser via SMS, voz, ou um aplicativo de autenticação (Twilio Authy ou aplicação de terceiros). Para contas pagas, a autenticação de 2 fatores é obrigatória.

SSO (Single Sign-On)

Recomendamos implementar SSO para o processo de login na Twilio. Isso permite um controle granular sobre as permissões de cada usuário. A Twilio aceita qualquer serviço genérico com suporte a SAML 2.0, e contamos com tutoriais disponíveis para Azure AD e Okta

Plugins Flex

Para garantir a segurança dos plugins do Twilio Flex, é importante que não sejam utilizados API Keys ou Auth Tokens diretamente no plugin, seja no código da aplicação ou em variáveis de ambiente que possam ser acessadas publicamente.

Caso seja necessário chamar uma API ou um serviço externo, tente incorporar a chamada através de uma Twilio Function, expondo unicamente o endpoint do serviço e armazenando todas as credenciais como variáveis de ambiente no serviço Serverless, tanto para chamadas a serviços da Twilio quanto para a APIs externas.

As Twilio Functions contam com uma validação por token, garantindo que as chamadas sejam autorizadas e executadas unicamente por clientes Flex autenticados. Caso alguém intercepte o endpoint, ele não conseguirá realizar a chamada.

Twilio Editions

Para obter mais recursos e funcionalidades de segurança (como auditoria de eventos, proxy estático, etc.) considere optar pelas Edições de Enterprise ou Security da Twilio.

Por último, conheça também um guia específico para reforçar mais ainda a segurança na sua operação:

As medidas de segurança recomendadas ajudarão a proteger ao máximo seu projeto com Twilio Flex e permitirão que os serviços sejam utilizados somente para fins legítimos do seu negócio.