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, varejo, turismo e assim por diante. Um bot pode coletar dados muito confidenciais, como cartões de crédito, CPFs, contas bancárias e outras informações pessoais. Portanto, é importante que os bots sejam seguros e ofereçam proteção 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 o último caso, veja o Azure Security Benchmark. O parâmetro de comparação 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 duas categorias:
Ameaças: as táticas que alguém pode usar para comprometer o 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 o bot ou o gerenciamento do bot podem ser suscetíveis a essas táticas, como bugs ou segurança frouxa.
Reduzir as vulnerabilidades é uma boa maneira de mitigar ameaças. Uma maneira conhecida de reduzir vulnerabilidades é implementar pontos de verificação de segurança no processo de desenvolvimento e implantação.
Diretrizes de segurança comuns
As áreas a seguir são cobertas por melhores práticas de segurança padrão comuns aos aplicativos.
Proteger 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 em uma conexão, qualquer sistema seguro deve usar o protocolo HTTPS, que transfere dados por HTTP em conexões criptografadas protegidas por protocolo TLS ou protocolo SSL. Confira também RFC 2818 - HTTP sobre TLS.
Observação
Todos os canais do Serviço de Bot exigem HTTPS e TLS 1.2.
Mensagens autodestrutivas
Exclua permanentemente todos os dados confidenciais assim que eles não forem mais necessários, geralmente após o término da troca de mensagens ou após um determinado período. Podem estar incluídas informações de identificação do usuário, IDs, PINs, senhas, perguntas e respostas de segurança e assim por diante.
Armazenamento de dados
As melhores práticas recomendam armazenar as informações em um estado seguro por um determinado período e, em seguida, descartá-las posteriormente, depois que elas cumprirem seu propósito.
Algumas técnicas de segurança comuns estão listadas abaixo.
Firewalls de banco de dados
- Por padrão, os firewalls negam acesso ao tráfego. O único tráfego permitido deve ser originário de aplicativos específicos ou de servidores Web que precisem acessar os 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 extrair ou excluir dados do banco de dados.
Proteção do banco de dados
- Certifique-se de que o banco de dados ainda tenha suporte do fornecedor e que você esteja executando a última versão do banco de dados com todos os patches de segurança instalados para remover vulnerabilidades conhecidas.
- Desinstale ou desabilite todos os recursos ou serviços de que você não precisa e certifique-se de alterar as senhas de todas as contas padrão com relação aos 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 de banco de dados fornecidos pelo banco de dados estejam habilitados, a menos que haja um motivo específico para que algum deles seja desabilitado.
Minimizar informações valiosas
- Certifique-se de que você não esteja armazenando qualquer informação confidencial que não precise estar no banco de dados.
- Os dados retidos para fins de conformidade ou outros propósitos podem ser transferidos para um armazenamento mais seguro, talvez offline, que seja menos suscetível a ameaças à segurança do banco de dados.
- Certifique-se de excluir todos os arquivos de histórico que sejam gravados por um servidor durante o procedimento de instalação original. Se a instalação for bem-sucedida, esses arquivos não terão valor, mas talvez contenham informações que podem ser exploradas.
Education
Os bots fornecem uma ferramenta inovadora de interação entre uma empresa e seus clientes. Porém, eles podem fornecer um backdoor para adulteração do 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 usuários 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 de bots
As áreas a seguir são cobertas por algumas melhores práticas de segurança padrão para os aplicativos do Bot Framework.. As diretrizes a seguir descrevem as medidas de segurança das melhores práticas do Bot Framework. Para obter mais informações, confira as Perguntas frequentes sobre segurança e privacidade.
Autenticação do Bot Connector
O serviço do 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 você estiver gravando seu próprio código de autenticação, é essencial implementar corretamente todos os procedimentos de segurança. Ao implementar todas as etapas descritas neste artigo sobre Autenticação, é possível mitigar o risco de um invasor conseguir ler as mensagens enviadas ao bot, enviar mensagens que usurpem a identidade do bot e roubar chaves secretas.
Autenticação de usuário
A autenticação do Serviço de Bot de IA do Azure permite que você autentique usuários e obtenha tokens de acesso de diversos provedores de identidade, como Microsoft Entra ID, GitHub, Uber, e assim por diante. Você também pode configurar a autenticação de um provedor de identidade OAuth2 personalizado. Tudo isso permite que você escreva uma parte do código de autenticação que funciona em todos os provedores de identidade e canais com suporte. Para utilizar essas funcionalidades, é necessário seguir estas etapas:
- Configure estatisticamente o
settings
em seu bot que contém os detalhes do seu registro de aplicativo com um provedor de identidade. - Use um
OAuthCard
, respaldado pelas informações do aplicativo fornecidas na etapa anterior, para conectar um usuário. - Recupere tokens de acesso por meio da API do Serviço de Bot de IA do Azure. Uma boa prática é colocar um limite no tempo em que um usuário autenticado pode permanecer conectado.
Para obter mais informações, confira o artigo Autenticação de usuários.
Chat da Web
Quando usar o controle Web Chat, você deve ter em mente algumas considerações de segurança importantes sobre usurpação de identidade e falsificação de identidade. Para obter mais informações, confira Autenticação avançada do Direct Line.
Informações adicionais
- Autenticação de usuário
- Adicionar autenticação ao bot por meio do Serviço de Bot de IA do Azure
- Habilitar a segurança e testar em localhost
- Segredos e tokens
- Tecnologias de autenticação
- Recursos avançados de autenticação no Direct Line
- Recomendações de segurança na Central de Segurança do Azure
- Proteção contra ameaças na Central de Segurança do Azure
- Segurança de Dados da Central de Segurança do Azure
- Segurança de contêineres na Central de Segurança