Você está na página 1de 32

Segurança em Sistemas Web

Brasília-DF.
Elaboração

Ibsen Gebrim Reis

Produção

Equipe Técnica de Avaliação, Revisão Linguística e Editoração


Sumário

APRESENTAÇÃO.................................................................................................................................. 5

ORGANIZAÇÃO DO CADERNO DE ESTUDOS E PESQUISA..................................................................... 6

INTRODUÇÃO.................................................................................................................................... 8

UNIDADE I
APLICAÇÕES WEB................................................................................................................................ 11

CAPÍTULO 1
CARACTERÍSTICAS DO AMBIENTE WEB..................................................................................... 11

CAPÍTULO 2
MANIPULAÇÃO DE PARÂMETROS............................................................................................. 12

CAPÍTULO 3
SANITIZAÇÃO DE ENTRADAS E AUTENTICAÇÃO........................................................................ 14

CAPÍTULO 4
CERTIFICADOS DIGITAIS E CONTROLE DE SESSÃO.................................................................... 15

CAPÍTULO 5
USO DE COOKIES, URL, CAMPOS HIDDEN E SEGURANÇA CLIENT SIDE..................................... 17

CAPÍTULO 6
JAVA, JAVASCRIPT, ACTIVEX..................................................................................................... 18

CAPÍTULO 7
PLATAFORMA .NET E J2EE........................................................................................................ 20

CAPÍTULO 8
ARQUITETURA DE CAMADAS.................................................................................................... 21

UNIDADE II
ACESSO AO BANCO DE DADOS NA WEB.............................................................................................. 24

CAPÍTULO 1
CONCEITOS DE BANCO DE DADOS WEB................................................................................. 24

CAPÍTULO 2
STORED PROCEDURES............................................................................................................. 25

CAPÍTULO 3
CONTROLE DE ACESSO NO BANCO DE DADOS...................................................................... 27
PARA (NÃO) FINALIZAR...................................................................................................................... 31

REFERÊNCIAS................................................................................................................................... 32

4
Apresentação

Caro aluno

A proposta editorial deste Caderno de Estudos e Pesquisa reúne elementos que se


entendem necessários para o desenvolvimento do estudo com segurança e qualidade.
Caracteriza-se pela atualidade, dinâmica e pertinência de seu conteúdo, bem como pela
interatividade e modernidade de sua estrutura formal, adequadas à metodologia da
Educação a Distância – EaD.

Pretende-se, com este material, levá-lo à reflexão e à compreensão da pluralidade dos


conhecimentos a serem oferecidos, possibilitando-lhe ampliar conceitos específicos
da área e atuar de forma competente e conscienciosa, como convém ao profissional
que busca a formação continuada para vencer os desafios que a evolução científico-
tecnológica impõe ao mundo contemporâneo.

Elaborou-se a presente publicação com a intenção de torná-la subsídio valioso, de modo


a facilitar sua caminhada na trajetória a ser percorrida tanto na vida pessoal quanto na
profissional. Utilize-a como instrumento para seu sucesso na carreira.

Conselho Editorial

5
Organização do Caderno
de Estudos e Pesquisa

Para facilitar seu estudo, os conteúdos são organizados em unidades, subdivididas em


capítulos, de forma didática, objetiva e coerente. Eles serão abordados por meio de textos
básicos, com questões para reflexão, entre outros recursos editoriais que visam a tornar
sua leitura mais agradável. Ao final, serão indicadas, também, fontes de consulta, para
aprofundar os estudos com leituras e pesquisas complementares.

A seguir, uma breve descrição dos ícones utilizados na organização dos Cadernos de
Estudos e Pesquisa.

Provocação

Textos que buscam instigar o aluno a refletir sobre determinado assunto antes
mesmo de iniciar sua leitura ou após algum trecho pertinente para o autor
conteudista.

Para refletir

Questões inseridas no decorrer do estudo a fim de que o aluno faça uma pausa e reflita
sobre o conteúdo estudado ou temas que o ajudem em seu raciocínio. É importante
que ele verifique seus conhecimentos, suas experiências e seus sentimentos. As
reflexões são o ponto de partida para a construção de suas conclusões.

Sugestão de estudo complementar

Sugestões de leituras adicionais, filmes e sites para aprofundamento do estudo,


discussões em fóruns ou encontros presenciais quando for o caso.

Praticando

Sugestão de atividades, no decorrer das leituras, com o objetivo didático de fortalecer


o processo de aprendizagem do aluno.

6
Atenção

Chamadas para alertar detalhes/tópicos importantes que contribuam para a


síntese/conclusão do assunto abordado.

Saiba mais

Informações complementares para elucidar a construção das sínteses/conclusões


sobre o assunto abordado.

Sintetizando

Trecho que busca resumir informações relevantes do conteúdo, facilitando o


entendimento pelo aluno sobre trechos mais complexos.

Exercício de fixação

Atividades que buscam reforçar a assimilação e fixação dos períodos que o autor/
conteudista achar mais relevante em relação a aprendizagem de seu módulo (não
há registro de menção).

Avaliação Final

Questionário com 10 questões objetivas, baseadas nos objetivos do curso,


