14
Computação Forense e as oportunidades oferecidas pela Computação em Nuvem Dener Didoné 1 , Ruy de Queiróz 1 1 Centro de Informática (CIn) Universidade Federal de Pernambuco (UFPE) Cidade Universitária 50.740-560 Pernambuco PE Brazil {dd,ruy}@cin.ufpe.br 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. 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. 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 e 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 seguir depois para ações jurídicas. A computação forense é uma disciplina relativamente nova, e 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 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”.

Computação Forense e as oportunidades oferecidas pela ... · A computação forense é uma disciplina relativamente nova, e crescendo a passos largos, que surgiu em resposta a esses

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Computação Forense e as oportunidades oferecidas pela ... · A computação forense é uma disciplina relativamente nova, e crescendo a passos largos, que surgiu em resposta a esses

Computação Forense e as oportunidades oferecidas pela

Computação em Nuvem

Dener Didoné1, Ruy de Queiróz

1

1 Centro de Informática (CIn) – Universidade Federal de Pernambuco (UFPE)

Cidade Universitária – 50.740-560 – Pernambuco – PE – Brazil

{dd,ruy}@cin.ufpe.br

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.

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.

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 e 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 seguir depois para

ações jurídicas.

A computação forense é uma disciplina relativamente nova, e 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 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”.

Page 2: Computação Forense e as oportunidades oferecidas pela ... · A computação forense é uma disciplina relativamente nova, e crescendo a passos largos, que surgiu em resposta a esses

É visível a crescente demanda pela solução de crimes digitais, além disso,

Garfinkel (2010) cita como um fator complicante e um dos problemas em vista da

computação forense, ao aumento da capacidade de armazenamento dos dispositivos

digitais, o que significa que normalmente não é tempo para o perito criar uma imagem

do dispositivo para a 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 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 a segurança de uma proposta 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.

2.1 Computação Forense

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.

A computação forense é uma importante ferramenta na solução de crimes

cometidos utilizando o computador (por exemplo o phising) 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, celulares, tablets,

notebooks, etc) se tornaram freqüentes e necessárias para elucidação desses crimes

Page 3: Computação Forense e as oportunidades oferecidas pela ... · A computação forense é uma disciplina relativamente nova, e crescendo a passos largos, que surgiu em resposta a esses

eletrônicos. De acordo com o FBI, em 2009 foram examinados 6 mil casos através de 17

estados e mais de 2,300 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 análisar 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.

2.2 Computação em Nuvem

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 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 a nível de serviço personalizados (Service Level Agreement –

SLA).

Através destas definições podemos notar um denominador comum sobre o que é

cloud, sendo eles escalabilidade, modelo de pagamento por consumo e virtualização.

Conforme ressalta Buyya et al. (2008), todos eses services 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 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

Page 4: Computação Forense e as oportunidades oferecidas pela ... · A computação forense é uma disciplina relativamente nova, e crescendo a passos largos, que surgiu em resposta a esses

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 infrasestrutura

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.

Page 5: Computação Forense e as oportunidades oferecidas pela ... · A computação forense é uma disciplina relativamente nova, e crescendo a passos largos, que surgiu em resposta a esses

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 “pay-as-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ção e suporta uma comunidade específica que 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 tem sim algo

novo a oferecer para a computação forense, seja no armazenamento, processamento, ou

seja, poder computacional ou nos modelos de entrega de serviços ou até nas 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, que tal?) 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.

Page 6: Computação Forense e as oportunidades oferecidas pela ... · A computação forense é uma disciplina relativamente nova, e crescendo a passos largos, que surgiu em resposta a esses

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 de massivamente

paralelas que processem Terabytes de dados em clusters.

Programas escritos nesta linguagem functional 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 como 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 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 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 reduce 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.

Page 7: Computação Forense e as oportunidades oferecidas pela ... · A computação forense é uma disciplina relativamente nova, e crescendo a passos largos, que surgiu em resposta a esses

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 distribuido projetado para ser executado qualquer hardware,

