Вы находитесь на странице: 1из 22

Centro de Educao Superior de Braslia

Instituto de Educao Superior de Braslia


Ps-Graduao em Banco de Dados

Segurana em Banco de Dados

Cludio Reis Ferreira Galvo


Jos Augusto Campos Versiani
Romero Veloso Costa Filho

Braslia-DF
Abril de 2015

RESUMO

O principal objetivo desse trabalho e o foco na segurana e integridade do banco


de dados e seus dados. Ser apresentado meios para o combate as vulnerabilidades e
ameaas constantes ao dados que o maior bem da empresa hoje. E assim como os
meios para mant-los ntegros e em segurana.
Palavras-chave: banco de dados, segurana, integridade.

SUMRIO

1 INTRODUO.......................................................................................................................................... 5
2 SEGURANA DA INFORMAO.......................................................................................................... 6
2.1 CONCEITOS FUNDAMENTAIS......................................................................................................... 6
2.2 POLITICAS DE SEGURANA........................................................................................................... 6
2.3 TIPOS DE SEGURANAS................................................................................................................. 7

3 SEGURANA EM BANCO DE DADOS.................................................................................................. 8


4 MEIO DE SEGURANA EM BANCO DE DADOS..................................................................................9
4.1 CONCESSO DE ACESSO............................................................................................................. 10
4.2 CONTROLE DE PRIVILGIOS........................................................................................................ 11
4.3 CONTROLE DE AUDITORIA........................................................................................................... 12
4.4 ORACLE AUDIT VAULT................................................................................................................... 12
4.5 CONTROLE DE DADOS.................................................................................................................. 13

5 SEGURANA EM NIVEL DE APLICAO............................................................................................ 13


6 CONCLUSO................................................................................................................17
7 REFERNCIAS...................................................................................................................................... 18
8 GLOSSRIO........................................................................................................................................... 19

1 INTRODUO
Nesse trabalho iremos focar sobre a segurana da informao aplicada a proteo
de banco de dados e seus dados. Assim como quais as vulnerabilidades e ameaas
mais comuns que devem ser observadas. Ser apresentado aqui os principais concei tos de segurana da informao, sua aplicao em banco de dados.

Hoje a competitividade e a espionagem industrial entre as empresas exige que o


armazenamento das informaes e a salvaguarda dos mesmos seja algo essencial
para o bom andamento da empresa, assim como para o seu crescimento. Por isso o
foco na proteo dos dados deve ser primordial.

Assim preciso que a segurana dos dados, a integridade dos dados, a preven o a vulnerabilidades, a segurana da informao como um todo seja sempre um foco
da empresa para que ela esteja a frente das concorrentes e se mantenha competitiva
no mercado.

2 SEGURANA DA INFORMAO
Segurana da informao a garantia de que as informaes estejam sempre disponveis, se mantenham confiveis e no sejam acessadas por pessoas no autorizadas. Com o principal objetivo de manter a continuidade do negcio da empresa e minimizar os danos causados por incidentes de segurana, a segurana da informao
um elemento crucial para que as empresas possam criar oportunidades de negcios.

2.1 CONCEITOS FUNDAMENTAIS


Informao: A informao a principal ativo de uma empresa. Atualmente ela garante a estadia da empresa no mercado altamente competitivo.
Confidencialidade: visa garantir o sigilo, a privacidade dos dados e informaes
que so mantidas, enviadas e trocadas por pessoas e organizaes, evitando assim
que pessoas no autorizadas tenham acessos a esses ativos.
Integridade: o ato de garantir que os dados e as informaes no sero altera dos sem a devida autorizao explcita do criador.
Disponibilidade: consiste em proporcionar o acesso ininterruptamente dos ativos
da empresa, como sistemas, informaes e processo para as pessoas autorizadas no
momento que ela desejar.

2.2 POLTICAS DE SEGURANA

Poltica de segurana um conjunto de normas e diretrizes, que tem como objetivo