que visam verificar a aprendizagem do curso (há registro de menção). É a única
atividade do curso que vale nota, ou seja, é a atividade que o aluno fará para saber
se pode ou não receber a certificação.

Para (não) finalizar

Texto integrador, ao final do módulo, que motiva o aluno a continuar a aprendizagem


ou estimula ponderações complementares sobre o módulo estudado.

7
Introdução
“Segurança não é um produto, mas um processo. É mais do que desenvolver
uma criptografia forte em um sistema; é desenvolver um sistema inteiro em que
todos os itens de segurança, incluindo a criptografia, trabalhem juntos.”

Bruce Schneier

A Internet como nós conhecemos teve sua formação no meio militar e, em 1962, já
se questionava a vulnerabilidade desse ambiente, cuja ideia era centralizar todo o
processamento, quando naquele momento o meio científico tendia a pesquisar um
ambiente descentralizado que permitisse que as informações ficassem separadas, de tal
forma que, na possibilidade de um bombardeio de inimigos, não haveria a possibilidade
de que todo o sistema fosse atingido. Naquela época se vivia a chamada “guerra fria”.

Em 1969, era criada a primeira rede nesses moldes a ARPA (Agência de Projetos em
Pesquisa Avançadas do Departamento de Defesa dos Estados Unidos) que alcançou
o primeiro sucesso, ao conectar de maneira centralizada as universidades de Santa
Bárbara, Los Angeles e de Utah.

Era criada, assim, a primeira rede nesses moldes cujo nome era ARPANET e que veio
a ser o embrião da Internet.

A Internet deve ser mantida como meio de divulgação rápido, democrático e acessível
a todos, sem qualquer tipo de restrição. Medidas de conscientização quanto ao seu uso
devem ser tomadas e incentivadas, como meio de coibir ou diminuir o mau uso que se
faz dela.

Os controles de segurança da informação existentes no ambiente Web deverão ser feitos


na periferia da mesma e não no seu núcleo, sob pena de perdermos sua característica
principal, que é a de ser livre e isenta de travas.

Objetivos
»» Aprofundar os conhecimentos sobre o ambiente Web.

»» Entenda a manipulação de parâmetros.

»» Definir cookies, URL e campos hidden.

»» Ampliar o conhecimento sobre segurança Client Side.

8
»» Aprofundar os conhecimentos teóricos sobre arquitetura de camadas.

»» Entender os conceitos de banco de dados na Web.

»» Diferenciar plataforma .Net e J2EE.

»» Entender Store Procedures e Views.

»» Definir controle de acesso no banco de dados.

9
10
APLICAÇÕES WEB UNIDADE I

CAPÍTULO 1
Características do Ambiente Web

A primeira característica a ser abordada é a Integridade, item relevante, que consiste


em manter os documentos sem alterações acidentais ou intencionais, para que
permaneçam na sua forma original, enquanto trafegam na rede.

A assinatura digital é o meio mais usado e utiliza a criptografia como maneira de


manter a mensagem indecifrável por quem não estiver autorizado para tanto. A ideia
é enviar a mensagem criptografada e comparar seu estado no destino e, caso ocorra
divergências, recusá-la.

Tem-se a Confidencialidade como outra característica importante que consiste em


garantir que a mensagem trafegue de maneira sigilosa entre os envolvidos.

Já a Autenticação visa garantir a identidade dos envolvidos na troca de informações


na rede, sendo o método mais comum o uso de senhas. É um processo considerado
crítico, pois vem a ser a janela de entrada de grande parte dos sistemas existentes.

Após a Autenticação, tem-se a Autorização, que estabelece os privilégios e direitos


para o usuário identificado pela Autenticação e isso determina os acessos permitidos
ao usuário.

Há, ainda, o Não Repúdio, que vem a ser a capacidade de termos certeza de que uma
transação, realizada por um usuário qualquer, não poderá ter negada a sua autoria, a
posterior. Isso é de suma importância para estabelecer a responsabilidade por uma
determinada informação a ser usada em caso de auditorias nos sistemas.

11
CAPÍTULO 2
Manipulação de parâmetros

Ouvimos constantemente falar em quebras de segurança em sistemas Web, tais


como, roubo de senhas, furto de informações sigilosas ou simplesmente invasão
de sites.

Isso tem feito com que os responsáveis pela segurança se debrucem sobre o
problema, pois sendo o universo da Web um meio aberto a todos, seu impacto
não tem como ser medido na maioria das vezes, pois é preciso somente
um computador e uma conexão com acesso à Internet e, pronto, está criada
a oportunidade, para que, quem tenha um mínimo de conhecimento em
programação, possa realizar testes de intrusão nos milhares ou milhões de
websites existentes.

Temos várias formas de Manipulação de Parâmetros, que consiste na adulteração dos


parâmetros de sistemas Web com o intuito de localizar brechas de segurança nos sites;
abaixo exploraremos as táticas mais comuns:

Parameter Tampering: Consiste na manipulação dos parâmetros da URL para


conseguir informações não disponíveis para o usuário, conhecidas também como URL
Manipulation, pois manipula facilmente as informações provindas da URL em questão.

