Avaliando o programa de backup, sincronização e espelhamento SyncBackFree

Tenha em mente que espelhamento e sincronização (como o RAID 1) rigorosamente não são “backup”.

Meu preferido sempre foi o Cobian Backup, mas este estacionou na versão 11, 12 anos atrás, e estou procurando por algo que ofereça uma camada de proteção contra ransonware. Até o momento o SyncBackFree foi o único gratuito a oferecer algo desse tipo. Eu só descobri hoje que o autor do Cobian Backup vem trabalhando em um sucessor, o Cobian Reflector, desde 2021. Mas na curta lista de novidades não encontrei nada realmente importante.

O que o SyncBackFree diz fazer, entre outras configurações:

  1. Interrompe o backup se um determinado arquivo for modificado (define um “canário”). Você sempre vai ter arquivos que em condições normais nunca vão ser alterados, como a maioria dos PDFs, mas um ransonware vai criptografar todos os documentos que encontrar;
  2. Interrompe o backup se um percentual X de arquivos for modificado. Idealmente todos os arquivos que são imutáveis deveriam ir para “arquivo morto” em uma mídia somente leitura, mas quase ninguém faz isso e o servidor está sempre lotado de arquivos que fazem parte do backup diário mas apenas um punhado é acrescentado ou editado diariamente. Uma quantidade incomum de alterações pode ser um sinal de comprometimento;
  3. Interrompe o backup se um percentual X de arquivos for acrescentado. Alguns ransonwares criptografam o arquivo mantendo o nome original, mas outros criam uma versão com outro nome e apagam o original. A configuração anterior não iria flagrar isso;
  4. Interrompe o backup se um percentual X de arquivos for deletado. Isso é útil tanto para detectar atos maliciosos de funcionários quanto para se proteger quando o seu “backup” é do tipo espelho.

E tem diversos mecanismos de notificação caso o backup seja interrompido, por e-mail e notificações. No mundo pré-ransomwares não era tão urgente saber se um backup falhou, mas hoje você vai querer saber imediatamente.

Eu achei a implementação de (1) limitada porque só é possível definir um arquivo canário. Isso pode ser o bastante, mas eu gostaria de ter flexibilidade para poder escolher arquivos em diversos pontos diferentes do sistema de arquivos. E esse seria o modo mais eficiente de todos os oferecidos no quesito desempenho.

[editado:] Eu cometi um erro fundamental de lógica que invalida todo o trecho a seguir. Por favor ignorem.

Não está claro como o programa implementa (2) no espelhamento e sincronização, porque idealmente você não deve interromper o processo depois que já começou a alterar o destino (no caso de backup é irrelevante).  Digamos que o percentual configurado de arquivos  seja 10%:

Calcular o hash de 100% dos arquivos procurando esses 10% e comparar com o registrado no banco de dados antes de começar a operação de cópia é altamente ineficiente porque leva até duas vezes mais tempo, pois calcular hash leva exatamente o mesmo tempo que copiar, se origem e destino estiverem em discos diferentes (e não é nada prudente ter sua cópia no mesmo disco). O programa pode até parar de calcular o hash quando faltar menos de 10% para terminar, mas isso não ajuda tanto.

Um modo mais eficiente é calcular o hash do arquivo enquanto faz a cópia para um arquivo temporário no destino e se for diferente do que está registrado no banco de dados apagar o que está no destino (espelhamento ou sincronização) e renomear o temporário em seu lugar. O programa precisaria ir fazendo a cópia temporária de arquivos até descobrir que 10% deles foram alterados e cancelar o processo, apagando esses temporários do backup. Como cada temporário “igual” já pode ser imediatamente deletado você precisa de “apenas” 10% de espaço livre (referente ao tamanho do total de arquivos, não à capacidade do disco) extras no disco para esse processo.

Dependendo de como o desenvolvedor implementou isso, habilitar essas opções tem um impacto grande no tempo de operação.

E ainda temos o problema: “realmente funciona?”. E há muito mais que pode dar errado em um programa desse tipo, incluindo apagar seu único original em caso de bug ou erro de configuração (a capacidade de sincronização é um perigo!).

Vou precisar de muitos testes para poder dizer.

Alguém aí tem alguma sugestão?

3 comentários
  • Jefferson - 6.606 Comentários

    Eu cometi um erro fundamental de lógica que invalida parte do meu texto. Ele foi editado para refletir isso.

  • Jefferson - 6.606 Comentários

    Eu perdi o interesse no SyncBackFree. Criei um programa em Delphi que está perto de ter toda a funcionalidade dele que me interessava.

  • Snow_man - 310 Comentários

    bom dia Jeff; bom ver movimento no blog novamente, creio que estão todos bem de saúde em sua família.

    Gostei do post, estou também procurando um programa pra substituir o Cobian, e fazer backup diário (2x a 4x ao dia) em uma pasta compartilhada numa rede.

    Se puder desenvolver mais esse tema, agradeço!

Deixe um comentário para Snow_man Cancelar resposta

Você pode usar estas tags HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  

  

  

:) :( ;) O_o B) :lol: :huh: :S :D :-P 8-O :yahoo: :rtfm: :dashhead1: :clapping: more »