dizer como os ativos e o ambiente da empresa devem ser utilizados e preservados.
Seu objetivo de determinar que todas as regras que devem ser respeitadas por todos
os membros da empresa, a poltica dever ser clara para e em caso de seu descumpri mento deve assegurar que haver penalizaes.
2.3 TIPOS DE SEGURANAS
Segurana lgica: o uso software um dos principais meios de proteo de dados em uma rede corporativa. H dois nveis de aceso por meio de controle de acesso
e nvel de acesso a informao. O uso de senhas com regras de troca peridica composto de alfabeto alfanumrico e com uso de caracteres especiais e muito usa para o
controle de acesso. J nveis de acesso e feito atravs de controle hierrquico, onde e
definida as restries de acesso aos usurios de acordo com o seu perfil.
H tambm os sistemas ativos de segurana como firewall, IPS, software de monitoramento e outros que usados para prove segurana a rede.
Segurana fsica: promovida por meios materiais que envolve vrias diretrizes,
que vai do uso de equipamentos de biometria para controle de acesso at a preveno
e controle de incidentes naturais. Assim como manuteno do hardware dos equipamentos.

3 SEGURANA EM BANCO DE DADOS


Quando falamos em segurana de banco de dados, geralmente, estamos nos referindo segurana contra acessos maliciosos. Os dados armazenados em Bancos de Dados precisam ser protegidos contra destruio ou alterao intencional, acessos no-

autorizados e introduo acidental de inconsistncias. Por isso alguns aspectos devem


ser considerado com relao a segurana:

Aspectos legais, sociais e ticos (exemplo: a pessoa que faz a solicitao referen te ao crdito de um cliente tem direito legal em relao informao?);

Controles fsicos (a sala cofre deve ficar trancada ou protegida fisicamente de alguma outra maneira?);

Questes polticas de acesso (como decidir quem tem acesso a que dentro do
BD?)

Problemas operacionais (na adoo de um sistema de senhas, como as senhas


so mantidas?)

Controle de hardware (existem chaves de proteo?)

Segurana do sistema operacional (qual a poltica de armazenamento e estrutura


de arquivos do sistema?)
O uso do Banco de dados de forma equivocada pode ser intencional ou acidental.

O acesso de forma intencional pode ser resultado de:

Leitura no autorizada de dados (roubo de informaes);

Modificao no autorizada de dados;

Destruio no autorizada de dados;

Insero no autorizada de dados.


J a quebra de segurana de forma acidental pode ser resultado de:

Quebras durante o processamento de transaes;

Anomalias causadas por acesso concorrente aos dados;

Anomalias causadas por distribuio do banco de dados.

4 MEIO DE SEGURANA EM BANCO DE DADOS


Na difcil misso de protege o banco de dados e seus dados alguns aspectos de vem ser considerados.
5

4.1 CONTROLE DE ACESSO


por meio do controle de acesso que possvel definir o tipo de acesso para cada
tipo de usurio. A determinao de privilgios de acesso ao banco de dados e feita por
meio dos duas instrues SQL REVOKE e GRANT.
Atravs do comando GRANT possvel conceder permisses especificas no banco
de dados e seus objetos(tabelas, viso...) para grupos de usurio ou um ou outro usurio. J como o uso do comando REVOKE possvel remover esse privilgio.
A concesso de privilgios e feita por Listas de privilgios onde pode ser todos os
privilgios ALL [PRIVILEGES] ou alguns separados por vrgula, como: SELECT, INSERT,UPDTE ou DELETE.

Exemplo do uso do GRANT:


GRANT (lista de privilgios) ON [Tabela] TO (usurio)
Exemplo do uso do REVOKE:
REVOKE (lista_de_privilgios) ON [tabela] OU [view] OU [ROLE] FROM (usurio)
A concesso e feita a usurios e pode ser PUBLIC(todos) ou aos usurios que deseja atribuir o
privilgio.

4.2 CONCESSO DE PRIVILGIOS


A concesso de acesso pode ser feita a principio pelo administrador. Mas tambm
isso poder concedida a um outro usurio por meio de autorizaes. Nesse caso com a
observao de que essa autorizao poder ser revogada a qualquer momento caso
seja necessrio.
Exemplo de concesso de autorizao:
5