Por meio de comandos SQL (Structured Query Language) que fazem parte da URL,
um possível invasor tenta adulterar o comando, de tal forma que consiga obter lista de
usuários, senhas, cartões de créditos ou outra informação qualquer que lhe seja útil.

Hidden Field Manipulation: Uma forma mais sofisticada de Parameter Tampering,


que visa explorar campos escondidos (HIDEN), normalmente utilizados para manter a
sessão do usuário.

Backdoors ou Debug Options ou Debug Commands: fragilidades exploradas em função


procedimentos, criados para testes e análise de problemas em aplicações na fase de
desenvolvimento, que muitas vezes por desatenção permanecem na aplicação quando
for colocada em produção e que muitas vezes possibilitam o acesso à configuração da
aplicação em questão.

Cookie Manipulation ou Cookie Poisoning: consiste na alteração de cookies nem


sempre guardados de forma segura (sem cripotografia); um invasor pode vir a alterá-
los e burlar a segurança da aplicação.

12
APLICAÇÕES WEB │ UNIDADE I

Os Commanding ou Stealth Commanding: por meio de submissão de formulários


(form submissions), hackers podem instalar Cavalos de Tróia e consequentemente
executar código malicioso no servidor WEB.

Forceful Browsing: quando a aplicação não procura limitar a navegação do cliente,


alguém pode perceber a fraqueza e ir direto para páginas que normalmente só seriam
acessadas por meio de uma autenticação.

Cross-Site Scripting ou XSS: um usuário com más intenções pode vir a inserir código
malicioso na sessão de um usuário confiável da aplicação.

Buffer Overflow: técnica clássica, em que é enviada informação a mais do que aquela
prevista pela aplicação, que a seu turno não está preparada, por isso sofre um buffer
overflow. Utilizada com o intuito de parar serviços em execução no servidor, podendo,
inclusive, por meio da sobrecarga dos arquivos de logs, atingir o espaço total de um
disco rígido.

Directory Traversal ou Authorization ou Insufficient Authorization ou 3rd Party


Misconfiguration: explora alguma configuração mal-elaborada pelo administrador,
como, por exemplo, deixando aberta a navegação pelos diretórios do servidor para os
usuários da aplicação.

Conhecida também como Dot Dot, pela estrutura montada na URL invasora <http://
página 1/.././../xxx.cgi?home=xxx.cgi> permitindo a navegação pelos diretórios.

Published Vulnerabilities: a não instalação de path de correção nos sistemas operacionais


pode permitir a exploração de vulnerabilidades ainda existentes nos mesmos.

User-Agente Manipulation ou HTTP Protocol Vulnerabilities: por meio da utilização


do protocolo HTTP, podem ser realizados diversos tipos de ataques, tais como, a
alteração do cabeçalho, que é reescrito para tentar falhas em definições feitas pelos
desenvolvedores da aplicação; a injeção de SQL (ver próximo tópico) ou o acesso não
autorizados das páginas.

SQL Injection Vulnerabilities: com essa técnica, chamada injeção de SQL em português,
o hacker tenta acrescentar comandos aos já existentes dentro das queries da aplicação.

Web Services documents (WDSL): Web Services documents (WDSL) permitem acessar
a regra de negócio e tentar aceso a sistemas de Back Office.

13
CAPÍTULO 3
Sanitização de entradas e autenticação

Sanitização de entradas
Sanitização de Entradas consiste no processo de apagar dados confidenciais de um
arquivo, dispositivo ou sistema, ou de modificar dados de forma que se tornem inúteis,
se acessados em caso de um ataque.

Autenticação
Autenticação vem a ser o processo de captura de credenciais enviadas por usuários e a
comparação com as permissões dadas pela administração da aplicação e após validar
ou não o acesso dos usuários à aplicação.

Em um ambiente HTTPS, aplicações consideradas importantes pela segurança tem que


implementar maneiras de autenticação.

Tipos de autenticação:

»» impressão digital, reconhecimento de retina, DNA, recohecimento de


voz, de assinatura e sinais elétricos;

»» cartão de identificação, tokens de segurança e celular;

»» senha, uma frase de segurança e número PIN.

Normalmente, utilizam-se dois ou mais métodos combinados.

Controle de acesso
Com Autenticação, deve-se prever consequentemente um controle de acesso que
estabelece um grau de confiança (autenticação) e concessão de privilégios (autorização).

14
CAPÍTULO 4
Certificados Digitais e Controle
de sessão

Certificados Digitais
Certificado vem a ser um documento eletrônico que é autenticado, digitalmente, por
uma Autoridade Certificadora.

Acrescentam-se, a seguir, alguns quesitos importantes à segurança da assinatura digital


com a utilização do par de chaves privada e pública, tais como:

»» Não Repúdio – garante que não ocorra a negação de autoria.

»» Integridade – garante a não violação da informação original.

»» Privacidade – garante o acesso somente da pessoa autorizada.

»» Autenticidade – garante a autoria do documento.

Todo certificado digital deve ter um tempo de duração, determinado pela data de início
de sua validade e a sua data de expiração. Isso se torna necessário devido à evolução
tecnológica dos equipamentos.

