Os tokens de assinatura de acesso partilhado (SAS) com permissões excessivas podem ser geridos através de uma configuração adequada e de uma monitorização constante.

por Shweta Sharma
A equipa de investigação de IA da Microsoft expôs acidentalmente 38 terabytes de dados privados através de uma ligação de Assinatura de Acesso Partilhado (SAS) que publicou num repositório do GitHub, de acordo com um relatório do Wiz research que destacou a forma como os CISO podem minimizar as hipóteses de isto lhes acontecer no futuro.
Denominado “robust-models-transfer”, o repositório destinava-se a fornecer código-fonte aberto e modelos de IA para reconhecimento de imagens, e os leitores do repositório receberam um link para descarregar os modelos a partir de um URL de armazenamento do Azure.
Este URL permitia o acesso a mais do que apenas modelos de código aberto, de acordo com uma publicação no blogue do Wiz. Foi configurado para conceder permissões a toda a conta de armazenamento, expondo dados privados adicionais por engano.
“A conta de armazenamento do Azure continha 38 TB de dados adicionais – incluindo backups de computadores pessoais de funcionários da Microsoft“, disse o Wiz. “Os backups continham dados pessoais sensíveis, incluindo senhas de serviços da Microsoft, chaves secretas e mais de 30.000 mensagens internas do Microsoft Teams de 359 funcionários da Microsoft.”
O deslize – uma ligação SAS mal configurada que permitiu o acesso a informações sensíveis – pode ser facilmente evitado se percebermos exatamente o que correu mal.
Tokens SAS mal configurados criaram riscos
O repositório da Microsoft destinado a fornecer modelos de IA para utilização em “training code” instruía os utilizadores a descarregarem um ficheiro “model data” através de uma ligação SAS e a introduzi-lo nos seus “scripts”, observou o Wiz. Para o fazer, os programadores da Microsoft utilizaram um mecanismo do Azure chamado “tokens SAS”, que permite criar uma ligação partilhável para conceder acesso a dados numa conta de armazenamento do Azure que, após inspeção, ainda pareceria completamente privada.
O token utilizado pela Microsoft não só permitia o acesso a armazenamento adicional, acidentalmente, através de um âmbito de acesso alargado, como também continha configurações incorretas que permitiam permissões de “controlo total” em vez de apenas leitura, permitindo a um possível atacante não só ver os ficheiros privados, como também eliminar ou substituir ficheiros existentes.
No Azure, um token SAS é um URL assinado que concede acesso personalizável aos dados do Armazenamento do Azure, com permissões que vão desde apenas leitura a controlo total. Pode abranger um único ficheiro, container ou toda a conta de armazenamento, e o utilizador pode definir um tempo de expiração opcional, ou até mesmo defini-lo para nunca expirar.
A configuração de acesso total “é particularmente interessante, tendo em conta o objetivo original do repositório: fornecer modelos de IA para utilização em training code”, afirmou o Wiz. O formato do ficheiro de dados do modelo destinado a ser descarregado é ckpt, um formato produzido pela biblioteca TensorFlow. “É formatado usando o formatador Pickle do Python, que é propenso a execução arbitrária de código por design. Ou seja, um atacante poderia (também) ter injetado código malicioso em todos os modelos de IA nesta conta de armazenamento”, acrescentou.
Os tokens SAS são difíceis de gerir
A granularidade dos tokens SAS abre o risco de conceder demasiado acesso. No caso do Microsoft GitHub, o token permitia o controlo total das permissões, em toda a conta, para sempre.
O repositório da Microsoft utilizou um token SAS de conta – um dos três tipos de tokens SAS que também incluem SAS de serviço e SAS de delegação de utilizador – para permitir o acesso ao serviço (aplicação) e ao utilizador, respetivamente.
Os tokens SAS de conta são extremamente arriscados, uma vez que são vulneráveis em termos de permissões, higiene, gestão e monitorização, observou o Wiz. As permissões nos tokens SAS podem conceder acesso de alto nível a contas de armazenamento, quer através de permissões excessivas, quer através de âmbitos de acesso alargados.
As questões de segurança envolvem tokens com um problema de expiração, em que as organizações utilizam tokens com uma expiração muito longa (por vezes vitalícia) por defeito.
Caso contrário, os tokens SAS de conta são extremamente difíceis de gerir e revogar. “Os tokens SAS são criados no lado do cliente; portanto, não é uma atividade controlada pelo Azure e o token gerado não é um objeto Azure”, disse o Wiz. “Não existe nenhuma forma oficial de controlar estes tokens no Azure, nem de monitorizar a sua emissão, o que torna difícil saber quantos tokens foram emitidos e estão em utilização ativa.”
As recomendações incluem hacks de configuração e monitorização
O Wiz recomenda que evite a partilha externa de SAS de conta, considerando as questões que envolvem a falta de segurança e governação. Se a partilha externa não puder ser evitada, os SAS de serviço devem ser selecionados com uma política de acesso armazenada para permitir a gestão de políticas e a revogação de forma centralizada.
Para partilhar conteúdos de forma limitada no tempo, a expiração dos SAS de delegação do utilizador deve ser limitada a sete dias. A criação de contas de armazenamento dedicadas também pode ser uma boa prática, nos casos em que a partilha externa é inevitável.
O Wiz também recomendou o acompanhamento da utilização de tokens SAS ativos “ativando os registos analíticos de armazenamento” nas contas de armazenamento.
“Os registos resultantes conterão detalhes do acesso ao token SAS, incluindo a chave de assinatura e as permissões atribuídas”, referiu o Wiz. “No entanto, deve ter-se em atenção que apenas os tokens utilizados ativamente aparecerão nos registos e que a ativação do registo tem custos adicionais, o que pode ser dispendioso para contas com muita atividade.”
O Azure Metrics também pode ser utilizado para monitorizar a utilização de tokens SAS em contas de armazenamento para eventos até 93 dias. Além disso, as ferramentas de verificação de segredos também podem ser úteis para detetar tokens SAS com fugas ou com privilégios excessivos em artefactos e ativos expostos publicamente, ainda de acordo com o Wiz.