Instruções aos Autores de Contribuições para o SIBGRAPI

Transcrição

Instruções aos Autores de Contribuições para o SIBGRAPI
227
Computação Forense e as oportunidades oferecidas pela Computação em Nuvem
Dener Didoné1, Sidney Ribeiro de Andrade1
1 Faculdades Unidas do Vale do Araguaia (UNIVAR) – Setor Mariano – 78.600-000 – Barra do Garças – MT –
Brasil
{denerdidone, sidriband}@gmail.com
Resumo.
Este artigo visa explorar as principais oportunidades que a Computação em Nuvem tem a oferecer a Computação
Forense. A partir disso, discutiremos a utilização do modelo de programação MapReduce na realização de tarefas
típicas de perícia, e sua utilização em conjunto com a Computação em Nuvem, sendo entregue como serviço e
usufruindo das características chaves oferecidas pela nuvem.
Abstract.
This paper aim to explore the principal opportunities offered by Cloud Computing to Forensics Computing. Besides,
we will discuss the MapReduce programming model utilization in performing typical forensics tasks, being delivered
in the model as a service, through Cloud Computing, enjoying the key characteristics provided by cloud.
1. INTRODUÇÃO
Em um passado não muito distante, a ocorrência de
crimes digitais, usando dispositivos eletrônicos como fim
ou como meio para esses atos ilícitos era algo
inimaginável. A ubiqüidade oferecida pela Internet,
somada aos avanços tecnológicos recentes e mais ainda
ao barateamento dessas tecnologias fez com que esse
tipo de crime se tornasse freqüente.
Esse tipo de ilícito demanda de um profissional
especializado no levantamento de evidências digitais,
sejam elas utilizadas para fins jurídicos (processos,
detenções, etc.) ou fins comerciais, como por exemplo,
na dispensa de funcionários por justa causa, uma vez que
este vazou informações confidenciais, que pode ou não
desencadear em ações legais.
A computação forense é uma disciplina
relativamente nova, crescendo a passos largos, que
surgiu em resposta a esses tipos de crimes, sendo
utilizada por profissionais que buscam a elucidação de
casos envolvendo todo e qualquer tipo de dispositivos
digitais (computadores, notebooks, PDAs, smartphones,
etc.).
A computação em nuvem surge hoje, em um
contexto globalizado e interconectado com o intuito de
minimização de custos, escalabilidade e elasticidade
necessária aos vários ramos comerciais, organizacionais
e governamentais que dependem de TI (Tecnologia da
Informação), além de prover armazenamento e poder
computacional “ilimitados”.
É visível a crescente demanda pela solução de crimes
digitais, além disso, Garfinkel (2010) cita como um fator
complexante e um dos problemas em vista da
computação forense, o aumento da capacidade de
armazenamento dos dispositivos digitais, o que significa
que normalmente não há tempo para o perito criar uma
imagem do dispositivo para realizar a perícia, ou até
mesmo processar a grande quantidade de dados.
Como um meio de colaborar com este problema
pendente, e visando agregar os valores intrínsecos que a
computação em nuvem oferece, este artigo propõe
estudar as oportunidades que a computação em nuvem
pode oferecer a computação forense na solução deste
problema da quantidade de dados.
Discutiremos as definições de computação
forense, computação em nuvem, abrangendo também
programação distribuída, mais especificamente o modelo
de programação MapReduce, que já tem demonstrado
eficiência na solução de tarefas típicas de perícia, e as
questões relativas à segurança da proposta que será
sugerida.
2. DEFINIÇÕES
Apresentaremos
brevemente
as
definições
e
conhecimentos chaves necessários para o bom
entendimento do artigo, abordando questões como
computação
forense,
computação
em nuvem,
computação distribuída, sendo mais especificamente
abordado o modelo de programação MapReduce.
On-line http://revista.univar.edu.br/
Interdisciplinar: Revista Eletrônica da Univar (2011) n. 6 p. 227 - 236 ISSN 1984-431X
228
2.1 Computação Forense
2.2 Computação em Nuvem
A Computação Forense surge da necessidade de solução
de casos específicos envolvendo dispositivos digitais,
conseqüentemente executados com o auxílio da Internet.
Essa disciplina possui aproximadamente 40 anos, sedo
uma evolução de técnicas de recuperação de dados.
Ainda mais recente e mais controversa que a computação
forense é a computação em nuvem, que traz uma nova
configuração na utilização de tecnologias já conhecidas,
sendo um termo genérico que pode ser definido como a
evolução de tecnologias e processos, compostos de
serviços, aplicações, informações e infraestrutura
distribuídos, de modo que estes possam ser arranjados de
maneira dinâmica, elástica e rápida, na medida em que
forem consumidos. (Marins, 2009).
A computação forense é uma importante
ferramenta na solução de crimes cometidos utilizando o
computador (por exemplo, o phishing) bem como crimes
contra pessoas (por exemplo, a pornografia infantil), ou
seja, que utilizam o computador como fim ou como meio
para um ato ilícito. O trecho abaixo, extraído de Lee et
al. (2001) é uma complementação ao que já foi dito.
Lee diz que a justiça esta sendo cada vez mais
confrontada com esse tipo de crime, sendo evidente o
aumento da necessidade de investigação desses crimes
executados parcialmente ou totalmente com a ajuda da
Internet, ou outros dispositivos eletrônicos. Recursos e
procedimentos são necessários para efetivamente se
realizar os quatro procedimentos básicos da perícia:
identificação, preservação, análise e apresentação das
evidências. Essas evidências variam desde imagens até
dados criptografados, que podem ser utilizados para os
mais diversos tipos de crimes.
O advento da computação, Internet e a
disseminação de dispositivos entre a população fez que
com criminosos começassem a utilizar de tecnologia para
perpetuação de crimes, aproveitando-se do suposto
anonimato que a Internet proporciona.
Desde então, perícias em dispositivos
eletrônicos (PDA, computadores, celulares, tablets,
notebooks, etc.) se tornaram freqüentes e necessárias
para elucidação desses crimes eletrônicos. De acordo
com o Federal Bureau of Investigations – FBI
(Departamento Federal de Investigação dos Estados
Unidos), em 2009 foram examinados 6 mil casos através
de 17 estados e mais de 2.300 terabytes (TB) de dados
processados, o que equivale a mais ou menos 230
bibliotecas acadêmicas e um esforço que rendeu uma
análise média de 9,58 TB de dados/dia (considerando
apenas dias úteis). (Regional Computer Forensics
Laboratory [RCFL], 2009).
A computação forense é uma ciência
multidisciplinar que aplica técnicas investigativas para
determinar e analisar evidências, sendo possível em
alguns casos até formular uma hipótese das causas e
efeitos das ações executadas no computador. Ela segue
métodos e procedimentos definidos para as etapas de
perícia.
A nuvem oferece serviços sob demanda, assim
como a energia elétrica, ou o gás, por exemplo, sendo
uma evolução natural da Internet e das tecnologias de
Virtualização, arquitetura orientada a serviços e modelo
de pagamento “pay-as-you-go”, onde paga-se apenas
pelo consumido. Os detalhes são abstraídos do
consumidor, que não precisa ter domínio da
infraestrutura presente na nuvem para utilizá-la.
Segundo a definição do National Institute of
Standards and Technology (NIST, 2009), a computação
em nuvem é um modelo que permite acesso conveniente
e sob demanda utilizando a rede, a uma série de recursos
computacionais compartilhados e configuráveis, onde
esses recursos podem ser rápida e facilmente providos ou
liberados com o mínimo de esforço de gerenciamento ou
interação do prestador de serviço.
Vaquero et al. (2009) dizem que a definição de
computação em nuvem ainda esta evoluindo, e que a
definição é valida apenas para o momento em que foi
proferida. Ele diz que hoje as nuvens são um grande
agrupamento facilmente utilizáveis e acessíveis de
recursos virtualizados (como infraestrutura, plataforma
e/ou serviços. Esses recursos podem ser dinamicamente
reconfigurados de forma a otimizar a utilização dos
recursos. Esse conjunto de recursos é tipicamente
explorado no modelo de pagamento por demanda, no
qual as garantias são fornecidas pelo provedor de serviço
através de acordo em nível de serviço personalizados
(Service Level Agreement – SLA).
Através destas definições podemos notar
denominadores comuns sobre o que é a nuvem, sendo
eles: escalabilidade, modelo de pagamento por consumo
e virtualização. Conforme ressalta Buyya et al. (2008),
todos esses serviços computacionais precisam ser
altamente confiáveis, escaláveis e autônomos. A
qualidade do serviço (Quality of Service – QoS) pode ser
determinada através dos SLAs.
A visão do NIST (2009) define o modelo de
computação em nuvem descrevendo cinco características
essenciais, três modelos de serviços e quatro modelos de
On-line http://revista.univar.edu.br/
Interdisciplinar: Revista Eletrônica da Univar (2011) n. 6 p. 227 - 236 ISSN 1984-431X
229
implantação. Tais características já são amplamente
conhecidas e encontram-se especificadas abaixo:
•
Serviço sob demanda, onde o consumidor pode
prover
capacidade
computacional
(processamento, armazenamento, etc.) de
maneira automática, sendo a necessidade de
interação humana com o provedor de serviços;
•
Amplo acesso a rede, pois os recursos estão
disponíveis pela da rede e podem ser acessados
e utilizados de forma padronizada, através de
plataformas heterogêneas (thin ou thick clients),
bem como outros serviços tradicionais de
software ou baseados em nuvem;
•
•
•
Pooling de recursos, onde os recursos
computacionais do provedor são agrupados para
servir a múltiplos usuários usando o modelo de
multi-tenancy, com diferentes recursos físicos e
virtuais sendo dinamicamente arranjados e
rearranjados de acordo com a demanda do
usuário. Há um certo grau de independência de
localização, no qual o usuário geralmente não
possui nenhum controle ou conhecimento sobre
a exata localização dos recursos providos, mas
pode ser capaz de especificar a localização de
uma maneira altamente abstrata (ou seja, país,
estado ou data center). Exemplos de recursos
incluem
armazenamento,
processamento,
memória, rede, largura de banda e máquinas
virtuais. Até mesmo nuvens privadas tendem a
fornecer um agrupamento de recursos entre as
diferentes partes da mesma organização.
Elasticidade, pois capacidades podem ser
rapidamente e elasticamente providas (até
mesmo automaticamente) para uma rápida
expansão, ou retração, de forma a atender a
capacidade desejada. Do ponto de vista do
usuário, as capacidades disponíveis aparentam
ser “ilimitadas” podendo ser compradas em
qualquer quantidade em qualquer hora.
Medida do consumo, fazendo com que sistemas
de nuvem automaticamente controlem e
otimizem a utilização de recursos, entregando
uma métrica apropriada de acordo com o tipo
de serviço (armazenagem, processamento, etc.).
Recursos podem ser monitorados, controlados e
reportados, o que prove transparência para os
usuários e o provedor.
Os serviços oferecidos pela nuvem podem ser
classificados em três modelos distintos, abaixo os
definimos segundo NIST (2009) e Vaquero et al. (2009):
•
Software as a Service – SaaS: software como
serviço é uma alternativa a execução local de
aplicações, permitindo sua execução na
infraestrutura fornecida pela nuvem, onde
podem ser acessados através de vários
dispositivos (tais como navegadores). Neste
modelo o cliente não gerencia ou controla a
infraestrutura que compõem a nuvem (rede,
servidores, etc.).
•
Plataform as a Service – PaaS: plataforma
como serviço possibilita a implantação de
aplicações criadas ou adquiridas pelo usuário
nas infraestrutura da nuvem. Neste modelo o
cliente também não gerencia ou controla a
infraestrutura que compõem a nuvem (rede,
servidores, etc.), mas tem controle sobre as
aplicações implementadas e as configuração do
ambiente de hospedagem.
•
Infrastructure as a Service – IaaS: a
infraestrutura como serviço através da
virtualização permite dividir, atribuir e
dinamicamente redimensionar capacidade de
armazenamento, rede e processamento, de
acordo com a demanda dos usuários,
fornecendo
recursos
computacionais
fundamentais. Neste modelo o cliente tem
controle sobre os sistemas operacionais,
armazenamento, aplicações implementadas e
normalmente controle limitado sobre alguns
componentes de rede (por exemplo, firewalls).
Os quatro modelos de implantação são definidos a seguir
pelo NIST (2009):
•
Nuvens públicas: A infraestrutura da nuvem é
disponibilizada publicamente e compartilhada
entre diversos usuários usando o modelo “payas-you-go”.
•
Nuvens privadas: Possuem sua infraestrutura
operada somente por uma organização, podendo
ser gerenciada pela própria organização ou
terceirizada, havendo possibilidade de existir na
forma on premise e off premise.
•
Nuvens hibridas: É uma composição de duas ou
mais nuvens (privadas, comunidade ou
públicas) e permite que nuvens privadas tenham
seus recursos ampliados a partir dos recursos de
uma nuvem publica.
•
Nuvem comunitária: a infraestrutura da nuvem é
compartilhada entre várias organizações e
suporta uma comunidade específica que
On-line http://revista.univar.edu.br/
Interdisciplinar: Revista Eletrônica da Univar (2011) n. 6 p. 227 - 236 ISSN 1984-431X
230
compartilha interesses (por exemplo, requisitos
de segurança, políticas, etc.). Pode ser
gerenciada pelas organizações ou terceirizada e
pode existir nas formas on premise e off
premise.
Levando em conta as características,
percebemos que a nuvem trás novas oportunidades a
serem oferecidas a computação forense, seja no
armazenamento, processamento (poder computacional)
ou desde os modelos de entrega de serviços até as formas
de implantação.
O fator escalabilidade associado ao custo
compartilhado que a nuvem proporciona é atraente para
organizações e governos que visam grande poder
computacional na solução de perícias, mas não querem
investir em infraestrutura.
Tudo isso demonstra a nossa idéia de se
disponibilizar Forense como Serviço (Forensics as a
Service – FaaS) e iniciar nossas discussões. FaaS pode
representar uma nova oportunidade de se prover recursos
computacionais para Forense agregando todos os valores
intrínsecos que a nuvem proporciona, que incluem
processamento e armazenamento “ilimitado” na sua
utilização sob-demanda e rápida elasticidade.
2.3 Computação Distribuída
O uso de computação distribuída na condução de tarefas
de perícia é apresentada neste artigo através da
implementação do modelo de programação MapReduce,
rodando na nuvem. Nosso propósito é utilizar o Hadoop,
que é uma implementação open source do modelo de
programação MapReduce, desenvolvido pela Apache.
2.3.1 MapReduce
MapReduce é uma paradigma de programação
distribuída, desenvolvida pelo Google para simplificar o
desenvolvimento
de
aplicações
escaláveis
e
massivamente paralelas que processem terabytes de
dados em clusters.
Programas escritos nesta linguagem funcional
são automaticamente paralelizados e executados nas
máquinas presentes no cluster. O sistema é quem toma
conta de detalhes de particionamento dos dados
inseridos, agendando a execução dos programas nas
máquinas, tratando os erros e gerenciando a
comunicação entre as máquinas. Isso permite que
programadores sem experiência com sistemas paralelos e
distribuídos possam facilmente utilizar os recursos desses
grandes sistemas distribuídos. (Dean & Ghemawat,
2004).
Para utilizar o MapReduce, o usuário especifica
uma função de mapeamento (mapper) que processa um
par (chave/valor) para gerar um conjunto intermediário
de pares e reduzi-los através de uma função de redução
(reducer) que une todos esses valores intermediários.
Muitas tarefas do mundo real podem ser expressas neste
modelo, e isso inclui tarefas de perícia (operações com
string, processamento de imagens, analises estatísticas,
etc.). (Roussev et al. 2009).
É apresentado abaixo o exemplo canônico,
normalmente apresentado nas literaturas, que conta o
número de vezes que uma palavra ocorre em uma entrada
(um documento de texto, como no exemplo).
void map(String name, String document):
// name: document name
// document: document contents
for each word w in document:
EmitIntermediate(w, "1");
void reduce(String word, Iterator partialCounts):
// word: a word
// partialCounts: a list of aggregated partial counts
int result = 0;
for each pc in partialCounts:
result += ParseInt(pc);
Emit(AsString(result));
Neste exemplo, retirado de Dean et al. (2004),
cada documento é dividido em palavras, e cada palavra
encontrada é contada inicialmente com o valor inicial 1
pela função de mapeamento, usando a palavra como
chave do resultado. O framework então coloca os pares
com a mesma chave juntos, onde a função de redução
soma todos os valores de entrada para então descobrir o
total de ocorrências daquela palavra.
2.3.2 Hadoop
Hadoop foi desenvolvido como uma implementação
open source do modelo de programação MapReduce.
Este é um projeto de alto nível da Apache, sendo
construído e utilizado por uma comunidade global de
contribuintes, utilizando Java como linguagem de
programação.
Sua arquitetura é composta pelo Hadoop
Common, que contem os arquivos base necessaries para
executar o Hadoop e fornecer suporte aos seus
subprojetos: sistema de arquivos distribuidos (Hadoop
Distributed File System – HDFS) e o MapReduce.
De acordo com Apache Hadoop – HDFS
Architecture Guide (2010), o HDFS é um sistema de
arquivos distribuído projetado para ser executado em
qualquer hardware, sendo altamente tolerante a falhas e
On-line http://revista.univar.edu.br/
Interdisciplinar: Revista Eletrônica da Univar (2011) n. 6 p. 227 - 236 ISSN 1984-431X
231
projetado para ser implantado em hardware de baixo
custo, proporcionando altas taxas de acesso aos dados de
aplicações, além de ser adequado para aplicações
que
trabalhem com grandes conjuntos de dados.
Embora o Hadoop seja implementado em Java,
as aplicações que utilizam MapReduce não precisam ser
necessariamente escritas nessa mesa linguagem. Hadoop
Streaming é a utilidade que permite aos usuários criar e
executar programas em qualquer linguagem (como por
exemplo em shell script).
3. PROPOSTA DE UTILIZAÇÃO
Tendo em vista a demanda pela solução de
crimes digitais, acrescida do aumento da quantidade de
armazenamento dos dispositivos eletrônicos, citado por
Garfinkel (2010), e vislumbrando a quantidade de dados
examinados pelo FBI em 2009, RCFL (2009), que
ultrapassou a marca de 2 mil TB, podemos ter uma idéia
do problema que estamos enfrentando.
O crescimento vertiginoso que a computação
em nuvem vem demonstrando fez com que em 2010, o
gasto com esta tecnologia chegasse a 16 bilhões de
dólares, podendo em 2014 atingir a incrível marca de 56
bilhões. (Nichols, 2010)
Tais números demonstram o potencial de
utilização desta nova onda tecnológica que vem sendo
considerada como um dos mais importantes
acontecimentos da ciência da computação, podendo ser
estendida também para a resolução dos desafios da
computação forense.
Além disso, é válido que governos comessem a
pensar na proposta apresentada abaixo como solução
para um melhor aproveitamento do seu parque
tecnológico, ampliando poderes computacionais como
armazenamento e processamento. Leituras adicionais
podem ser encontradas em Kundra (2010) e Paquette et
al. (2010).
Uma sessão de brainstorming no CISSE 2008
explorou categorias de pesquisas, tópicos e problemas na
computação forense. Um dos resultados desta discussão
foi um artigo onde Nance et al. (2009) identificaram seis
categorias para pesquisas de computação forense, e entre
estas há uma categoria chamada Volume de Dados, onde
os autores citam a paralelização do processamento de
dados como uma das possíveis soluções para o problema.
Após isso, Garfinkel (2010) publica um estudo
que prevê a crise da computação forense, citando o
crescimento da capacidade dos dispositivos de
armazenamento como um dos tópicos desafiantes,
complementando que freqüentemente não há tempo
suficiente para criar uma imagem forense de um disco,
ou processar todos os dados encontrados.
Como já citado anteriormente, a quantidade de
dispositivos aliados ao crescimento do espaço de
armazenamento e ao barateamento da tecnologia faz com
que terabytes de dados sejam analisados em casos de
cybercrime. O problema é que isso acaba extrapolando o
poder computacional de estações forenses utilizadas nos
laboratórios pelos peritos de hoje.
Uma abordagem interessante utilizando clusters
e recursos de larga escala distribuídos tem demonstrado
eficiência na condução de tarefas forenses, como
apresentado por Roussev et al. (2004), onde o grande
potencial da utilização de recursos de cluster são
demonstrados em um protótipo através da condução de
experimentos que comprovaram a redução nos tempos de
execução das tarefas forenses. Os autores reforçam
também a necessidade de técnicas de análises forenses
mais sofisticadas, podendo estas ser habilitadas pela
transição das ferramentas atuais para ferramentas
distribuídas.
Outro esforço foi realizado por Tang et al.
(2005), criando um framework para realização de perícia
em rede (network forensics) baseado em técnicas
distribuídas fornecendo assim uma plataforma integrada
para coleta e armazenamento de evidências forenses em
rede, além de incluir um mecanismo para geração de
gráficos de ataques que ilustram os procedimentos
utilizados por hackers. Outro esforço também neste
sentido é o ForNet, de Shanmugasundaram et al. (2009),
utilizando forense distribuída que visa a coleta e consulta
de evidências de rede.
Uma proposta recente apresentada por Roussev
et al. (2009) descreve os esforços realizados para uma
nova implementação do modelo de programação
MapReduce, que supera significativamente os trabalhos
anteriores na condução de tarefas típicas de forense em
grandes conjuntos de dados, demonstrando escala linear
para processamento intensivo e até mesmo escalas super
lineares para tarefas envolvendo indexação.
Em seu trabalho Roussev et al. (2009) utiliza
uma abordagem para acomodar mais processamento no
mesmo espaço de tempo, suportando a utilização de mais
recursos de hardware, o que permite que mais recursos
sejam implantados. O foco de Roussev é exclusivamente
na utilização de recursos computacionais distribuídos
para aprimorar os tempos gastos na condução de
investigações forenses.
Além desses estudos, ferramentas comerciais de
perícia como o Forensics Toolkit (FTK) da AccessData,
passaram a incluir suporte a processadores multi-core e a
On-line http://revista.univar.edu.br/
Interdisciplinar: Revista Eletrônica da Univar (2011) n. 6 p. 227 - 236 ISSN 1984-431X
232
utilizar distribuição de processamento, porém com
distribuição ainda limitada.
Uma vez citados os trabalhos relacionados,
além das características essenciais e os benefícios
trazidos pela nuvem, e demonstradas as características
viáveis e que permitem a implementação do MapReduce
tentaremos não tornar a idéia redundante. Nosso modelo
visa demonstrar o uso de computação em nuvem para
fornecer forense como um serviço (Forensic as a Service
– FaaS) através de plataformas flexíveis, elásticas e
dinâmicas bem como poder de armazenamento e
processamento “ilimitados”, em conjunto com o modelo
de programação MapReduce na sua implementação open
source, o Hadoop, além de demonstrar que o uso de
forense como um serviço se torna essencial, interessante
e acessível a corporações, governos e usuários.
Embora MapReduce não responda a todos os
problemas de distribuição de processamento, por
enquanto tem demonstrando grande capacidade na
resolução de problemas relacionados a tarefas forenses,
como operações com string, processamento de imagens,
análises estatísticas, etc., conforme já elucidado
anteriormente.
Figura 1. Modelo proposto para entrega de
Forense como Serviço
A figura 1 ilustra o cenário da proposta, onde
usuários poderão utilizar quaisquer dispositivos (os mais
comuns ainda são os computadores e notebooks) para
acessar servidores através da nuvem e então realizar
tarefas de perícia, aproveitando-se das funções do
MapReduce implementadas pelo Hadoop.
On-line http://revista.univar.edu.br/
Interdisciplinar: Revista Eletrônica da Univar (2011) n. 6 p. 227 - 236 ISSN 1984-431X
233
Apresentaremos duas opções de implementação
do modelo proposto, tanto em nuvens públicas quanto
privadas, nos modelos on-premise e off-premise. A
escolha entre nuvens públicas e privadas diferencia-se no
quesito de segurança das informações, segurança da
nuvem e utilização de parque tecnológico próprio,
discutidas abaixo.
On-line http://revista.univar.edu.br/
Interdisciplinar: Revista Eletrônica da Univar (2011) n. 6 p. 227 - 236 ISSN 1984-431X
234
3.1. Implementação pública a privada
Nossa escolha de implementação pública será dado
através do serviço oferecido pela Amazon Web Services
(AWS) o Amazon Elastic Map Reduce, um serviço web
que permite à empresas, pesquisadores, analistas de
dados e desenvolvedores processar de maneira fácil (e a
um custo razoável) grandes quantidades de dados. Este
serviço utiliza o Hadoop em conjunto com o poder
computacional oferecido pelo Amazon Elastic Compute
Cloud (Amazon EC2) e Amazon Simple Storage Service
(Amazon S3), de forma off-premise. (Amazon Web
Services [AWS], 2011).
Para execução do seu fluxo de trabalho
utilizando o Elastic MapReduce, é necessário a
configuração do tipo e da quantidade de instâncias que
serão utilizadas no processamento, oferecidas através do
serviço Elastic Compute Cloud (EC2). A Amazon
oferece quatro tipos de instâncias: padrão (desempenho
equilibrado e genérico); alto poder de memória; alto
poder de processamento; e instâncias de alto
desempenho (combinando alto poder de memória com
alto poder de processamento e rede interna de 10 Gbps).
Para utilização do MapReduce, além de levantar
as instâncias utilizando o EC2, deve-se utilizar o serviço
de armazenamento para as entradas e saídas das suas
computações, para isso utiliza-se o Simple Storage
Service (S3). Este serviço é oferecido através da Internet
e prove uma interface simples que pode ser usada para
armazenar ou recuperar quaisquer quantidades de dados,
a qualquer momento, independente de onde você estiver.
Núvens públicas como a da Amazon provém
uma estrutura robusta, facilmente administrável e com
muitas opções de escalabilidade, sendo um dos serviços
mais conhecidos e confiáveis de computação em nuvem,
porém esbarrando em questões de segurança, privacidade
e questões legais, ainda não solucionadas, que serão
discutidas posteriormente.
A escolha de implementação em nuvens
privadas acabam por complementar e até mesmo
amenizar essas questões de segurança ainda recentes no
uso de computação em nuvem.
Uma solução para implementação desta
proposta em núvens privadas é o Eucalyptus (Elastic
Utility Computing Architecture Linking Your Programs
To Useful Systems), que é uma infraestrutura de software
de código aberto para implementação de nuvens onpremise em organizações que já possuem infraestrutura
(data center) estabelecida, com isso os dados sensíveis
permanecem seguros pois são instalados atrás dos
firewalls das próprias empresas. (Eucalyptus System,
2009).
A plataforma de gerenciamento do Eucalyptus
fornece um sistema para que o administrador da nuvem
possa satisfatoriamente gerenciar e controlar seu sistema.
Existem várias interfaces personalizáveis disponíveis,
podendo ser definidas de acordo com o privilégio de
cada usuário (administrador, gerente de projeto,
desenvolvedor, etc.). Além disso, existem algumas outras
características oferecidas por essa plataforma de
gerenciamento, que inclui a gestão das máquinas virtuais,
armazenamento, gestão de usuários/grupos, definições de
acordos a níveis de serviço, entre outros. (Eucalyptus
System, 2009).
Eucalyptus é uma implementação de código
aberto, pensada para simplificar o processo de construir e
gerenciar uma nuvem privada para necessidades de
quaisquer tamanho, e de acordo com Wardley et al.
(2009), as distribuições mais recentes do Ubuntu incluem
o Eucalyptus, como um dos componentes da distribuição
chamada de Ubuntu Enterprise Cloud (UEC),
fornecendo compatibilidade com a estrutura da Amazon
(EC2 e S3).
O Hadoop se encaixa e trabalha de maneira
simples e fácil no Eucalyptus, e a partir disso a execução
de tarefas no Hadoop através do Eucalyptus passa a ser
uma tarefa simples, não requerendo maiores
conhecimentos técnicos por parte do perito.
A proposta oferece a utilização do Eucalyptus
para criação da nuvem privada, porém não se limita
apenas a essa plataforma de software, outra plataformas
podem ser utilizadas na proposta. Além do Eucalyptus,
um outro serviço oferecido pela Amazon, chamado
Virtual Private Cloud (VPC) nos chamou a atenção,
podendo vir a ser uma solução para implementação do
modelo proposto. Apesar de não ser uma idéia madura, a
utilização deste serviço se encaixa nos parâmetros da
proposta, permitindo que você conecte uma estrutura já
existente juntamente a um conjunto isolado de recursos
oferecidos pela Amazon, permitindo a utilização da
computação em nuvem, instâncias EC2 da Amazon,
Armazenamento S3 e MapReduce através da utilização
de Virtual Private Network (VPN).
4. ADOÇÃO, UMA QUESTÃO DE CONFIANÇA
A segurança é um dos aspectos chaves para a adoção da
computação em nuvem, sendo amplamente discutida
entre as empresas e governos, na busca por padrões que
forneçam segurança das informações e incluam proteção
a privacidade. (Kundra, 2010).
Hoje, a decisão em se adotar a computação em
nuvem, independente da sua aplicação, é baseada em
riscos, não em tecnologia, uma vez que a computação em
On-line http://revista.univar.edu.br/
Interdisciplinar: Revista Eletrônica da Univar (2011) n. 6 p. 227 - 236 ISSN 1984-431X
235
nuvem assume vários níveis de segurança da informação,
dependendo do modelo escolhido.
Esta proposta, e a decisão sobre a adoção da
computação em nuvem, independente do modelo adotado
ser público ou privado envolve questões relacionadas a
segurança, uma vez que resultados da computação serão
usados como evidências em casos de perícia.
Nuvens públicas esbarram em questões legais e
de segurança. Segundo Damoulakis (2010) e com
complementação de Iball (2010), as questões mais
levantadas são:
•
•
•
•
•
•
Onde estão meus dados?
Como meus dados estão sendo protegidos?
Quem pode acessar ou visualizar meus dados?
Como as instalações físicas e digitais são
seguradas?
Quão freqüentemente são realizadas rotinas de
checagem e auditoria de acesso a áreas restritas
pelos administradores do sistema?
Quais são os padrões industriais que o provedor
possui?
Além dessas questões, Iball (2010) diz que
muitas outras ainda podem ser feitas e servir de base para
sua decisão sobre qual modelo, fornecedor e se vale
realmente a pena aderir a esta tecnologia. Isso faz com
que diminuam as chances dos seus dados serem expostos
a riscos desnecessários, e mais, possuir um bom Acordo
em Nível de Serviço (Service Level Agreement – SLA) é
um ponto chave para um relacionamento de longo termo
satisfatório com seu provedor de serviços.
O acordo em nível de serviço é responsável por
nortear a confiança entre as partes (consumidor e
provedor), necessariamente importante, pois são nesses
acordos que são definidos os detalhes cruciais para a
implementação da proposta, personalizando todos os
requisitos de segurança. Mais sobre adoção e escolha de
provedores são tratadas pela Cloud Security Aliance CSA (2009) e Jericho (2009).
Antes de escolher um provedor qualquer e
executar suas instâncias, devemos nos atentar a questões
legais, tanto de jurisdição quanto de normas e
regulamentações. Por exemplo, na União Européia a
segurança é abrangida pela lei, ou seja, a lei de proteção
de dados Européia estipula que qualquer empresa, como
dona dos dados, é totalmente responsável pela segurança
dos seus próprios dados. O Ato de Proteção de Dados do
Reino Unido, de 1998 requer que empresas incorporem
requisitos de segurança em contratos de terceirização
com empresas que venham a processar os dados. Isso
demonstra que o ônus vai todo para pequenas e medias
empresas, que devem ter garantias que o provedor de
serviços em nuvem forneça os níveis de segurança
apropriados.
Se comparada à nuvens públicas, as nuvens
privadas apresentam um beneficio mais satisfatório,
devido as questões relacionadas aos mecanismos de
segurança e jurisdição, amplamente entendidos e
aplicados. As nuvens privadas utilizam data centers já
estabelecidos nas empresas, sendo protegidos por um
firewall, podendo então ser gerenciados pela própria
organização (o que é mais seguro) ou ter o
gerenciamento terceirizado.
Com nuvens privadas é possível ter o senso de
localização quanto aos dados, onde estão sendo
armazenados e executados, quem são responsáveis por
eles, quem possui acesso, além de outras questões de
proteção física e digital. Porém, não há
compartilhamento de custos entre diversos usuários.
Confidencialidade, privacidade, integridade e
auditabilidade ainda são questões em aberto, e para
garantir que a nuvem possa ser utilizada para entrega de
forense como serviço, devemos futuramente levar em
conta essas questões nos casos de perícia.
4.1 Software
Modelos tradicionais de software normalmente estão
restritos ao uso apenas no computador onde eles estão
sendo executados, devido a isso, muito provedores de
computação em nuvem utilizam ferramentas de código
aberto, uma vez que ferramentas comerciais ainda não
possuem uma licença aceitável para se trabalhar em
nuvem.
Além disso, as ferramentas forenses atuais não
utilizam todo o poder disponível em ambientes em
nuvem, menos ainda no contexto da utilização do modelo
de programação MapReduce, para tanto vale a pena
discutir a necessidade de se re-escrever códigos para
implementação efetiva do modelo.
Programação paralela é mais eficiente que
programação serial e também pode ser usada para
resolver problemas em grandes conjuntos de dados
utilizando recursos não locais. Quando há um conjunto
de computadores interligados em rede, neste caso a
nuvem, nós temos um grande poder computacional nas
mãos, podendo fazer uso de processamento distribuído e
programação paralela utilizando MapReduce para
solucionais problemas forenses em grandes quantidades
de dados.
Muitas aplicações forenses podem ser
especificadas utilizando este modelo, e exemplos podem
On-line http://revista.univar.edu.br/
Interdisciplinar: Revista Eletrônica da Univar (2011) n. 6 p. 227 - 236 ISSN 1984-431X
236
ser encontrados no trabalho de Roussev et. al (2009),
citando o uso do wordcounter que calcula o numero de
vezes que uma palavra aparece em um texto; piestimator que calcula uma aproximação do valor de PI
baseado no método de Monte Carlo; grep que realiza
uma busca no texto; e uma aplicação de bloomfilter, que
faz o hash de um arquivo em blocos de 4 KB utilizando
SHA-1 e então os insere em Bloom filters.
5. CONCLUSÃO
Esta proposta visa propor uma solução viável utilizando
computação em nuvem para um dos desafios da
computação forense, citado por Garfinkel (2010), onde a
grande capacidade dos dispositivos de armazenamento
tem causado problemas, pois normalmente não há tempo
necessário para a criação de imagens forenses, ou para
processar os dados encontrados.
Nós apresentamos os conceitos envolvendo a
computação forense e a computação em nuvem,
chegando a um modelo que utilize o paradigma de
programação MapReduce distribuído através da nuvem,
nas formas públicas ou privadas, fornecendo então
Forense como Serviço (Forensic as a Service – FaaS)
como um meio de solucionar o problema citado
anteriormente, de se trabalhar com dispositivos com
grande capacidade de armazenamento.
O uso da computação em nuvem vem se
consolidando e mostrando indicações de que será mais
presente na vida cotidiana do que já é, precisamos agora
que padrões de uso, confiabilidade, privacidade e outras
questões de segurança discutidas no texto sejam
estabelecidas.
Questões
legais
ainda
caminham
vagarosamente, uma vez que ainda existem crimes não
abrangidos pelas leis atuais (brasileiras principalmente),
mas devemos continuar trabalhando para garantir que
casos realizados através desta solução apresentada
tenham validade legal em casos de envolvendo a justiça.
Esta é apena uma solução apresentada para o problema
da quantidade de dados, é possível que outras soluções
utilizando abordagens diferentes possam surgir, trazendo
novos resultados e utilizando novas tecnologias.
6. REFERÊNCIAS
Amazon Web Services – AWS (2011). Amazon Elastic
MapReduce.
Disponível
em:
<http://aws.amazon.com/elasticmapreduce/>. Acesso
em 6 jan. 2011.
Apache, Hadoop (2010). HDFS Architecture Guide.
Disponível em: <http://hadoop.apache.org/>. Acesso
em 11 jan. 2011.
Buyya. Rajkumar, Yeo. Chee Shin, Venugopal. Srikumar
(2008). Market-Oriented Cloud Computing: Vision,
Hype, and Reality for Delivering IT Services as
Computing Utilities. 10th IEEE International
Conference on High Performance Computing and
Communications, 5-13.
Cloud Security Alliance – CSA (2009). Security
Guidance for Critical Areas of Focus in Cloud
Computing V2.1.
Damoulakis, Jim (2010). In Clouds we Trust. IT NOW,
52(2), 11-12. doi:10.1093/itnow/bwq142.
Dean, J. and Ghemawat, S. (2004) MapReduce:
Simplified Data Processing on Large Clusters. Sixth
Symposium on Operating System Design and
Implementation – OSDI. Google Inc.
Eucalyptus System (2009). Eucalyptus Open-Source
Cloud Computing Infrastructure - An Overview.
Disponível
em:
<http://www.eucalyptus.com/
pdf/whitepapers/Eucalyptus_Overview.pdf>. Acesso
em 5 fev. 2011.
Garfinkel, Simson L (2010). Digital Forensics Research:
The next 10 years. Digital Forensics Research
Workshop (DFRWS).
Iball, John (2010) Don't Cloud Data Security. ITNOW,
52 (2), 14-15. doi: 10.1093/itnow/bwq143.
Jericho Forum (2009). Cloud Cube Model: Selecting
Cloud Formations for Secure Collaboration.
Disponível em: <http://www.opengroup.org/jericho/
cloud_cube_model_v1.0.pdf>. Acesso em 6 fev.
2011.
Kundra, Vivek (2010). State of Public Sector Cloud
Computing. Washington, DC.
Lee, H.; Palmbach, T.; Miller, M. (2001) Henry Lee's
Crime Scene Handbook. London: Academic Press
Marins, C. E. (2001). Desafios da informática forense no
cenário de Cloud Computing. Proceedings of the
Fourth International Conference of Computer
Science.
Mell, P.; Grance, T. (2009). The NIST Definition of
Cloud Computing. National Institute of Standards
and Technology (NIST), V. 15, Information
Technology Laboratory.
Nance, K.; Hay, B.; Bishop, M. (2009). Digital forensics:
defining a research agenda. 42nd Hawaii International
Conference on System Sciences.
Nichols, R. (2010). Cloud Computing by Number what
do all the Statistics Mean. Disponível em:
On-line http://revista.univar.edu.br/
Interdisciplinar: Revista Eletrônica da Univar (2011) n. 6 p. 227 - 236 ISSN 1984-431X
237
<http://blogs.computerworld.com/16863/cloud_comp
uting_by_the_
numbers_what_do_all_the_statistics_mean>. Acesso
em 23 mar. 2011.
Paquette, S., Jaeger, P., Wilson, S. (2010). Identifying
the security risks associated with governmental use of
cloud computing. Government Information Quarterly
27.
Regional Computer Forensics Laboratory – RCFL.
(2009). Annual Report for Fiscal Year 2009. U.S.
Department of Justice. Federal Bureau of
Investigation. Quantico, VA.
Roussev, V.; Richard III, G. (2004). Breaking the
Performance Wall: The Case for Distributed Digital
Forensics. Digital Forensics Research Workshop
(DFRWS).
Roussev, V.; Wang, L.; Richard III, G.; Marziale, L.
(2009). MMR: A Platform for Large-Scale Forensic
Computing. Fifth Annual IFIP WG 11.9
International Conference on Digital Forensics.
Shanmugasundaram, K.; Memon, N.; Savant, A.;
Bronnimann, H. (2009). ForNet: A Distributed
Forensics Network. 2nd International Workshop on
Mathematical Methods, Models and Architectures
for Computer Networks Security.
Tang, Y.; Daniels, T. (2005). A Simple Framework for
Distributed Forensics. 2nd International Workshop on
Security in Distributed Computing Systems (SDCS ICDCSW), 163-169.
Vaquero, L; Rodero-Merino, L.; Caceres, J.; Lindner, M.
(2009). A Break in the Clouds: Towards a Cloud
Definition. ACM – SIGCOMM, Computer
Communication Review, 39(1), 78-85.
Wardley, S., Goyer, E., Barcet, N. (2009). Ubuntu
Enterprise Cloud Architecture. Disponível em:
<http://www.canonical.com/sites/default/files/active/
Whitepaper-UbuntuEnterpriseCloudArchitecturev1.pdf>. Acesso em 10 jan. 2011.
On-line http://revista.univar.edu.br/
Interdisciplinar: Revista Eletrônica da Univar (2011) n. 6 p. 227 - 236 ISSN 1984-431X

Documentos relacionados