Sua validade varia de um a três anos para usuários finais e de 3 a 20 anos para
Autoridades Certificadoras. Toda vez que ocorre revalidação de um certificado digital é
gerado um novo par de chaves. Certificados Digitais podem perder a validade também
por meio de sua revogação e todas essas regras devem estar explícitas na Declaração de
Práticas de Certificação da Autoridade Certificadora (DPC).

Atualmente, o tamanho da chave de um certificado digital varia entre 1.024 bits por
usuários finais e o de 2.048 bits para Autoridades Certificadoras. No certificado digital
também está incluída a chave pública, com tamanho variável de 512 a 4.096 bits.

Estrutura de um Certificado Digital


A estrutura de um Certificado Digital deve conter:

»» Nome da pessoa ou entidade a quem foi emitido o certificado digital e


respectivo endereço.

15
UNIDADE I │ APLICAÇÕES WEB

»» Sua chave pública e respectiva validade.

»» Número de série.

»» Nome da AC que emitiu seu certificado.

»» Assinatura digital da AC.

»» Extensão.

O tipo de certificado comumente aceito é o X.509 da ITU–T, embora existam outros.

Em 1988, foi definida a primeira versão do X.509 versão 1, trabalho que envolveu a
Infraestrutura de Chaves Públicas e a utilização de certificados digitais e fez parte da
edição de recomendação do serviço de diretório X.500.

Em 1993, surge a segunda versão, que veio corrigir pequenos problemas de segurança
e aumentou o número de campos exigidos para que possibilitassem a reutilização de
nomes idênticos em certificados digitais distintos.

Disponível em: <http://www.receita.fazenda.gov.br/atendvirtual/InformacoesBasicas/


certificados_digitais_v6.html>.

<http://www.normes–internet.com/normes.php?rfc=rfc3280&lang=pt>.

Hoje estamos na quarta versão de 1997, em que se acrescentaram campos de extensão,


para possibilitar uma maior personalização do certificado, tornando-o mais abrangente.
Esta recomendação está descrita na RFC 3280.

Controle de sessão
O controle de sessão é uma maneira de se obter uma identificação segura do usuário
que acessa o servidor, pois o HTTP (Hypertext Transfer Protocol) é um protocolo que
não oferece maneiras de reconhecimento do usuário pelo servidor; por não possuir
estados, não há como saber as requisições feitas por um usuário. Cada usuário tem que
fornecer uma identificação.

Entre os métodos mais usados num controle de sessão, destacam-se o uso de campos
de formulários Hidden, URL’s reescritas e os cookies, os quais serão estudados a seguir.

16
CAPÍTULO 5
Uso de Cookies, URL, campos Hidden e
segurança Client Side

Uso de Cookies, URL, campos Hidden


Umas das maneiras de guardar informações sem que tenhamos que manter uma base
de dados para isso é a utilização de campos Hidden (escondidos).

Mas não significa que seja uma solução, pois esses campos podem ser acessados pelo
comando View Source em uma página WEB.

Eles só obtêm sucesso porque as aplicações, na sua maioria, não realizam validação
na página de retorno, pois têm como certo que todos os dados enviados pelo usuário
são iguais.

Hoje em dia é uma técnica pouco utilizada, porém a verificação deve continuar a existir.

Essas técnicas de modifição no HTML são conhecidas como Form Field Manipulation.

Segurança Client Side


Os sistemas que rodam em usuários individuais são os mais afetados pelas
vulnerabilidades, isso porque se tornam mais fáceis de explorar, constituindo-se em
alvos de ataques.

São alvos desses ataques: navegadores WEB, cliente de e-mail, redes peer to peer,
clientes Instante Messenger (IM) e unidades de reprodução, sendo quase sempre
resultados de erros de concepção ou bugs nos aplicativos de controle de acesso.

17
CAPÍTULO 6
Java, Javascript, ActiveX

Um dos mais comuns ataques trata-se do XSS (Cross Site Scripting) que se vale da
inclusão de scripts ou links em sites ou aplicativos web, valendo-se do redirecionamento
do usuário para uma página falsa. Quando ocorre isso, o usuário pode ser levado a
enviar informações confidenciais, consequentemente, permitindo a quebra do sigilo
como identificadores, senhas e outros.

Existe ainda outra maneira de utilização do XSS que consiste na inserção de JavaScripts,
que pode disponibilizar os dados para o Cookie invasor ou controladores de sessão,
senhas, além de poder levar o navegador a executar operações como a carga de Trojans
(Cavalos de Tróia).

A maneira imediata de se proteger de tais ataques é conseguir a garantia por meio das
validações de todos os dados que receber como entrada, incluindo headers, campos de
formulários, cookies, strings de consulta e campos escondidos (hidden fields).