sendo altamente tolerante a falhas e projetado para ser implantado em hardware de baixo

custo, proporcionando aos dados de aplicações altas taxas de acesso, 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. Oportunidades em vista

Tenho em vista a demanda pela solução de crimes digitais, acrescida do aumento da

quantidade de armazenamento dos dispositivos eletrônicos, citado por Garfinel (2010), e

vislumbrando a quantidade de dados examinados pelo FBI em 2009, RCFL (2009), que

ultrapassou a marca de 2 mil TeraBytes, podemos ter uma idéia do problema que

estamos enfrentando.

O crescimento vertiginoso que a computação em nuvem vem passando 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, na resolução dos desafios da computação forense.

Além disso, é válido que governos comessem a pensar na proposta apresenta

abaixo como solução para um melhor aproveitamento do seu parque tecnológico.

Maiores detalhes vide Kundra (2010) e Paquette et al. (2010).

4. Proposta de utilização

Prevendo a crise da computação forense, Garfinkel (2010) cita 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.

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.

Conforme 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

Page 8: Computação Forense e as oportunidades oferecidas pela ... · A computação forense é uma disciplina relativamente nova, e crescendo a passos largos, que surgiu em resposta a esses

acabada extrapolando o poder computacional de estações forenses utilizadas nos

laboratórios pelos peritos de hoje.

Uma abordagem interessante utilizando clusters e recurso 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 realizado por Tang et al. (2005) criou 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 neste sentido é o

ForNet, de Shanmugasundaram et al. (2009), utilizando forense distribuida 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 pericia como o Forensics

Toolkit (FTK) da AccessData, passaram a incluir suporte a processadores multi-core e a

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.

Page 9: Computação Forense e as oportunidades oferecidas pela ... · A computação forense é uma disciplina relativamente nova, e crescendo a passos largos, que surgiu em resposta a esses

Figure 1. Modelo proposto para entrega de Forense como Serviço

A figura 1 ilustra o cenário da nossa 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.

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.

4.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 as empresas, pesquisadores, analistas de dados e desenvolvedores processar de

maneira fácil (a um custo razoável) grandes quantidades de dados. Este serviço utiliza o

Hadoop utilizando computação oferecida 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

Page 10: Computação Forense e as oportunidades oferecidas pela ... · A computação forense é uma disciplina relativamente nova, e crescendo a passos largos, que surgiu em resposta a esses

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 de 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 on-premise

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, que não requer 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, e pode 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).

Page 11: Computação Forense e as oportunidades oferecidas pela ... · A computação forense é uma disciplina relativamente nova, e crescendo a passos largos, que surgiu em resposta a esses

5. 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

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 publico 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), e isso é 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

Page 12: Computação Forense e as oportunidades oferecidas pela ... · A computação forense é uma disciplina relativamente nova, e crescendo a passos largos, que surgiu em resposta a esses

garantias que o provedor de serviços em nuvem forneça os níveis de segurança

apropriados.

Se comparada as nuvens publicas, 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 tem

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 levar em conta essas questões nos casos de perícia.

5.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 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; pi-

estimator 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.

6. 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

Page 13: Computação Forense e as oportunidades oferecidas pela ... · A computação forense é uma disciplina relativamente nova, e crescendo a passos largos, que surgiu em resposta a esses

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 modelo de programação

MapReduce distribuído através da nuvem, nas formas publicas 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á é, e agora nós precisamos 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.

Referencias

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).

Page 14: Computação Forense e as oportunidades oferecidas pela ... · A computação forense é uma disciplina relativamente nova, e crescendo a passos largos, que surgiu em resposta a esses

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: <http://blogs.computerworld.com/16863/cloud_computing_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. Fifith 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 Comunication 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-

UbuntuEnterpriseCloudArchitecture-v1.pdf>. Acesso em 10 jan. 2011.