O DBA concede a autorizao de atualizao a trs usurio que podem repassar


a sua autorizao para ouros usurios. A passagem de autorizao pode ser representada por um grafo de autorizaes da seguinte maneira:
U1
DB
U2

U3
U1
U4

DBA
U2

U5
U3

Figura 2: Usurio com permisso concede permisso para outros usurios.

Um ponto relevante sobre o exemplo que as autorizaes no so concedidas para


usurio como do mesmo nvel hierrquico. Ou seja , o usurio U2 no poder conceder
permisso para os U1 e U3, somente de nvel abaixo dele. Dessa forma caso o DBA revogue a permisso do U2 o U3 no poder conceder a ele. Como mostrado abaixo:

U2
DBA

U2
DB
A

U3

U3

Figura 3: DBA revoga permisso do usurio U2 porem o U3 pode conceder..

4.3 LOGS E AUDITORIA


5

Uma boa prtica para se mentar e saber a real situao da segurana do banco de
dados e usando meios como logs para ser feita auditorias. atravs dos logs que
possvel se registrar todas as
aes que ocorrem no banco de dados. Assim caso haja a a suspeita de falha ou
at mesmo de quebra de segurana, a consulta aos logs e essncial para saber o que
aconteceu o quem o responsvel por esse incidente.
possvel no oracle que seja rastreado o uso de direitos especficos de acesso
usando a auditria de privilgios e auditoria de objetos. O resultado da auditoria feita
no banco vai a tabela AUD$, que faz parte do esquema SYS do dicionrio de Banco de
dados.
4.4 VIEWS
Com o uso das Views possvel conceder permisses de acesso ao banco de
dados de forma personalizada para os usurio. Ao criar uma view poder ser es condida os dados que o usurio no necessita ter acesso, lhe mostrando somente
os dados que lhe interessa. Assim uma view pode ter uma utilidade que vai alm de
simplicar o cdigo como tambm para aumetar a segurana.
Os SGBDs fornecem segurana em dois nveis:

Relao um usurio pode ter acesso direto a uma relao permitido ou negado;

Viso um usurio pode ter acesso aos dados que aparecem em uma viso
permitido ou negado.

Sintaxe:
Exemplo:
Criar uma viso com acesso aos registro dos fornecedores localizados em Libres.
5

Create view forn_libres


As

( select Nome, cidade


From fornecedores
Where cidade=Libres);

4.5 TRIGGERS
Triggers so cdigos criados dentro do banco de dados, e neles so criados "blo cos" PL/SQL que deve ser executado automaticamente toda vez que uma instruo
SQL ( evento DML ) for aplicada para uma determinada tabela.
Com o uso das Triggers podemos garantir uma segurana maior no nosso banco,
j que com o seu uso pode-se restringir o acesso as tabelas e controlar as atualiza es. Assim como podemos usar para criar uma poltica de replicao de forma sincro nizada das tabelas. Criar regras para que no seja burlado algumas regras na regra de
negcio da aplicao. Podemos tambm criar controles mais complexos de relacionamento entre as tabelas.
No exemplo abaixo foi criado uma trigger que impede um muito fora do normal.
CREATE TRIGGER ImpedeAumentoExagerado

BEFORE UPDATE OF salario ON Empregado

REFERENCING OLD AS o NEW AS n

FOR EACH ROW

WHEN (n.salario > 1.5 * o.salario)


5

SET n.salario = 1.5 * o.salario

Ao utilizarmos as triggers, trabalhamos com dois pseudo registros, eles servem