A codificação dos dados, transmitidos para o navegador pelo usuário, deve ser utilizada
para impedir o uso dos pontos vulneráveis, explorados pelo ataque XSS com o objetivo
de evitar que scripts maliciosos sejam incluídos e transmitidos em formatos executáveis.
Pode-se conseguir isso com a conversão dos dados, enviados para escape codes do HTML
(&nbps;, &lt;, &gt; e &#40; entre outros), que deve ser feita com uso de bibliotecas
como a Apache Commons Lang (classe StringEscapeUtils) http://commons.apache.
org/lang/ ou a OWASP ESAPI (classe DefaultEncoder) http://www.owasp.org/index.
php/ESAPI.

Disponível em: <http://wagnerelias.com/2008/08/26/seguranca-em-java/>.

Quebrada segurança da Máquina Virtual JavaRedação do site Inovação Tecnológica


24/6/2003.

Disponível em: <http://www.inovacaotecnologica.com.br/noticias/noticia.


php?artigo= 010150030624>.

O ActiveX é o mecanismo pelo qual o Internet Explorer (IE) carrega outras aplicações
dentro do navegador. Usando o ActiveX, o IE carrega o Windows Media Player, Flash,
Quicktime e outras aplicações que podem ler arquivos embutidos em páginas da web.
Os controles ActiveX são ativados quando se clica em um item como um arquivo .WMV
em uma página para exibi-lo na janela do Internet Explorer.

18
APLICAÇÕES WEB │ UNIDADE I

»» Sendo um produto Microsoft, o ActiveX foi criado especificamente para


funcionar com sistemas Windows. O ActiveX não é suportado pela
Microsoft em outros sistemas operacionais como Mac ou GNU/Linux.

O Firefox e outros navegadores que funcionam em vários sistema operacionais


diferentes utilizam o sistema de plugins Netscape Plugin Application Programming
Interface (NPAPI). O sistema NPAPI executa funções similares às do ActiveX.

Observação: o Firefox não suporta oficialmente o ActiveX.

O ActiveX foi desenvolvido para tornar a reprodução de mídias dentro do Internet


Explorer mais fácil. Quando você seleciona alguma mídia em uma página, o Internet
Explorer baixa o conteúdo e chama o controle ActiveX apropriado, requerido pela
página, para carregar a aplicação dentro do navegador com pouca ou nenhuma
interferência do usuário.

»» Por causa da capacidade do sistema de baixar novos controles ActiveX


automaticamente sem pedir a sua confirmação, esse recurso foi
amplamente explorado por vírus, programas espiões e outros programas
maliciosos. O Internet Explorer melhorou a segurança do ActiveX de
diversas formas, e diversas brechas de segurança foram removidas
do IE7. Porém, ainda é relativamente fácil baixar e ativar um controle
ActiveX malicioso no seu computador.

Um controle ActiveX é o equivalente a um plugin NPAPI. Entretanto, o ActiveX e a


tecnologia dos plugins apresentam diferenças. Apesar dos efeitos de conteúdos maliciosos
serem os mesmos, os plugins oferecem recursos de segurança visivelmente melhores.
Os plugins têm menos controle sobre a página na qual eles foram embutidos e não
podem ser usados por outras aplicações que não o próprio navegador, diferentemente
do ActiveX, que é amplamente utilizado por outras aplicações por meio do navegador.

Fonte: <http://support.mozilla.com/pt-BR/kb/Sobre%20o%20ActiveX>, Acesso


em: 19 fev. 2009.

19
CAPÍTULO 7
Plataforma .NET e J2EE

Dados: J2EE, Sun, Java, 1995.

.NET: Microsoft, C#. Visual Basic .NET, Asp .NET, 2000.

O J2EE usa como linguagem Java e possui a possibilidade de rodar em plataformas


operacionais diversas.

.NET usa as linguagens: C#. Visual Basic .NET, Asp , criado pela Microsoft e centrado
nessa plataforma.

O J2EE usa o framework J2EE (EJB, Servlets) e toda sua codificação é feita em Java.

O NET O framework .NET está baseado no CLR (Common Language Runtime), recurso
similar ao JVM, que executa as aplicações para o ambiente .NET.

No J2EE, está-se restrito à linguagem Java; no .NET, está-se restrito à plataforma


Windows.

Observe:

»» .NET: “Várias linguagens em um único ambiente”

»» J2EE: “Uma única linguagem em vários ambientes”

J2EE .NET

Web Struts, JSF, Laszlo ASP .NET

Banco de Dados JDBC ADO .NET

Web Services Suporte por meio de APIs Suporte embutido e simplificado

Distribuição RMI, EJB .NET Remoting

Disponível em: <http://www.cin.ufpe.br/~mlbm/download/DotNet.ppt>.

20
CAPÍTULO 8
Arquitetura de camadas

Uma nova arquitetura de sistemas evolui para uma arquitetura em camadas, por causa
da Web que passa a determinar o comportamento dos desenvolvedores.

Os primeiros sistemas a serem construídos eram executados em um único local e


concentravam todas as funcionalidades do aplicativo em um único espaço;

O fluxo de dados entre as diferentes camadas do ambiente distribuído deve ter uma
interação transparente para o usuário.

A estruturação do código em camadas objetiva arranjar, obter melhor reutilização e


extensibilidade numa arquitetura separada em camadas.

»» As aplicações na Web são elaboradas sobre o princípio de comunicação


cliente-servidor:

›› o programa só se ocupa das funções de interface com o usuário e


comandos de consulta;

›› todo trabalho é executado no cliente.

»» É o cliente que toma a iniciativa de chamadas aos aplicativos, nunca o


servidor.

Dividiram-se as aplicações do cliente-servidor em três camadas lógicas.

»» Apresentação

»» Negócio

»» Acesso aos dados

As Camadas Lógicas

21
UNIDADE I │ APLICAÇÕES WEB

Lógica de Apresentação

»» Determina como a aplicação irá interagir com o usuário.

»» Utiliza uma interface gráfica com o usuário (GUI).

›› Exemplos: Aplicativos Windows ou Web.

Lógica de Negócio

»» Determina o comportamento (ou regras de negócio) de uma aplicação.

›› Exemplo: o pagamento de um conta implica saída de dinheiro e entrada


e uma nota fiscal ou recibo.

»» Pode ser tanto ser executada no cliente quanto no servidor.

Lógica de Acesso aos Dados

»» Garante a integridade dos dados por meio da definição de como os


dados serão armazenados e recuperados.

»» Função realizada por um Sistema de Gerenciamento de Bancos de Dados


– SGDB.

Model-View-Controller (MVC)

Model View vem a ser um dos padrões da arquitetura de software mais utilizados na
atualidade.

Três são os componentes:

»» O modelo (model) - funcionalidades e os dados;

»» A visão (view) – deixando usuário ver as informações;

»» Controle (controller) – operando as entradas.

As alterações sofridas pela Visão (View) são independentes da manipulação de dados,


que por sua vez podem ser rearranjados sem que o layout sofra com isso.

Dessa forma, permite que uma mesma lógica de negócios possa ser alterada e vista por
meio de diferentes interfaces, como mostra a figura a seguir.

22
APLICAÇÕES WEB │ UNIDADE I

A intenção desse conceito é a estruturação dos aplicativos que, por sua vez, podem
ser divididos em outros, de tal forma que os problemas sejam divididos, e um sistema
poderá ser fracionado para que tenhamos o acesso aos dados numa camada diferente
da camada lógica e da camada de apresentação.

Proposta de Dijkstra, em 1968 – Divisões do sistema hierarquicamente em camadas.

PROTOCOLO OSI SGBD


Aplicação Sistema de Controle de Versões
Apresentação Sistema de Controle de Objetos
Sessão Banco de Dados
Enlace Sistema Operacional
Físico

23
ACESSO AO BANCO DE UNIDADE II
DADOS NA WEB

CAPÍTULO 1
Conceitos de Banco de Dados Web

Sempre que se agrupam informações relacionadas a um mesmo assunto tem-se um


Banco de Dados que pode ser definido por uma coleção de dados inter-relacionados que
representam um domínio específico.

Quando se fala em Banco de Dados na WEB, refere-se à falamos na utilização de


páginas de acesso dinâmico, isto é, a informação se mantém atualizada desde que o
dado seja preservado.

Comumente encontrados em sites de bancos, os dados apresentados pela página são


atualizados todas as vezes que a página é atualizada também.

Vantagens da Utilização de um SGBD.

»» Controle de redundância dos dados.

»» Controle de acesso (segurança).

»» Armazenamento persistente dos dados.

»» Existência de múltiplas interfaces para os usuários.

»» Representação de relacionamentos complexos entre os dados.

»» Manutenção de restrições de integridade.

»» Recuperação de falhas.

24
CAPÍTULO 2
Stored Procedures

A utilização de Stored Procedures em ambiente de banco de dados ocorre de maneira


extremamente rápida, além do fato de serem executadas no servidor, não no cliente web.

Store procedures suportam: declarações de variáveis, testes de condições, loops,


comentários etc.

Temos acesso a todas as instruções SQL (Structure Query Langague): DML (Data
Mmanipulation Language).

As Stored Procedures não permitem a utilização de comandos DDL (Linguagem


de Definição de Dados), tais como: Create, Alter, Drop, Grant, Revoke.

São várias as formas de execução de uma Stored Procedure:

»» Diretamente por meio de um editor SQL.

»» Dentro de um comando Select, podendo retornar valores ou um Resultset.

»» Fazendo chamadas Stored Procedures.

»» Ou ainda a partir de Trigger vinculada a alguma tabela do banco.

»» Ou chamar a partir de outra aplicação externa desenvolvida em uma


linguagem de programação qualquer.

A utilização de Stored Procedures nos banco de dados permite obter aumento de


performance, além de reduzir o tráfego na rede.

Vantagens do uso Stored Procedures:

»» Regras de negócio centralizadas no servidor e não no cliente.

»» Toda alteração de uma regra de negócio só irá afetar a Stored Procedure.

»» Não existindo o tráfego de rede exigido pela aplicação no cliente, a


perfomance é ampliada consideravelmente.

»» As regras de negócios, quando executadas no servidor através de Stored


Procedures, permitem que a máquina do cliente não precise ter grande
capacidade de processamento e memória.

25
UNIDADE II │ ACESSO AO BANCO DE DADOS NA WEB

Views
Views vem a ser uma visualização dos dados de um banco de dados sem que seja
necessário armazenamento de dados; a View é definida por uma consulta SQL,
previamente criada, analisada e otimizada.

A utilização de Views aumenta a segurança, pois a visão é limitida pela necessidade


da regra de negócio em relação à limitação e ao controle dos dados a serem acessados,
além do que torna desnecessária a otimização da consulta, pois já acontece quando a
criação.

26
CAPÍTULO 3
Controle de acesso no Banco de Dados

Todo e qualquer Banco de Dados deve possuir controle de acesso, e esse controle é
exercido sobre as operações básicas que o usuário poder realizar (leitura, escrita,
execução, remoção ou outras mais complexas).

Autenticação
Consiste no processo de enviar ao sistema dados que identifiquem o usuário que
requisita acesso, com um nível de exatidão suficientemente seguro, ou seja, tenta se
obter a certeza de que o usuário é realmente quem diz ser.

Autenticação pode ser realizada de três formas distintas, a saber:

»» Autenticação por meio de senha: o usuário autentica-se junto ao sistema,


fornecendo-lhe uma senha de acesso de conhecimento somente dele.
Esse é o método mais comum por isso mesmo o mais sujeito a tentativas
de roubo.

»» Autenticação por meio de tokens: a autenticação é feita por intermedio de


algum objeto de propriedade do usuário (uma chave, um arquivo ou um
cartão de crédito). É o segundo método mais usado e vem ganhando força
quanto a sua utilização com o uso de smartcards.

»» Autenticação biométrica: menos utilizada, é baseada na identificação de


características únicas de indíviduos, padrões de íris, impressão digital,
impressão baseada na mão, padrões de voz ou de escrita.

Autorização
Após a Autenticação, é necessário verificar quais operações o usuário pode realizar nos
sistemas, mediante a Autorização, que corresponde a um conjunto de regras, definindo
as ações permitidas ou proibidas.

Auditoria
É realizada por intermédio de alguns artifícios, tais como, registro do horário de
entrada e saída do sistema (logon e logoff) ou, ainda, por meio da guarda das operações,
realizadas pelo usuário durante sua sessão.

27
UNIDADE II │ ACESSO AO BANCO DE DADOS NA WEB

Sujeito, Objeto, Operações se Permissões


Sujeito vem a ser o usuário, que é composto de um conjunto de credenciais de acesso
que o identificam como o usuário, com os processos a ele vinculados.

O objeto (object) é o ponto dentro do sistema que é controlado, como exemplo, uma
estrutura de dados, arquivos etc.

Operações são as ações (leitura, escrita, alteração etc.) efetuadas pelos sujeitos.

Uma permissão é quando uma operação é permitida para um determinado objeto; por
exemplo: “permissão de gravação”.

DAC – Discretionary Access Control (Controle


de Acesso Discrecionário)
DAC é baseado na ideia de que usuários individuais, proprietários dos objetos, têm
controle total sobre quem deve ter permissões para acessar o objeto. O usuário
transforma-se em proprietário do objeto ao criá-lo.

Hoje todas as variantes do UNIX, o Netware e a série Windows NT, 2000 e XP estão
utilizando esse modelo como padrão básico para controle de acesso.

Aqui, deve-se observar uma vulnerabilidade desse modelo, que vem a ser: cavalos de
tróia podem ser executados quando o usuário, proprietário do objeto, inadvertidamente
deixa ocorrer cópias não autorizadas pelo invasor.

Nos sistemas militares, optou-se pelo do modelo MAC, devido à fragilidade do modelo
DAC.

MAC – Mandatory Access Control (Controle de


Acesso Mandatório)
Nesse modelo, o usuário não é proprietário do objeto, ficando assim impedido de legar
suas permissões a outro.

As permissões não são mais definidas pelo usuário e sim pelos Administradores do
Sistema.

Bell-Lapadula

Expressa-se por meio de rótulos de segurança associados a sujeitos e objetos dentro


do sistema. Um rótulo em um objeto é chamado de security classification, enquanto o
rótulo em um sujeito do sistema é chamado de security clearance.

28
ACESSO AO BANCO DE DADOS NA WEB │ UNIDADE II

Os rótulos usados são “TOP SECRET”, “SECRET”, “CONFIDENTIAL” e “UNCLASSIFIED”.

Funciona como uma hierarquia, exatamente como no meio militar: quem possui acesso
“TOP SECRET” poderá ler um documento “SECRET”, sendo o contrário vedado e assim
sucessivamente.

De acordo com texto extraído do site:

<http://www.flf.edu.br/midias/FLF.EDU/Monografia_FlavioColares_21082007.
pdf,>. Acesso em: 20 fev. 2009.

”Expressa informalmente, a política é simples: um usuário no sistema (sujeito) só poderia


ter acesso de leitura a um objeto se o seu clearance for maior ao igual à classificação
do objeto. Assim, um oficial com acesso “TOP SECRET” poderia ler um documento
“SECRET”, mas o inverso não seria permitido. O efeito é que a leitura de informação só
funciona em um sentido, de baixo para cima no sistema. Para evitar que um funcionário
com uma classificação alta indevidamente “desclassifique” uma informação, a escrita de
informações também é controlada com outra regra: um sujeito só pode ter acesso de
escrita a um objeto se o seu clearance for menor ou igual à classificação do objeto. Desse
modo, um oficial com acesso “SECRET” não poderia nunca escrever um objeto com a
classificação de “CONFIDENTIAL” (mais baixa), impedindo-o de copiar uma informação
restrita para um nível mais baixo que um usuário menos privilegiado poderia ler [RA01].

Deve ficar claro que o usuário com classificação “SECRET” pode utilizar um mesmo
programa (como um editor de textos) ou atuando como um subject com rótulo
“SECRET” ou com um rótulo menor como “CONFIDENTIAL”. Mesmo com os dois
sujeitos executando o programa representando o mesmo usuário, eles obtêm privilégios
diferentes de acordo com os seus rótulos de segurança. Assume-se que os rótulos de
segurança no objeto e no sujeito, uma vez definidos, só podem ser modificados pelo
administrador do sistema [SAND93].

Essas duas regras simples e mandatórias são expressas na política Bell-Lapadula por
meio de duas propriedades, em que significa o rótulo de segurança do sujeito ou
objeto fornecido.

»» Simple-Security Property: Sujeito s pode ler objeto o somente se (s)>=


(o)

»» *-Property (star-property): Sujeito s pode escrever objeto o somente se


(s)<= (o)

Essas propriedades são especificadas em termos de operações de leitura e de escrita;


em um sistema real existirão operações adicionais (criar e remover objetos, por ex.).
29
UNIDADE II │ ACESSO AO BANCO DE DADOS NA WEB

Todavia, para ilustrar os pontos principais, é suficiente considerar apenas leitura e


escrita: por exemplo, criação e remoção podem ser restritas pela star-property já que
modificam o estado do objeto em questão. Em muitos casos os sistemas reais militares
combinam proteção discrecionária com proteção mandatória, só acionada depois que a
avaliação discrecionária é realizada [LEE88].

A consequência direta da existência do star-property é a proteção contra o roubo


de informação por cavalos de tróia, um problema do modelo discrecionário. Essa
propriedade se aplica basicamente a sujeitos, já que os usuários humanos são confiados
a não roubar informações. Um usuário com classificação “SECRET” pode entrar no
sistema, utilizando a classificação “UNCLASSIFIED” (criando um sujeito com esse
rótulo) e criar um documento com essa classificação, porque assume-se que ele irá
colocar apenas informações “UNCLASSIFIED” nele. Por outro lado, não se confia
nos programas porque podem possuir cavalos de tróia embutidos. Um programa
(sujeito) rodando com classificação “TOP SECRET” não consegue escrever em objetos
“UNCLASSIFIED” porque é restringido pela star-property. Um usuário que deseje
escrever em um objeto “UNCLASSIFIED” deve entrar no sistema com tal rótulo. É
importante observar que, apesar de tornar ineficaz a utilização de cavalos de tróia, um
atacante obstinado pode ainda tentar “vazar” informação por outros meios, utilizando
covert-channels [AGAT00].

Existe uma série de nuances e sutilezas geradas por essas duas propriedades básicas
da política, mas não será necessário entrar em detalhes para os fins do texto – o leitor
interessado dispõe de uma vasta literatura sobre o assunto [RA01] [BL75] [SAND93].”

30
Para (não) Finalizar

O aprendizado continua, devemos sempre estar à procura de ampliar novos conhecimentos,


da mesma maneira incansável com que os desenvolvedores das tecnologias abordadas
nessa material o fazem.

Aplicá-los da forma correta e com o intuito de gerar mais conhecimento deve ser nossa
meta sempre.

E a segurança é um quesito que sempre está e sempre estará presente, todas as vezes
que tratarmos da gestão, armazenamento e controle de informações.

Informação, esse o grande tesouro do século atual, quem a detiver, controlar e souber
preservá-la de acessos indevidos, estará em grande vantagem.

A Web, como o meio mais democrático de compartilhamento de informação, não pode


ser tratada de outra forma que não aquela que mais segurança lhe der, no tocante a sua
integridade, confidencialidade e autenticidade.

Esperamos reencontrá-los em breve.

31
Referências

ATKINS, D., et. al. Internet Security: Professional Reference. New Rides Publishing,
2a ed. 1997.

CHESWICK, W. R. Firewalls and Internet Security. Addison-Wesley, 1994.

DIJKSTRA, E. The structure of the “the”-multiprogramming system. Proc.


ACM Symposium on Operating System Principles, January, 1967.

GARFINKEL, S.; SPAFFORD, G. Comércio & Segurança na Web – Riscos,


Tecnologias e Estratégias.Market Books Brasil, 1999.

NAKAMURA, E. T.; GEUS, P. L. Segurança de redes em ambientes cooperativos.


São Paulo: Berkeley, 2002.

RUFINO, N. M. O. Segurança Nacional – técnicas e ferramentas de ataque e


defesa de Redes de Computadores. Novatec, 2002.

SCHNEIER, Bruce. Applied cryptography: protocols, algorithms and source code in


C, 2a ed. John Wiley & Sons, 1996.

STALLING, W. Cryptography and Network Secutiry – Principles and Practice.


3. ed., Prentice-Hall, 2003.

Sites
<www.icp.gov.br>.

<http://www.comprova.com/servlet/public?action=cnt&page=assinatura_digital>.

<http://wnews.uol.com.br/site/noticias/materia_especial.php?id_secao=17&id_
conteudo=264>.

32

Você também pode gostar