CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA “PAULA SOUZA"
FACULDADE DE TECNOLOGIA DE LINS
CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS
RUTH DE FÁTIMA FARIA
ANALISANDO OS RISCOS DE UMA INVASÃO PARA TESTAR
O DESEMPENHO DE UM BANCO DE DADOS
LINS/SP
2º SEMESTRE/2011
RUTH DE FÁTIMA
FARIA
ANALISANDO OS RISCOS DE UMA INVASÃO PARA TESTAR O
DESEMPENHO DE UM BANCO DE DADOS
2011
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA “PAULA SOUZA”
FACULDADE DE TECNOLOGIA DE LINS
CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS
RUTH DE FÁTIMA FARIA
ANALISANDO OS RISCOS DE UMA INVASÃO PARA TESTAR
O DESEMPENHO DE UM BANCO DE DADOS
Trabalho de Conclusão de Curso apresentado à
Faculdade de Tecnologia de Lins para obtenção
do Título de Tecnólogo em Banco de Dados.
Orientador: Prof. Me. Alexandre Ponce de Oliveira
LINS/SP
2º SEMESTRE/2011
RUTH DE FÁTIMA FARIA
ANALISANDO OS RISCOS DE UMA INVASÃO PARA TESTAR
O DESEMPENHO DE UM BANCO DE DADOS
Trabalho de Conclusão de Curso apresentado à
Faculdade de Tecnologia de Lins, como parte dos
requisitos necessários para a obtenção do título de
Tecnólogo em Banco de Dados sob orientação do
Prof. Me. Alexandre Ponce de Oliveira
____________________________________________
Orientador (Prof. Me. Alexandre Ponce de Oliveira)
______________________________
Examinador 1 (Ygor Gonzaga de Oliveira)
______________________________
Examinador 2 (Naylor Garcia Bachiega)
Dedico este trabalho aos meus pais, in
memorian, Valdemar Faria e Maria Aparecida
Faria pelo amor, dedicação e por não medirem
esforços para que eu pudesse estudar, e a Deus
por permitir que eu tivesse pais tão maravilhosos.
AGRADECIMENTOS
Agradeço primeiramente a Deus pelo amor incondicional, pelo cuidado para
que eu trilhasse bons caminhos e por permitir que eu finalizasse mais uma etapa.
Agradeço aos meus pais que sempre me incentivaram a estudar visando um futuro
melhor, a todos os meus professores que compartilharam comigo seu tempo e seu
conhecimento, principalmente aos meus orientadores Adriano de Souza Marques e
Alexandre Ponce de Oliveira que me inspiraram e valorizam meus esforços não
permitindo que eu desistisse quando acreditava não ser possível realizar algo. Não
poderia esquecer-me de agradecer aos meus colegas de turma pelo carinho e
amizade que construímos nestes três anos juntos, principalmente ao João
Evangelista Neto por sua amizade excepcional, a Adriana M. M. Silveira por não
medir esforços para que ninguém desistisse ou ficasse para trás e ao Augusto
Marmo que sempre esteve pronto a ajudar. E agradeço carinhosamente ao meu
esposo Rodrigo Alves Dias por seu amor, paciência, compreensão e por adiar
sonhos para que eu pudesse realizar o meu sonho de concluir este curso.
RESUMO
Este trabalho foi desenvolvido com o objetivo geral de mostrar os benefícios
criados pela tecnologia, a mudança que vem ocorrendo com o aumento da utilização
da internet, o lado positivo e negativo dessa mudança, os tipos de crimes que
ocorrem através do computador e a necessidade que originou a ciência forense
computacional para estudar e desvendar esses crimes virtuais, através de técnicas
específicas, normas, padronizações e as dificuldades que a legislação impõe. Tudo
para que se possa encontrar as ameaças oferecidas na utilização dos computadores
e os interesses dos invasores, além de ajudar na identificação do perfil destes
atacantes e metodologias utilizadas por eles. Sugerindo algumas medidas de
segurança que o usuário deve tomar para inibir esses ataques. Após o detalhamento
de todas essas informações o objetivo principal deste trabalho é apresentar uma
simulação de um ataque de carga e desempenho em um banco de dados para que
seja confirmado que é importante se proteger de possíveis ataques, pois os
prejuízos são incalculáveis. A metodologia utilizada para o desenvolvimento do
trabalho foi através de pesquisas bibliográficas em livros, monografias, teses,
dissertações e artigos científicos e para os testes de carga e desempenho dos
bancos de dados Oracle Database 10g Express Edition e Postgresql versão 8.4 e
uma ferramenta de testes Apache JMETER. Dois bancos distintos que foram
expostos aos mesmos problemas geraram respostas diferentes.
Palavras-chave: Invasão, Forense Computacional, Segurança, Banco de Dados,
Teste de Desempenho.
ABSTRACT
This work was developed with the overall objective to show the benefits
created by technology, change that is occurring with increasing use of internet, the
positive and negative of this change, the types of crimes that occur through the
computer and the need computer forensic science led to study and solve these
crimes on the Internet, through specific techniques, standards, standardization and
the difficulties that the law imposes. All so you can find the threats posed in the use
of computers and the interests of the invaders, and help in identifying the profile of
attackers and methodologies used by them. Suggesting that some safety measures
you should take to inhibit such attacks. After detailing all this information the main
objective of this project is to present a simulation of a charge attack and performance
in a database for confirmation that it is important to protect against possible attacks,
because the losses are incalculable. The methodology used for developing the work
was through literature searches in books, monographs, theses, dissertations and
research papers and tests for charge atack and the databases Oracle Database 10g
Express Edition and PostgreSQL performance version 8.4 and a testing tool Apache
JMeter. Two separate banks that were exposed to the same problems generated
different responses.
Keywords: Invasion, Computer Forensics, Security, Database, Performance Testing.
LISTA DE ILUSTRAÇÕES
Figura 1.1 – Macroprocesso simplificado do evento até a sentença final ................ 18
Figura 1.2 – Ameaças mais utilizadas para a invasão de um computador .............. 21
Figura 1.3 – Comportamento típico dos script kiddies e a evolução de um
ataque........................................................................................................................ 23
Figura 1.4 – Requisitos básicos para atender à segurança em
um computador.......................................................................................................... 26
Figura 1.5 – Medidas de segurança que ajudam na proteção do computador ........ 31
Figura 2.1 – Etapas do processo de investigação .................................................... 33
Figura 3.1 – Componentes básicos para o funcionamento de um banco
de dados ................................................................................................................... 45
Figura 3.2 – Níveis de abstração .............................................................................. 46
Figura 3.3 – Modelo Relacional Cliente - Conta Corrente ........................................ 48
Figura 4.1 – Inicializando o Plano de Teste.............................................................. 55
Figura 4.2 – Inserindo o Grupo de Usuários............................................................. 56
Figura 4.3 – Inserindo Testador de Requisição HTTP ............................................ 56
Figura 4.4 – Visualização dos Resultados pelo visualizador Spline ....................... 57
Figura 4.5 – Visualização dos Resultados em Tabelas............................................. 57
Figura 4.6 – Visualização dos Resultados com Gráficos.......................................... 58
LISTA DE GRÁFICOS
Gráfico 1 – Resultados de desempenho do Banco Oracle .......................................61
Gráfico 2 – Resultados de desempenho do PostgreSql ...........................................61
LISTA DE QUADROS
Quadro 4.1 – Resultados obtidos no Banco Oracle...................................................59
Quadro 4.2 – Resultados obtidos no Banco PostgreSql............................................60
LISTA DE ABREVIATURAS E SIGLAS
AOL – America Online
BIOS – Basic Input / Output System
CGIBR – Comitê Gestor da Internet no Brasil
DDoS – Distributed Denial of Service
DNS – Domain Name System
DoS – Denial Of Service
DVD – Digital Versatile Disk
FTP – File Transfer Protocol
HTML – HyperText Markup Language
HTTP – Hyper Text Transfer Protocol
HTTPS – HyperText Transfer Protocol Secure
IP – Internet Protocol
IRC – Internet Relay Chat
JDBC – Java Database Connectivity
JPEG – Joint Photographic Experts Group
MAC – Media Access Control
MBR – Master Boot Record
ODBC – Open Data Base Connectivity
PCMCIA – Personal Computer Memory Card International Association
PERL – Practical Extraction and Report Language
PHP – Hypertext Preprocessor
RAM – Random Access Memory
SGBD – Sistema Gerenciador de Banco de Dados
SOAP – Simple Object Access Protocol
SQL – Structured Query Language
TCL – Tool Command Language
TCP/IP – Transmission Control Protocol / Internet Protocol
URL – Universal Resource Locator
USB – Universal Serial Bus
SUMÁRIO
INTRODUÇÃO .......................................................................................................... 13
1 FORENSE COMPUTACIONAL .............................................................................. 17
1.1 AMEAÇAS ........................................................................................................... 18
1.2 ATACANTES ....................................................................................................... 21
1.3 PRIVACIDADE .................................................................................................... 23
1.4 RISCOS............................................................................................................... 26
1.5 PROTEÇÕES ...................................................................................................... 28
2 INVESTIGAÇÃO FORENSE .................................................................................. 32
2.1 ETAPAS DO PROCESSO DE INVESTIGAÇÃO ................................................. 32
2.1.1 Preparação do Material .................................................................................... 33
2.1.2 Coleta dos Dados ............................................................................................. 34
2.1.2.1 Dados Voláteis .............................................................................................. 35
2.1.2.2 Dados Não-Voláteis....................................................................................... 36
2.1.3 Exame .............................................................................................................. 37
2.1.4 Análise.............................................................................................................. 37
2.1.4.1 Análise Física ................................................................................................ 38
2.1.4.1.1 Pesquisa de Sequência .............................................................................. 38
2.1.4.1.2 Processo de Busca e Extração .................................................................. 39
2.1.4.1.3 Extração de Espaço Subaproveitado Livre de Arquivos ............................. 39
2.1.4.2 Análise Lógica ............................................................................................... 40
2.1.5 Apresentação dos Resultados .......................................................................... 40
2.2 TÉCNICAS DA FORENSE COMPUTACIONAL .................................................. 41
2.2.1 Live Computer Forensiscs ................................................................................ 41
2.2.2 Forense Post-Mortem ....................................................................................... 42
2.2.3 Técnicas Anti-Forenses .................................................................................... 43
3 SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS (SGBD) .................... 44
3.1 ORACLE DATABASE 10G EXPRESS EDITION ................................................ 46
3.2 POSTGRESQL.................................................................................................... 49
3.3 APACHE JMETER .............................................................................................. 52
4 ESTUDO DE CASO ............................................................................................... 55
4.1 Experimentos Realizados no Banco Oracle ........................................................ 58
4.2 Experimentos Realizados no Banco PostgreSql ................................................. 60
4.3 Comparativo Oracle X PostgreSql ....................................................................... 61
CONCLUSÃO............................................................................................................ 62
REFERÊNCIAS BIBLIOGRÁFICAS .......................................................................... 64
GLOSSÁRIO ............................................................................................................. 67
13
INTRODUÇÃO
Atualmente o avanço da tecnologia tem proporcionado grandes benefícios,
melhorias na qualidade de vida das pessoas e mais conforto. A tecnologia está
evoluindo de maneira a gerar cada vez mais acessibilidade, mobilidade e
portabilidade. Dados que antigamente eram armazenadas em pilhas de livros
escritos à mão ou em máquinas de escrever mecânicas, os quais foram substituídos
por softwares de banco de dados localizados nas empresas e muitas vezes
disponibilizando seus dados na internet.
De acordo com Alves (2009), a Internet, como um meio eficaz de
comunicação, permitiu a interação em tempo real de indivíduos localizados nos mais
longínquos cantos do mundo. A utilização de computadores extinguiu tarefas que
antes eram árduas, algumas feitas em antigas máquinas de escrever, evoluindo para
simples atividades realizadas em poucos minutos. Este intenso desenvolvimento
tecnológico alterou profundamente o cotidiano das pessoas, transformando a
sociedade contemporânea em uma sociedade digital, cada vez mais dependente da
informação.
Os benefícios da tecnologia também têm seu lado negativo, onde indivíduos
mal intencionados praticam atos ilícitos das mais diversas naturezas, considerando
estar seguro, por interpretar que não poderá ser identificado. Estes indivíduos,
muitas vezes “profissionais” de grande capacidade e conhecimento técnico estão
constantemente aperfeiçoando suas técnicas, de acordo com a evolução dos
recursos tecnológicos, e aproveitando da disseminação destes recursos para uma
quantidade cada vez maior de usuários.
Segundo Pereira, et. al. (apud BESSA, 2006) os crimes mais comuns
cometidos utilizando-se o computador são os de calúnia, difamação e injúria,
utilizando-se o e-mail. Também se podem citar entre os atos mais comuns o roubo
de informações confidenciais e a remoção ou exclusão de arquivos importantes para
o sistema ou mesmo para o usuário.
O que motiva estes atos ilícitos são os interesses em causar constrangimento
ou algum tipo de perda à vítima e, normalmente, são praticados por funcionários
insatisfeitos ou empresas concorrentes.
14
Crimes como pedofilia, fraudes e a negociação e/ou comercialização de
tráfico de drogas via Internet também são constantemente realizados com o apoio
de computadores. A união do crime organizado aos crakers possibilita a compra, a
venda e a negociação de kits de ferramentas prontas para ataques virtuais e golpes
utilizando vulnerabilidades recém descobertas.
Considerando-se todos os aspectos de atos ilícitos utilizando-se a tecnologia,
os quais são em grande parte efetuados sem possibilidade de defesa, pode-se dizer
que a ciência forense computacional surgiu em função de uma necessidade real e
urgente. Seu trabalho consiste em uma investigação específica em computadores,
ou mesmo em quaisquer dispositivos eletrônicos com uma metodologia adequada e
uma padronização para identificar os autores dos atos.
Rodrigues; Foltran (apud PALMER, 2010) tem uma definição bastante clara
sobre a Ciência Forense Computacional quando diz que a inspeção científica e
sistemática em ambientes computacionais, com o objetivo de coletar evidências
digitais, com a finalidade de promover a reconstituição dos eventos encontrados,
podendo determinar se o ambiente em análise foi utilizado na realização de
atividades ilegais ou não autorizado.
Neste enfoque a padronização é sem dúvida uma metodologia necessária
para dar “status” científico a prova e autenticidade irrefutável.
Alves (2009) afirma que os mais diversos ramos científicos não foram
capazes de se absterem dessas transformações e que a tecnologia impôs à ciência
jurídica uma série de novas abordagens, provenientes de uma mudança social e
comportamental. O direito teve que se adaptar a essa nova realidade na tentativa de
normatizar as relações emanadas do universo digital. O direito digital é uma
evolução do próprio direito.
Sem dúvida é uma tarefa bastante árdua, afinal, não é nada fácil encontrar
um determinado computador nesta vasta rede de computadores, além de que é
necessário que todo o trabalho siga as normas e padronizações pré-definidas e
esteja de acordo com a legislação, mais uma barreira a vencer já que no Brasil não
há lei específica para crimes digitais, por isso é bastante comum a utilização de
analogia nos crimes comuns e jurisprudências geradas nas esferas criminais. A
legislação é um fator que deve ser analisado com muita atenção porque os limites
que ela impõe acabam dificultando a realização do trabalho da ciência forense
computacional.
15
Segundo Alves (apud PAIVA, 2002) o nascimento de um ramo jurídico surge
em consequência das relações sociais refletidas em soluções normativas no
transcurso dos anos, mas que no caso do Direito Digital não houve esse transcorrer
do tempo no que concernem as relações sociais, embora tenham ocorrido
transformações bruscas em exíguo espaço temporal.
Alves (2009) conclui que independentemente da autonomia ou não do Direito
Digital, é indiscutível a necessidade de se adequar o sistema jurídico às novas
realidades sociais, transmudada pela tecnologia de computadores, competindo ao
Direito regular às relações sócio-jurídicas surgidas da influência da informática e da
telemática na vida dos indivíduos de uma forma geral, também cabe à ciência
adaptar-se diante dessas transformações possibilitando a correta aplicação como
disciplina reguladora. Portanto, há a necessidade de se legislar sobre determinados
temas, que devido a suas peculiaridades, não são atendidos pelas normas jurídicas
em vigor. Temas, estes que surgiram em ambientes virtuais possuidores de uma
série de novas características, sendo necessário o estabelecimento de diretrizes que
permitam a todos uma segurança jurídica diante das relações provindas do espaço
eletrônico.
O objetivo deste trabalho é apresentar todos esses fatores que envolvem a
utilização do computador, segurança na utilização da internet, ataques, crimes
virtuais e pericia computacional como base para que se abstraia, após o teste de
carga e desempenho, uma conscientização de que cada usuário é responsável por
toda informação gerada em seu computador e que é preciso buscar formas de
proteger sua privacidade não permitindo que portas sejam abertas para que
estranhos invadam os computadores e devastem suas vidas.
A metodologia utilizada para o desenvolvimento deste trabalho se dará
através de pesquisas bibliográficas em livros, monografias, teses, dissertações e
artigos científicos, para o teste de carga e desempenho será utilizado dois bancos
de dados, Oracle Database 10g Express Edition e Postgresql, e uma ferramenta
chamada Apache JMeter. Onde será observado o desempenho de cada um dos
bancos de dados e como cada um dele se comporta ao ser submetido ao ataque de
muitas requisições ao mesmo tempo.
Para facilitar e organizar a pesquisa este trabalho foi dividido em capítulos,
iniciando-se com uma introdução, seguindo para o capítulo 1 com os conceitos de
forense computacional, ameaças, atacantes, privacidade, riscos e proteções. Já no
16
capítulo 2 é feita uma abordagem mais direta sobre a investigação forense, etapas
do processo de investigação e técnicas da forense computacional. Sistema de
Gerenciamento de Banco de Dados, Oracle Database 10g Express Edition,
Postgresql, Apache Jmeter são os assuntos abordados no terceiro capítulo.
O
capítulo 4 descreve todo o procedimento para a realização do teste de carga e
desempenho. Finalizando com o capítulo de referências bibliográficas e glossário.
17
1 FORENSE COMPUTACIONAL
A Forense computacional é uma ciência que através de técnicas e
metodologias, baseada em hipóteses, investiga computadores e equipamentos
digitais com o intuito de recriar o cenário de um crime para a obtenção de evidências
computacionais, tomando o cuidado de preservar os dados processados
eletronicamente ou armazenados em dispositivos eletrônicos possibilitando uma
análise detalhada das evidências digitais encontradas e a confecção de
documentação que possa servir de provas para serem utilizadas em processos
judiciais.
De acordo com Silva Filho (apud FRANKE; SRIHARI, 2007) “A computação
forense é uma área de estudos da investigação forense que vem se expandindo com
o avanço dos crimes cibernéticos. A necessidade de um processo investigativo
sobre esses equipamentos digitais possibilitando identificação de crimes e
respectivos culpados foi fator fundamental para o grande desenvolvimento de
pesquisa na área. A computação forense é vista como uma área de pesquisa e
investigação baseada em hipóteses de problemas forenses usando computadores.
Como principais objetivos da computação forense, observa-se o aprendizado e as
descobertas de novos conhecimentos forenses e com eles auxiliar os processos
investigativos.” Ou de uma forma mais simplificada Pereira; Weber; Goldani (apud
NOLAN et al, 2005) também conceituam forense como um conjunto de técnicas e
procedimentos que utilizam conhecimento científico para coletar, analisar e
apresentar evidências que possam ser utilizadas em um tribunal. “O termo forense
significa “pertinente à lei”. É essencialmente a busca minuciosa de informações
relativas a eventos passados específicos para uma investigação criminal”
(PEREIRA; WEBER; GOLDANI apud WHAT, 2009, p. 2).
De acordo com Pereira; Weber; Goldani (apud DILLON, 1999) o trabalho da
perícia é grande importância porque diversos crimes são solucionados através da
identificação de impressões digitais, pegadas, sangue, cabelo ou amostras de fibras.
Análises balísticas são utilizadas para determinar a posição de um atirador e
resíduos químicos encontrados em uma peça de roupa podem identificar o
criminoso. A atividade do perito muitas vezes é fundamental para a coleta de
18
indícios que permitam a prisão e condenação de criminosos, pois as evidências
físicas são utilizadas para a reconstrução das circunstâncias em que um crime
ocorreu, principalmente quando não houve testemunhas.
Segundo Cansian (2001) a análise e a perícia dos computadores que tenham
passado por algum tipo de violação ou ataque, tornam-se uma matéria importante no
conjunto de ações no processo de segurança. Porque possibilita o entendimento do
ocorrido, de forma a corrigir falhas. Olhar para o passado e interpretar o que
aconteceu possibilita coletar as evidencias necessárias para identificação do
atacante para que medidas legais ou jurídicas pertinentes possam ser toadas.
Figura 1.1 Macroprocesso simplificado do evento até a sentença final.
Fonte: Rodrigues; Silva; Truzzi, 2010.
1.1 AMEAÇAS
Pela constante evolução em tecnologia, praticidade e tempo de resposta cada
vez menor, as pessoas vêm se tornando cada vez mais dependentes do computador
que passou a estar presente em tudo que possamos imaginar (brinquedos, objetos
19
pessoais, celulares, eletrônicos, eletrodomésticos, equipamentos de trabalho, lazer,
comunicação). Esses equipamentos facilitadores permitem a troca de dados através
de uma transação bancária, uma compra via internet, um email com informações
sigilosas, sites de relacionamentos, aplicativos de comunicação online (MSN, por
exemplo), enfim por diversas razões as informações são transmitidas de um
computador para outro.
Conforme, Cansian (2001) essa troca de dados eletronicamente geram
registros de atividades (logs) que ficam armazenados no computador despertando o
interesse de pessoas mal intencionadas que as buscam para obter alguma forma de
benefícios. Nem sempre a motivação é financeira, pode ser por ressentimento em
relação à determinada empresa ou pessoa, para chamar a atenção, pelo prazer de
causar prejuízo financeiro ou moral, descobrir estratégias empresariais, provar para
si mesmo que é capaz de quebrar a segurança de softwares caros e sofisticados ou
apenas pela diversão de bisbilhotar a vida alheia.
De acordo com Hoepers; Jessen; Chaves (2009) as principais ameaças são:
a) Vulnerabilidades freqüentes, os códigos maliciosos que exploram essas
vulnerabilidades em curto espaço de tempo;
b) Ferramentas automatizadas de ataque, atacantes + spammers;
c) Ataques de força bruta, redes mal configuradas utilizadas para realizar
estas atividades sem o conhecimento dos donos;
d) Botnets (usadas para envio de scams, phishing, invasões, DoS, esquemas
de extorsão), Alvo migrando para usuários finais;
e) Fraudes (scams / phishing);
f) Crime Organizado aliciando spammers e invasores e injetando dinheiro na
economia underground.
Estas ameaças ao computador podem ser visualizadas na figura 1.2.
Segundo Symantec (2011) em seu Glossário de Segurança, podemos definir
ameaças ao computador ou threat como sendo qualquer circunstância, evento ou
pessoa que possa causar algum tipo de dano ao sistema, seja na forma de roubo,
destruição, divulgação, alteração de dados e/ou negação de serviço (DoS).
O CGIBR (2006) através de sua cartilha de segurança para internet –
Glossário possui uma definição bastante clara sobre os tipos de ameaças citadas
anteriormente:
20
Vulnerabilidades são falhas no projeto de desenvolvimento do sistema,
implementação ou configuração do software ou do sistema operacional que
explorada pode violar a segurança de um computador;
Códigos maliciosos que exploram essas vulnerabilidades são todos os
tipos de programas ou vírus que executam ações maliciosas no computador, como
worms, bots, cavalos de tróia, rootkits, entre outros.
Ferramentas para realizar o ataque estão disponíveis na internet, e são de
fácil compreensão podendo qualquer pessoa utilizá-las;
Spam são mensagens eletrônicas não solicitadas enviadas em massa,
geralmente são mensagens de correio eletrônico com fins publicitário, onde os
usuários são afetados com gastos desnecessários de tempo, perda de produtividade
e prejuízos financeiros causados por fraudes;
A soma de atacantes e spammers geram uma grande ameaça virtual;
Ataques de força bruta (brutal force) são estratégias utilizadas para
descobrir senhas, há uma busca exaustiva feita através de algoritmos tentando
encontrar todas as combinações possíveis até se descobrir a senha correta.
Uma das ameaças mais perigosas existentes na internet são os bots. “Bots”
são aplicativos que agem e se propagam de forma totalmente independente, além
de se comunicarem com os invasores que os instalaram na máquina, se aproveitam
da vulnerabilidade da maquina para explorá-la remotamente. Eles são conectados
através de um componente Internet Relay Chat (IRC), ou seja, uma rede para
comunicação online a um determinado canal de um ou mais servidores IRC. Onde o
software utilizado para gerenciar estes canais é modificado para servir a mais bots,
não revelando a quantidade de bots associados formando assim uma “botnet”.
As Botnets são usadas para enviar scams, phishing, gerar outras invasões,
sem conhecimento do proprietário do computador, e ataques distribuído de negação
de serviço e esquemas de extorsão.
Torres (2009) complementa afirmando que outro fator de ameaça é conhecido
como “segurança por obscuridade” que normalmente acontece quando o
responsável pela implementação do sistema não entende de segurança e pela falta
de conhecimento e desinteresse em tentar solucionar o problema cria um sistema de
acesso “complicado” e desprotegido, acreditando que o acesso não será descoberto.
21
Alvo
migratório
Aliciamento de
spammers e
invasores pelo
crime
organizado
Códigos
maliciosos que
exploram as
vulnerabilidades
Fraudes,
esquemas de
extorsão,
invasões
Ferramentas
automatizadas
de ataque
Ameaças ao
Computador
Atacantes
+
Spammers
Vulnerabilidades
frequentes
Envio de
scams,
phishing, DoS
através de
Botnets
Redes
mal
configuradas
Ataques
de força
bruta
Figura 1.2 Ameaças mais utilizadas para a invasão de um computador
Fonte: Elaborado pela autora, 2011.
As ameaças existem e são diversas para encontrar uma solução faz-se
necessário primeiramente se descobrir quem são e como agem esses atacantes. É
o assunto que será abordado a seguir.
1.2 ATACANTES
Dificilmente, pode se estimar valores quando ao se referir a ataques virtuais,
não se trata apenas de um prejuízo financeiro, mas principalmente moral, afinal
como calcular ou atribuir algum valor a invasão sofrida internamente e qual a quantia
devida à frustração ao descobrir que uma estrutura de segurança, muitas vezes com
altos investimentos, que parecia ser segura foi invadida por vândalos e criminosos?
22
Primeiramente é necessário conhecer o perfil do atacante para que medidas
de segurança sejam tomadas e as falhas corrigidas, esses atacantes possuem dois
padrões: meio interno e externo. Onde o meio interno são pessoas próximas da
vitima ou empresa que tem certo grau de conhecimento e sabe o que esta
procurando.
Por sua vez, meio externo são atacantes que se utilizam de informações e
ferramentas encontradas na internet e aleatoriamente buscam por presas fáceis.
Acrescenta-se neste caso a engenharia social cujo atacante se utiliza de qualquer
informação obtida em uma conversa por telefone ou pessoalmente, se passando por
funcionário de empresas conhecidas, amigos ou parentes. Normalmente são
pessoas de boa aparência, comunicativas, simpáticas, persuasivas e convincentes.
De acordo com Cansian (apud TAYLOR, 1999, p. 5) os atacantes oriundos do
meio interno possuem um comportamento mais complexo se comparados aos
atacantes do meio externo e que análises mostram que os crimes eletrônicos,
intrusões ou tentativas de ataque ocorrem pelos mesmos motivos de crimes
regulares, associados à cobiça, obtenção ilegal de dinheiro, lucro, riqueza ou acesso
de recursos adicionais ou restritos, adquirir vantagens competitivas (econômica,
política ou pessoal) ou vinganças pessoais. As violações de segurança proveniente
do meio externo não possuem um alvo específico, buscam apenas um alvo fácil.
Seu objetivo é ganhar acesso privilegiado de maneira fácil, concentrando-se num
pequeno numero de ferramentas e exploits, varrendo toda a rede de internet, esses
atacantes são conhecidos como script kiddies.
Estes atacantes seguem uma metodologia com padrões bem definidos e
eventos sequenciados que estabelecem perfis e/ou padrões comportamentais.
Segundo Cansian (apud FARMER; VENEMA,1999, p. 6) a metodologia básica é
rastrear a rede ou um computador alvo, buscando vulnerabilidades específicas,
estabelecer uma base de dados de endereços IP que possam ser atacados,
encontrando a vulnerabilidade explorá-la buscando por falhas naquele equipamento.
Eles procuram por sistemas que não possuem monitoração e inspeção dos
computadores, o que é normal acontecer porque muitas empresas não monitoram
seus sistemas e não sabem que estão sendo atacadas. Afirma Cansian (2001) que
os atacantes muitas vezes buscam silenciosamente por sistemas que possam ser
explorados e ao conseguir o acesso, encobrem seus rastros eliminando os registros
de
auditoria
que
possam
eventualmente
existir.
Utilizam
o
computador
23
comprometido como base para novos ataques, ocultando assim, sua real posição e
atribuindo a outros administradores a responsabilidade. Alguns atacantes mais
sofisticados implementam e instalam programas, trojans e backdoors, para
comprometer completamente os sistemas invadidos. Os sistemas auditores,
indicadores de processos ou file system, são comprometidos ou corrompidos e
tornam-se não confiáveis.
A figura 1.3 descreve o comportamento típico dos script kiddies e a evolução
de um ataque. Os ataques são imprevisíveis, uma vez que algumas das ferramentas
utilizadas são automáticas e operam sem parar, durantes às 24 horas do dia,
coletando dados.
Rastrear a Rede
Estabelecer Base
buscando
de Dados de
Encontrada a
Alvo
endereços de IP
vulnerabilidade do
Monitorado
para atacar
sistema
vulnerabilidades
específicas
Obter acesso
Alvo
Fácil
de nível de
usuário
Obter acesso
Base para
Encobrir
privilegiado
Rastros
(root)
novos ataques
Roubar ou
Alterar dados
Instalar
Backdoors
Executar outras
Atividades
Não autorizadas
Figura 1.3 Comportamento típico dos script kiddies e a evolução de um ataque
Fonte: Elaborado pela autora, 2011.
1.3 PRIVACIDADE
Os direitos individuais foi uma grande conquista ao homem ocidental, a partir daí ele
passou a ser mais crítico, participativo e sociável. Dentre esses direitos a
24
Constituição Federal assegura a todos os indivíduos o direito a privacidade como
mostra o artigo 5º, incisos X e XII, “são invioláveis a intimidade, a vida privada, a
honra e a imagem das pessoas, assegurado o direito a indenização pelo dano
material ou moral decorrente de sua violação;” “é inviolável o sigilo da
correspondência e das comunicações telegráficas, de dados e das comunicações
telefônicas, salvo, no último caso, por ordem judicial, nas hipóteses e na forma que a
lei estabelecer para fins de investigação criminal ou instrução processual penal;”
Portanto, ninguém sem consentimento, pode violar ou invadir a privacidade de
alguém e atingir o bem mais precioso „a Intimidade do ser humano‟. Ao invadir o
computador, acessar os dados, espionar a vida de uma pessoa, abrir
correspondências físicas ou virtuais, se utilizar dessas informações, imagens ou
vídeos, o atacante mais que uma invasão física efetua uma invasão moral. Todo ser
humano necessita de um espaço só seu onde ele se sinta seguro e possua
liberdade em suas ações, sabiamente este “espaço” é garantido pela Constituição
Federal através do direito à privacidade, incluindo-se a privacidade no uso da
internet, privacidade em seu correio eletrônico, privacidade no acesso e
disponibilidade de páginas web.
Segundo CGIBR (2006) através de sua cartilha de segurança para internet,
parte III – Privacidade, a ideia de que emails são seguros por serem comparados a
cartas fechadas é errônea, pois aparentam ser cartões postais podendo ser lido por
qualquer pessoa que os tiver acesso. Na verdade esses emails ficam armazenados
em um servidor de email e qualquer pessoa que tenha acesso ao servidor pode lêlos, ou se estiver em transito pode ser lido por pessoas que estejam conectadas à
internet.
Para informações confidenciais, o CGIBR (2006) através de sua cartilha de
segurança para internet, parte III – Privacidade, recomendada a utilização de
criptografia, seja para o envio ou armazenamento de informações. No entanto,
quando a assunto é privacidade no acesso e disponibilidade de páginas web, o
cuidado do próprio usuário é de extrema importância. Muitas vezes, este usuário
expõe informações pessoais e acaba permitindo que o browser receba ou envie
dados de sua preferência e sobre o seu computador, afetando a privacidade e a
segurança de seu computador, e em alguns casos, a sua própria segurança e de
sua família.
25
O usuário não percebe que as informações disponibilizadas na internet
quando caem em mão erradas possuem um grande poder de destruição. Uma
grande empresa pode ir à falência se criminosos conseguirem acessos privilegiados
em seu sistema ou um pedófilo pode encontrar um alvo fácil quando tem as
informações e rotinas de uma família. Cookies são utilizados para rastrear e manter
as preferências de um usuário quando ele navega pela Internet e essas informações
são compartilhadas entre diversos sites na internet, afetando a privacidade deste
usuário. Também, ao acessar uma página na internet, o browser disponibiliza uma
série de informações, de modo que os cookies podem ser utilizados para manter
referências contendo informações do computador, como hardware, sistema
operacional, softwares instalados e, em alguns casos, o endereço de e-mail. A
recomendação é desabilitar o recebimento de cookies, habilitando-os apenas para
sites confiáveis e realmente necessários. Não é incomum um usuário visitar alguns
sites a procura de um determinado produto e algum tempo depois receber em seu
correio eletrônico ofertas, de varias empresas, sobre aquele mesmo produto.
Outra forma de manter a privacidade, de acordo com CGIBR (2006) através
de sua cartilha de segurança para internet, parte III – Privacidade, ao acessar
páginas na Internet seria a utilização de sites que permitam que o usuário fique
anônimo, conhecidos como anonymizers, que intermedeiam o envio e o recebimento
de informações entre o browser e o site visitado. Porém, é necessário certificar-se
que o anonymizers é confiável, mesmo assim não se deve utilizá-lo para transações
via web.
Contudo, a privacidade do usuário fica ameaçada quando o próprio usuário
expõe sua vida e dados pessoais através da internet. Segundo CGIBR (2006)
através de sua cartilha de segurança para internet, parte III – Privacidade, algumas
vezes, de forma sutil o usuário acaba revelando seu e-mail, telefone, endereço,
nome de amigos e parentes, informações sobre a família, local de trabalho, datas de
aniversários, dados do seu computador como marca, sistema operacional, software
utilizados, informações sobre seu cotidiano, horário em que se ausenta de casa,
festas em que esteve, viagens programadas, informações estas, encontradas
facilmente em sites de relacionamentos (Orkut, Facebook, Sonico), blog’s, batepapos, comunidades e programas de troca instantânea de informações (ICQ, AOL
Instant Messenger, Yahoo! Messenger e MSN Messenger). É importante estar
26
atento e avaliar as informações que serão disponibilizadas e os riscos que elas
podem acarretar.
1.4 RISCOS
Segundo CGIBR (2006) através de sua cartilha de segurança para internet,
parte I – Conceitos de Segurança, um computador só esta seguro quando atende a
três requisitos básicos relacionados aos recursos que o compõem: confidencialidade
(informações disponíveis somente para pessoas devidamente autorizadas),
integridade (informações não são corrompidas ou destruídas e o sistema tem seu
desempenho correto) e disponibilidade (recursos e serviços disponíveis quando
necessários). Porém, quando alguém obtém acesso não autorizado a um
computador e visualiza as informações contidas numa declaração de imposto de
renda, houve violação na confiabilidade. No entanto, se alterações forem feitas,
haverá violação na integridade. Mas, se o provedor que será utilizado para enviar
essa declaração de imposto de renda à Receita Federal sofrer uma sobrecarga de
dados ou um ataque de negação de serviço, então a disponibilidade foi violada.
Confiabilidade
Integridade
Disponibilidade
SEGURANÇA
Figura 1.4 Requisitos básicos para atender à segurança em um computador
Fonte: Elaborado pela autora, 2011.
A internet possui muitos fatores positivos, no entanto, os riscos estão
presentes em todas as ações executadas quando o computador esta conectado, se
o usuário não estiver atento poderá ser surpreendido. Os riscos estão associados ao
uso de programas leitores de emails, uso de salas de bate-papo e programas de
troca instantânea de mensagens além da utilização de browser. Riscos em
programas leitores de emails estão relacionados ao conteúdo das mensagens que
27
são utilizadas técnicas de engenharia social e às características de alguns
programas que permitem abrir arquivos ou executar automaticamente programas
anexados.
Segundo CGIBR (2006) através de sua cartilha de segurança para internet,
parte I – Conceitos de Segurança, os riscos de salas de bate papos e programas de
troca instantânea de mensagens estão no próprio conteúdo dos diálogos, pois
técnicas de engenharia social podem ser persuasivamente utilizadas para conseguir
informações pessoais e empresariais, além destes programas fornecerem o
endereço na internet, Internet Protocol (IP), possibilitando ao atacante explorar a
vulnerabilidade do computador.
Os riscos relacionados ao browser , de acordo com CGIBR (2006) através de
sua cartilha de segurança para internet, parte I – Conceitos de Segurança, são
diversos: execução de Java Script ou de programas Java hostis; execução de
programas ou controles ActiveX hostis; obtenção e execução de programas hostis
em sites não confiáveis ou falsos; acesso a sites falsos, se fazendo passar por
instituições bancárias ou de comércio eletrônico; realização de transações
comerciais ou bancárias via Web, sem qualquer mecanismo de segurança. Nos dois
primeiros casos o browser executa os programas automaticamente, sem a
interferência do usuário. Normalmente os browsers contem módulos específicos
para processar programas Java que podem conter falhas de implementação e
permitir que um programa Java hostil cause violações de segurança. Apesar de
nem sempre apresentarem riscos, o Javascript e outros scripts disponíveis na web,
são utilizados por atacantes para causar violações de segurança, redirecionando o
usuário que acessa um site legítimo para um site falso para que o usuário instale
programas maliciosos ou forneça informações pessoais.
Conforme CGIBR (2006) através de sua cartilha de segurança para internet,
parte I – Conceitos de Segurança o browser, antes de receber um programa Ativo,
verifica sua procedência através de certificados digitais, após sua aceitação esse
programa tem legitimidade para fazer qualquer operação no computador, desde
enviar arquivos pela internet a instalar programas que podem ter fins maliciosos. A
obtenção e execução de programas hostis em sites não confiáveis ou falsos;
Acessos a sites falsos, se fazendo passar por instituições bancárias ou de comércio
eletrônico; A Realização de transações comerciais ou bancárias via Web, sem
qualquer mecanismo de segurança são riscos que estão relacionados ao uso de
28
cookies ou pop-up spam. Pop-up spam são janelas que aparecem automaticamente
após acessar um site, sem permissão do usuário, sobrepondo à janela do browser
apresentando propagandas e em alguns casos com links para redirecionar o usuário
para páginas fraudulentas ou induzi-lo a instalar programas maliciosos, e como já
mencionado cookies são utilizados para rastrear e manter as preferências de um
usuário quando ele navega pela Internet e essas informações são compartilhadas
entre diversos sites na internet.
Em seguida serão apresentadas algumas medidas de proteções que o
usuário deveria tomar para dificultar o ataque de invasores.
1.5 PROTEÇÕES
Como já visto anteriormente, existem riscos ao se utilizar a internet e as
ameaças são constantes, portanto é de suma importância que algumas medidas de
proteção sejam tomadas por parte do usuário para dificultar uma invasão em seu
computador.
Segundo CGIBR (2006) através de sua cartilha de segurança para internet,
parte II – Riscos envolvidos no uso da Internet e métodos de prevenção, para
configurar um programa leitor de emails de forma mais segura deve-se desligar as
opções que permitam abrir ou executar automaticamente arquivos ou programas
anexados às mensagens; desligar as opções de execução de Java Script e de
programas Java e desligar, se possível, o modo de visualização de emails no
formato HTML. Com estas configurações é possível evitar a propagação de vírus,
cavalos de tróia, entre outros.
Entretanto, as medidas de prevenção para minimizar os problemas trazidos
com os emails, de acordo com CGIBR (2006) através de sua cartilha de segurança
para internet, parte II – Riscos envolvidos no uso da Internet e métodos de
prevenção são: manter sempre a versão mais atualizada do programa leitor de
emails; não clicar em links que apareçam no conteúdo do email (digitar o endereço
diretamente no browser); evitar abrir arquivos ou executar programas anexados aos
emails, sem antes verificá-los com um antivírus; desconfiar sempre dos arquivos
anexados à mensagem, mesmo que tenham sido enviados por pessoas ou
29
instituições conhecidas; fazer o download de programas diretamente do site do
fabricante; evitar utilizar o programa leitor de emails como um browser, desligando o
modo de visualização de emails no formato HTML; Antes de efetuar transações via
internet é necessário que o usuário se certifique de que os sites são verdadeiros.
Normalmente as transações comerciais ou bancárias, envolvem informações
sensíveis, como senhas ou números de cartões de crédito. Portanto, é muito
importante que ao realizar transações via Web, a procedência dos sites seja
certificada e se estes sites são realmente das instituições que dizem ser.
De acordo com CGIBR (2006) através de sua cartilha de segurança para
internet, parte II – Riscos envolvidos no uso da Internet e métodos de prevenção é
fundamental que eles forneçam mecanismos de segurança para evitar que essas
informações sejam interceptadas. Ao tomar algumas medidas preventivas no uso de
browser o usuário estará se protegendo, as medidas a serem tomadas são: manter o
browser sempre atualizado; desativar a execução de programas Java na
configuração do browser; desativar a execução de Java Scripts antes de entrar em
uma página desconhecida e ativá-la ao sair; permitir que programas Ativos sejam
executados apenas quando vierem de sites conhecidos e confiáveis; manter maior
controle sobre o uso de cookies; bloquear janelas pop-up e permitindo apenas para
sites conhecidos e confiáveis quando realmente necessárias; certificar-se da
procedência do site e da utilização de conexões seguras ao realizar transações via
Web; somente acessar sites de instituições financeiras e de comércio eletrônico
digitando o endereço diretamente no browser (nunca clicar no link existente em uma
página ou em um email);
A escolha do browser , segundo CGIBR (2006) através de sua cartilha de
segurança para internet, parte II – Riscos envolvidos no uso da Internet e métodos
de prevenção, é de extrema importância no quesito proteção, afinal a navegação só
ocorre através dele. Para isso algumas características devem ser consideradas,
algumas destas características são: histórico de vulnerabilidades associadas ao
browser e o tempo decorrido entre a descoberta da vulnerabilidade e o lançamento
da correção; não instalação/execução automática de programas; facilidade para
identificar se o site usa conexão segura e para visualizar dados do certificado digital;
disponibilidade de mecanismos para desabilitar a execução de programas Java,
Java Script, ActiveX, entre outros; disponibilidade de mecanismos que permitam
bloquear (incluindo bloqueio seletivo) cookies e pop-up windows.
30
Não basta apenas instalar um bom antivírus é preciso fazer bom uso dele.
Para identificar se o antivírus realmente é bom CGIBR (2006) através de sua cartilha
de segurança para internet, parte II – Riscos envolvidos no uso da Internet e
métodos de prevenção, ensina que um bom antivírus deve: identificar e eliminar a
maior quantidade possível de vírus e outros tipos de malwares; analisar os arquivos
que estão sendo obtidos pela Internet; verificar continuamente os discos rígidos
(HDs), flexíveis (disquetes) e unidades removíveis (CDs, DVDs e pen drives) de
forma transparente ao usuário; procurar vírus, cavalos de tróia e outros tipos de
malwares em arquivos anexados aos emails; criar, sempre que possível, uma mídia
de verificação (disquete ou CD de boot) que possa ser utilizado caso um vírus
desative o antivírus que está instalado no computador; atualizar as assinaturas de
vírus e malwares conhecidos, pela rede, de preferência diariamente. Para fazer um
bom uso do antivírus segue as mesmas instruções: manter o antivírus e suas
assinaturas sempre atualizados; configura-lo para verificar automaticamente
arquivos anexados aos emails e arquivos obtidos pela Internet; configura-lo para
verificar automaticamente mídias removíveis (CDs, DVDs, pen drives, disquetes,
discos para Zip, etc.); configura-lo para verificar todo e qualquer formato de arquivo
(qualquer tipo de extensão de arquivo); Um antivírus não é capaz de impedir que um
atacante tente explorar alguma vulnerabilidade existente no computador e nem
evitar o acesso não autorizado a um backdoor instalado, para isso são utilizados
outros mecanismos de proteção conhecidos como firewalls que são dispositivos
combinados (software e hardware) utilizados para dividir e controlar o acesso entre
redes de computadores. Firewall pessoal é um tipo específico de software utilizado
para proteger um computador contra acessos não autorizados vindos da Internet. Se
alguém ou algum programa suspeito tentar se conectar ao computador, um firewall
bem configurado entra em ação para bloquear tentativas de invasão, podendo barrar
também o acesso a backdoors, mesmo se já estiverem instalados no computador.
Alguns programas de firewall permitem analisar continuamente o conteúdo das
conexões, filtrando vírus de email, cavalos de tróia e outros tipos de malwares, antes
mesmo que os antivírus entrem em ação. Também existem pacotes de firewall que
funcionam em conjunto com os antivírus, provendo um maior nível de segurança
para os computadores onde são utilizados.
Proteção também há quando se adotam medidas preventivas na utilização de
programas de troca de mensagens. Conforme Segundo CGIBR (2006) através de
31
sua cartilha de segurança para internet, parte II – Riscos envolvidos no uso da
Internet e métodos de prevenção, essas medidas são: manter o programa de troca
de mensagens sempre atualizado, para evitar que possua alguma vulnerabilidade;
não aceitar arquivos de pessoas desconhecidas, principalmente programas de
computadores; utilizar um bom antivírus, sempre atualizado, para verificar todo e
qualquer arquivo ou software obtido através do programa de troca de mensagens,
mesmo que venha de pessoas conhecidas; evitar fornecer muita informação; nunca
fornecer senhas e números de cartões de créditos; configurar o programa para
ocultar o endereço IP.
Todas essas medidas de segurança que ajudam na proteção do computador
podem ser visualizadas na figura 1.5.
Quando o usuário se descuida com as informações, deixa de instalar
programas de proteção ou não os atualiza, não percebe que o computador esta
vulnerável a ataques e invasões e que atos criminosos podem ocorrer através deste
computador sem seu conhecimento. Surge então, um cenário para a perícia forense
computacional investigar, assunto este que será abordado no próximo capítulo.
Escolher um
Browser confiável
Adotar medidas
preventivas :
no uso de
browswers
na troca de
mensagens
no uso de leitores
de email
Configurar
leitores de emails
de forma segura
Certificar-se da
confiabilidade do
site
Realizar
transações via
web somente em
sites seguros
Instalar um bom
antivírus
Fazer bom uso do
antivírus
Instalar firewall
pessoal
Figura 1.5 Medidas de segurança que ajudam na proteção do computador
Fonte: Elaborado pela autora, 2011.
32
2 INVESTIGAÇÃO FORENSE
Segundo Pereira (2010) diferentemente das provas físicas pertinentes aos
crimes convencionais, as comprovações que são encontradas em mídias
magnéticas são digitais, podendo existir de diversas formas, como: arquivos,
fragmentos de logs e outros indícios residentes em uma mídia e podem estar
relacionados criando uma evidência que indique a ocorrência de um crime ou auxilie
a identificação de um criminoso.
O processo de investigação em uma perícia forense computacional deve
ocorrer de forma sistêmica e cuidadosa a fim de se preservar as características
gerais do cenário encontrado para que não haja interferência alguma nas evidências
ou vestígios do ato ilícito ou as busca de informações que o comprovem.
De acordo com Rodrigues; Foltran (apud EOGHAN, 2002) o processo
investigativo da Forense Computacional deve assegurar a integridade dos vestígios
coletados, porém devido à volatilidade das evidências eletrônicas, essa tarefa é
considerada difícil e para garantir a integridade e confiabilidade das evidências
coletadas, o perito forense deve seguir procedimentos e protocolos reconhecidos
pela comunidade científica, e a cada passo, deve detalhar e revisar a documentação
desenvolvida, para que deste modo, evite erros durante o processo investigativo.
Para garantir maior credibilidade e aperfeiçoamento aos processos de
investigação aos crimes digitais existentes, afirma Rodrigues; Foltran (apud
BARYAMUREEBA, 2004) que surgiram diversos modelos de processo para a
investigação de crimes digitais. Um modelo internacionalmente utilizado de processo
investigativo trata-se do publicado pelo Departamento de Justiça dos Estados
Unidos. As etapas apresentadas a seguir são citadas neste modelo de processo
investigativo: preparação, coleta, exame, análise e apresentação.
2.1 ETAPAS DO PROCESSO DE INVESTIGAÇÃO
Para uma melhor compreensão do ciclo dos procedimentos forenses, Weber;
Pereira; Goldani (apud KEN, 2007) na figura 2.1, ilustra a transformação da mídia
33
em evidência. A primeira transformação ocorre quando os dados coletados são
examinados e as informações extraídas da mídia são analisadas por ferramentas
forenses; a segunda, quando a análise dos dados cria informações que processadas
resultam em evidências.
Figura 2.1 Etapas do processo de investigação.
Fonte: Ken, 2007, p. 9
2.1.1 Preparação do Material
Esta etapa é de grande importância, apesar de alguns modelos de processo
investigativo não considerarem propriamente uma etapa, será aqui onde todos os
equipamentos necessários e as ferramentas que darão apoio ou sustentabilidade ao
trabalho do perito devem ser preparados para seu uso e verificados seu correto
funcionamento, disponibilidade em quantidades necessárias, além de ter a técnica já
definida, para que nenhum erro ou problema possa surgir por negligência do
profissional. Uma vez que a pericia digital é de vital importância e necessita
preservar a volatilidade dos dados, sendo assim qualquer erro compromete todo o
trabalho forense.
De acordo com Cansian (2001) o perito conduzindo uma análise, deve isolar e
assegurar o perímetro, registrando a cena do crime da melhor forma possível para
uma busca sistemática por evidências, coletando e armazenando-as. Analisando o
tempo necessário e o risco na coleta e a veracidade das informações. Durante essa
análise é importante considerar que o perito não poderá confiar nos dados que
obtiver se não puder confiar nas suas ferramentas de trabalho para isso é importante
34
que ele possua seu próprio conjunto de ferramentas de software para inspeção,
captura e análise de dados.
Para garantir a integridade e confiabilidade de todo processo investigativo, de
acordo com Pereira, et. al. (apud FARMER; VENEMA, 2006) antes de coletar os
dados o perito deve: esterilizar as mídias que serão utilizadas ou usar mídias novas
a cada investigação; certificar-se de que todas as ferramentas (softwares) que serão
utilizadas estão devidamente licenciadas e prontas para utilização; verificar se todos
os equipamentos e materiais estão à disposição; quando chegar ao local da
investigação, o perito deve providenciar para que nada seja tocado sem seu
consentimento, com o objetivo de proteger e coletar todos os tipos de evidências; os
investigadores devem filmar ou fotografar o ambiente e registrar detalhes sobre os
equipamentos como: marca, modelo, números de série, componentes internos,
periféricos; manter a cadeia de custódia. Adotando esses cuidados, o perito poderá
iniciar a coleta de dados junto aos dispositivos eletrônicos apreendidos.
2.1.2 Coleta dos Dados
Esta é a fase de procura por informações e reconhecimento das evidências
relacionadas ao crime. Todos os dados os quais possam se relacionar ao ocorrido
serão coletados cuidadosamente para que seja preservada sua integridade. Haverá
uma identificação das peças e dos equipamentos, embalando-os, etiquetando-os e
registrando suas identificações, após a extração das informações tudo será
documentado.
Segundo Pereira, et. al. (apud KENT et al., 2006) a primeira etapa do
processo forense é identificar as possíveis fontes de dados. Onde as fontes de
dados mais comuns são os computadores pessoais, laptops e dispositivos de
armazenamento em rede. Sistemas estes que possuem diversos tipos de conexões
possibilitando o acesso a outras fontes de informações como: CDs e DVDs. Esses
equipamentos podem ainda possuir algumas portas de comunicação de vários tipos,
como: USB, Firewire, Flash card e PCMCIA em que outras mídias e dispositivos
externos de armazenamento de dados podem estar conectados.
35
Após a identificação dessas possíveis fontes de dados, o perito precisará
adquiri-los, para isso é necessário um procedimento de três etapas: estabelecer a
prioridade para a coleta dos dados, copiar os dados, garantir e preservar a
integridade dos dados. Conforme afirma Silva Filho (apud JUSTICE, 2001) que os
técnicos devem levar em conta a natureza volátil dos artefatos e manipular estes de
maneira a não perderem essas informações. Em concordância Cansian (2001)
afirma que durante a captura de dados de perícia, além de seguir a ordem de
volatilidade dos dados deve-se levar em conta a cadeia de confiança do sistema.
Esta cadeia de confiança esta associada com a maneira que o sistema operacional
executa um binário, apresentando como o sistema é perturbado durante a execução
de um comando ou programa. De acordo com Pereira, et. al.(2007) após a
certificação pelo perito de que os equipamentos estão protegidos e registrados a
coleta de dados pode ser inicializada, mas é fundamental que os equipamentos
permaneçam em seu estado de origem, se estiver ligado não pode ser desligado e
vice-versa para que não haja modificações nas evidências, o estado dos
equipamentos determinará a prioridade na classificação dos dados voláteis e nãovoláteis.
2.1.2.1 Dados Voláteis
Os dados armazenados na Random Access Memory (RAM), ou seja,
memória RAM são voláteis, ficam retidos apenas enquanto há uma alimentação de
energia, após essa interrupção toda a informação é perdida e não pode ser
restaurada. Assim também o conteúdo presente na memória cache, nos processos
em execução e na própria rede. Portanto, há uma necessidade urgente na coleta
desses dados.
A prioridade na coleta dos dados voláteis deve seguir a seguinte
classificação, segundo Pereira, et. al (apud KENT et al, 2006):
a) Conexões de rede (endereços de IP de origem e destino, estados das
conexões e programas associados a cada porta, lista de arquivos
montados remotamente e o estado da interface de rede);
36
b) Sessões de login (lista de usuários conectados, horário de conexão,
endereço de origem das conexões), cruzando essas informações é
possível reconstruir os fatos em ordem cronológica;
c) Conteúdo da memória: o espaço de troca e a memória principal contêm
dados acessados recentemente (senhas e últimos comandos executados),
a memória pode conter resíduos de dados nos espaços livres ou que não
estão em utilização.
d) Processos em execução (a lista e o estado de cada um dos processos do
sistema) identificam os programas em execução;
e) Arquivos abertos: comandos como o lsof presente em sistemas
operacionais Linux geram uma lista contendo o nome de todos os arquivos
que estão abertos no momento – essa informação pode ser um indicador
para o perito do que deve ser coletado e, posteriormente analisado;
f) Configuração de rede: essas configurações incluem informações como o
nome da máquina, o endereço IP e o MAC Address (Media Access Control)
de cada uma das interfaces de rede;
g) Data e hora do sistema operacional: a data e hora atual do sistema e as
configurações de fuso horário são importantes para a reconstrução
segundo a ordem cronológica de realização dos eventos.
2.1.2.2 Dados Não-Voláteis
De acordo com Pereira, et. al (2007) os dados não-voláteis são menos
sensíveis à manipulação, permanecem na máquina por longos períodos de tempo e
podem ser recuperados, sem alterações, após os equipamentos serem desligados.
Sendo de extrema importância a realização de cópias dos dados preservando
sempre a fonte original, nesta fase dois métodos podem ser utilizados: copiar dados
e garantir e preservar a integridade dos dados. O processo de cópia dos dados
envolve a utilização de ferramentas adequadas para a duplicação dos dados. A
garantia da integridade das evidências consiste na utilização de ferramentas que
aplicam algum tipo de algoritmo hash. Esse procedimento deve ser executado nos
37
dados originais e nas cópias, e as strings resultantes devem ser comparadas, para
certificar-se de que são idênticas, garantindo, assim, a integridade dos dados.
2.1.3 Exame
Esta é propriamente a fase de investigação, onde se procura pelos dados
escondidos, destruídos ou informações obscuras nas evidencias coletadas. Nesta
fase são utilizadas as ferramentas e técnicas específicas para cada tipo de dado
coletado e para a extração de todas as informações importantes para investigação, e
confecção do relatório.
Segundo Pereira (2010) o objetivo principal, na fase de examinar os dados, é
separar as informações relevantes ao caso de outras sem importância como os
arquivos do próprio sistema. Antes de iniciar o processo é preciso definir quais as
ferramentas serão utilizadas para o exame dos dados. Esta escolha está relacionada
ao tipo de investigação e informações procuradas. Diante disso, escolhem-se as
ferramentas que tragam um número maior de dados úteis. Geralmente se utiliza
filtros de arquivos, busca por palavras-chave, entre outros procedimentos para
agilizar a busca por evidências;
2.1.4 Análise
De acordo com Freitas (2003) a análise é o processo usado para descobrir
informações valiosas, a busca e extração dos dados relevantes para uma
investigação. Esse processo de análise pode ser dividido em duas camadas: análise
física que é a pesquisa de sequências e a extração de dados de toda a imagem
pericial, dos arquivos normais às partes inacessíveis da mídia e análise lógica que
consiste em analisar os arquivos das partições. O sistema de arquivos é investigado
no formato nativo, percorrendo-se a árvore de diretórios do mesmo modo que se faz
em um computador comum.
38
Segundo Pereira (2010) nesta fase as informações separadas anteriormente
são analisadas com o intuito de encontrar dados úteis e relevantes que auxiliem na
investigação do caso. Todos os dados encontrados considerados relevantes serão
correlacionados com informações referentes à investigação, para realizar a
conclusão e apresentação dos resultados.
2.1.4.1 Análise Física
Segundo Freitas (2003) durante a análise física são investigados os dados
brutos da mídia de armazenamento. Podendo-se começar a investigação por essa
etapa quando se está investigando o conteúdo de um disco rígido desconhecido ou
danificado. Após o software de criação de imagens houver fixado as provas do
sistema, os dados poderão ser analisados por três processos principais: pesquisa de
sequência, processo de busca e extração e extração de espaço subaproveitado e
livre de arquivos. Essas operações são realizadas na imagem pericial ou na cópia
restaurada das provas. As pesquisas de sequências produzem listas de dados
(URLs encontrados na mídia, endereços de email encontrados na mídia, ocorrências
de pesquisa de sequência com palavras sensíveis a caixa alta e baixa) que são úteis
nas fases posteriores da investigação.
2.1.4.1.1 Pesquisa de Sequência
De acordo com Freitas (2003) a pesquisa de sequência feita em todo o
sistema é o primeiro processo da análise física. A ferramenta utilizada de maneira
mais precisa é o StringSearch (Algoritmos de cadeia pesquisa) que retornam o
conteúdo da pesquisa de sequência e o deslocamento de byte do início do arquivo.
Ao se examinar os resultados obtém-se um prático roteiro para converter o
deslocamento em um valor de setor absoluto.
39
2.1.4.1.2 Processo de Busca e Extração
Conforme explicação de Freitas (2003) este processo se beneficia com a
pesquisa de sequência onde o aplicativo analisa uma imagem pericial em busca de
cabeçalhos dos tipos de arquivos relacionados ao tipo de caso em que se estiver
trabalhando. Quando encontra um, extrai um número fixo de bytes a partir do ponto
da ocorrência. Por exemplo, se estiver investigando um indivíduo suspeito de
distribuição de pornografia ilegal, analisa-se a imagem pericial e se extrai blocos de
dados que comecem com a seguinte sequência hexadecimal: $4A $46 $49 $46 $00
$01(sequência que identifica o início de uma imagem JPEG). Este tipo de extração
forçada de arquivos é bastante útil em sistemas de arquivos danificados ou quando
os utilitários comuns de recuperação de arquivos apagados são ineficientes ou
falham completamente.
2.1.4.1.3 Extração de Espaço Subaproveitado Livre de Arquivos
Freitas (2003) conclui que os sistemas de arquivos possuem resíduos
conhecidos como: espaço livre ou não-alocado, e espaço subaproveitado. Onde
espaço livre é qualquer informação encontrada em um disco rígido que no momento
não esteja alocada em um arquivo, ele pode nunca ter sido alocado ou ser
considerado como não-alocado após a exclusão de um arquivo. Portanto, o
conteúdo do espaço livre pode ser composto por fragmentos de arquivos excluídos.
Também pode estar em qualquer área do disco que não esteja atribuída a um
arquivo nativo. Para analisar o espaço livre é preciso trabalhar em uma imagem do
nível físico. Já o espaço subaproveitado ocorre quando dados são escritos na mídia
de armazenamento em blocos que não preenchem o tamanho de bloco mínimo
definido pelo sistema operacional. Ao se decidir extrair o espaço de arquivos
subaproveitados e livre torna o terceiro processo de análise física mais importante e
exige uma ferramenta que possa distinguir a estrutura particular de sistema de
arquivos em uso.
40
2.1.4.2 Análise Lógica
Freitas (2003) explica que durante um exame de arquivos lógicos o conteúdo
de cada partição é pesquisada com um sistema operacional que entenda o sistema
de arquivos e é neste estágio que se cometem a maioria dos erros de manipulação
das provas porque o objetivo básico é proteger as provas contra alterações, por esta
razão não se utiliza diretamente sistemas operacionais como o Windows
95/98/NT/2000/XP. Montar ou acessar a imagem restaurada a partir de um sistema
operacional que entenda nativamente o formato do sistema de arquivos é muito
arriscado, pois normalmente o processo de montagem não é documentado, não está
à disposição do público e não pode ser verificado. A imagem restaurada precisa ser
protegida e é por isso que se monta cada partição em Linux, em modo somente
leitura. O sistema de arquivos montado é então exportado, via Samba, para a rede
segura do laboratório onde os sistemas Windows 2000, carregados com
visualizadores de arquivos, podem examinar os arquivos.
2.1.5 Apresentação dos Resultados
Conforme Freitas (2003) a apresentação ou interpretação dos resultados é a
fase final de todo o processo de investigação também chamada de substanciação da
evidência onde é gerado um relatório que consistirá no enquadramento das
evidências dentro do formato jurídico como o caso será ou poderá ser tratado
podendo ser utilizado na esfera civil ou criminal ou mesmo em ambas.
Segundo Pereira (2010) o objetivo desta última etapa é apresentar um laudo
completo (relatório técnico) que informará com toda a veracidade possível aquilo que
foi encontrado nos dados analisados. Deve ser descrito todo o processo pericial
desde o início, ferramentas utilizadas e informações obtidas e confrontadas, tudo
que possa comprovar a integridade das informações relatadas no laudo.
De acordo com Weber; Pereira; Goldani (2009) um dos fatores mais
importantes na forense digital é a proteção das provas obtidas e o perito deve
garantir que o equipamento sob análise e os processos de coleta sejam
administrados com cuidado garantindo que: nenhuma evidência seja danificada,
41
destruída ou comprometida pelos procedimentos utilizados na investigação do
equipamento; o processo não crie nenhuma condição que possa inviabilizar uma
verificação futura; uma cadeia de custódia seja estabelecida e mantida; o tempo de
intervenção seja o menor possível se o equipamento estiver live forensics, toda
informação obtida tenha tratamentos éticos e legais, e não seja divulgada; todo o
processo deve ser documentado para permitir a sua reprodução.
2.2 TÉCNICAS DA FORENSE COMPUTACIONAL
As técnicas da forense computacional basicamente são divididas em dois
tipos de procedimentos: Live Forensics que ocorre com o equipamento ainda ligado
e algumas vezes ainda controlado pelo invasor, e Post-Mortem Forensics quando a
investigação é feitas nas cópias da mídia original.
Segundo Weber; Pereira; Goldani (apud CAR, 2007; SUT, 2008; COM, 2005)
A Live Forensiscs especifica procedimentos de investigação não intrusivos, em
equipamentos operacionais, e analisa informações persistentes (gravadas em
dispositivos de armazenamento) e voláteis (com tempo de vida restrito). A PostMortem Forensics implica na apreensão de equipamentos para análise em
laboratório e não inclui a análise de dados voláteis, como os gravados em memória
RAM, que são perdidos quando há a falta de energia. A forense Post-Mortem inclui
técnicas triviais de varredura por documentos, logs, imagens (fotografias),
identificação de data e hora de arquivos, análise de trilhas de uso do computador e
recuperação de dados excluídos.
2.2.1 Live Computer Forensiscs
O trabalho do perito computacional é complexo e deve ser feito
cuidadosamente, assim como suas escolhas. Decidir entre desligar o equipamento e
perder todas as informações voláteis ou iniciar a investigação com ele ainda
42
operando é bem difícil, afinal a escolha errada compromete totalmente a
investigação.
De acordo com Pereira, et. al. (2007) quando o sistema detecta a intrusão
gera alertas que indicam que o servidor web de uma organização esta sob um
determinado ataque, isto pode ser um falso positivo. Nesse momento é preciso
decidir entre a parada do servidor web ou mantê-lo on-line, essa decisão pode
significar perda de dinheiro à organização, porém tempo e condições para perito
realizar seu trabalho. O objetivo da live forensics (análise viva) é obter o máximo de
informações relacionadas ao contexto como: estado das conexões, conteúdo da
memória e dados referentes aos processos em execução, uma espécie de fotografia
da cena do crime. Se corretamente realizadas as duas técnicas, post-mortem e live
forensics, se complementarão e contribuirão para um resultado conclusivo e preciso.
2.2.2 Forense Post-Mortem
Conforme Pereira, et. al. (apud SKOUDIS; ZELTSER, 2003) quando o
processo forense é realizado nas mídias apreendidas o desafio é localizar entre um
grande volume de dados, aqueles que são pertinentes ao caso investigado. Nesse
cenário a fonte de informação é o conteúdo gravado nos meios de armazenamento
não voláteis. A partir de ferramentas, desenvolvidas ou instaladas e compiladas pela
equipe de investigação, os dados obtidos são confiáveis. Porém, se o cenário é de
dispositivos que não foram desligados é importante a certificação do perito de que
as ferramentas utilizadas para executar os procedimentos de coleta, exame e
análise dos dados não foram comprometidas gerando dados falsos ou omissão de
informações, como ocultar processos em execução no sistema operacional ou não
mostrar determinadas entradas do arquivo de log do servidor. Os rootkits são os
principais causadores ou fontes de dados falsos, pois podem modificar as
ferramentas (comandos) do sistema operacional e assim permanecerem com acesso
ao host e não serem identificados. Eles inserem filtros em determinadas partes do
sistema operacional que impedem a visualização de algumas informações, podem
atuar diretamente na aplicação, redirecionar as chamadas de sistema, substituir as
bibliotecas compartilhadas e subverter o kernel do sistema operacional. Pereira, et.
43
al. (apud CARRIER 2006) conclui que além dos tipos de dados que podem ser
coletados a diferença mais significativa entre live e post-mortem analysis é o grau de
confiança existente nos resultados obtidos porque as ferramentas e comandos
instalados no sistema podem ser modificados para produzir dados falsos ou os
dados podem ser contaminados ou adulterados por erro do perito.
2.2.3 Técnicas Anti-Forenses
Assim como os investigadores procuram por pistas ou evidências que possa
identificar os invasores, por outro lado, os criminosos tentam se esconder
desenvolvendo e utilizando técnicas para atrapalhar o trabalho investigativo. A essa
tentativa de encobrir e destruir os rastros digitais é denominada anti-forense.
Conforme Rodrigues; Foltran (apud REIS, 2003) a investigação de crimes
digitais, igualmente aos crimes do mundo real, não é uma tarefa trivial, ocorrem
muitas dificuldades na coleta e análise de vestígios deixados na máquina utilizada
para o ilícito, à quantidade de evidências deixadas é inversamente proporcional às
habilidades apresentadas pelo criminoso. Segundo Pereira; Weber; Goldani (apud
PERON; LEGARY, 2008) anti-forense são classificadas em quatro métodos:
destruição, ocultação, eliminação da fonte e falsificação. Cada categoria possui
ações distintas para comprometer a disponibilidade e utilidade da informação para o
processo forense. Evidências são destruídas para evitar que sejam encontradas,
que sejam úteis caso sejam localizadas, ou são ocultadas na tentativa de impedir
que sejam casualmente expostas ou dificultar a sua identificação por um
investigador. Possíveis fontes de evidências podem ser destruídas para garantir que
nunca estejam disponíveis, ou mascaradas e manipuladas para distribuir a culpa ou
corromper a sua validade, de modo que não possam ser utilizadas em juízo.
O desenvolvimento deste capítulo mostrou como o trabalho da perícia forense
computacional é importante e complexo. As informações até aqui apresentadas
ajudarão na compreensão dos capítulos seguintes onde será apresentado o sistema
gerenciador de banco de dados e como o sistema responderá ao ataque em massa.
44
3 SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS (SGBD)
Este capítulo abordará o funcionamento de um sistema gerenciador de banco
de dados, uma pequena introdução aos bancos de dados Oracle e Postgresql e
apresentará a ferramenta Apache JMeter.
Segundo Takai; Italiano; Ferreira (2005), o primeiro Sistema Gerenciador de
Banco de Dados (SGBD) comercial surgiu no final de 1960 e se baseava nos
sistemas de arquivos disponíveis na época, os quais não controlavam o acesso
concorrente por vários usuários ou processos. Os SGBDs evoluíram criando novas
estruturas de dados com o objetivo de armazenar informações e passaram a utilizar
diferentes formas de representação, ou modelos de dados, para descrever a
estrutura das informações contidas em seus bancos de dados. Hoje são utilizados
pelos SGBD‟s os seguintes modelos de dados: modelo hierárquico, modelo em
redes, modelo relacional e o modelo orientado a objetos.
De acordo com Ramakrishnam; Gehrke (2008) um SGBD é um software
projetado para auxiliar na manutenção e na utilização de vastos conjuntos de dados.
A alternativa para a não utilização do SGBD é armazenar os dados em arquivos e
escrever código específico de aplicativo para gerenciá-lo. As vantagens de se usar
um SGBD para gerenciar os dados são: independência de dados, acesso eficiente
aos dados, integridade e segurança dos dados, administração de dados, acesso
concorrente e recuperação de falha e tempo reduzido de desenvolvimento de
aplicativo.
Cacho; Benjamim (2010) explicam que o SGBD é um software com recursos
capazes de manipular as informações do banco e interagir com usuário e que para
um banco de dados funcionar é necessário um conjunto de quatro componentes
básicos: dados, hardware, software e usuários. A figura 3.1 ilustra os componentes
de um SGBD.
Elmasri; Navathe (2005) afirmam que apesar das vantagens no uso do SGBD,
em algumas situações esse sistema pode envolver custos altos e desnecessários
que poderiam ser substituídos pelo processamento tradicional de arquivos. Esses
custos elevados na utilização do SGBD são devidos a investimentos iniciais em
hardware, software e treinamento; generalidade que o SGBD fornece para a
45
definição e processamento dos dados; custos elevados para oferecer segurança,
controle de concorrência, recuperação e funções de integridade. Indica-se o uso de
arquivos convencionais nas seguintes circunstâncias: banco de dados e aplicações
simples, bem definidas e sem previsão de mudanças; quando houver requisitos de
tempo real (real-time) para alguns programas difíceis de serem atendidos por causa
da sobrecarga (overhead) do SGBD e quando o acesso de múltiplos usuários aos
dados não for necessário.
Hardware
Software
Usuários
Banco de Dados
Dados
Figura 3.1 Componentes básicos para o funcionamento de um banco de dados
Fonte: Cacho; Benjamim, 2010, modificado pela autora
Ramakrishnam; Gehrke (2008) complementa que se o desempenho
especializado ou solicitações de manipulação de dados são essenciais em um
aplicativo, pode-se optar por não utilizar um SGBD, especialmente se os benefícios
do SGBD não forem exigidos como consultas flexíveis, segurança, acesso
concorrente e recuperação de falha. Entretanto, na maioria das situações de
gerenciamento de dados em grande escala o SGBD é uma ferramenta
indispensável. O SGBD trata da independência de dados de forma abstrata que
oculta os detalhes. Quanto ao acesso eficiente aos dados o SGBD utiliza várias
técnicas sofisticadas para seu armazenamento e recuperação, especialmente se
ocorrerem armazenamentos externos. No tocante à integridade e segurança dos
dados o SGBD força restrições de integridade e controles de acesso que governam
quais os dados visíveis a diferentes classes. Já a administração de dados que
poderão ser compartilhados por diversos usuários quando centralizados oferecem
uma melhoria significativa. No acesso concorrente e recuperação de falha o SGBD
46
protege o usuário dos efeitos de falhas de sistema e planeja o acesso concorrente
de forma que o usuário acredite que os dados estão sendo acessados
exclusivamente por ele.
Na abstração de dados ignoram-se as características menos importantes
omitindo-se os detalhes para se concentrar nos aspectos mais importantes,
conforme Ramakrishnam; Gehrke (2008), os dados de um SGBD são descritos em
três níveis de abstração: o conceitual, o físico e o externo, mostrado pela figura 3.2.
O esquema conceitual, também chamado de esquema lógico, descreve todas as
relações e os dados que estão armazenadas no banco de dados. O esquema físico
é o nível mais baixo de abstração que resume como as relações descritas no
esquema
conceitual
são
realmente
armazenadas
em
dispositivos
de
armazenamento secundário como discos e fitas, suas decisões baseiam-se na
compreensão de como o dado será Acesso em. O esquema externo é o nível de
visão do usuário, permite que o acesso aos dados seja customizado e autorizado no
nível dos usuários individuais ou em grupos, em resumo são as partes do banco de
dados que o usuário tem acesso de acordo com a sua necessidade.
Esquema
Esquema
Esquema
Esquema
Externo 1
Externo 2
Externo 3
Externo N
Esquema Conceitual ou Lógico
Esquema Físico
(Nível mais baixo de abstração)
Visão do usuário
Descreve as relações e os dados
armazenados no banco de dados
Resume as relações descritas
no esquema conceitual
Armazenamento
Figura 3.2 Níveis de abstração
Fonte: Cacho; Benjamim, 2010, modificado pela autora
3.1 ORACLE DATABASE 10G EXPRESS EDITION
O Oracle Database 10g Express Edition é uma versão de banco de dados
relacional gratuita que será utilizada neste trabalho para a realização do teste de
47
desempenho. Segundo Rivas Júnior (2006) essa versão de banco de dados gratuita
é de fácil instalação e gerenciamento, permite a utilização de uma interface para
administrar o banco de dados, criar tabelas, visões (views) e outros objetos de
banco de dados, importar, exportar e visualizar dados de tabelas, executar consultas
(queries) e conjuntos de comandos (SQL Scripts), além de gerar relatórios.
De acordo com Rivas Júnior (2006) o objetivo de um banco de dados é
armazenar e recuperar informações relacionadas e um servidor de banco de dados
é a chave para a solução do problema de gerenciamento de informações porque
gerencia uma grande quantidade de dados em um ambiente multiusuário onde
vários usuários podem concorrer ao acesso a um mesmo dado. Um banco de dados
Oracle possui estruturas lógicas e estruturas físicas, assim o armazenamento dos
dados podem ser gerenciados sem afetar o acesso às estruturas lógicas de
armazenamento. As estruturas lógicas do Oracle incluem uma coleção de objetos de
um banco de dados (schemas), bloco de dados (data blocks), extensões (extens),
segmentos (segments) e unidades lógicas de armazenamento (tablespaces).
Enquanto as estruturas físicas do banco de dados Oracle possui três arquivos no
banco de dados: arquivos de controle (Control Files) que armazenam as
informações para manter e verificar a integridade de um banco de dados, como o
nome do banco de dados, o time stamp, nomes e local de arquivos de dados de
redo log, essas informações são usadas para identificar os arquivos de dados e o
arquivo de redo log, caso ocorra falhas no sistema os arquivos de controle são
utilizados juntos com os arquivos de redo log para a recuperação do banco de
dados; arquivos de dados (Data Files) que armazena o dicionário de dados e os
objetos do usuário e as ultimas alterações submetidas a commit feita nos dados;
arquivos de redo log que registra as alteração feitas nos dados. Todo banco de
dados oracle tem no mínimo dois grupos de arquivos de redo log cada um com pelo
menos um arquivo de redo log, para proteger os arquivos contra falha no disco é
mantida uma cópia do arquivo em diferentes discos chamados de arquivos de log
espelhados.
O Oracle é considerado um banco de dados objeto relacional, segundo Takai;
Italiano; Ferreira (2005) o modelo relacional revelou-se ser o mais flexível e
adequado ao solucionar os vários problemas que se colocam no nível da concepção
e implementação da base de dados. A estrutura fundamental deste modelo é a
relação (tabela). Uma relação é constituída por um ou mais atributos (campos) que
48
traduzem o tipo de dados a armazenar. Cada instância do esquema (linha) é
chamada de tupla (registro). O modelo relacional não tem caminhos pré-definidos
para se fazer acesso aos dados como nos modelos que o precederam, ele
implementa estruturas de dados organizadas em relações. Porém, para se trabalhar
com essas tabelas, algumas restrições precisaram ser impostas para evitar aspectos
indesejáveis, como: repetição de informação, incapacidade de representar parte da
informação e perda de informação definidas como restrições de: integridade
referencial, chaves e integridade de junções de relações. A Figura 3.3 mostra
exemplos de tabelas sob o modelo relacional.
Cod_Cliente
Nome
Rua
Cidade
Num_CC
Saldo
1
Pedro
A
São Paulo
20121
1200
2
Maria
B
Jundiai
21582
1320
21352
652
Cod_Cliente
Num_CC
1
20121
2
21582
2
21352
Figura 3.3 Modelo Relacional Cliente - Conta Corrente
Fonte: Takai; Italiano; Ferreira. 2005, p 8.
Segundo Rivas Júnior (2006) para que um banco de dados seja considerado
relacional ele deve seguir as 12 regras definidas por Edgar Frank Cood em 1970:
a) Todas as informações em um banco de dados são de forma explícita no
nível lógico e exatamente em apenas uma forma – por valores em tabelas;
b) Cada um em qualquer valor atômico em um banco de dados relacional
possui a garantia de ser logicamente acessado pela combinação de nome de tabela,
do valor da chave primária e do nome da coluna;
c) Valores nulos devem ser suportados de forma sistemática e independente
do tipo de dado para representar informações inexistentes e informações
inaplicáveis;
d) A descrição do banco de dados é representada no nível lógico da mesma
forma que os dados ordinários, permitindo que os usuários autorizados utilizem a
mesma linguagem relacional aplicada aos dados regulares;
49
e) Um sistema relacional pode suportar várias linguagens e várias formas de
recuperação de informações. Entretanto, deve haver pelo menos uma linguagem,
com uma sintaxe bem definida e expressa por conjuntos de caracteres, que suporte
de forma compreensiva todos os seguintes itens: definição de dados, definição de
views, manipulação de dados (interativa e embutida em programas), restrições de
integridade, autorizações e limites de transações (begin, commit e rollback);
f) Todas as views que são teoricamente atualizáveis devem também ser
atualizáveis pelo sistema;
g) A capacidade de manipular um conjunto de dados (relação) através de um
simples comando deve-se estender às operações de inclusão, alteração ou exclusão
de dados;
h) Programas de aplicação permanecem logicamente inalterados quando
ocorrem mudanças no método de acesso ou na forma de armazenamento físico;
i) Mudanças nas relações e nas views provocam pouco ou nenhum impacto
nas aplicações;
j) As aplicações não são afetadas quando ocorrem mudanças nas regras de
restrições de integridade;
k) As aplicações não são logicamente afetadas quando ocorrem mudanças
geográficas dos dados;
l) Se um sistema possui uma linguagem de baixo nível, essa linguagem não
pode ser usada para subverter as regras de integridades e restrições definidas no
nível mais alto.
Ainda segundo Rivas Júnior (2006) o Oracle Database Express inclui uma
interface gráfica para desenvolvimento de aplicações baseadas na Web (Oracle
Applications Express release 2.21), pode-se utilizar das linguagens e ferramentas
Oracle ou de terceiros para desenvolvimento de diversas aplicações utilizando o
Oracle Database 10g Express Edition.
3.2 POSTGRESQL
Segundo Postgresql (2005), o PostgreSQL é um sistema de gerenciamento
de banco de dados objeto-relacional (SGBDOR) de código aberto que suporta
50
grande parte do padrão SQL e oferece muitas funcionalidades modernas, como:
comandos complexos, chaves estrangeiras, gatilhos, visões, integridade transacional
e controle de simultaneidade multiversão, foi desenvolvido baseado no Postgres
versão 4.2, pioneiro em vários conceitos que somente se tornaram disponíveis muito
mais tarde em alguns sistemas de banco de dados comerciais, desenvolvido pelo
Departamento de Ciência da Computação da Universidade da Califórnia em
Berkeley. Por ser um sistema de gerenciamento de banco de dados relacional o
PostgreSQL permite aos desenvolvedores integrar ao banco de dados seus próprios
tipos de dado como novos: tipos de dados, funções, operadores, funções de
agregação, métodos de índice, linguagens procedurais e métodos personalizados.
Devido à sua licença liberal, o PostgreSQL pode ser utilizado, modificado e
distribuído por qualquer pessoa para qualquer finalidade, seja particular, comercial
ou acadêmica, livre de encargos.
De acordo com Opengeo (2007), o PostgreSQL é o SGBD que possibilitou o
desenvolvimento de soluções corporativas com uma melhor relação custo/benefício,
seu ponto forte é a sua capacidade de tratar grandes volumes de dados com alta
performance e escalabilidade, ou seja, a sua arquitetura pode ser continuamente
ampliada de acordo com a demanda dos usuários, neste contexto, entram as
aplicações na área de geotecnologias que necessitam de uma infra-estrutura
robusta e em contínua expansão. Em estudos realizados em universidades e centros
de pesquisa, o PostgreSQL tem apresentado performance, no mínimo, 20% superior
aos SGBD's comerciais mais conhecidos. As principais características do
PostgreSQL são: licenciamento BSD (licença de código aberto), esta licença garante
total liberdade de uso, alteração, modificação e distribuição do sistema, também
permite que versões proprietárias e comerciais sejam criadas a partir do sistema
licenciado nestes termos; SGBD Objeto-Relacional (classes e hierarquia), o
PostgreSQL está na mesma categoria de outros SGBD's que evoluíram da
arquitetura de relacional para objeto-relacional, ou seja, implementaram algumas
definições de orientação à objeto; modularidade, este recurso tem facilitado o
trabalho dos desenvolvedores que desejam implementar novas funcionalidades. Um
exemplo disso, foi a criação do módulo PostGIS, contendo inúmeras funcionalidades
para o desenvolvimento de aplicações que tratam a geoinformação; suporte nativo
para inúmeras plataformas, o PostgreSQL tem uma versão nativa para a plataforma
Windows sem precisar de uma camada de emulação, bem como para diversas
51
outras plataformas: Linux, Unix, Mac, etc.; inúmeras interfaces nativas. O
PostgreSQL pode ser Acesso em através das seguintes interfaces: ODBC, JDBC, C,
C++, PHP, Perl, TCL, ECPG, Python e Ruby. Neste quesito, o PostgreSQL supera
todos os demais SGBD's, pois nenhum outro possui tanta flexibilidade; pontos de
Salvamento (Savepoints), esse recurso do padrão SQL permite que apenas partes
específicas de uma transação sejam canceladas sem abortar a operação inteira. Isto
beneficia desenvolvedores de aplicações que precisam de transações complexas
com tratamento de erro; recuperação a partir dos logs de transação (Point in Time
Recovery). É possível a recuperação total dos dados a partir dos logs gerados
automaticamente a cada transação. Isto fornece uma alternativa muito esperada às
cópias de segurança de hora em hora ou diárias para serviços de dados críticos;
tablespaces, recurso crucial para os administradores de sistemas com vários
gigabytes de data warehousing, as tablespaces permitem a alocação de grandes
tabelas e índices nos seus próprios discos ou conjuntos de discos, aumentando
assim a performance das consultas.
Segundo Postgresql (2005), o PostgreSQL utiliza a arquitetura básica clienteservidor, ou seja, uma sessão do PostgreSQL consiste nos seguintes processos
cooperando entre si: um processo servidor, que gerencia os arquivos de banco de
dados, aceita conexões dos aplicativos cliente com o banco de dados, e executa
ações no banco de dados em nome dos clientes; O programa servidor de banco de
dados (postmaster); O aplicativo cliente do usuário (frontend) que deseja executar
operações de banco de dados. Esses aplicativos cliente podem ter naturezas muito
diversas: o cliente pode ser uma ferramenta no modo caractere, um aplicativo
gráfico, um servidor Web que acessa o banco de dados para mostrar páginas Web,
ou uma ferramenta especializada para manutenção do banco de dados. O cliente e
o servidor podem estar em hospedeiros diferentes. Neste caso, se comunicam
através de uma conexão de rede TCP/IP. Os arquivos que podem ser acessados na
máquina cliente podem ser inacessíveis para a máquina servidora (ou somente
podem ser acessados usando um nome de arquivo diferente). O servidor
PostgreSQL pode tratar várias conexões simultâneas de clientes. Para esta
finalidade é iniciado um novo processo (fork) para cada conexão. Deste ponto em
diante, o cliente e o novo processo servidor se comunicam sem intervenção do
processo postmaster original. O postmaster está sempre executando aguardando
52
por novas conexões dos clientes, enquanto os clientes e seus processos servidor
associados surgem e desaparecem sem que o usuário perceba.
3.3 APACHE JMETER
Segundo Santos; Santos Neto (2008) o Apache JMeter é uma aplicação
desktop projetada para a realização de testes de desempenho e estresse em
aplicações cliente/servidor, tais como aplicações Web, pode ser usado para simular
cargas de trabalho em servidor de rede, aplicações ou mesmo em um objeto,
testando sua robustez. É uma ferramenta Open Source resultado do trabalho de
milhares de pessoas, totalmente escrita em Java, o JMeter é compatível com
qualquer ambiente capaz de suportar a máquina virtual Java versão 1.4 ou superior.
De acordo com Santos; Santos Neto (2008) o JMeter também permite a
criação de testes para diversos protocolos, como HTTP, JDBC, FTP, SOAP, dentre
outros, podendo inclusive ser utilizada para testar objetos implementados em Java.
Além de poder ser usado para criação e execução de testes de desempenho e
estresse, também permite a realização de testes funcionais. A organização dos
elementos que compõe o teste é feita através de uma árvore hierárquica, cuja raiz é
o Plano de Teste (TestPlan) e alguns elementos da árvore de teste são hierárquicos,
como os Listeners (relatórios) e as Assertions (asserções), pertencendo e
referenciando a outros elementos da ordem hierárquica superior. Outros elementos,
como os Samplers (requisições), são primariamente ordenados e, portanto, a ordem
na qual aparecem verticalmente na árvore determina sua ordem de execução. Essa
organização também é refletida no arquivo XML gerado pela ferramenta para a
persistência dos elementos, cada elemento do script de teste corresponde a um
elemento na estrutura XML. A execução dos testes pode ocorrer de duas formas: em
uma máquina só ou de forma distribuída, na qual o esforço do teste é distribuído
dentre diversas máquinas. A partilha do esforço do teste é uma característica muito
importante e muitas vezes necessária para a correta execução dos testes de
desempenho e estresse. É através dela que os testadores podem conseguir uma
maior fidelidade na recriação de cenários de teste, pois com a distribuição da
53
execução
do
teste
entre
várias
máquinas
evitam-se
gargalos
tanto
de
processamento quanto de caminhos na rede do sistema sob teste.
Conforme Santos; Santos Neto (2008) um Plano de Testes é um conjunto de
elementos que descrevem uma série de passos que serão executados. Assim, um
teste bem definido geralmente incorpora vários componentes do JMeter. Para
adicionar, deletar, copiar ou mover um elemento (componente) de um script de teste,
basta clicar com o botão direito do mouse sobre o elemento e escolher a opção
desejada. Um componente também pode "conter" outro componente. Nesse caso,
diz-se que um é o "filho", o que está a uma hierarquia inferior, e o outro é o "pai",
que está em uma hierarquia superior a do filho e com o qual o filho está ligado. Os
elementos
básicos
que
devem
estar
presentes
em
todos
os
testes
criados/executados são: Test Plan (componente que representa o plano de teste);
WorkBench (é uma espécie de área de trabalho, todos os elementos que forem seu
filho não serão executados apenas serão utilizados como área de armazenamento
temporário, para a composição do teste); Thread Group (contém a configuração do
grupo de usuários virtuais, onde cada usuário corresponde a uma thread que é
lançada e controlada pelo JMeter e que simula a navegação do usuário na aplicação
sob teste). Os dois primeiros elementos estão presentes no script de teste desde o
momento em que o JMeter é iniciado. Já o Thread Group deve ser adicionado
manualmente. A primeira ação a ser feita após a adição do Thread Group é
configurar o Test Plan definindo um nome identificador para o Plano do Teste,
adicionando comentários, criando variáveis globais, que são visíveis por todas as
requisições do plano de teste em questão, além de permitir a definição de
parâmetros ou comportamentos comuns a todos os testes. Além disso, o Test Plan
contém duas caixas de seleção (checkbox): Functional Testing (se selecionada faz
com que o JMeter grave os dados retornados do servidor para cada requisição feita.
Essa opção interfere significamente no desempenho da ferramenta e, portanto, não
deve estar marcada no caso de um teste de desempenho ou estresse); Run each
Thread Group separately ( pode-se definir se os grupos de usuários virtuais serão
executados simultaneamente ou sequencialmente). Após configurar o Test Plan, o
testador deve configurar o Thread Group definindo suas propriedades: Number of
threads (o número de threads / usuários virtuais que executarão os testes), cada
thread irá executar o plano de teste de forma independentemente das outras threads
que estão executando, por isso threads múltiplas são usadas para simular conexões
54
concorrentes na aplicação sob teste; Ramp-Up Period (define a frequência de
lançamento das threads, se forem definidas 10 threads e um ramp-up de 100s,
então o JMeter levará 100s para iniciar todas as threads, ou seja, uma thread será
iniciada a cada 10s); Loop Count (define quantas vezes o plano de teste será
executado, caso seja marcado o checkBox Foreve, o teste entrará em execução
infinta e o valor definido no Loop Count será desconsiderado); Scheduler (pode-se
definir um horário para o início e término da execução dos testes, essa propriedade
é opcional. Samplers são componentes que representam cada requisição que o
JMeter fará ao servidor quando o plano de teste for executado. No caso de um
sistema Web, cada operação ou mudança de página corresponde a uma requisição.
O JMeter contém vários tipos de Samplers, segundo Santos; Santos Neto
(2008) como por exemplo, FTP Request, HTTP Request, JDBC Request, dentre
outros. Cada Sampler contém várias propriedades que podem ser configuradas. O
HTTP Request permite o envio de requisições HTTP/HTTPS ou arquivos para um
servidor Web, suas propriedades são: Name (nome da requisição); Server (URL ou
endereço ip do servidor Web); Port (porta a ser usada, por default
já está
configurada como 80); Protocol (define se a requisição é HTTP, HTTPS or FILE);
Method (define o método de submissão dos dados). Os principais métodos são o
GET (os dados são enviados na própria URL) e POST (onde os dados são enviados
ocultamentena requisição); Path (o path da página testada); Send Parameters With
the Request (adiciona-se todos os parâmetros e respectivos valores para serem
enviados junto com a requisição). Além da construção dos testes, a análise dos seus
resultados é importante para se identificar as áreas críticas do sistema. Os
resultados da execução em forma de gráfico aliados aos resultados exibidos no View
Results Tree, adicionado ao plano de teste, podem ser utilizados pelo testador para
avaliar sobre o atendimento da aplicação aos requisitos de desempenho existentes.
55
4 ESTUDO DE CASO
Segundo Santos; Santos Neto (2008) há uma diferença entre teste de
desempenho e teste de estresse, o teste de desempenho tem como objetivo testar
se determinado sistema é capaz de lidar com a carga definida nos requisitos e o
teste de estresse consiste em submeter o sistema a situações anormais de uso,
como grandes quantidades de carga, comportamento anormal de portas em um
servidor, redução dos recursos computacionais disponíveis, entradas não realistas
de dados.
Baseado nestas informações procurou-se testar se o sistema obteve sucesso
ao executar as requisições solicitadas e também submetê-lo a uma carga maior para
verificar a possibilidade de queda de servidor. Para a realização do teste de
desempenho foi utilizado um sistema operacional de 32 bits, Windows 7 Starter,
processador Intel Atom CPU N455 @ 1.66GHz 1.67GHz, memória RAM 2,00GB e a
ferramenta Apache JMETER na versão 2.3.4 disponível para download no site:
http://jakarta.apache.org/jmeter. Inicialmente foi criado uma página web na
ferramenta NetBeans IDE 6.9.1 para fazer a conexão aos bancos de dados Oracle
Database 10g Express Edition e PostgreSql 8.4 e foi inserido 9714 registros em
cada um deles. Foi definido realização dos testes através de dez experimentos. Os
fatores dos experimentos são quantidade de clientes e intervalos de requisições, os
níveis de cada um dos fatores são 50, 100, 250, 500 e 5000 clientes e requisições a
cada 1 e 2 milissegundos (ms.) e cada experimento foi realizado por dez vezes. Os
testes foram realizados na ferramenta Apache JMeter e, para isso, criou-se um
plano de teste que foi nomeado Teste de carga conforme a figura 4.1.
Figura 4.1 Inicializando o Plano de Teste
Fonte: elaborado pela autora, 2011.
56
O próximo passo foi criar um grupo de usuários para simular as requisições e
definir o tempo de inicialização de cada usuário como mostra a figura 4.2.
Figura 4.2 Inserindo o Grupo de Usuários
Fonte: elaborado pela autora, 2011.
Acrescentou-se o testador de Requisição HTTP para realizar os testes onde
foi preenchido com as informações necessárias, nome do servidor, número da porta
e o caminho completo do endereço da aplicação, as informações podem ser
visualizadas na figura 4.3. Nestes testes, o website busca apenas um registro entre
todos os 9714 registros do banco de dados e espera-se que com determinada carga
de requisições, o servidor não suporte e consequentemente, tenha perda de
performace ou até uma possível queda de servidor.
Figura 4.3 Inserindo Testador de Requisição HTTP
Fonte: elaborado pela autora, 2011.
Para visualizar e analisar os resultados é necessário acrescentar um ouvinte,
definiu-se três formas para visualizar os resultados obtidos pelo ouvinte. A figura 4.4
57
mostra o visualizador Spline que apresenta através de gráfico o resultado do tempo
de resposta levado para a execução do teste.
Figura 4.4 Visualização dos Resultados pelo visualizador Spline
Fonte: elaborado pela autora, 2011.
Através da tabela de resultados, ilustrado pela figura 4.5 é possível visualizar,
por amostra, a quantidade de usuários virtuais, o tempo de início de cada usuário,
tipos de requisição, tempo de cada amostra em milissegundos, estado, quantidade
de bytes utilizados em cada requisição, número das amostras, média e desvio
padrão.
Figura 4.5 Visualização dos Resultados em Tabelas
Fonte: elaborado pela autora, 2011.
58
O gráfico de resultados, conforme figura 4.6 apresenta uma visualização mais
completa com número de amostras, última amostra, média, desvio padrão, vazão
(quantidade de amostras por segundo) e mediana.
Figura 4.6 Visualização dos Resultados com Gráficos
Fonte: elaborado pela autora, 2011.
De acordo com Santos; Santos Neto (2008) os testes de desempenho
consistem em testar um sistema quanto aos seus requisitos de desempenho, como:
latência que é o tempo entre uma requisição e a resposta da operação requisitada,
vazão que é o número de operações que o sistema é capaz de completar em um
período de tempo, escalabilidade pode ser definido como quantidade de usuários
simultâneos que o sistema pode lidar e o uso de recursos de máquina, por exemplo
memória e processamento.
A seguir descrevem-se todos os experimentos realizados de acordo com os
fatores números de clientes e intervalo das requisições e compara-se os resultados
em cada um dos bancos.
4.1 Experimentos Realizados no Banco Oracle
Para o primeiro experimento foi simulado 50 usuários virtuais chamados de
clientes e o intervalo entre uma requisição e outra de 1ms resultando em uma
59
resposta em tempo médio de 1085 ms com um desvio padrão de 80 atingindo a
mediana em 1071 ms. Quando o intervalo foi modificado para 2 ms o tempo de
resposta caiu para 1064 com um desvio padrão de 65 e mediana 1052.
No segundo experimento o número de clientes aumentou para 100,
observando os mesmos intervalos de requisições anteriores, quando o número de
clientes dobrou o desempenho foi melhor porque o tempo de resposta média para o
intervalo de 1 ms foi de 1082 ms com desvio padrão de 62 e mediana de 1075 e
tempo médio e resposta de 1096 com desvio padrão de 72 e mediana 1082 no
intervalo de 2 ms.
Quando o número de clientes foi alterado para 250 e mantido os intervalo de
requisições foi obtido os resultados de tempo de resposta médio 1097 ms, desvio
padrão 58 e mediana 1088 para intervalo de 1 ms e média de 1099ms, desvio
padrão 76 e mediana 1084.
Ao alterar o número de clientes para dez vezes mais, ou seja, 500 usuários
virtuais o desempenho foi de tempo de resposta 1122 ms, desvio 120 e mediana
1090 para requisições a cada 1 ms e de 1101 com desvio de 75 e mediana de 1085
para requisições a cada 2 ms.
No último experimento com 5000 clientes e intervalo de 1 ms o tempo de
resposta médio foi de 1221 com desvio padrão de 440 e mediana 1089. E tempo de
resposta médio de 1382 com desvio padrão de 1071 e mediana para requisições a
cada 2 ms.
Concluindo-se que quando este banco de dados sofre uma sobrecarga de
dados ele irá trabalhar mais rápido para não perder performace, conforme
informações apresentadas no quadro 4.1.
Quadro 4.1 – Resultados obtidos no Banco Oracle
Quantidade de
Intervalo das
Clientes
Requisições
50
1
50
2
100
1
100
2
250
1
250
2
500
1
500
2
5000
1
5000
2
Fonte: elaborado pela autora, 2011.
Média (ms)
1085
1064
1082
1096
1097
1099
1122
1101
1221
1382
Desvio Padrão
80
65
62
72
58
76
120
75
440
1071
Mediana
1071
1052
1075
1082
1088
1084
1090
1085
1089
1095
60
4.2 Experimentos Realizados no Banco PostgreSql
Este experimento foi realizado com 50 clientes em intervalos de 1ms entre as
requisições resultando em um tempo médio de resposta de 1042 ms com um desvio
padrão de 72 atingindo a mediana em 1007 ms. ao modificar o intervalo para 2 ms o
tempo de resposta caiu para 1037 com um desvio padrão de 37 e mediana 1011.
No segundo experimento o número de clientes dobrou para 100 e foi
observado que para o intervalo de 1 ms a média foi de 1049 ms com desvio padrão
de 41 e mediana de 1019 e o tempo de resposta 1027 com desvio padrão de 38 e
mediana 1026 para intervalos de 2 ms.
Aumentando a quantidade de clientes para 250 em intervalos de 1ms obtevese os resultados de tempo de resposta de 1051 ms, desvio padrão 47 e mediana
1045. Já para intervalos de 2 ms, média de 1041 ms, desvio padrão 44 e mediana
1026.
Para o experimento com 500 clientes o de tempo de resposta 1073 ms,
desvio 57 e mediana 1069 para requisições a cada 1 ms e de 1065 com desvio de
46 e mediana de 1064 para requisições a cada 2 ms. O último experimento com
5000 clientes em intervalos de 1 ms e de 2 ms observou-se uma perda de
desempenho e a sobrecarga gerou uma queda de servidor.
Concluiu-se que quando este banco de dados sofre uma sobrecarga de dados
seu desempenho é melhor quando existe um intervalo maior entre uma requisição e
outra, porém não suporta uma sobrecarga muito grande, isso pode ser observado
através do quadro 4.2.
Quadro 4.2 – Resultados obtidos no Banco PostgreSql
Quantidade de
Intervalo das
Clientes
Requisições
50
1
50
2
100
1
100
2
250
1
250
2
500
1
500
2
5000
1
5000
2
Fonte: elaborado pela autora, 2011.
Média (ms)
1042
1037
1049
1027
1051
1041
1073
1065
-
Desvio Padrão
72
37
41
38
47
44
57
46
-
Mediana
1007
1011
1019
1026
1045
1026
1069
1064
-
61
4.3 Comparativo Oracle X PostgreSql
Os resultados de cada teste já foram apresentados separadamente, no
entanto através dos gráficos 1 e 2,
pode-se visualizar de forma mais nítida os
resultados obtidos.
Tempo Médio de Resposta
Desempenho do Banco Oracle
1600
1400
1200
1000
800
600
400
200
0
10851064
10821096
10971099
11221101
1382
1221
1 ms
2 ms
50
100
250
500
Quantidade de Clientes
5000
Gráfico 1 – Resultados de desempenho do Banco Oracle
Fonte: elaborado pela autora, 2011.
Observa-se que o banco Oracle busca uma estabilidade no tempo de
resposta que variou entre 1064 e 1382 ms e não houve grandes alterações quando
se modificou o tempo de requisição e a quantidade de clientes.
Enquanto que no banco Postgresql o tempo de resposta variou entre 1027 e
1073 ms, as requisições enviadas a cada 2 ms tiveram uma resposta mais rápida.
Este banco não suportou uma carga de 5000 requisições.
Desempenho do Banco PostgreSql
Tempo Médio de Resposta
1200
10421037
10491027
10511041
10731065
1000
800
600
1 ms
400
2 ms
200
0
0
0
50
100
250
500
Quantidade de Clientes
Gráfico 2 – Resultados de desempenho do Banco PostgreSql
Fonte: elaborado pela autora, 2011.
5000
62
CONCLUSÃO
A constante evolução tecnológica é inevitável e seus benefícios sempre serão
superiores à criminalidade crescente, daí a importância de se estar atento ao
surgimento de novas metodologias, técnicas e perfis para se combater este mal.
As etapas do processo e técnicas da investigação forense devem
acompanhar essa evolução, entretanto se a legislação ficar parada no tempo todo o
trabalho de uma equipe multidisciplinar será perdido, afinal não terá validade perante
a justiça.
O computador é uma máquina preciosa, pois é a peça principal para nos
interligar a esse novo futuro, independentemente de tamanho ou formato. A
segurança é hoje uma preocupação inexoravelmente grande em matéria de
gerenciamento de bases de dados que armazenam informações de importância e da
vida estratégica das organizações e que dão suporte rotineiramente a milhares de
usuários. A escolha do banco de dados é que definirá a importância do
processamento das informações e respostas rápidas.
Com o propósito de abordar os aspectos de segurança e integridade de
dados, foi realizado um estudo simulando um ataque em dois gerenciadores
distintos: ORACLE e POSTGRESQL. É relevante notar que as respostas obtidas
foram distintas. Os dois bancos de dados, embora distintos, se utilizam de uma
mesma base de dados e foram expostos aos mesmos problemas, geraram,
entretanto, respostas diferentes.
O banco de dados ORACLE procurou-se manter estável, em cada teste
realizado quando se aumentava a quantidade de clientes o banco trabalhava ainda
mais rápido para manter um padrão médio no tempo de resposta, sendo possível a
realização de todos os testes propostos.
Já no caso do banco de dados POSTGRESQL houve pequenas variações no
tempo de resposta quando se alterava quantidade de clientes e tempo de
requisições, porém o banco não suportou uma carga de 5000 requisições.
Deve-se levar em conta que os resultados obtidos estão distantes da
realidade, afinal para a realização dos testes foi utilizado uma máquina de pequeno
porte, enquanto que os servidores web se utilizam de máquinas poderosas com alto
63
poder de processamento. Mas o que fica evidente é que em algum momento a
máquina exacerbada no processamento de informação ao mesmo tempo, não
resistirá e sofrerá uma queda.
Considerando que a área de pesquisa é notadamente nova, há ainda muitas
questões para serem estudadas visando o melhor rendimento em segurança e
desempenho das aplicações.
64
REFERÊNCIAS BIBLIOGRÁFICAS
ALVES, M. C. T. Direito Digital. 2009. Trabalho de Conclusão de Curso (Graduação
em Ciência da Computação) – Departamento de Computação, Universidade Católica
de Goiás. Goiânia
BRASIL. Artigo 5º, inciso X e XII. Constituição da República Federativa do
Brasil.1988. Disponível em: < http://www.planalto.gov.br/ccivil_03/Constituicao/
Constituicao.htm > Acesso em 14 nov. 2011.
CACHO, N. A. A.; BENJAMIM, X. C. Sistemas de Banco de Dados - Aula 1–
Introdução a Banco de Dados. Metrópole Digital, Natal, 2010. Disponível em:
<http://www.metropoledigital.ufrn.br/aulas_avancado/web/disciplinas/banco_de_dado
s/aula_01.html> Acesso em 03 set. 2011.
CANSIAN, A. M. Conceitos para perícia forense computacional. In 6ª ESCOLA
REGIONAL DE INFORMÁTICA DA SBC, 2001, São Carlos. Disponível em:<
http://www.acmesecurity.org/~adriano/docs/eri2001/artigo-adr-icmc-2001.pdf>
Acesso em 06 jun. 2011.
CGIBR. Comitê Gestor da Internet no Brasil. Cartilha de Segurança para Internet –
Glossário. 2006. Disponível em: <http://cartilha.cert.br> Acesso em: 30 mar. 2011.
CGIBR. Comitê Gestor da Internet no Brasil. Cartilha de Segurança para Internet –
Parte I: Conceitos de Segurança. 2006. Disponível em: <http://cartilha.cert.br>
Acesso em: 30 mar. 2011.
CGIBR. Comitê Gestor da Internet no Brasil. Cartilha de Segurança para Internet –
Parte II: Riscos envolvidos no uso da Internet e métodos de prevenção. 2006.
Disponível em: <http://cartilha.cert.br> Acesso em: 30 mar. 2011.
CGIBR. Comitê Gestor da Internet no Brasil. Cartilha de Segurança para Internet –
Parte III: Privacidade. 2006. Disponível em: <http://cartilha.cert.br> Acesso em: 30
mar. 2011.
ELMASRI, R.; NAVATHE, S. B. Sistemas de Banco de Dados. 4 ed. São Paulo:
Pearson Addison Wesley, 2005.
FREITAS, A.R. Perícia Forense Aplicada à Informática. 2003. Trabalho de
Conclusão de Curso (pós-graduação em Segurança da Informação na Web) –
Instituto Brasileiro de Pesquisa em Informática, Fundação Centro Federal de
Educação
Tecnológica.
Rio
de
Janeiro.
Disponível
em:
<http://www.linuxsecurity.com.br/info/general/andrey-freitas.pdf> Acesso em 13 ago.
2011.
HOEPERS, C.; JESSEN, K. S.; CHAVES, M. H. P. C. Segurança na Internet
Brasileira: Principais Ameaças e Recomendações para Prevenção. In Campus
65
Party Brasil, 2009, São Paulo. Disponível em: < http://www.cert.br/docs/palestras/
certbr-campusparty2009.pdf > Acesso em 12 ago. 2011.
OPENGEO. PostgreSQL - O mais robusto SGBD para aplicações corporativas,
Rio
de
Janeiro,
30
jul.
2007.
Disponível
em:
<
http://www.opengeo.com.br/?q=node/17 > Acesso em: 22 out. 2011.
PEREIRA, E. D. V. Investigação Digital: conceitos, ferramentas e estudo de
caso. In 3º CONGRESSO TECNOLOGICO TI E TELECOM, 2010, Fortaleza.
Disponível em: <www.infobrasil.inf.br/paginas/anais2010> Acesso em 21 fev. 2011.
PEREIRA, E. D. V.; WEBER, D.; GOLDANI, C. Detecção e Acesso a Mensagens
Ocultas em Imagens Digitais. In: 10º CONGRESSO NACIONAL DE
CRIMINALÍSTICA, 2009, João Pessoa.
PEREIRA, E. et. al. Forense Computacional: fundamentos, tecnologias e
desafios atuais. In: 7º SIMPÓSIO BRASILEIRO EM SEGURANÇA DA
INFORMAÇÃO E DE SISTEMAS COMPUTACIONAIS, 2007, Rio Grande do Sul.
POSTGRESQL. Documentação do PostgreSQL 8.0.0. Rio de Janeiro, 29 dez
2005. Disponível em <http://pgdocptbr.sourceforge.net/pg80/preface.html#INTROWHATIS> Acesso em: 17 set 2011.
RAMAKRISHNAN, R.; GEHRKE, J. Sistemas de Gerenciamento de Banco de
Dados. 3 ed. São Paulo: McGraw-Hill, 2008.
RIVAS JUNIOR, A. F. Oracle – Administração Básica. JB Livros e Cursos. Santa
Cruz do Sul. 25 mar 2006. Disponível em: < http://www.juliobattisti.
com.br/tutoriais/almirrivas/oracle003.asp > Acesso em: 17 set 2011.
RODRIGUES, T. S.; FOLTRAN, D. C. J. Análise de Ferramentas Forenses na
Investigação Digital. Revista de Engenharia e Tecnologia, Ponta Grossa, v. 2, n. 3,
p.104,
dez.
2010.
Disponível
em:
<http://www.revistaret.com.br/ojs2.2.3/index.php/ret/article/viewFile/64/93> Acesso em: 16 abr. 2011.
SANTOS, I. S.; SANTOS NETO, P. A. Automação de Testes de Desempenho e
Estresse com o JMeter. In ERCEMAPI, 2008, São Luís. Disponível em:
<http://www.ufpi.br/subsiteFiles/pasn/arquivos/files/artigoJMeter%281%29.pdf
>
Acesso em: 02 nov. 2011.
SILVA FILHO, L. C. B. Desenvolvimento de Esquema Técnico e Estruturado
para Análise Pericial de Sistemas de Arquivos Instalados em Computadores
Plataforma MS Windows. 2009 b. Anteprojeto da monografia (Graduação em
Ciência da Computação) - Universidade Federal da Bahia, Instituto de Matemática,
Departamento de Ciência da Computação. Salvador.
SYMANTEC. Glossário De Segurança - Security 101. 2011. Disponível em:
<http://www.symantec.com/pt/br/business/theme.jsp?themeid=glossario-deseguranca> Acesso em: 10 mai. 2011.
66
TAKAI, O. K.; ITALIANO, I. C.; FERREIRA, J. E. Introdução a banco de dados.
2005, 124p. Apostila da disciplina de introdução a Sistemas Banco de Dados.
Instituto de Matemática e Estatística – Universidade de São Paulo.
TORRES, G.; Redes de Computadores, Rio de Janeiro: Nova Terra, 2009.
WEBER,D.; PEREIRA, E. D. V.; GOLDANI, C. A. Análise do uso de antiforense
digital para destruição de dados. In: 10º CONGRESSO NACIONAL DE
CRIMINALÍSTICA, 2009 a, João Pessoa.
67
GLOSSÁRIO
Com a finalidade de esclarecer possíveis dúvidas que possam surgir durante
a leitura deste trabalho, foi elaborado um glossário, de acordo com SYMANTEC
(2011) e CGIBR (2006) com os termos técnicos mais comuns encontrados na
Internet.
ACESSO CONCORRENTE – vários usuários acessando vários arquivos, ou os
mesmos arquivos, sem sofrer danos, perda de performance ou quaisquer outras
restrições.
ALGORITMO HASH – é composto por fórmulas matemáticas complexas, para poder
garantir a irreversibilidade e a unicidade do resumo de mensagem (MD) gerado
(textos diferentes não produzem o mesmo MD). A alteração de um simples bit na
mensagem gera um MD completamente diferente e o valor de conferência muda se
um único bit for alterado, acrescentado ou retirado da mensagem.
ANONYMIZERS – são sites que agem como intermediário entre o programa de
navegação e os outros websites impedindo que o site visitado tenha acesso a
qualquer tipo de informação daquele computador.
ATACANTE – é a pessoa responsável pela realização de um ataque.
ATAQUE – é a tentativa, bem ou mal sucedida, de acesso ou uso não autorizado a
um programa ou computador. Também são considerados ataques as tentativas de
negação de serviço (DoS).
ATAQUES DE FORÇA BRUTA (Brutal Force) – são estratégias utilizadas para
descobrir senhas, consiste em uma busca exaustiva feita através de algoritmos
tentando encontrar todas as combinações possíveis até se descobrir a senha
correta.
68
BACKDOOR – código malicioso que abre caminho para o acesso remoto a um
computador contaminado sem o conhecimento do usuário.
BEGIN – comando que inicia uma nova transação.
BOT – computador isolado infectado com malware e parte de uma botnet.
BOTNETS – são redes formadas por diversos computadores infectados com bots.
Normalmente usadas em atividades de negação de serviço, esquemas de fraude,
envio de spam, etc.
BROWSER – é um programa de computador que habilita seus usuários a
interagirem com documentos virtuais da Internet.
CADEIA DE CUSTÓDIA – é um processo usado para manter e documentar a
história cronológica da evidência, para garantir a idoneidade e o rastreamento das
evidências utilizadas em processos judiciais.
CAVALO DE TRÓIA (Trojan Horse) – é um programa que se mascara ou aparenta
possuir um propósito benigno, mas que arbitrariamente realiza funções maliciosas.
CERTIFICADOS DIGITAIS – arquivo eletrônico, assinado digitalmente, que contém
dados de uma pessoa ou instituição, utilizados para comprovar sua identidade.
CÓDIGO MALICIOSO – é um termo genérico que se refere a todos os tipos de
programa que executam ações maliciosas em um computador.
COMMIT – comando que efetiva a transação que esta sendo executada.
COOKIES – são pequenos textos que os sites podem enviar aos navegadores,
anexados a qualquer conexão. Nas visitas posteriores o navegador reenvia os dados
para o servidor dono dos cookies.
69
CRIPTOGRAFIA – é um método de embaralhar ou codificar dados para impedir que
usuários não autorizados os leiam ou adulterem. É usada, dentre outras finalidades,
para: autenticar a identidade de usuários; autenticar transações bancárias; proteger
a integridade de transferências eletrônicas de fundos, e proteger o sigilo de
comunicações pessoais e comerciais.
DADOS NÃO-VOLÁTEIS – são os dados que após serem gravados não serão
apagados ou alterados quando o computador for desligado ou sofrer uma queda de
energia.
DADOS VOLÁTEIS – necessitam de energia para manter a informação armazenada,
após o desligamento da fonte de energia toda a informação é perdida.
DDOS (Distributed Denial of Service) – ataque de negação de serviço distribuído, ou
seja, um conjunto de computadores é utilizado para tirar de operação um ou mais
serviços ou computadores conectados à Internet.
DNS (Domain Name System) – Serviço que traduz nomes de domínios para
endereços IP e vice-versa.
DOWNLOAD – é a transferência de dados de um computador remoto para um
computador local.
DVD (Digital Versatile Disk) – dispositivo de armazenamento de grande quantidade
de dados, usado para armazenar filmes.
ECONOMIA UNDERGROUND – é o mercado digital onde são comprados e
vendidos os bens e serviços obtidos pelo cibercrime para utilização do mesmo.
ECPG - é o pré-processador da linguagem SQL embutido para programas escritos
na linguagem C.
70
ENDEREÇO IP - este endereço é um número único para cada computador
conectado à Internet, composto por uma seqüência de quatro números que variam
de 0 até 255, separados por ".". Por exemplo: 192.168.34.25.
ENGENHARIA SOCIAL – método utilizado pelos invasores para induzir os usuários
a realizarem uma ação que normalmente resulta em consequências negativas, como
o download de malware ou a divulgação de informações pessoais. Ataques de
phishing exploram essa metodologia.
EXPLOITS – programas ou técnicas para tirar proveito de vulnerabilidades em
softwares, podem ser usados para quebrar a segurança ou atacar um computador
em uma rede.
FIREWALL – dispositivo constituído pela combinação de software e hardware,
utilizado para dividir e controlar o acesso entre redes de computadores.
FIREWALL PESSOAL – software ou programa utilizado para proteger um
computador contra acessos não autorizados vindos da Internet. É um tipo específico
de firewall.
FRONTEND – é responsável por coletar a entrada em várias formas do usuário e
processá-la para adequá-la a uma especificação útil para o back-end, é uma espécie
de interface entre o usuário e o back-end.
FTP (File Transfer Protocol) – protocolo de transferência de arquivos cliente /
servidor.
HTML (HyperText Markup Language) – Linguagem universal utilizada na elaboração
de páginas na Internet.
HTTP (Hyper Text Transfer Protocol) – protocolo de transferência de hipertexto é um
protocolo de comunicação entre cliente e servidor.
71
HTTPS (HyperText Transfer Protocol Secure) – é a combinação do protocolo http
com o ssl (Secure Sockets Layers) que pode ser traduzido como camada de sockets
protegida. É a maneira mais comum de trafegar documentos via http de maneira
segura.
INTERNET RELAY CHAT (IRC) – é um protocolo de comunicação na Internet
utilizado basicamente como bate-papo e troca de arquivos, permitindo a conversa
em grupo ou privada.
INVASÃO – ataque bem sucedido que resulte no acesso, manipulação ou destruição
de informações em um computador.
INVASOR – pessoa responsável pela realização de uma invasão ou pelo
comprometimento do computador.
JAVASCRIPT – é uma linguagem de programação utilizada para criar pequenos
programas encarregados de realizar ações dentro do âmbito de uma página web.
JDBC – é um conjunto de classes e interfaces (API) escritas em Java que fazem o
envio de instruções SQL para qualquer banco de dados relacional.
KEYLOGGER – programa capaz de capturar e armazenar as teclas digitadas pelo
usuário no teclado de um computador. Normalmente, são utilizados para roubar
senhas.
LINKS – em um texto significa estabelecer um elo, uma ligação com outra página,
outro texto, que o leitor pode abrir clicando numa palavra, grupo de palavras ou em
uma imagem.
LIVE FORENSICS – é um método de investigação que ocorre ainda com os
equipamentos ligados permitindo a coleta dos dados voláteis.
72
LOG – é o registro de atividades gerado por programas de computador. No caso de
logs relativos a incidentes de segurança, eles normalmente são gerados por firewalls
ou por IDSs.
MALWARE - descrição genérica geral para qualquer programa de computador que
produza efeitos indesejados ou mal-intencionados. São considerados malwares os
vírus, worms, cavalos de tróia e backdoors.
MD (message digest) – é o resumo de mensagem.
MEMÓRIA CACHE – é uma memória de alta velocidade que faz a interface entre o
processador e a memória do sistema. Está embutida no processador e armazena os
dados mais acessados.
ODBC – é um padrão para acesso a sistemas gerenciadores de bancos de dados.
PARTIÇÃO – é uma divisão do espaço de um disco rígido.
PCMCIA – é uma porta de comunicação que utiliza o padrão de conectividade que
define as dimensões e o esquema físico da ligação de qualquer placa PC Card
opcional que se destine a ser utilizada nos slots para este tipo de placas, que se
encontram na maior parte dos computadores portáteis.
PERL – é uma linguagem "interpiler", ou seja, um programa em Perl é primeiro
compilado e em seguida interpretado (não gera código executável).
PHARMING – método de ataque que redireciona o tráfego de um site normalmente
desenvolvido para imitar o site legítimo. O objetivo é fazer com que os usuários
ignorem o redirecionamento e repassem informações pessoais, como senhas de
bancos on-line, no site fraudulento. O pharming pode ser praticado ao se alterar
arquivos no computador da vítima ou explorando uma vulnerabilidade no software do
servidor DNS.
73
PHISHING – golpe que usa spam e mensagens instantâneas para levar pessoas a
divulgarem informações confidenciais, como senhas de banco e dados de cartão de
crédito. Normalmente, esses ataques aparentam ser de instituições financeiras.
PHP – é uma linguagem de programação de domínio específico, ou seja, seu
escopo se estende a um campo de atuação que é o desenvolvimento web.
POSTMASTER – é o servidor de banco de dados multiusuário do PostgreSQL.
POST-MORTEM FORENSICS – é um método de investigação que ocorre após o
desligamento dos equipamentos busca por dados não-voláteis.
PYTHON – é uma linguagem de programação de alto nível, interpretada, imperativa,
orientada a objetos.
ROLLBACK – comando que aborta a transação corrente.
ROOTKIT – programa ou um conjunto de programas, usado por um atacante para
ocultar sua presença em um determinado sistema e permitir seu acesso futuro.
RUBY – é uma linguagem de programação interpretada multiparadigma de tipagem
dinâmica e forte, com gerenciamento de memória automático.
SAMBA – é um "software servidor" para Linux (e outros sistemas baseados em Unix)
que permite o gerenciamento e compartilhamento de recursos em redes formadas
por computadores com o Windows.
SCRIPT KIDDIE – hacker amador que ataca com scripts prontos.
SENHA - conjunto de caracteres, de conhecimento único do usuário, utilizado no
processo de verificação de sua identidade.
74
SOAP – é o protocolo de comunicação para Web Services, uma especificação para
requisitar métodos de negócio, como documentos XML, e suporta outros protocolos
como HTTP e SMTP.
SPAM – é o termo usado para se referir aos emails não solicitados, que geralmente
são enviados para um grande número de pessoas. Quando o conteúdo é
exclusivamente comercial, este tipo de mensagem também é referenciado como
UCE (do Inglês Unsolicited Commercial E-mail).
SPYWARE – qualquer software que rastreia e envia informações pessoais ou
confidenciais a terceiros.
SQL – é uma linguagem de pesquisa declarativa para bancos de dados relacionais.
STRING SEARCH – algoritmos de cadeia de pesquisa, ou chamados de algoritmos
sequência correspondente, são classes importante de algoritmos de corda que
tentam encontrar um lugar onde um ou vários padrões são encontrados dentro de
uma seqüência maior ou texto.
TCL – é uma linguagem de programação para scripts.
TESTE DE DESEMPENHO – é uma classe de testes implementada e executada
para caracterizar e avaliar o desempenho relacionado a características do objetivo
do teste, como perfis de andamento, fluxo de execução, tempos de resposta,
confiabilidade e limites operacionais.
THREAD – é uma forma de um processo dividir a si mesmo em duas ou mais tarefas
que podem ser executadas concorrentemente.
THREAT – são quaisquer circunstâncias, eventos ou pessoas que possam causar
algum tipo de dano ao sistema, seja na forma de roubo, destruição, divulgação,
alteração de dados e/ou negação de serviço (DoS).
75
TROJANS – são programas aparentemente inofensivos, úteis e com alguma
funcionalidade, porém esconde programas nocivos que põe em risco a segurança
das informações.
URL (Universal Resource Locator) – é uma sequência de caracteres que indica a
localização de um recurso na Internet, como por exemplo, http://cartilha.cert.br/.
VIOLAÇÃO DE DADOS (Data Breach) – é qualquer ação que cause danos em um
sistema e exponha as informações em um ambiente não confiável.
VÍRUS – programa escrito para alterar a maneira como um computador opera, sem
a permissão ou conhecimento do usuário. Deve atender a dois critérios: executar a
si mesmo e auto-replicar.
VULNERABILIDADE – é uma falha no projeto, implementação ou configuração de
um software ou sistema operacional que, quando explorada por um atacante, resulta
na violação da segurança de um computador.
WORM – é um programa capaz de se propagar automaticamente através de redes,
enviando cópias de si mesmo de computador para computador. Diferente do vírus, o
worm não embute cópias de si mesmo em outros programas ou arquivos e não
necessita ser explicitamente executado para se propagar. Sua propagação se dá
através da exploração de vulnerabilidades existentes ou falhas na configuração de
softwares instalados em computadores.
Download

centro estadual de educação tecnológica “paula souza