Académique Documents
Professionnel Documents
Culture Documents
Brasília-DF.
Elaboração
Produção
APRESENTAÇÃO.................................................................................................................................. 5
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
Conselho Editorial
5
Organização do Caderno
de Estudos e Pesquisa
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.
Praticando
6
Atenção
Saiba mais
Sintetizando
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
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.
Objetivos
»» Aprofundar os conhecimentos sobre o ambiente Web.
8
»» Aprofundar os conhecimentos teóricos sobre arquitetura de camadas.
9
10
APLICAÇÕES WEB UNIDADE I
CAPÍTULO 1
Características do Ambiente Web
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
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.
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.
12
APLICAÇÕES WEB │ UNIDADE I
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.
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.
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.
Tipos de autenticação:
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.
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.
15
UNIDADE I │ APLICAÇÕES WEB
»» Número de série.
»» Extensão.
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.
<http://www.normes–internet.com/normes.php?rfc=rfc3280&lang=pt>.
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
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.
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;, <, > e ( 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.
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
19
CAPÍTULO 7
Plataforma .NET e J2EE
.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.
Observe:
J2EE .NET
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.
O fluxo de dados entre as diferentes camadas do ambiente distribuído deve ter uma
interação transparente para o usuário.
»» Apresentação
»» Negócio
As Camadas Lógicas
21
UNIDADE I │ APLICAÇÕES WEB
Lógica de Apresentação
Lógica de Negócio
Model-View-Controller (MVC)
Model View vem a ser um dos padrões da arquitetura de software mais utilizados na
atualidade.
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.
23
ACESSO AO BANCO DE UNIDADE II
DADOS NA WEB
CAPÍTULO 1
Conceitos de Banco de Dados Web
»» Recuperação de falhas.
24
CAPÍTULO 2
Stored Procedures
Temos acesso a todas as instruções SQL (Structure Query Langague): DML (Data
Mmanipulation Language).
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.
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.
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
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”.
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.
As permissões não são mais definidas pelo usuário e sim pelos Administradores do
Sistema.
Bell-Lapadula
28
ACESSO AO BANCO DE DADOS NA WEB │ UNIDADE II
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.
<http://www.flf.edu.br/midias/FLF.EDU/Monografia_FlavioColares_21082007.
pdf,>. Acesso em: 20 fev. 2009.
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.
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
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.
31
Referências
ATKINS, D., et. al. Internet Security: Professional Reference. New Rides Publishing,
2a ed. 1997.
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