para comparar as colunas velhas (:old) com as novas (:new) e so muito utilizadas
para fazer update nas colunas das tabelas de auditoria.
Abaixo, seguem exemplos de comandos de TRIGGERS:
Criao de TRIGGERS:
CREATE OR REPLACE TRIGGER <nome_da_trigger>
<BEFORE ou AFTER> <INSERT ou UPDATE ou DELETE> ON <nome_da_tabela>
FOR EACH ROW
[Bloco de instrues PL/SQL]
4.6 ORACLE AUDIT VAULT E FIREWALL DE BANCO DE DADOS
Oracle Audit Vault e Database Firewall fazem a primeira forma de defesa para bancos de dados e consolida dados de auditoria de bancos de dados, sistemas operacionais e diretrios.
Essas ferramentas trabalham com uma alta preciso em monitoramento de tecnolo gia baseadas na gramtica SQL e bloqueia trfego SQL no autorizada antes de chegar ao banco de dados. Combinando informaes da rede com informaes de auditoria detalhada para elabora relatrios de conformidade fcil e alertas.

Figura 3: Centralizao de Informaes de auditoria de diferentes Bancos de Dados relacionais.

Figura 3: Uso do Database Firewall e do Oracle Audit Vault.

Com o uso dessa ferramenta o controles e monitoramento do banco de dados


pode ser facilmente adaptada para atender s exigncias de segurana da empresas.

4.7 BACKUPS
Como hoje de suma importncia que os dados e as informaes sejam armazenadas para o bem da empresa. O uso de backups de segurana e essencial.

Politica de backiup deve ser adotada de forma mais adequada possvel as necessi dades da empresa. Questes como piriodicidade, tipo de backup e a forma como esses
dados sero armazenados devem ser determinada da melhor forma possvel para que
no haja danos ou perdas dos dados e o mesmos estejam sempre seguros.
4.8 SEGURANA EM NIVEL DE APLICAO
Para se ter acesso ao dados em um banco de dados, se faz necessrio o uso das
instrues SQL. Mas o uso dessas consultas no so totalmente seguras e confiveis
por mais que os dados no estejam visveis aos usurios. Na elaborao de uma apli cao caso o desenvolvedor deixe prechas e alguma falha, agentes mal intencionas
podero manipular e ter acesso a base de dados da empresa. A injeo direta de co mandos SQL uma tcnica de invaso muito usado na internet. Atravs dessa tcnica
o agente ofensor poder ter acesso a dados valiosos e at alter-los.
Esta fragilidade ocorre por seguintes motivos:

A aplicao est acessvel pela internet que possui usurios dispostos a


quebrar seu sistema;

Uso de linguagens de script fracamente tipadas com dados vulnerveis ajudam a abrir brecha de segurana;

O protocolo HTTP tem peculiaridades que, quando mal utilizadas, podem


tornar uma aplicao mais vulnervel com o uso de parmetros GET.

Exemplo de Injeo SQL:


SELECT id, nome, sobrenome FROM autores;
Podemos fazer a solicitao de registros restritivos, com a clusula WHERE:
SELECT id, nome, sobrenome FROM autores
5

WHERE nome = jo's AND sobrenome = silva;


Se a aplicao no faa o tratamento do contedo inserido pelo usurio, um angete
mal intencionado poder usar da injeo SQL para ter acesso aos dados restritos e as sim quebrando a segurana na aplicao. Exemplo de injeo SQL acidental:

SELECT id, nome, sobrenome FROM autores


WHERE nome = jos AND sobrenome = silva;
Ao passar as strings de forma errada jos e silva passaram a ser as strings jo e
AND sobrenome = . Se um atacante alterar o comando SQL propositalmente para:
SELECT id, nome, sobrenome FROM autores
WHERE nome = jo; DROP TABLE autores; -- AND sobrenome = silva;
A insero da string ; DROP TABLE autores; -- ser interpretada e, se o usurio
que realiza a consulta SQL no banco possuir privilgios para executar o comando, a tabela autores ser excluda do banco de dados.
Segurana contra injeo SQL
Para se evitar esse tipo de ataque as permisses e privilgios ao usurio devem
ser minimas para executar as consultas SQL vindas das aplicaes. Assim, o uso do
usurio dono dos objetos de banco de dados (owner) para executar as instrues SQL
vindas da aplicao deve ser evitada. Nesse caso crie usurios com privilgios tpicos
de usurios (SELECT, UPDATE, INSERT e DELETE) para acessar aplicao. Deve-se
ter ao menos um usurio com essas caractersticas para cada aplicao. O usurio
owner deve estar sob controle absoluto do DBA, em todos os ambientes.

