Blob Storage expostos no Azure

Views: 459
0 0
Read Time:2 Minute, 49 Second

Com a manchete “Indevidamente Configurado AWS S3 Bucket Expõe 10 Milhões de Registros de Hóspedes de Hotéis” no SANS NewsBites desta semana,eu queria lançar um pouco de luz sobre o mesmo problema, mas no Azure.

O Microsoft Azure Blob Storage é muito semelhante ao AWS S3, e vem em três sabores de controle de acesso:

  • “Privado” é, felizmente, o padrão. e desliga o acesso público anônimo
  • “Blob” permite acesso público não autenticado a um arquivo, desde que você saiba seu nome
  • “Container” é o mesmo que blob, mas também permite listar o conteúdo da pasta

Você pode verificar o nível de acesso configurado olhando para os recursos do Azure, clicando nas contas de armazenamento e, em seguida, perfurando os recipientes de armazenamento presentes:

Um nível de acesso de “Blob” pode ser suficiente para algo como um site público. Ele se comporta muito semelhante a um servidor web – se alguém sabe ou pode adivinhar o nome do arquivo, ele pode acessar o arquivo, sem perguntas. Para dados de negócios, esse nível de acesso é perigoso, porém, porque sua “segurança” basicamente depende apenas da sua suposição de que ninguém mais sabe ou pode adivinhar o nome do arquivo. Na maioria das vezes, essa suposição acaba por ser desaconselhável. Outros arquivos que você compartilha intencionalmente publicamente podem ter uma estrutura de nomeação semelhante, ou talvez você esteja usando nomes facilmente adivinháveis para começar. Resumindo: Se você considerar um arquivo muito sensível para armazenar em seu servidor web público, não armazená-lo em um contêiner do Azure com acesso “Blob” também.

Um nível de acesso de “Container” é o mesmo que “Blob”, mas pior. Um invasor só precisa saber o nome da própria Conta de Armazenamento. Essa é a parte do nome na frente dos URLs blob.core.windows.net que você certamente já encontrou antes. Esse espaço de nome é muito pequeno, porque o Nome da Conta de Armazenamento tem que ser único em todos os inquilinos do Azure (Clientes Microsoft Azure). Ao criar uma nova conta de armazenamento, as “colisões de nomes” são, portanto, bastante frequentes:

O nome do contêiner em si (um nível abaixo da conta de armazenamento) só precisa ser único por conta de armazenamento, porém, e não pode ser diretamente enumerado. Portanto, mesmo contas que são expostas no nível de acesso “Container” retêm um pequeno mínimo de segurança por obscuridade, presumindo-se que seu contêiner é de fato nomeado obscuramente. No meu exemplo mostrado, o contêiner é chamado de “logs”, e provavelmente seria descoberto muito rápido quando alguém desenvolvesse qualquer interesse no meu recipiente “temporário sozinho”. Enumerar o conteúdo é então apenas uma chamada de API de distância, e o XML/JSON resultante é prontamente parseable máquina para extrair os URLs de todos os arquivos no recipiente. Uma vez que os nomes do arquivo e do caminho sejam conhecidos, os arquivos podem ser obtidos mesmo que o nível de acesso seja posteriormente alterado de volta para “Blob”.


Uma maneira de descobrir rapidamente se você expôs contêineres na configuração do Armazenamento Azure é usar o Asc (Azure Security Center, centro de segurança do Azure). Mesmo no nível “Livre”, você verá recomendações como estas:

Se o SEU ASC exibir essa recomendação para qualquer uma de suas contas de armazenamento, leve-a a sério e investigue se o recurso sinalizado é público por design ou público por engano.

FONTE: InfoSec Handlers Diary Blog

POSTS RELACIONADOS