Segurança de Banco de Dados: O que aprendi analisando um artigo de 2024
Source: Dev.to
Controle de Acesso: Por que o GRANT não basta?
DAC (Controle de Acesso Discricionário)
A premissa é simples: se eu sou dono da tabela usuarios, eu posso rodar um comando GRANT SELECT e deixar você ver os dados. Parece justo, certo?
MAC (Controle de Acesso Mandatório)
Aqui, o sistema manda, não o usuário. O artigo cita o modelo Bell‑LaPadula, criado por militares, que usa “rótulos” de segurança (Confidencial, Secreto, Top Secret) e duas regras de ferro:
- No Read Up (Propriedade Simples) – Um usuário com nível Confidencial jamais consegue ler um arquivo Top Secret.
- No Write Down (Propriedade Estrela) – Um usuário com nível Top Secret não pode salvar um arquivo numa pasta Confidencial, evitando vazamento acidental ou intencional para níveis inferiores.
RBAC (Role‑Based Access Control)
Em vez de dar permissão para o “Vinicius”, atribuímos ao cargo “DevOps Junior”. Se o Vinicius mudar de cargo, as permissões acompanham a mudança de função, simplificando a gestão.
A “Mágica” da Inferência em Bancos Estatísticos
Cenário: Você quer saber se a Jane Smith tem uma doença específica ou qual o salário dela. Sabe que Jane é a única mulher doutora em Física que mora no bairro X.
-
Lança a query:
SELECT AVG(salario) FROM usuarios WHERE genero = 'F' AND titulo = 'Doutora' AND area = 'Física' AND bairro = 'X'; -
O banco reconhece a consulta como estatística e responde. Como o
COUNTdesse grupo é 1, a “média” devolve o valor exato de Jane.
Sem nenhum hack, a confidencialidade foi quebrada. Para mitigar esse risco, gigantes como Google e Apple utilizam Privacidade Diferencial, que adiciona um “ruído” matemático aos resultados (ex.: 100 pode ser retornado como 102 ou 98), mantendo a utilidade estatística enquanto protege o indivíduo.
Canais Encobertos: Hackeando sem Tocar nos Dados
Canais encobertos (Covert Channels) são descritos pelo CAPEC (MITRE) como formas de transferir informação violando a política de segurança usando meios não destinados à comunicação.
Canais de Tempo (Timing Channels)
- Se o bit secreto for
1, o processo executa um loop pesado por ~100 ms. - Se o bit secreto for
0, ele dorme rapidamente (~10 ms). - Um processo externo, sem permissão, mede o uso da CPU. CPU ocupada → registra “1”; CPU livre → registra “0”. O dado foi vazado.
Canais de Armazenamento (Storage Channels)
(Descrição resumida de técnicas que utilizam recursos de armazenamento compartilhado para transmitir bits de informação.)
Onde o Artigo “Escorregou” (Minha Crítica)
- DES (Data Encryption Standard) – O artigo ainda dedica espaço ao DES, que já está obsoleto.
- AES (Advanced Encryption Standard) – Muito mais robusto e amplamente adotado. Discutir DES em um trabalho acadêmico recente é como ensinar mecânica de carros falando de motores a vapor: historicamente interessante, mas perigoso se aplicado na prática.
Conclusão
Segurança de banco de dados é, antes de tudo, arquitetura: modelos como Bell‑LaPadula e a prevenção de inferência permanecem vitais e atemporais. Contudo, é crucial manter uma postura cética. A tecnologia evolui rapidamente; dominar teorias de fluxo de dados dos anos 1990 não garante proteção de um banco na nuvem em 2024 se continuarmos usando algoritmos depreciados.
O segredo está em combinar uma base matemática sólida com as ferramentas modernas de DevSecOps. Segurança não é um produto que você compra, é um processo (e, aparentemente, muita matemática).