Utilize a criptografia MD5 para realizar o armazenamento de senhas e dados mais


essenciais do seu negcio, j que ela oferece uma segurana maior do que as outras
criptografia presente no mercado. Views e triggers so tambm boas opes para restringir o acesso a todos os dados de uma tabela.
Use como boa prtica a criao de funes para encapsular toda a operao e li mitar a possibilidade do usurio alterar vrios registros da tabela de forma indevida. A
funo checa a validade dos dados passados como parmetros, realiza as alteraes
na tabela e retorna se realizou com sucesso ou no a operao desejada. A vantagem
na segurana que o usurio da aplicao s necessita de privilgio para execuo da
funo, no sendo necessrios os privilgios de INSERT, UPDATE e DELETE (Regra
no Mnimo Privilgio).
Outra regra de segurana contra injeo SQL a utilizao de aspas duplas para
capturar as strings inseridas pelo usurio, garantindo que a entrada seja sempre e so mente uma string. Exemplo:
Function Login (cn)
{
var username;
var password;
username = Request.form(username);
password = Request.form(passowrd);
var rso = select * from users where username = + username + and password = + password + ;
trace ( query: + sql );
5

rso.open ( sql, cn );
if (rso.EOF) {
Rso.close();
}
}
Ao tentar inserir novamente o comando ; DROP TABLE autores; -- ser interpretado todo como uma string s, no sendo executado o comando DROP injetado na
string.

5 CONCLUSO
Com o passar do tempo o uso de aplicaes vem e cada vez mais presente e ne cessrio para as empresas, o que deixa as informaes vulnervel j que esto expos tas na internet. Assim o tratamento das informaes das empresas pede uma maior
ateno, por isso a segurana e a salvaguarda de toda informao, de todo dado que
precioso para empresa deve ser um dos focos principais hoje.
Por consequncia, a criaes de mtodos de proteo para oferecer uma maior segurana dos dados armazenados se faz necessria. Assim fundamental que o admi nistrador de banco de dados use do uso dos meio mais seguros e das ferramentas que
esto no seu alcance, para manter os dados seguros j que de sua responsabilidade
a integridade e segurana das informaes dos dados essenciais da empresa.

6 REFERNCIAS

_____________. Aspectos de Segurana na Administrao de Banco de Dados.


Disponvel em: <http://www.oocities.com/gsaudino/dcto/admbd.html>. Acesso em
02/04/2010 s 10h:30min.
BERNIER, Robert. Segurana Total em um Banco de Dados PostgreSQL.
Disponvel em: <http://www.ibm.com/developerworks/br/opensource/library/os-postgresecurity/>. Acesso em 02/04/2010 s 11h:20min.
ORACLE. Oracle Audit Vault. Disponvel em: <http://www.oracle.com/database/auditvault.html>. Acesso em 02/04/2010 s 14h:20min.
SILVA, Francisco J. S. Sistemas Operacionais Segurana. Disponvel em:
<http://www.deinf.ufma.br/~fssilva/graduacao/so/aulas/seguranca>.
Acesso
em
01/04/2010 s 09h:50min.

Banco de dados. Disponvel em <http://www.linhadecodigo.com.br/artigo/611/triggers.aspx#ixzz3YXJiEeme>. Acesso em 27/04/2015 s 21h:32min.

2 GLOSSRIO
Backup Cpia de segurana de dados, informaes.
BD Abreviatura para a palavra Banco de Dados.
Criptografia Tcnica usada para transformar a informao de sua forma original
para ilegvel.
DB Abreviatura para a palavra Banco de Dados inglesa Database.
HTTP Abreviatura das palavras inglesas Hypertext Transfer Protocol.
SGBD Abreviatura para a palavra Sistema Gerenciador de Banco de Dados.
SO Abreviatura para a palavra Sistema Operacional.
SQL Abreviatura para Structured Query Language, comandos de linguagens interpretados pelo banco de dados.
TI Abreviatura para a palavra Tecnologia da Informao.

Вам также может понравиться