Diretrizes de segurança do Bot Framework

APLICA-SE A: SDK v4

Os bots são cada vez mais predominantes nas principais áreas comerciais, como serviços financeiros, retalho, viagens e assim por diante. Um bot pode coletar dados muito confidenciais, como cartões de crédito, CPF, contas bancárias e outras informações pessoais. Por isso, é importante que os bots estejam seguros e protegidos contra ameaças e vulnerabilidades comuns.

Você pode tomar algumas medidas preventivas padrão para melhorar a segurança do seu bot. Algumas medidas de segurança são semelhantes às usadas em outros sistemas de software, enquanto algumas são específicas para o Bot Framework. Para este último, consulte o Benchmark de Segurança do Azure. A referência fornece recomendações sobre como você pode proteger suas soluções de nuvem no Azure.

Problemas de segurança em poucas palavras

Este artigo agrupa os problemas de segurança em 2 categorias:

  • Ameaças: as táticas que alguém pode usar para comprometer seu bot, como falsificação, adulteração, divulgação de informações, negação de serviço e assim por diante.

  • Vulnerabilidades: As maneiras pelas quais seu bot ou o gerenciamento de seu bot podem ser suscetíveis a tais táticas, como bugs ou segurança frouxa.

Reduzir suas vulnerabilidades é uma boa maneira de mitigar ameaças, e uma maneira conhecida de reduzir vulnerabilidades é implementar pontos de verificação de segurança no processo de desenvolvimento e implantação.

Orientações comuns em matéria de segurança

As áreas a seguir são cobertas pelas práticas recomendadas de segurança padrão comuns aos aplicativos.

Protegendo o tráfego de rede

Existem protocolos que fornecem controles criptográficos para lidar com a adulteração e divulgação de dados durante a transmissão. Nesse sentido, os bots devem se comunicar apenas por canais seguros.

Para trocar dados na conexão, qualquer sistema seguro deve usar o protocolo HTTPS, que transfere dados por HTTP em conexões criptografadas protegidas por Transport Layer Security (TLS) ou Secure Sockets Layer (SSL). Consulte também RFC 2818 - HTTP sobre TLS.

Nota

Todos os canais do Serviço de Bot requerem HTTPS e TLS 1.2.

Mensagens autodestrutivas

Exclua permanentemente quaisquer dados confidenciais assim que não forem mais necessários, geralmente após o término da troca de mensagens ou após um certo período de tempo. Isso pode incluir informações de identificação pessoal, IDs, PINs, senhas, perguntas e respostas de segurança e assim por diante.

Armazenamento de dados

A melhor prática exige o armazenamento de informações em um estado seguro por um determinado período de tempo e, em seguida, descartá-las mais tarde depois de cumprirem seu propósito.

Algumas técnicas de segurança comuns estão listadas abaixo.

Firewalls de banco de dados

  • Os firewalls negam o acesso ao tráfego por padrão. O único tráfego permitido deve ter origem em aplicações ou servidores Web específicos que necessitem de aceder aos dados.
  • Você também deve implantar um firewall de aplicativo Web. Isso ocorre porque ataques como ataques de injeção de SQL direcionados a um aplicativo Web podem ser usados para exfiltrar ou excluir dados do banco de dados.

Fortalecimento do banco de dados

  • Verifique se o banco de dados ainda é suportado pelo fornecedor e se você está executando a versão mais recente do banco de dados com todos os patches de segurança instalados para remover vulnerabilidades conhecidas.
  • Desinstale ou desative quaisquer recursos ou serviços que você não precisa e certifique-se de alterar as senhas de quaisquer contas padrão de seus valores padrão; ou melhor, exclua todas as contas padrão de que você não precisa.
  • Certifique-se de que todos os controles de segurança do banco de dados fornecidos pelo banco de dados estejam habilitados, a menos que haja um motivo específico para que algum seja desabilitado.

Minimize informações valiosas

  • Certifique-se de que não está a armazenar quaisquer informações confidenciais que não precisem de estar na base de dados.
  • Os dados retidos para fins de conformidade ou outros fins podem ser movidos para um armazenamento mais seguro, talvez offline, que é menos suscetível a ameaças à segurança do banco de dados.
  • Certifique-se de excluir todos os arquivos de histórico gravados por um servidor durante o procedimento de instalação original. Se a instalação for bem-sucedida, esses arquivos não têm valor, mas podem conter informações que podem ser potencialmente exploradas.

Education

Os bots fornecem uma ferramenta inovadora de interação entre uma empresa e seus clientes. Mas eles podem potencialmente fornecer um backdoor para adulterar o site de uma empresa. Portanto, uma empresa deve garantir que seus desenvolvedores entendam a importância da segurança de bots como parte da segurança do site. Além disso, os erros dos utilizadores também podem ser um problema. Isso exigirá alguma educação sobre como os bots podem ser usados com segurança, por exemplo:

  • Para os desenvolvedores, uma estratégia deve incluir treinamento interno sobre como usar o bot com segurança.
  • Os clientes podem receber diretrizes detalhando como interagir com o bot com segurança.

Diretrizes de segurança específicas do Bot

As áreas a seguir são cobertas por algumas práticas recomendadas de segurança padrão para aplicativos do Bot Framework. As diretrizes a seguir descrevem as medidas de segurança de práticas recomendadas do Bot Framework. Para obter mais informações, consulte as Perguntas frequentes sobre segurança e privacidade.

Autenticação do Bot Connector

O serviço Bot Connector usa nativamente HTTPS para trocar mensagens entre um bot e canais (usuários). o SDK do Bot Framework automatiza a autenticação básica de bot para canal para você.

Aviso

Se estiver a escrever o seu próprio código de autenticação, é fundamental que implemente todos os procedimentos de segurança corretamente. Ao implementar todas as etapas descritas no artigo Autenticação , você pode reduzir o risco de um invasor conseguir ler mensagens enviadas ao seu bot, enviar mensagens que se passam por seu bot e roubar chaves secretas.

Autenticação do utilizador

A autenticação do Serviço de Bot do Azure AI permite que você autentique usuários e obtenha tokens de acesso de vários provedores de identidade, como Microsoft Entra ID, GitHub, Uber e assim por diante. Você também pode configurar a autenticação para um provedor de identidade OAuth2 personalizado. Tudo isso permite que você escreva um pedaço de código de autenticação que funciona em todos os provedores e canais de identidade suportados. Para utilizar esses recursos, você precisa executar as seguintes etapas:

  1. Configure settings estaticamente em seu bot que contém os detalhes do registro do seu aplicativo com um provedor de identidade.
  2. Use um OAuthCard, apoiado pelas informações do aplicativo fornecidas na etapa anterior, para entrar em um usuário.
  3. Recupere tokens de acesso por meio da API do Serviço de Bot do Azure AI. Uma boa prática é colocar um limite de tempo para um usuário autenticado permanecer conectado.

Para obter mais informações, consulte o artigo Autenticação de usuário.

Web Chat

Ao usar o controle de Web Chat, você deve ter em mente algumas considerações de segurança importantes sobre falsificação de identidade e falsificação de identidade. Para obter mais informações, consulte Autenticação avançada de linha direta.

Informações adicionais