Beruflich Dokumente
Kultur Dokumente
Alta Floresta
23/10/2014
Trabalho
apresentado
ao
Curso
Anlise
e
Desenvolvimento de Sistemas da UNOPAR Universidade Norte do Paran, para as disciplinas:
Banco de Dados II; Anlise Orientada a Objetos II;
Programao Orientada a Objetos e Programao para
Web I.
Professores: Roberto Y. Nishimura, Aderson Emdio M.
Gonalves, Marcio Roberto Chiaveli e Veronice de
Freitas.
SUMRIO
Alta Floresta
23/10/2014
1 INTRODUO
2 OBJETIVO
3 DESENVOLVIMENTO5
3.1 SEGURANA DA INFORMAO5
3.1.1 Vulnerabilidades da Web.
3.1.2 Prticas de Segurana
3.1.3 Processamento de Formulrios.
3.1.4 Sistemas de Login .
3.2 DIAGRAMA DE ATIVIDADE (UML).
3.2.1 Diagramas de Atividades da TELECINE MOZER.
3.3 NORMALIZAO DO DIAGRAMA ENTIDADE RELACIONAMENTO (MRN).
3.3.1 Modelo entidade relacionamento (MER).
3.3.2 Tcnica de modelagem entidade e relacionamento
3.3.3 Diagrama Entidade-Relacionamento (DER).
3.3.4 Normalizao .
4 CONCLUSO
REFERNCIAS
3
1
INTRODUO
Este trabalho ir expandir contedos abordados durante o 4
4
2
OBJETIVO
Realizar o estudo aprofundado dos principais temas desse semestre
5
3
DESENVOLVIMENTO
A escalabilidade, portabilidade e fcil acesso providos pela
6
Para Fiorio et al. (2007), a segurana em sistemas computacionais consiste em
empregar conceitos, metodologias e tcnicas que protejam o sistema de ataques,
sobretudo externos, que venham a gerar prejuzos tanto de ordem financeira quanto
social.
De acordo com Bishop (2008), a segurana da informao
composta por trs pilares, que so:
acesse o e-mail.
Integridade: a confiabilidade na origem da informao. Exemplo: um usurio
recebe um e-mail de seu amigo que foi alterado por um interceptador,
perdendo a integridade.
Disponibilidade: a garantia de que as informaes estaro disponveis aos
usurios autorizados quando necessrio. Exemplo: a sobrecarga nos
servidores da Receita Federal compromete a disponibilidade do sistema de
envio de declaraes de impostos.
Em aplicaes Web, a manuteno dos trs pilares pode ser mais
7
De acordo com a classificao do The Open Web Application
Security Project (2010), as dez vulnerabilidades mais crticas da Web so:
1) Injeo de cdigos: insero de cdigos arbitrrios, como SQL injection, em
um sistema que pode permitir a um atacante realizar operaes no
autorizadas.
2) Cross-site scripting (XSS): insero de cdigos arbitrrios em pontos falhos
de uma aplicao que so executados quando os usurios a acessam. Estes
pensam que as operaes realizadas pelos cdigos arbitrrios so confiveis,
j que a aplicao que acessam confivel.
3) Quebra de autenticao e gerenciamento de sesso: mau gerenciamento de
sistemas de login e senha.
4) Referncia direta de objeto inseguro: acesso no autorizado de um objeto,
uma parte do programa, restrito atravs de outro desprotegido.
5) Cross-site request forgery (CSRF ou XSRF): similar ao XSS, porm neste
caso explora-se a confiabilidade do site no navegador e no no usurio.
6) M configurao de segurana: falta de segurana no servidor, como falta de
atualizao de softwares e m configurao dos privilgios de acesso.
7) Armazenado criptogrfico inseguro: criptografia inadequada, backup de dados
junto com as chaves criptogrficas ou falta de controle de acesso.
8) Falha na restrio de URL: falha em restringir o acesso a certas pginas pela
insero direta da URL (Uniform Resource Locator, o mesmo que endereo)
daquela pgina.
9) Proteo insuficiente na camada de transporte: falta do uso do SSL, camada
de proteo criptogrfica, em todas as operaes com dados sigilosos.
10) No validao de redirecionamentos: no verificao dos endereos ou m
aplicao de redirecionamentos para outros sites.
Das dez vulnerabilidades listadas: uma armazenado criptogrfico
inseguro faz parte do gerenciamento de banco de dados, mas tambm ligada ao
planejamento do software; outras duas, proteo insuficiente na camada de
transporte e m configurao de segurana, se referem mais parte de
infraestrutura de redes; as sete demais tm ligao direta com o processo de
desenvolvimento do software. Isso demonstra a importncia da adoo de prticas
de segurana durante o desenvolvimento para minimizar o risco de falhas.
3.1.2 Prticas de Segurana
As prticas a seguir so parte de um trabalho de iniciao cientfica;
portanto a lista no est completa. O foco no primeiro momento no processamento
8
de formulrios e sistemas de login, j que eles so os principais alvos de injeo de
cdigos e XSS, os dois primeiros colocados da lista de vulnerabilidades.
3.1.3 Processamento de Formulrios
Formulrios
so
importantes
componentes
da
maioria
das
9
qual um valor muito grande, 1MB, enviado causando lentido. Sendo assim,
necessrio verificar o comprimento no lado servidor.
Outro problema refere-se a caracteres especiais que podem interferir
de alguma maneira no sistema, como HTML, SQL e JavaScript. Um atacante
poderia tentar injetar algum cdigo malicioso para prejudicar o sistema e seus
usurios. O uso de codificadores e funes de escape, presentes nas linguagens
mais usadas, ajuda a filtrar as entradas. De maneira geral, deve-se evitar ao mximo
o uso de caracteres especiais.
Uma das solues para verificar a coerncia dos dados a
expresso regular. De acordo com Negrino e Smith (2001), expresso regular um
conjunto de smbolos especiais utilizados para se definir o padro de uma
expresso. As linguagens e scripts mais usadas na Web, como ASP.net, PHP e
JavaScript, tm suporte a expresses regulares. Elas permitem comparar as
entradas de um usurio com um padro pr- definido, permitindo saber se ele est
inserindo um valor coerente ao requisitado.
Campos de resposta fechada
Os campos de resposta fechada so aqueles em que o usurio s
pode escolher entre as opes pr-programadas. So eles: caixa de combinao
(combobox), caixa de seleo (checkbox) e botes de rdio.
Apesar de terem valores fechados, eles ainda assim precisam ser
verificados do lado servidor, j que seu HTML pode ser modificado.
Campos ocultos
Campos ocultos so aqueles que no so mostrados no formulrio
para o usurio. Seu intuito manter informaes na mquina do usurio que sero
usadas posteriormente pelo aplicativo. No se deve armazenar dados importantes
em campos ocultos, j que o HTML pode ser modificado. Dentre as alternativas, h
cookies e passagem de parmetros pela URL.
Mtodo GET
Pelo mtodo GET, os dados dos formulrios so passados como
10
parmetros na URL. Van der Stock et al. (2005) afirmam que o processamento de
formulrio por esse mtodo no deve ser usado, j que ele aumenta as chances de
XSS. O mtodo POST deve ser o padro, GET deve ser usado apenas para
propsitos de navegao.
3.1.4 Sistemas de Login
Sistemas de login tm como objetivo verificar a identidade do
usurio atravs da autenticao por senha, permitindo que acesse dados
confidenciais a ele ou a um grupo restrito de pessoas. Boa parte das aplicaes Web
mais complexas requerem este tipo de sistema: comrcio eletrnico, fruns, e-mail,
sistemas empresariais etc.
Senhas fortes
O nvel de segurana das senhas est relacionado ao quo rpido
elas podem ser quebradas. Com relao a ataques brute force (tentativa e erro) e de
dicionrio (o mesmo que brute force, porm com palavras pr-selecionadas) quanto
mais caracteres e variaes de caracteres, mais difcil ser quebr-la. Ento, podese dizer que senhas fortes tm as seguintes caractersticas:
11
Mesmo senhas fortes podem ser quebradas depois de algum tempo.
Para se evitar esse problema, Bishop (2008) afirma que as senhas devem ter um
prazo de expirao ao final do qual o usurio precisa inserir uma nova senha. Essa
imposio certamente no de agrado de muitos usurios, j que requerem que
memorizem uma nova senha. O autor ressalta ainda que de nada adianta o usurio
colocar uma senha j usada como nova, sendo necessrio um mecanismo que
verifique isso.
Apesar de ser uma tcnica que garante maior confiabilidade, a
aplicao da troca de senha deve levar em considerao as necessidades de
segurana que o negcio exige.
Limitao de tentativas
Ataques com testes de tentativa e erro utilizam softwares
automticos. Limitar o nmero de tentativas pode ser uma soluo, como ocorre
com senhas de bancos. Porm, ao contrrio dos bancos, o usurio pode no ter
como ir fisicamente a um determinado lugar para desbloquear sua conta. Dentre as
alternativas, Bishop (2008) sugere um limite de tentativas por um determinado tempo
e Pinto e Stuttard (2008), o uso do CAPTCHA (Completely Automated Public Turing
test to tell Computers and Humans Apart), que permite distinguir uma pessoa de
uma mquina mostrando-lhe caracteres distorcidos e pedindo para que os digitem
em um formulrio.
Armazenamento de usurio e senha
Apesar de que teoricamente um banco de dados bem configurado
no ter seus dados expostos, o armazenamento de senhas deve ser criptogrfico,
seguindo-se o princpio de defesa em profundidade.
Um dos meios mais conhecidos de criptografia de senhas o hash,
um algoritmo que calcula um nmero, geralmente hexadecimal, de tamanho fixo
nico para os caracteres inseridos. Este nmero armazenado no banco e usado
para comparar com a senha do usurio. Ele no pode ser desfeito, a nica maneira
de se saber o contedo original com um ataque brute force.
12
Funo esqueci a senha
Inconveniente tanto para a aplicao quanto para o usurio, quando
este esquece a senha necessrio haver algum procedimento que permita a ele
reaver o acesso ao sistema. Algumas tcnicas muito conhecidas de recuperao de
senha incluem:
Entrar em contato com o administrador: este mtodo requer que o usurio fale
pessoalmente com o administrador, como ocorre com os bancos. Apesar de
ser seguro, j que se sabe que realmente o usurio, ele no vivel em
boa parte das aplicaes seja pelo nmero de usurios ou pela
informaes bvias.
Envio de e-mail: neste caso enviado um e-mail ao usurio com sua senha,
uma nova senha ou um link para recadastrar a senha. Geralmente o que
ocorre o envio dos dados para o e-mail previamente cadastrado, a senha do
e-mail serve como autenticao. Este mtodo relativamente simples e
confivel, mas o nvel de segurana depende de como o usurio trata de seu
e-mail.
Vale lembrar que tambm pode haver combinaes dos mtodos
citados, como definir uma pergunta secreta para a qual se a resposta for correta
enviar um e-mail contendo um link temporrio que permite redefinir a senha.
3.2
13
Surgiu da unio de trs metodologias de modelagem: Mtodo de
Booch, de Grady Booch; Mtodo OMT (Object Modeling Technique) de Ivar
Jacobson; Mtodo OOSE (Object Oriented Software Engineering) de James
Rumbaugh. Os trs amigos.
A primeira verso foi lanada em 1996 Em 1997 a UML foi adotada
pela a OMG (Object Management Group Grupo de gerenciamento de Objetos)
como linguagem padro de modelagem.
O que modelagem? Atividade de construir modelos que expliquem
as caractersticas ou comportamentos de um sistema. A UML pode ser usada com
todos os processos durante o ciclo de desenvolvimento do projeto Anlise de
requisitos; Anlise de sistema; Design; Programao e Testes.
Desenvolver o modelo de uma aplicao antes de constru-la, to
essencial quanto ter uma planta para a construo de uma casa. Analisar o projeto
sobre vrios aspectos assim diminuindo a possibilidade de erros. Ter um rigoroso
padro de linguagem de modelagem um fator essencial para o sucesso de um
projeto.
Por que usar UML? Bons modelos so essenciais para a
comunicao entre os times de projetos e para assegurar a beleza arquitetural.
Facilita a programao; sistemas so dinmicos; todo o time entende a modelagem,
facilitando assim a manuteno.
Diagrama de Atividades preocupa-se em descrever os passos a
serem percorridos para a concluso de uma atividade especfica. Concentra-se na
representao do fluxo de controle de uma atividade.
Uma atividade uma execuo no atmica em andamento em
uma mquina de estados e acabam resultando em alguma ao, formada pelas
computaes atmicas executveis que resultam em uma mudana de estado do
sistema ou o retorno de um valor.
Caractersticas:
14
Diagrama Login
15
16
17
18
19
20
21
22
23
Diagrama Devolver DVD
Diagrama
Logoff
3.1.3
NORMALIZAO
DO DIAGRAMA
RELACIONAMENTO (MRN)
ENTIDADE
24
3.3.1 Modelo entidade relacionamento (MER)
25
de dados.
Jos Fulano de Tal, CPF n 333.333.333-33, uma entidade, uma
vez que s pode existir uma nica pessoa com o mesmo nome e CPF.
Em um banco de dados de uma empresa, por exemplo, so
entidades: Cliente, Funcionrio, Departamento, fornecedor, etc. Cada entidade
representa objetos com as mesmas caractersticas. Um banco de dados, portanto,
compreende uma coleo de conjuntos de entidades do mesmo tipo.
Relacionamentos: Geralmente so os verbos, um conjunto de associaes
entre as entidades, acontecimento que liga duas entidades existentes no
mundo real. O relacionamento pode ser binrio ou ternrio e representado
atravs de um losango internamente nomeado e ligado a entidades atravs
de linhas, conforme abaixo:
ALUGUEL
ALUGA
CLIENTE
26
Atributo Composto: O seu contedo formado por vrios itens menores. Ex.
Endereo. Seu contedo poder ser dividido em vrios outros atributos,
como: Rua, Nmero, Complemento, Bairro, CEP e Cidade.
27
Com
havia
sido
falado,
um
losango
faz
a ligao
entre as
entidades
relacionadas, porm a um detalhe que ainda no foi explicado, a cor de cada uma
das metades desse losango, essa diviso de cores representa o tipo de
relacionamento entre as entidades.
No caso da locadora, cada cliente pode realizar vrios alugueis,
porm cada aluguel feito por apenas um cliente (repare o uso da palavra cada
que auxilia bastante na hora de classificar os relacionamento). Essa representao e
feita pelo DB Designer, colorindo a metade chamada de muitos de preto, ou seja,
como cada cliente pode realizar muitos alugueis, o lado dos alugueis fica com a
metade preta do losango, enquanto, como cada EMPRESTIMO realizado por
apenas um cliente, por isso a metade branca do losango aponta para a entidade
cliente.
No entanto essa representao um pouco diferente da
representao padro onde teramos algo assim:
28
29
j que na maioria dos casos quando uma entidade se relaciona dessa forma com a
outra elas podem ser fundidas em apenas uma entidade, porem em alguns casos
pode-se guardar informaes opcionais sobre uma entidade em outra entidade,
evitando assim que uma tabela de banco de dados tenha muitos atributos com valor
nulo, caso todos esses valores opcionais fossem nulos no haveria nem a
necessidade da criao de uma nova linha na entidade que porta esses dados
opcionais.
Relacionamento 1-N: o tipo de relacionamento mais usado em banco de dados
relacionais ocorrendo com o relacionamento mximo de uma tabela para outra 1 e
na ordem inversa N, sendo esse o que foi usado no exemplo anterior e explicado
atravs dele.
Relacionamento N-N: Ocorre quando ambas as entidades se relacionam com no
mximo N para com a outra, nesse caso ocorre a criao de uma entidade fraca
entre essas entidades para guardar o relacionamento entre essas duas atravs de
suas chaves estrangeiras, no exemplo da locadora esse relacionamento pode ser
encontrado no relacionamento entre alugueis e filmes representado abaixo:
30
31
Como
podemos
perceber,
DB
Designer
transforma
32
isto , cada atributo no-chave no poder ser dependente de apenas parte
da chave.
Terceira Norma Formal: Uma relao R est na 3FN, se estiver na 2FN e
cada atributo no-chave de R no possuir dependncia transitiva, para cada
chave candidata de R.
Quarta Norma Formal: Uma tabela est na 4FN, se e somente se, estiver na
3FN e no existirem dependncias multivaloradas.
33
4 CONCLUSO
Ao final do trabalho, percebi que o constante aumento no nmero
de incidentes de segurana e a alavancagem dos sistemas Web tornam
importante manuteno de sua seguridade. Portanto necessrio dar uma
maior ateno ao aspecto de segurana nesta fase com a aplicao de prticas
que reduzam as possibilidades de falhas e prejuzos para a empresa, os clientes
e o prprio desenvolvedor.
34
REFERNCIAS