Guia do hacker/Banco de dados

Origem: Wikilivros, livros abertos por um mundo aberto.

Guia do hacker

Todos nós já ouvimos falar sobre banco de dados. Seja na internet, no trabalho, ou com algum amigo. Mas você já parou para pensar para que serve e o quão importante é o banco de dados?

O que é um banco de dados? Bom, sabemos que um banco (agência bancária) é um lugar onde você pode guardar seu dinheiro de forma segura, e pode consultá-lo, sacar ou depositar quando quiser. Assim funciona o banco de dados na internet. Ele é um lugar na internet que armazena dados. Todo e qualquer tipo de dados. Desde números de fotos até cartões de crédito, ou nomes e senhas de usuários, ou os tópicos de um determinado site.

Existem basicamente duas formas de se administrar um banco de dados:

- Centralizando todos os dados em apenas um banco de dados, ou seja, o banco fica apenas em um servidor, e contém todos os dados que devem ser acessados pelas aplicações e/ou pelos clientes, e como ele fica centralizado totalmente no servidor, requer mais capacidade de processamento do mesmo.

- Descentralizando os dados, dividindo-os em vários bancos e em servidores diferentes. São úteis porque cada banco exige apenas da capacidade de processamento do processador do servidor em que estão rodando, e como os dados estão divididos entre eles, cada um vai ficar com um pouco, não havendo sobrecarga.

Os bancos de dados devem ser gerenciados por algum lugar, e é por isso que existem os Sistemas Gerenciadores de Banco de Dados (SGBD). Com esses softwares, é possível manipular os dados que são contidos no BD, podendo adicionar, remover, alterar, fazer consultas e etc. Um desses softwares, por exemplo, é o MySQL, que utiliza a linguagem SQL (Structured Query Language) como interface. É certamente o banco de dados mais utilizado actualmente, por conta da sua flexibilidade e facilidade ao trabalhar com seus comandos, NASA, Bradesco, HP, Nokia, Sony, Google, Cisco, todos esses gigantes utilizam o MySQL.

Uma falha bem comum e que foi explorada exaustivamente nos últimos anos é o SQL Injection. Essa falha permite que o invasor injecte querys (comandos) SQL no servidor/programa devido a uma falha na validação de dados. Por exemplo, no formulário de login de um determinado site, o banco de dados pega o login e senha, e os coloca em um comando para verificar se os dados são reais. Mas, se os dados passados não forem validados antes, é possível passar comandos para o banco e fazer com que ele ache que ele deve fazer outra coisa. Você pode injectar um comando que retorne toda a lista de usuários e senhas, por exemplo. Veremos sobre essa falha e outras mais para frente no capítulo de vulnerabilidades.
Vamos falar sobre pentest agora, que tem muito a ver com isso. Até mais :)