Forense em Solid State Drive: entendendo os mecanismos
internos que podem inviabilizar a recuperação de dados
Marcos A. C. Corrêa Júnior, Ruy J. Guerra B. de Queiroz
Universidade Federal de Pernambuco (UFPE)
{maccj, ruy}@cin.ufpe.br
Abstract. Extracting useful evidence from digital media is a challenging but
important forensic task. CDs, DVDs, flash drives, hard drives, SSDs, are all
devices that may contain useful material. This article focus on the forensic
investigation procedures for the analysis of Solid State Drive, this device differs
a lot in comparison to other storage devices. It is a secondary storage device,
like a HDD, but whose storage cell is formed by semiconductor memories (flash
NAND). There are internal mechanisms that make the SSD quite different from
magnetic disks, this work investigate the internal mechanisms to analyses the
behaviour of these mechanisms and how they can destroy data.
Resumo. A utilização de evidências obtidas em mı́dias digitais é uma tarefa
investigativa difı́cil, mas muito importante. CDs, DVDs, pen drives, discos
rı́gidos, SSDs, todos são dispositivos que podem conter material útil a procedimentos judiciais. Este artigo volta-se à investigação de procedimentos forenses
em Solid State Drive uma vez que se trata de um dispositivo de armazenamento secundário, assim como o HDD, mas cuja célula de armazenamento é
formada por memórias semicondutoras do tipo flash NAND. Além da forma de
armazenamento, há mecanismos internos ao SSD que o fazem diferir de discos
magnéticos. Este trabalho aborda os mecanismos internos do SSD e analisa
como o comportamento desses mecanismos pode inviabilizar a recuperação de
dados.
1. Introdução
Hodiernamente, solid state drives baseados em memória flash NAND tornaram-se uma
tecnologia de destaque que desperta um forte interesse tanto na indústria quanto na
academia. O número de computadores que utilizam SSD em substituição aos tradicionais hard disk drives (HDDs) vem crescendo, o IDC estima que em 2014 as cifras
que corporações gastaram com armazenamento baseado em memória flash - incluem-se
aı́ memória flash pura (SSD) e hı́brida (SSHD) -, alcançaram US$11.3 bilhões [Patrizio
2015]. O SSD é compatı́vel com as interfaces utilizadas pelo HDD, além da compatibilidade a pequena latência de leitura e escrita, o baixo consumo de energia, a resistência
maior a choques mecânicos, o fato de ele ser mais leve, os ganhos de desempenho fazem
do SSD um forte concorrente do HDD.
Apesar da semelhança com os HDDs no que diz respeito às interfaces, essas
semelhanças acabam por aı́, já que por trás da interface compatı́vel há um funcionamento
interno mais complexo, com muitos algoritmos sofisticados desenvolvidos e implementados por diferentes fabricantes.
O SSD tem a sua estrutura interna diferente do HDD e o seu projeto interno pode
variar completamente de um fabricante para outro, ou mesmo variar entre modelos distintos de SSDs de um mesmo fabricante. Há implementações variadas de algoritmos que
tem por objetivo estender a vida útil e o desempenho das unidades de estado sólido, por
isso o SSD é um dispositivo de armazenamento bem diferente e seu hardware, bem como
seus mecanismos internos, propiciam não só comportamento e desempenho distintos, mas
também levam inevitavelmente a muita incerteza [Chen et al. 2009].
Em investigações nas quais procedimentos forenses computacionais sejam requeridos uma das tarefas mais comuns é extrair dados de computadores, o que é realizado obtendo-se dados do usuário que estão disponı́veis em dispositivos não-voláteis de
armazenamento [Sharpe 2013]. Em muitas investigações as informações mais relevantes
foram apagadas, quando o armazenamento persistente é realizado em HDDs há métodos
que permitem recuperar os documentos apagados; entretanto, quando o armazenamento
é realizado em SSDs, estudos mostram que devido ao funcionamento interno distinto, os
métodos aplicados a HDDs não são eficazes para SSD, para Bell e Boddington [Bell and
Boddington 2010] mecanismos internos dos SSDs podem representar o fim das práticas
atuais de recuperação de arquivos apagados.
O restante deste artigo está organizado da seguinte forma: a Seção 2 apresenta
os trabalhos relacionados e como o trabalho proposto se diferencia deles. A Seção 3
detalha o SSD no que diz respeito ao seu hardware e a Seção 4 detalha os mecanismos
internos que, se por um lado melhoram o desempenho e estendem a vida útil do SSD, por
outro lado podem prejudicar a recuperação de arquivos apagados. A Seção 5 apresenta
técnicas atuais de recuperação de arquivos e alguns dos problemas enfrentados, tanto em
discos magnéticos quanto em discos de estado sólido. Finalmente, a Seção 6 apresenta as
conclusões deste trabalho e a proposição de linhas de pesquisa para trabalhos futuros na
área.
2. Trabalhos Relacionados
Em Skorobogatov [Skorobogatov 2005] é realizada uma análise da remanescência de
dados em dispositivos de memória semicondutora, essa pesquisa demonstra que após
operações de apagamento em memórias flash pode ser possı́vel extrair dados supostamente apagados, mas o autor reconhece que a recuperação desses dados é extremamente
difı́cil. Para o autor, vários dispositivos de segurança como microcontroladores e smartcards com memória EEPROM/Flash assumem que a informação da memória desaparece
por completo depois de uma operação de apagamento, essa crença pode comprometer a
segurança do sistema uma vez que dados podem ser extraı́dos mesmo após essa memória
semicondutora ter passado pelo processo de apagamento.
Antonellis [Antonellis 2008] em seu trabalho adverte que SSD impõe dificuldades
para a área forense que precisam ser enfrentadas, ele faz um experimento prático cujos
resultados obtidos ele reputa serem inesperados e alarmantes, já que nos experimentos
práticos ele não consegue recuperar informação útil com as ferramentas existentes. Segundo Antonellis, unidades de estado sólido deveriam retornar dados usando métodos já
padronizados de recuperação.
Chen e outros [Chen et al. 2009] mencionam que otimizações de hardware e
de software foram feitas e que elas têm como objetivo estender a vida útil e também o
desempenho de unidades SSD. Nesse trabalho, busca-se por meio de experimentos em
três unidades de estado sólido distintas entender o desempenho e o comportamento de
Solid State Drives.
Bell e Boddington [Bell and Boddington 2010] mostram que unidades de estado
sólido têm a capacidade de destruir provas (dados), mesmo na ausência de instruções
especı́ficas de um computador para fazê-lo. SSDs têm procedimentos internos que podem
contaminar as provas de forma imprevisı́vel, esse comportamento dificulta a validação de
provas e prejudica a credibilidade dos dados recuperados. Bell e Boddington verificaram
que dados podem ser removidos de um disco dentro de minutos e concluem: “parece
possı́vel que a idade de ouro para a recuperação, análise de dados e metadados excluı́dos
tenha chegado ao fim ”.
Em Wei e outros [Wei et al. 2011] são testadas técnicas de limpeza de unidades
de estado sólido. Essa pesquisa afirma que certos dados os quais foram apagados em
um SSD podem ainda estar no disco devido ao processo de wear leveling, porém esses
dados estarão inacessı́veis por meio de software. Os resultados desse trabalho levam a
três conclusões: em primeiro lugar, comandos internos são eficazes, mas os fabricantes
muitas vezes os implementam de forma incorreta; em segundo lugar, substituir todo o
espaço de endereços visı́vel de um SSD por duas vezes geralmente é suficiente para zerar
a unidade; em terceiro lugar, nenhuma das técnicas existentes para destruição de arquivo
individual em HDDs é eficaz em SSDs.
No trabalho de Nisbet e outros [Nisbet et al. 2013] é feita a análise forense em
unidades de estado sólido, não só analisando os algoritmos wear leveling e garbage collection, mas também comparando o uso daqueles com outros SSDs que além de wear
leveling e garbage collection funcionam em conjunto com sistemas de arquivos capazes
de enviar aos SSDs a instrução TRIM. As conclusões desse trabalho levam a crer que
discos e sistemas operacionais com a instrução TRIM habilitada deixarão muito menos
dados para investigadores forenses do que esses mesmos discos e sistemas sem TRIM
habilitado.
Jamie Sharpe em seu artigo intitulado How SSD Technology Deletes Evidence [Sharpe 2013] aborda o problema da análise forense em SSD por meio de uma
análise comparativa com discos rı́gidos tradicionais. Robert Winter e Kroll Ontrack [Winter 2013] também desenvolvem um artigo com diversas comparações entre solid state
drives e hard disk drives.
Os trabalhos [Gubanov and Afonin 2014] e [Bonetti et al. 2014] apresentam entre
si conclusões semelhantes, para eles os SSDs têm implementações diferentes a depender
do fornecedor e, por isso cada SSD age de forma diferente. Em muitas situações, unidades
de estado sólido podem tornar difı́cil recuperar arquivos apagados, mas há inúmeras
exceções que permitem aos especialistas recuperar arquivos aparentemente apagados, por
isso algumas combinações de controladores de memória SSD, SO, sistemas de arquivos
e outras caracterı́sticas podem influenciar na quantidade de informações que podem ser
recuperadas.
Em [Yang et al. 2014], há uma visão geral do estado da arte de dois dos principais
mecanismos internos presentes em um SSD: garbage collection e wear leveling, os quais
são responsáveis pelo desempenho e pelo aumento da vida útil dos SSDs.
3. O Solid State Drive
Para uma melhor compreensão de como os mecanismos internos podem influenciar negativamente na recuperação de dados é preciso observar a arquitetura interna de um SSD.
A Figura 1 mostra a arquitetura interna de SSDs, nela é clara a divisão do SSD em três
camadas principais, quais sejam: HIL (Host Interface Layer), FTL (Flash Translation
Layer) e FIL (Flash Interface Layer).
Figura 1. Arquitetura de SSDs [Nam and Kim 2013]
3.1. Host Interface Layer
É a camada que se refere à interface fı́sica de E/S, a qual permite conectar o SSD ao
sistema hospedeiro. A maior parte dos SSDs é construı́da com interfaces padronizadas
para HDDs, tais como: SATA (Serial ATA) e SAS (Serial Attached SCSI). Há interfaces
de armazenamento novas, não utilizadas em HDDs: a PCIe (Peripheral Component Interconnect Express) - uma interface comercialmente disponı́vel para SSDs -, a mSATA
(Mini-SATA) e a recente interface M.2, também conhecida como NGFF (Next Generation Form Factor).
3.2. Flash Translation Layer
Essa camada desempenha o papel fundamental de permitir que as células de memória
flash NAND (presentes na Flash Interface Layer) sejam mais robustas e confiáveis. O
controlador de memória que é um complexo sistema embarcado e que possui processador
e firmware especificamente desenvolvidos com o propósito de gerenciar todos os aspectos
de desempenho e funcionamento do SSD está situado nessa camada.
Muitos SSDs usam interfaces de E/S desenvolvidas para unidades de disco rı́gido,
permitindo assim a substituição simples em aplicações comuns, essa compatibilidade de
interfaces pode dar a falsa impressão de que as formas de recuperação de dados apagados
e outras caracterı́sticas do funcionamento interno de um SSD são idênticas às encontradas
em HDDs. Para Antonellis [Antonellis 2008], uma vez que esteja assegurada a compatibilidade da interface de E/S, os fabricantes implementam internamente sem restrições (de
forma proprietária), ou seja, garantida a compatibilidade com o padrão definido para a interface (seja ela SATA, SAS, etc), os fabricantes podem controlar - por meio de métodos
proprietários - as operações internas, por isso é provável que softwares proprietários especı́ficos sejam necessários para recuperar um arquivo.
A diferença existente entre as implementações de controladores de memória de
SSDs na Flash Translation Layer deve-se à disputa pelo mercado, à tentativa de buscar
algoritmos que garantam maior velocidade e desempenho. Em razão da grande quantidade de firmwares e controladores que operam de forma distinta, muito do processo de
funcionamento interno de um SSD especı́fico é desconhecido.
3.3. Flash Interface Layer
O meio de armazenamento é fator chave para o desempenho e para as vantagens de dispositivos de estado sólido. Na camada FIL estão situadas as células flash NAND, essas
células são capazes de reter carga por anos devido a um gate isolado (chamado floating
gate) que é uma excelente “armadilha” para elétrons, a escrita nas células é feita pela
adição de elétrons (programação) ou retirada de elétrons (apagamento) usando pulsos
elétricos.
A operação com memórias flash NAND possui limitações, uma das principais é
o desgaste natural que ocorre nas células de memória como decorrência do processo de
escrita e apagamento. O desgaste acarreta falhas das células individuas, que fazem com
que todo o bloco de células seja inútil depois de um certo número de ciclos de escrita e
apagamento [Perdue 2008].
Para agravar o processo de desgate das células de memória elas operam de forma
tal, que é necessário excluir dados de uma célula antes que ela volte a ser escrita, diferente
do que ocorre em um HDD. Outro ponto a ser destacado sobre o SSD e o seu armazenamento fı́sico (células, páginas, etc) é que, para que seja possı́vel acessar as informações
diretamente dos blocos fı́sicos é necessário conhecer os comandos ATA proprietários do
fabricante uma vez que é a FTL que mantém as informações do local em que cada bloco
está sendo escrito [Bell and Boddington 2010].
Células de memória flash NAND são agrupadas e por meio desses agrupamentos
são realizadas as operações, a menor unidade é a própria célula, o agrupamento de células
é a página, o agrupamento de páginas são blocos e o agrupamento de blocos são planos, o
conjunto de planos constitui um chip (die) de memória flash. Quanto a granularidade utilizada nas operações, a escrita normalmente é feita em páginas e o apagamento é realizado
em blocos [Chen et al. 2009].
4. Mecanismos Internos do SSD
A FTL é um componente essencial implementado no SSD para fazer com que o sistema
veja o dispositivo de estado sólido como um HDD. Além da necessidade de emular um
HDD, algumas caracterı́sticas e restrições operacionais inerentes às memórias flash tornam necessário o uso de mecanismos internos para viabilizar a utilização de memórias
flash NAND como meio de armazenamento de dados em SSDs.
A FTL gerencia a escrita na flash de forma que essa escrita aparenta ser realizada
em um determinado local fı́sico, como em um disco rı́gido, quando na verdade o que a
FTL deixa visı́vel é o local lógico de escrita. Esse mapeamento de blocos entre logical
block address (LBA) e physical block address (PBA) é mantido pela FTL.
A célula flash apresenta dois estados: apagado e não-apagado. No estado apagado, um byte pode ser tudo “1” (0xFF) ou tudo “0” (0x00) dependendo do dispositivo
flash. Uma dada página (granularidade padrão de escrita em memórias flash NAND) só
pode ser escrita quando a mı́dia está apagada (caracterı́stica conhecida como “apagueantes-escreva-depois”); após escrita, a página é considerada inutilizada até que passe pelo
processo de apagamento [Intel 1998], em outras palavras, uma vez escrita ela não pode ser
reescrita/atualizada; para retornar ao estado de apagada, uma página terá que ter todo o
seu bloco (granularidade de apagamento, que corresponde a múltiplas páginas) apagado.
Os procedimentos de recuperação forense em SSD já encontram uma dificuldade
inicial causada pelo mapeamento que a FTL realiza entre blocos lógicos e fı́sicos, esse
mapeamento cria uma situação que torna difı́cil acessar de forma confiável um local de
armazenamento fı́sico particular [Wei et al. 2011]. Além do mapeamento, há mecanismos
internos que são adicionados a FTL para otimizar desempenho, aumentar confiabilidade e
estender tempo de vida útil, porém esses mecanismos (wear leveling, garbage collection
e TRIM) impõem outras dificuldades à atividade forense.
4.1. Wear Leveling
Devido às operações de apagamento, um bloco de memória flash suporta apenas um
número limitado de ciclos P/E (worn-out property) [Yang et al. 2014] antes de se deteriorar e causar destruição ou comprometimento dos dados.
O wear leveling é um mecanismo cuja proposta é distribuir os apagamentos sucessivos entre os blocos do drive. Ele procura nivelar o desgaste dos blocos evitando
que apagamentos sucessivos sejam realizados em um mesmo subconjunto de blocos e
com isso atinge o objetivo para o qual foi criado: aumentar a vida útil de um SSD. Esse
aperfeiçoamento impede que parte do chip seja inutilizado rapidamente por meio dessas
repetidas tentativas de apagamento em um mesmo local. O wear leveling age de forma
a assegurar que cada um dos blocos do dispositivo seja escrito uma vez, e só volte a ser
escrito depois que todos os outros blocos já tenham sido escritos [King and Vidas 2011].
Atualmente os firmwares e controladores escrevem dados através de células de forma
mais uniforme em razão do processo de wear leveling. O wear leveling é completamente
transparente para o sistema hospedeiro e feito de forma diferente por cada fabricante, ele
gera um aumento da vida útil dos SSDs [Antonellis 2008].
É importante destacar que em um processo de modificação de um setor S, em
vez de o conteúdo alterado do setor S ser escrito no mesmo local em que as informações
estavam, acontece de aquelas informações serem salvas em outro local (um setor T) e
ser realizada uma atualização no mapeamento, então as informações do antigo setor S agora modificadas -, encontram-se no setor T e aparecem no endereço lógico de bloco
(LBA). Com isso a antiga versão das informações do S permanecem na memória flash e
são chamados de dados remanescentes [Wei et al. 2011]. Esse comportamento é gerado
pelo procedimento natural do wear leveling que, por um lado, estende a vida útil dos
SSDs e, por outro, pode deixar dados remanescentes não acessı́veis através da FTL, mas
que ainda permite um trabalho de recuperação eficaz - porém muito difı́cil de ser realizado
- desses dados remanescentes.
O wear leveling pode levar a um uso extensivo da capacidade de armazenamento
do drive, que pode levar a um segundo problema: uma significativa diminuição da velocidade de transferência. Isso ocorre por causa da caraterı́stica “apague-antes-escrevadepois”, a qual difere da caracterı́stica “escreva-sobre-dados-antigos” de fitas e discos
magnéticos. O processo de apagamento é muito lento comparado aos processos de leitura
e escrita, levando até 10 ms. Em SSD, mudança de um só byte pode resultar na necessidade de ler/apagar e escrever, por isso quando a unidade está cheia, o desempenho é
sensivelmente afetado pelo wear leveling. Muitos fabricantes, para enfrentar a perda de
desempenho ao ter que apagar antes de usar novamente um bloco, adotaram a estratégia
conhecida como Garbage Collection ou Self-Healing (auto-cura) [Bell and Boddington
2010].
4.2. Garbage Collection
Utiliza-se a garbage collection para apagar o espaço de memória flash que possua dados
desatualizados, de modo a liberar mais espaço livre para escritas posteriores.
Páginas com dados desatualizados, as páginas inválidas ou dead pages, poderão
ser recuperadas e reusadas através da garbage collection. Para recuperar essas páginas
inválidas da flash são selecionados um ou mais blocos (“blocos vı́timas”), que contenham
alguma página inválida, os dados atualizados (páginas válidas ou live pages) do “bloco
vı́tima” são copiados para outro(s) bloco(s), em seguida apaga-se o “bloco vı́tima” com o
intuito de transformar as páginas inválidas do “bloco vı́tima” em páginas livres para as escritas subsequentes. Com a finalidade de preservar as páginas do usuário que são válidas
e estão no “bloco vı́tima”, as páginas válidas devem ser copiadas para outro(s) bloco(s)
antes que o “bloco vı́tima” seja apagado. Como resultado deste cuidadoso processo para
que dados válidos não sejam perdidos, a garbage collection pode consumir muito tempo
e ser um limitador de desempenho da memória flash, em decorrência do grande número
de páginas válidas que podem ser copiadas durante esse processo. A criação de algoritmos que permitam maior eficiência à garbage collection tem sido uma área destacada de
pesquisa [Yang et al. 2014].
A utilização da garbage collection deve se preocupar com eficiência e também
com a longevidade da memória. O mecanismo é uma maneira de minimizar a perda de
desempenho pois se antecipa à caracterı́stica “apague-antes-escreva-depois”, já que apaga
os dados das células de memória antes que elas possam receber novas informações.
O processo acontece de forma automática, ou seja, sem que haja a necessidade
de interferência do usuário. É uma operação que acontece de forma transparente para o
usuário, uma vez que dados que foram previamente marcados como dados desatualizados
são apagados por blocos e o espaço apagado volta a ser uma opção de espaço para escrita.
No tocante à longevidade, é importante reduzir tanto quanto possı́vel o número de apagamentos/escritas e também tornar o mais uniforme possı́vel o número de apagamentos que
cada bloco sofre.
Em [Bell and Boddington 2010] é mencionado um problema que influencia a
execução do mecanismo, o problema diz respeito à comunicação entre sistema operacional (SO) e drive. O SO normalmente não comunica ao disco quando um arquivo foi
apagado, com isso o SSD (mais especificamente a camada FTL) não dispara o mecanismo
de garbage collection; a fim de solucionar o problema criou-se uma nova instrução, a
instrução TRIM.
4.3. TRIM
Os Hard Disk Drives (HDDs) podem realizar atualizações em locais fı́sicos marcados
como disponı́veis ainda que haja dados escritos lá. Nos HDDs os dados costumam permanecer intocados até que aquele espaço de armazenamento seja alocado para outro
arquivo. Devido ao fato de o SSD possuir caracterı́sticas diferentes (o SSD tem a
caraterı́stica “apague-antes-escreva-depois” enquanto o HDD tem caracterı́stica “escrevasobre-dados-antigos”), manter o arquivo em um local de armazenamento impede que a
escrita seja realizada e cria a necessidade de se esperar até que o apagamento da área de
armazenamento seja feita para que só então a escrita ocorra. O comando TRIM foi publicado no padrão Serial ATA em 2007, esse comando permite que o sistema operacional
informe ao SSD que determinados dados não são mais válidos e podem ser apagados.
O garbage collection não precisa preservar dados inválidos, o que evita a necessidade
de movimentar e armazenar esses dados, mitigando um problema conhecido como write
amplification.
Cabe ressaltar que o controlador do disco também decide quando iniciar e desempenhar a operação de garbage collection, a TRIM sinaliza ao SSD que há blocos de
dados que não estão em uso e podem ser preparados para uma nova escrita. TRIM é
uma solução adicional implementada em diversos sistemas operacionais modernos como
NTFS no Windows 7 e posteriores, Ext4 usado na versão Linux Kernel 2.6.33 e posteriores, HFS+ usado no Mac OS X 10.6.8 ou posterior [Nisbet et al. 2013].
Quando o sistema operacional possui a instrução TRIM implementada, após um
arquivo ser apagado o SO envia essa instrução para o controlador do SSD indicando os
endereços lógicos dos blocos que correspondem aos blocos que eram utilizados pelo arquivo recentemente apagado. De modo que os endereços lógicos dos blocos são mapeados
para os endereços fı́sicos dos blocos pela FTL, para que seja realizada a limpeza [Gebremaryam 2011].
Por isso, os problemas de degradação de desempenho e de falta de comunicação
entre sistema operacional e disco impulsionaram a busca por soluções para o
aperfeiçoamento dos SSDs, a instrução TRIM foi um desses aperfeiçoamentos. A multiplicidade de algoritmos não padronizados que operam internamente tornam o SSD um
dispositivo bem mais complexo e muito diferente do HDD. Essas diferenças afetam profundamente o trabalho de peritos que buscam a recuperação de arquivos apagados em
SSDs.
5. Técnicas de recuperação de informações em SSD
Se as técnicas desenvolvidas para recuperar informações em SSD basearem-se exclusivamente na ideia de que há dados residuais nas células de memórias semicondutoras, em
decorrência do problema de persistência de dados que afeta estas memórias semicondutoras, o resultado encontrado será arquivos cheios de “zeros” na visualização hexadecimal, conforme observou Antonellis [Antonellis 2008].
Em dispositivos de armazenamento SSD, após a interface (IDE, SATA, M.2 etc),
não há padronização do funcionamento interno, o firmware e o controlador atuam conforme o projeto de propriedade do fabricante. O código fechado que controla o que acontece internamente em um SSD, impede que especialistas em computação forense saibam
de forma precisa o que está ocorrendo.
Alguns processos internos utilizados por discos de estado sólido para aumentar o
tempo de vida útil e aumentar o desempenho são implementados de forma variada pelos
fabricantes. Esses mesmos mecanismos impõem algumas dificuldades à recuperação, são
elas:
• é quase impossı́vel sem saber os comandos ATA proprietários do fabricante, devido a FTL, acessar os blocos fı́sicos, onde estão os dados em um SSD;
• a operação de garbage collection quando atinge uma determinada área retira os
dados que ainda estão lá e escreve a área com zeros;
• a utilização da instrução TRIM de forma automática pelos sistemas operacionais
que possuem o algoritmo implementado, pode levar à limpeza do disco de estado
sólido em alguns segundos;
• a instrução TRIM pode ser utilizada diretamente como ferramenta anti-forense e
acionada de forma espontânea pelo usuário com um único comando;
• a execução da TRIM pode ainda ser automatizada e permitir que indivı́duos criem
regras de disparo baseadas em eventos para limparem os dados dos discos em
segundos.
Em outro trabalho relacionado, descobriu-se que certos dados apagados de um
SSD podem ainda estar no disco, mas são inacessı́veis por software devido ao wear leveling, porém acessı́veis por hardware [Wei et al. 2011].
6. Conclusão e Trabalhos Futuros
Este artigo apresentou mecanismos internos dos discos de estado sólido que podem tornar
inviável a recuperação de dados que foram apagados. O objetivo principal da proposta,
em comparação a outros trabalhos, foi o de prover uma visão do processo evolutivo das
operações internas que em geral ocorrem em um SSD e que prejudicam a recuperação de
dados após o processo de apagamento de um arquivo executado pelo usuário. A proposta
mostrou como ocorrem algumas das operações internas que podem eliminar definitivamente as informações dos SSDs. Para que um trabalho pericial possa no futuro recuperar
um maior número de dados, pesquisas como as de Wei e outros [Wei et al. 2011] precisam
ser melhor analisadas. Os resultados da pesquisa e análise da operação conjunta dos algoritmos e processos internos (voltados à otimização do funcionamento de discos de estado
sólido) ratificam o resultado do trabalho de Nisbet e outros [Nisbet et al. 2013]. Em sistemas operacionais com instrução TRIM habilitada operando em conjunto com discos de
estado sólido que ofereçam suporte à instrução TRIM, a quantidade de dados recuperada
é muito pequena e pode inviabilizar o trabalho pericial de recuperação de dados nesses
discos.
Referências
Antonellis, C. J. (2008). Solid state disks and computer forensics. ISSA Journal, pages
36–38.
Bell, G. B. and Boddington, R. (2010). Solid state drives: The beginning of the end for
current practice in digital forensic recovery? Journal of Digital Forensics, Security
and Law, 5(3):1–20.
Bonetti, G., Viglione, M., Frossi, A., Maggi, F., and Zanero, S. (2014). Black-box forensic
and antiforensic characteristics of solid-state drives. Journal of Computer Virology and
Hacking Techniques, 10(4):255–271.
Chen, F., Koufaty, D. A., and Zhang, X. (2009). Understanding intrinsic characteristics
and system implications of flash memory based solid state drives. In ACM SIGMETRICS Performance Evaluation Review, volume 37, pages 181–192. ACM.
Gebremaryam, F. Y. (2011). Solid state drive (ssd). digital forensics construction.
Gubanov, Y. and Afonin, O. (2014). Recovering evidence from ssd drives: Understanding trim, garbage collection and exclusions. http://ru.belkasoft.com/
download/info/SSD%20Forensics%202014.pdf.
Intel, C. (1998). Understanding the flash translation layer (ftl) specification. www.
eetasia.com/ARTICLES/2002MAY/2002MAY07_MEM_AN.PDF.
King, C. and Vidas, T. (2011). Empirical analysis of solid state disk data retention when
used with contemporary operating systems. digital investigation, 8:S111–S117.
Nam, T. and Kim, T. (2013). Practical issues in designing of garbage collection for solid
states drives. International Journal of Future Computer and Communication, 2(5):451.
Nisbet, A., Lawrence, S., and Ruff, M. (2013). A forensic analysis and comparison of
solid state drive data retention with trim enabled file systems. In Proceedings of the
11th Australian Digital Forensics Conference. SRI Security Research Institute, Edith
Cowan University, Perth, Western Australia.
Patrizio, A. (2015). Sandisk jumps into enterprise ssd market. ITworld.
Perdue, K. (2008). Wear leveling. Spansion Application Note (Wear Leveling AN 01).
Sharpe, J. (2013). How ssd technology deletes evidence. Computers for Everyone, page
147.
Skorobogatov, S. (2005). Data remanence in flash memory devices. In Cryptographic
Hardware and Embedded Systems–CHES 2005, pages 339–353. Springer.
Wei, M. Y. C., Grupp, L. M., Spada, F. E., and Swanson, S. (2011). Reliably erasing data
from flash-based solid state drives. In FAST, volume 11, pages 8–8.
Winter, R. (2013).
2013(3):12–14.
Ssd vs hdd–data recovery and destruction.
Network Security,
Yang, M.-C., Chang, Y.-M., Tsao, C.-W., Huang, P.-C., Chang, Y.-H., and Kuo, T.-W.
(2014). Garbage collection and wear leveling for flash memory: Past and future. In
Smart Computing (SMARTCOMP), International Conference on, pages 66–73. IEEE.
Download

Forense em Solid State Drive: entendendo os mecanismos internos