Aplicar as práticas recomendadas de segurança do Armazenamento do Azure
Analisamos como criar e trabalhar com uma assinatura de acesso compartilhado (SAS) e os benefícios que ela pode fornecer à sua solução de segurança de armazenamento.
É importante entender que, quando você usa um SAS em seu aplicativo, pode haver riscos potenciais.
Se uma SAS estiver comprometida, qualquer pessoa que a obtenha poderá acessar o armazenamento.
Se uma SAS fornecida a um aplicativo cliente expirar e o aplicativo não conseguir recuperar uma nova SAS do seu serviço, a funcionalidade do aplicativo poderá ser prejudicada.
Veja este vídeo para obter mais ideias sobre como proteger o seu armazenamento. Este vídeo baseia-se nas Sugestões e Truques do Azure #272 Práticas Recomendadas de Segurança do Azure.
Recomendações para a gestão de riscos
Vejamos algumas recomendações que podem ajudar a mitigar riscos ao trabalhar com um SAS.
Recomendação | Description |
---|---|
Sempre use HTTPS para criação e distribuição | Se uma SAS for passada sobre HTTP e intercetada, um invasor poderá intercetar e usar a SAS. Esses ataques man-in-the-middle podem comprometer dados confidenciais ou permitir a corrupção de dados pelo usuário mal-intencionado. |
Consulte as políticas de acesso armazenado sempre que possível | As políticas de acesso armazenado oferecem a opção de revogar permissões sem ter que regenerar as chaves da conta de armazenamento do Azure. Defina a data de expiração da chave da conta de armazenamento no futuro. |
Definir tempos de expiração de curto prazo para um SAS não planejado | Se uma SAS for comprometida, você poderá atenuar os ataques limitando a validade da SAS a um curto período de tempo. Essa prática é importante se você não puder fazer referência a uma política de acesso armazenado. Os tempos de expiração de curto prazo também limitam a quantidade de dados que podem ser gravados em um blob, limitando o tempo disponível para carregar nele. |
Exigir que os clientes renovem automaticamente o SAS | Exija que seus clientes renovem o SAS bem antes da data de vencimento. Ao renovar antecipadamente, você dá tempo para novas tentativas se o serviço que fornece o SAS não estiver disponível. |
Planeie cuidadosamente a hora de início do SAS | Se você definir a hora de início de um SAS para agora, devido à distorção do relógio (diferenças no tempo atual de acordo com máquinas diferentes), as falhas podem ser observadas intermitentemente durante os primeiros minutos. Em geral, defina a hora de início para pelo menos 15 minutos no passado. Ou não defina uma hora de início específica, o que faz com que o SAS seja válido imediatamente em todos os casos. De um modo geral, aplicam-se as mesmas condições ao prazo de validade. Você pode observar até 15 minutos de inclinação do relógio em qualquer direção em qualquer solicitação. Para clientes que usam uma versão da API REST anterior a 2012-02-12, a duração máxima de uma SAS que não faz referência a uma política de acesso armazenado é de 1 hora. Todas as políticas que especificam um prazo mais longo falham. |
Definir permissões mínimas de acesso para recursos | Uma prática recomendada de segurança é fornecer a um usuário os privilégios mínimos necessários. Se um usuário só precisar de acesso de leitura a uma única entidade, conceda-lhe acesso de leitura a essa única entidade e não acesso de leitura/gravação/exclusão a todas as entidades. Esta prática também ajuda a diminuir os danos se um SAS for comprometido porque o SAS tem menos poder nas mãos de um atacante. |
Compreender a faturação da conta para utilização, incluindo uma SAS | Forneça permissões limitadas para ajudar a mitigar as ações potenciais de usuários mal-intencionados. As permissões de leitura e gravação podem causar cobranças de cobrança. Use um SAS de curta duração para reduzir essa ameaça. |
Validar dados gravados usando uma SAS | Quando um aplicativo cliente grava dados em sua conta de armazenamento do Azure, lembre-se de que pode haver problemas com os dados. Se o seu pedido requer dados validados ou autorizados, valide os dados depois de escritos, mas antes de serem usados. Essa prática também protege contra dados corrompidos ou maliciosos sendo gravados em sua conta, seja por um usuário que adquiriu corretamente o SAS, ou por um usuário que explora um SAS vazado. |
Não assuma que um SAS é sempre a escolha correta | Em alguns cenários, os riscos associados a uma operação específica em relação à sua conta de armazenamento do Azure superam os benefícios do uso de uma SAS. Para essas operações, crie um serviço de camada intermediária que grave em sua conta de armazenamento depois de executar a validação, autenticação e auditoria de regras de negócios. Além disso, às vezes é mais fácil gerenciar o acesso de outras maneiras. Se quiser tornar todos os blobs em um contêiner legíveis publicamente, você pode tornar o contêiner Público, em vez de fornecer uma SAS a cada cliente para acesso. |
Monitore seus aplicativos com a Análise de Armazenamento do Azure | Você pode usar o registro em log e as métricas para observar qualquer pico de falhas de autenticação. Você pode ver picos de uma interrupção no serviço do provedor SAS ou da remoção inadvertida de uma política de acesso armazenada. |