AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 71608
Accepted
Simon Righarts
Simon Righarts
Asked: 2014-07-16 18:43:30 +0800 CST2014-07-16 18:43:30 +0800 CST 2014-07-16 18:43:30 +0800 CST

Implicações de segurança da restauração de um backup de uma fonte desconhecida?

  • 772

Cenário : Você recebe um backup de banco de dados e é instruído a restaurá-lo em um servidor (que já está hospedando outros bancos de dados), mas não recebe nenhuma informação útil sobre o que o backup contém ou se a fonte deve ser confiável.

Pergunta 1 : Quais são as possíveis implicações de restaurar um backup que pode ser malicioso?

Pergunta 2 : O que você pode fazer para proteger seu servidor/os dados em outros bancos de dados do impacto da restauração de um backup potencialmente malicioso? RESTORE VERIFYONLYparece ser um bom primeiro passo. A resposta final provavelmente é 'restaurar o banco de dados em uma VM de sandbox sem acesso ao mundo externo', mas vamos supor que essa opção esteja fora de questão. O que mais deve ser feito nesta situação?

sql-server backup
  • 8 8 respostas
  • 2640 Views

8 respostas

  • Voted
  1. Best Answer
    user507
    2014-07-16T19:48:31+08:002014-07-16T19:48:31+08:00

    Um banco de dados pode conter código malicioso, possivelmente um procedimento que irá alterar uma senha para o login "sa" ou eliminar todos os bancos de dados. No entanto, a única maneira de ver que está causando um problema é um indivíduo restaurar o banco de dados e, em seguida, executar manualmente qualquer código nesse banco de dados. Ele não seria executado de nenhuma maneira automatizada.

    Não há nenhuma configuração que possa ser aplicada em um banco de dados para que o SQL Server execute automaticamente algum código no banco de dados ao restaurá-lo em um servidor. Se o fizesse, esperaria que a Microsoft perdesse a certificação Common Criteria para o produto. Isso é um bug muito grande para permitir um DBMS para mim.

    • 22
  2. yrushka
    2014-07-17T00:13:59+08:002014-07-17T00:13:59+08:00

    Existem alguns passos de prevenção que você pode fazer.

    1. Certifique-se de que apenas um administrador de sistema tenha acesso ao banco de dados restaurado.
    2. Coloque o banco de dados no modo de usuário único após a conclusão da restauração.
    3. Verifique o código dentro de todos os procedimentos armazenados e funções e gatilhos dentro deste banco de dados.
    4. Execute um dbcc checkdb para garantir que não haja problemas de integridade.
    5. Verifique os usuários que costumavam ter acesso ao banco de dados e remova todos eles.
    6. Comece permitindo o acesso, muito restrito a objetos específicos verificados por você.

    Como Shawn disse, o código não será executado sozinho, a menos que algum procedimento armazenado que pareça vbalid tenha um exec de outro código malicioso. Esta é a razão de verificar o código dentro de cada um deles antes de colocá-lo em modo multiusuário.

    • 11
  3. Brent Ozar
    2014-07-17T11:46:46+08:002014-07-17T11:46:46+08:00

    Estou chegando aqui, mas posso pensar em pelo menos um cenário perigoso: se você restaurar um banco de dados que tenha um filetable , esses arquivos agora estarão em sua rede por padrão (e especificamente, em seu SQL Server). Você pode restaurar um vírus.

    Isso por si só não fará nada, é claro - o vírus não se torna senciente de repente - mas se seus usuários tentarem acessar o arquivo, eles poderão ser infectados. (Ei, eu disse que estava alcançando.) Estou imaginando um cenário em que um hacker externo deseja obter malware na porta e, em seguida, envia um e-mail para Bob na contabilidade dizendo: "Aqui está o arquivo: \sqlserver\filetableshare\ myvirus.exe" - nesse ponto, ele passou por seus firewalls sem detecção e agora estamos reduzidos às suas ferramentas internas de antivírus e antimalware.

    • 10
  4. Shanky
    2014-07-17T00:13:19+08:002014-07-17T00:13:19+08:00

    RESTORE VERIFYONLY parece ser um bom primeiro passo. A resposta final provavelmente é 'restaurar o banco de dados em uma VM de sandbox sem acesso ao mundo externo', mas vamos supor que essa opção esteja fora de questão. O que mais deve ser feito nesta situação?

    Restaurar verificar apenas verifica a integridade do banco de dados NÃO informará se o backup inclui um código malicioso ou não RESTORE VERIFYONLY não tenta verificar a estrutura dos dados contidos nos volumes de backup. É altamente improvável que, se o backup vier de dentro da empresa onde você trabalha, possa ser malicioso, mas se vier de terceiros, você precisa ter cuidado, como Shawn apontou.

    A documentação do Microsoft Online diz que

    •Para fins de segurança, recomendamos que você não anexe ou restaure bancos de dados de fontes desconhecidas ou não confiáveis. Esses bancos de dados podem conter código mal-intencionado que pode executar código Transact-SQL não intencional ou causar erros ao modificar o esquema ou a estrutura física do banco de dados. Antes de usar um banco de dados de uma fonte desconhecida ou não confiável, execute DBCC CHECKDB no banco de dados em um servidor que não seja de produção e também examine o código, como procedimentos armazenados ou outro código definido pelo usuário, no banco de dados.

    • 7
  5. James Lupolt
    2014-07-17T21:12:36+08:002014-07-17T21:12:36+08:00

    A questão se concentra principalmente em um backup contendo malware, mas também é possível obter um comportamento indesejado e potencialmente malicioso da própria operação de restauração.

    Descobri acidentalmente no passado que é possível travar o SQL Server tentando restaurar um arquivo de backup corrompido que faz com que o SQL Server tente ler além do final do arquivo de backup e trave. Não tenho certeza de quais versões são suscetíveis ou exatamente o que é necessário para reproduzir o problema. Documentei alguns detalhes limitados aqui quando encontrei esse problema alguns anos atrás.

    • 7
  6. mrdenny
    2014-07-17T11:28:37+08:002014-07-17T11:28:37+08:00

    Qual é o risco de restaurar um banco de dados desconhecido de uma fonte desconhecida? Nenhum.

    Qual é o risco de permitir que um aplicativo desconhecido se conecte usando uma conta sysadmin para se conectar a esse banco de dados e começar a executar o código? GRANDE QUANTIDADE! Se a conta do aplicativo tiver apenas direitos dentro do banco de dados e nenhum acesso no nível do servidor, não há nada que ela possa realmente fazer fora do banco de dados. Isso basicamente se resume a ter uma configuração de estrutura de segurança adequada no servidor para começar.

    • 5
  7. Phil Perry
    2014-07-18T06:14:46+08:002014-07-18T06:14:46+08:00

    Você recebe um backup de banco de dados e é instruído a restaurá-lo em um servidor (que já está hospedando outros bancos de dados), mas não recebe nenhuma informação útil sobre o que o backup contém ou se a fonte deve ser confiável.

    Agradável. Você exige uma declaração por escrito assinada de quem está lhe dizendo para fazer isso, de que aceita total responsabilidade pelas consequências. Se eles não estiverem dispostos a fazer isso, você deve testar a instalação em uma caixa de areia após examinar o arquivo de backup (se possível) e examinar minuciosamente todas as tabelas, procedimentos etc. o sistema de produção. Mesmo assim, você deve deixar claro (para seu chefe e seus superiores) que nunca confiou no backup e está fazendo isso apenas sob ordens diretas.

    Se eles não assinarem tal declaração, alerte seu(s) superior(es) antes de fazer qualquer coisa. Como profissional, é seu dever proteger seu sistema tanto quanto possível, não importa o que algum superior estúpido possa ordenar que você faça. Você pode ser demitido, mas pode manter a cabeça erguida e saber que fez a coisa certa.

    • 2
  8. Philippe
    2014-07-23T14:15:19+08:002014-07-23T14:15:19+08:00

    Não há muitos perigos por dizer, além de alguns de longo alcance sugeridos aqui. Como foi mencionado, é difícil ter material auto-executável em um backup de banco de dados. Ele precisa de algum tipo de mecanismo de gatilho externo.

    Obtenha um laptop/desktop antigo e uma versão de avaliação do seu software de banco de dados (SQLExpress) se o licenciamento for um problema. Copie o arquivo de backup na máquina, desconecte a rede/wireless e faça a restauração. Então comece a cavar. Leve o tempo que precisar, porque há muitos lugares onde as coisas podem se esconder, a maioria deles já coberto por outras postagens neste tópico.

    A integridade de seu DBA e o bem-estar de seu ambiente de Produção é mais importante do que qualquer ordem dada por um superior.

    • 2

relate perguntas

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Backups de banco de dados no Oracle - Exportar o banco de dados ou usar outras ferramentas?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve