Análise de segurança do código para Databricks Apps

Importante

Este recurso está em versão Beta. O Azure Databricks permite a análise de segurança do código para espaços de trabalho elegíveis durante a beta.

Importante

As análises de segurança podem produzir falsos positivos e podem não identificar todos os erros de segurança.

O Databricks Apps analisa o código-fonte da sua aplicação em busca de problemas comuns de segurança sempre que faz o deploy de uma alteração ao código-fonte. A análise não bloqueia nem faz com que uma implementação falhe. As constatações aparecem na página de Segurança da aplicação, onde um gestor de aplicações pode analisá-las e triá-las.

Como funciona a análise de segurança do código

A análise de segurança do código executa uma análise estática no código-fonte da sua aplicação como parte da implantação:

  • É executado quando há alterações ao código-fonte: Uma análise é executada automaticamente quando implementa uma alteração no código-fonte. Uma implementação que reutiliza uma build existente sem alteração no código-fonte não é analisada.
  • Lê apenas o seu código-fonte: O scanner analisa o seu código-fonte sem o executar, e nunca modifica a sua aplicação.
  • Sem bloqueio: O scanner reporta os resultados de segurança, mas não bloqueia nem faz falhar a implantação. Revise e aborde os problemas detetados com base na sua gravidade e nos seus requisitos de segurança.
  • Falha em segurança: Se uma varredura não conseguir ser concluída, o resultado é registado como indisponível em vez de limpo, pelo que uma varredura em falta nunca é confundida com uma que está a passar.

O que a análise deteta

A análise de segurança do código analisa apenas o código-fonte da sua aplicação. Não analisa as dependências da tua aplicação nem faz análise dinâmica da aplicação em execução.

O scanner utiliza regras de deteção selecionadas, criadas e ajustadas pelo Azure Databricks para aplicações Databricks. O Azure Databricks pode adicionar, remover ou atualizar regras ao longo do tempo para melhorar a cobertura e a precisão da deteção. As regras detetam classes comuns de vulnerabilidades, incluindo:

  • Credenciais e segredos codificados no código
  • Injeção de SQL
  • Scripts entre sites (XSS)
  • Falsificação de pedidos no lado do servidor (SSRF)
  • Travessia de diretórios
  • Desserialização insegura
  • Configuração permissiva de partilha de recursos entre origens (CORS)
  • Carregamento YAML inseguro
  • Exposição de tokens do utilizador (em nome de outro utilizador)

Note

Uma varredura limpa não garante que a sua aplicação seja segura. O scanner verifica um conjunto específico de problemas, por isso problemas que as suas regras não cobrem não são detetados. Mantenha as suas próprias práticas de revisão de código e segurança, especialmente para aplicações que lidam com dados sensíveis. Para mais orientações de segurança, consulte as melhores práticas de segurança.

Consulte os resultados de segurança

Deve ter a permissão CAN MANAGE numa aplicação para visualizar os seus resultados de segurança. Consulte Configurar permissões para um aplicativo Databricks.

Para ver os resultados:

  1. No seu espaço de trabalho, abra a aplicação. Consulte Exibir os detalhes de um aplicativo Databricks.
  2. Selecione a guia Segurança .

A página de Segurança de uma aplicação Databricks, mostrando o resumo das conclusões e as conclusões agrupadas por ficheiro

A página de Segurança mostra os resultados para a implantação selecionada, agrupados por ficheiro. Cada resultado inclui:

  • O cheque que coincideu
  • O caminho do ficheiro e o número da linha
  • Um nível de gravidade
  • Uma descrição da questão

Os resultados utilizam os seguintes níveis de gravidade:

  • Crítico: Um problema de alta gravidade, como uma provável vulnerabilidade, que deve ser resolvido antes de depender da aplicação.
  • Aviso: Um problema potencial que deve analisar e corrigir se se aplicar à sua aplicação.
  • Informação: Uma observação de menor risco ou sugestão de codificação segura a ter em conta.

Um resumo no topo da página mostra o número de resultados em aberto, o número de resultados críticos, um nível global de risco e o número de resultados que resolveu ou ignorou. O nível de risco reflete as suas descobertas abertas e a sua gravidade; as descobertas que resolve ou ignora não contam para isso. Filtra os resultados por gravidade para te focares nas questões que mais importam.

Para rever os resultados de uma implantação anterior, utilize o seletor de versões de código para selecionar uma implantação anterior.

Constatações da triagem

A triagem permite-lhe acompanhar quais os resultados que abordou. Tal como na visualização dos resultados, deve ter a permissão CAN MANAGE na aplicação para os triar.

Cada constatação tem um dos seguintes estados:

  • Aberto: O estado padrão para um novo resultado.
  • Resolvido: Marca uma ocorrência como resolvida depois de corrigires o problema subjacente.
  • Ignorado: Ignore uma conclusão que não se aplique à sua aplicação ou que tenha aceite como risco conhecido.

Para analisar um resultado, selecione Marcar resolvido ou Ignorar no resultado. Para mover um resultado novamente como aberto, selecione Reabrir. Para triar vários resultados ao mesmo tempo, selecione vários resultados e aplique uma ação em lote.

O estado de triagem é guardado conforme a ocorrência e persiste entre as implantações. Se o mesmo problema aparecer numa implantação posterior, mantém o estado que definiste, para não voltares a triar os problemas que já revisaste.

Resultados da digitalização

A página de Segurança reflete o resultado da análise da implementação. O resultado da varredura descreve o que a varredura encontrou, e o estado da varredura indica se a varredura foi concluída.

Os resultados refletem as regras de deteção que estavam em vigor quando a análise foi realizada. O Azure Databricks não volta a analisar uma implementação existente quando as regras mudam, por isso um resultado anterior (incluindo Sem resultados de segurança) pode não refletir as regras atuais. Uma nova análise é executada automaticamente na próxima alteração do código-fonte.

Os seguintes resultados descrevem o que o exame revelou:

Outcome Description
Sem problemas de segurança A varredura foi concluída e não encontrou problemas no conjunto de regras atual.
Conclusões A verificação encontrou um ou mais problemas para rever e classificar.

Os seguintes estados descrevem o estado da própria análise:

Status Description
A analisar esta implementação A verificação está em curso. A página atualiza-se automaticamente quando a digitalização termina.
Varredura incompleta A varredura correu mas saltou alguns ficheiros ou regras, pelo que os resultados podem ser parciais.
Resultados da varredura indisponíveis A varredura não pôde ser concluída para esta implementação.
Esta implantação não foi analisada A implementação reutilizou uma compilação existente sem alteração no código-fonte. Reimplemente após uma alteração de código para o analisar.

Recursos adicionais