Melhores práticas para códigos seguros

No Azure Machine Learning, é possível carregar arquivos e conteúdo de qualquer fonte no Azure. O conteúdo dos scripts ou notebooks Jupyter que você carrega pode potencialmente ler dados de suas sessões, acessar dados confidenciais da sua organização no Azure ou executar processos maliciosos em seu nome.

Importante

Executar somente notebooks ou scripts de origens confiáveis. Por exemplo, onde você ou sua equipe de segurança examinou o notebook ou o script.

Ameaças possíveis

O desenvolvimento com o Azure Machine Learning envolve frequentemente ambientes de desenvolvimento baseados na Web, como notebooks ou o Estúdio do Azure Machine Learning. Quando você usa ambientes de desenvolvimento baseados na Web, as possíveis ameaças são:

  • XSS (cross-site scripting)

    • Injeção de DOM: esse tipo de ataque pode modificar a interface do usuário exibida no navegador. Por exemplo, alterando como o botão Executar se comporta em um Jupyter Notebook.
    • Token de acesso ou cookies: os ataques XSS também podem acessar o armazenamento local e os cookies do navegador. O token de autenticação do Microsoft Entra é armazenado localmente. Um ataque XSS pode usar esse token para fazer chamadas à API em seu nome e, em seguida, enviar os dados para um sistema externo ou uma API.
  • CSRF (solicitação intersite forjada): este ataque pode substituir a URL de uma imagem ou link pela URL de um script ou API malicioso. Quando a imagem é carregada ou o link clicado, é feita uma chamada à URL.

Notebooks do Estúdio do Azure Machine Learning

O Estúdio do Azure Machine Learning fornece uma experiência de notebook hospedada no navegador. As células em um notebook podem gerar documentos HTML ou fragmentos que contenham código malicioso. Quando a saída é renderizada, o código pode ser executado.

Possíveis ameaças:

  • XSS (cross-site scripting)
  • CSRF (solicitação intersite forjada)

Mitigações fornecidas pelo Azure Machine Learning:

  • A saída da célula de código fica na área restrita em um iframe. O iframe impede que o script acesse o DOM pai, os cookies ou o armazenamento de sessão.
  • O conteúdo da célula Markdown é limpo usando a biblioteca dompurify. Isso impede scripts maliciosos de serem executados com células Markdown renderizadas.
  • A URL da imagem e os links de markdown são enviados para um ponto de extremidade de propriedade da Microsoft, que verifica a presença de valores maliciosos. Se um valor malicioso for detectado, o ponto de extremidade rejeitará a solicitação.

Ações recomendadas:

  • Verifique se você confia no conteúdo dos arquivos antes de carregá-los no Estúdio. Você deve reconhecer que está carregando arquivos confiáveis.
  • Quando você seleciona um link para abrir um aplicativo externo, recebe uma solicitação para confiar no aplicativo.

Instância de computação do Azure Machine Learning

A instância de computação do Azure Machine Learning hospeda o Jupyter e o JupyterLab. Quando você usa um deles, o código das células do notebook pode gerar documentos HTML ou fragmentos que contêm códigos maliciosos. Quando a saída é renderizada, o código pode ser executado. As mesmas ameaças se aplicam quando você usa o RStudio ou o Posit Workbench (antigo RStudio Workbench) hospedado em uma instância de computação.

Possíveis ameaças:

  • XSS (cross-site scripting)
  • CSRF (solicitação intersite forjada)

Mitigações fornecidas pelo Azure Machine Learning:

  • Nenhum. O Jupyter e o JupyterLab são aplicativos de código aberto hospedados na instância de computação do Azure Machine Learning.

Ações recomendadas:

  • Verifique se você confia no conteúdo dos arquivos antes de fazer upload. Você deve reconhecer que está carregando arquivos confiáveis.

Relatar problemas ou preocupações de segurança

O Azure Machine Learning está qualificado no Programa de Recompensas do Microsoft Azure. Para obter mais informações, visite https://www.microsoft.com/msrc/bounty-microsoft-azure.