🟡 Médio | Segurança | WAL/SSTable
Problema
Arquivos de dados (WAL, SSTables, snapshots) são criados com permissões default do sistema (tipicamente 0644, world-readable). Em sistemas multi-tenant, qualquer usuário local pode ler todos os dados do storage engine.
Impacto
Vazamento de dados para outros usuários no mesmo sistema. Violação de isolamento em ambientes compartilhados.
Evidência
$ ls -la .lsm_data/
-rw-rw-r-- 1 user user 511 Apr 10 17:40 wal.log
-rw-rw-r-- 1 user user ... sstables/*.sst
Como reproduzir
sudo -u outro_usuario cat /path/to/.lsm_data/wal.log
# Dados legíveis por qualquer usuário
Correção recomendada
use std::fs::set_permissions;
use std::os::unix::fs::PermissionsExt;
// Após criar cada arquivo de dados:
let mut perms = file.metadata()?.permissions();
perms.set_mode(0o600); // owner read/write only
set_permissions(path, perms)?;
Criar uma função utilitária create_secure_file(path) -> File que:
- Cria o arquivo com permissões restritas (0o600 ou 0o640)
- Loga warning se não for possível
Esforço: Baixo (2h)
🟡 Médio | Segurança | WAL/SSTable
Problema
Arquivos de dados (WAL, SSTables, snapshots) são criados com permissões default do sistema (tipicamente 0644, world-readable). Em sistemas multi-tenant, qualquer usuário local pode ler todos os dados do storage engine.
Impacto
Vazamento de dados para outros usuários no mesmo sistema. Violação de isolamento em ambientes compartilhados.
Evidência
$ ls -la .lsm_data/ -rw-rw-r-- 1 user user 511 Apr 10 17:40 wal.log -rw-rw-r-- 1 user user ... sstables/*.sstComo reproduzir
sudo -u outro_usuario cat /path/to/.lsm_data/wal.log # Dados legíveis por qualquer usuárioCorreção recomendada
Criar uma função utilitária
create_secure_file(path) -> Fileque:Esforço: Baixo (2h)