22
Centro de Educação Superior de Brasília Instituto de Educação Superior de Brasília Pós-Graduação em Banco de Dados Segurança em Banco de Dados Cláudio Reis Ferreira Galvão José Augusto Campos Versiani Romero Veloso Costa Filho Brasília-DF Abril de 2015

Segurança Em BD

Embed Size (px)

Citation preview

  • Centro de Educao Superior de BrasliaInstituto de Educao Superior de Braslia

    Ps-Graduao em Banco de Dados

    Segurana em Banco de Dados

    Cludio Reis Ferreira GalvoJos Augusto Campos VersianiRomero Veloso Costa Filho

    Braslia-DFAbril de 2015

  • 2

  • 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.

    3

  • SUMRIO

    1 INTRODUO.......................................................................................................................................... 5

    2 SEGURANA DA INFORMAO..........................................................................................................62.1 CONCEITOS FUNDAMENTAIS.........................................................................................................62.2 POLITICAS DE SEGURANA...........................................................................................................62.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

    4

  • 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 dis-

    ponveis, se mantenham confiveis e no sejam acessadas por pessoas no autoriza-

    das. Com o principal objetivo de manter a continuidade do negcio da empresa e mini-

    mizar 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 ga-

    rante 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

    5

  • 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 da-

    dos 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 com-

    posto 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 mo-

    nitoramento 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 equipa-

    mentos.

    3 SEGURANA EM BANCO DE DADOS

    Quando falamos em segurana de banco de dados, geralmente, estamos nos refe-

    rindo segurana contra acessos maliciosos. Os dados armazenados em Bancos de Da-

    dos precisam ser protegidos contra destruio ou alterao intencional, acessos no-

    5

  • 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 al-

    guma 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 usu-

    rio. 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, IN-

    SERT,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 repre-

    sentada por um grafo de autorizaes da seguinte maneira:

    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 re-

    vogue a permisso do U2 o U3 no poder conceder a ele. Como mostrado abaixo:

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

    4.3 LOGS E AUDITORIA

    DB

    A

    U3

    U2

    U1

    DBA

    U3

    U2

    U1

    U5

    U4

    DBA

    U3

    U2

    DB

    A

    U3

    U2

    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 nega-

    do;

    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 relaciona-

    mento 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

    ON

    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 ban-

    cos de dados e consolida dados de auditoria de bancos de dados, sistemas operacio-

    nais 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 che-

    gar ao banco de dados. Combinando informaes da rede com informaes de audito-

    ria detalhada para elabora relatrios de conformidade fcil e alertas.

    5

  • 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 armaze-

    nadas para o bem da empresa. O uso de backups de segurana e essencial.

    5

  • 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 aju-

    dam 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 ta-

    bela 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.

    5

  • 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 res-

    tringir 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 pass-

    word = + password + ;

    trace ( query: + sql );

    5

  • rso.open ( sql, cn );

    if (rso.EOF) {

    Rso.close();

    }

    }

    Ao tentar inserir novamente o comando ; DROP TABLE autores; -- ser interpre-

    tado 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 se-

    gurana 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.

    5

  • 6 REFERNCIAS

    _____________. Aspectos de Segurana na Administrao de Banco de Dados.Disponvel em: . Acesso em02/04/2010 s 10h:30min.

    BERNIER, Robert. Segurana Total em um Banco de Dados PostgreSQL.Disponvel em: . Acesso em 02/04/2010 s 11h:20min.

    ORACLE. Oracle Audit Vault. Disponvel em: . Acesso em 02/04/2010 s 14h:20min.

    SILVA, Francisco J. S. Sistemas Operacionais Segurana. Disponvel em:. Acesso em01/04/2010 s 09h:50min.

    5

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

    5

  • 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 inter-

    pretados pelo banco de dados.

    TI Abreviatura para a palavra Tecnologia da Informao.

    5

  • 5

    5 CONCLUSO2 GLOSSRIOBackup 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.