Advertisement
fernandop

ext4-forense

Mar 5th, 2015
264
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. \subsection{Estrutura do ext4}
  2.  
  3. Conhecer o sistema de arquivos a ser analisado é um requisito
  4. quando se trata de partições problemáticas ou com técnicas
  5. de anti-forense (veremos algumas adiante). Nesta seção
  6. abordaremos conceitos sobre o ext4, o sistema de arquivos
  7. padrão das distribuições GNU/Linux atuais, mas é importante
  8. notar que nem sempre você irá se deparar com ext4. É bem
  9. possível que você encontre sistemas ext3, ZFS (Sun/Oracle),
  10. JFS (IBM), dentre outros em servidores Linux ou Unix. No entanto,
  11. os conceitos expostos aqui servirão como base para estudo
  12. dos conceitos de outros \emph{filesystems}.
  13.  
  14. O ext4 mantém os seguintes registros de data para cada arquivo:
  15.  
  16. \begin{description}
  17. \item[mtime] data em que o arquivo foi modificado
  18. \item[atime] data em que o arquivo foi acessado
  19. \item[ctime] data em que o arquivo teve um atributo modificado
  20. \item[dtime] data em que o arquivo foi excluído
  21. \item[crtime] data em que o arquivo foi criado
  22. \end{description}
  23.  
  24. Em seu antecessor, o ext3, somente os três primeiros atributos
  25. estão presentes, algo que a comunidade de segurança já se incomodava.
  26. A resolução de tempo passou a ser de \textbf{nanosegundos},
  27. contra segundos do ext3.
  28.  
  29. As seguintes ferramentas presentes na suíte e2fsprogs merecem destaque:
  30.  
  31. http://e2fsprogs.sourceforge.net
  32.  
  33. \begin{description}
  34. \item[e2image] Gera imagens com metadados críticos de partições para arquivos
  35. \item[dumpe2fs] Exibe informações sobre uma partição. Pode ser usado com uma
  36. imagem gerada pelo e2image
  37. \item[debugfs] Um debugger interativo que também pode ser usado com imagens do e2image
  38. \end{description}
  39.  
  40. Para cada arquivo existente no filesystem, existe uma estrutura
  41. responsável por representá-lo chamada \textbf{inode}. O inode também
  42. armazena todas as informações sobre um arquivo, com excessão
  43. de seu nome e conteúdo. Para verificar tais informações, podemos
  44. usar o comando stat:
  45.  
  46. \begin{verbatim}
  47. # stat mbr.img
  48.  File: "mbr.img"
  49.   Size: 512         Blocks: 8          IO Block: 4096   arquivo comum
  50. Device: 805h/2053d  Inode: 7604329     Links: 1
  51. Access: (0644/-rw-r--r--)  Uid: ( 1000/   nandu)   Gid: ( 1000/   nandu)
  52. Access: 2012-05-22 00:06:14.492249402 -0300
  53. Modify: 2012-05-22 00:06:32.056336493 -0300
  54. Change: 2012-05-22 00:06:32.056336493 -0300
  55. Birth: -
  56. \end{verbatim}
  57.  
  58. No entanto, conforme você deve ter percebido, a data de criação
  59. do arquivo não apareceu. Acontece que nem todas as ferramentas
  60. já estão adaptadas ao ext4, mas por sorte o debugfs resolve:
  61.  
  62. \begin{verbatim}
  63. # debugfs -R 'stat <7604329>' /dev/sda5
  64. Inode: 7604329   Type: regular    Mode:  0644   Flags: 0x80000
  65. Generation: 3982433542    Version: 0x00000000:00000001
  66. User:  1000   Group:  1000   Size: 512
  67. File ACL: 0    Directory ACL: 0
  68. Links: 1   Blockcount: 8
  69. Fragment:  Address: 0    Number: 0    Size: 0
  70. ctime: 0x4fbb02b8:0d6e81b4 -- Tue May 22 00:06:32 2012
  71. atime: 0x4fbb02a6:755c84e8 -- Tue May 22 00:06:14 2012
  72. mtime: 0x4fbb02b8:0d6e81b4 -- Tue May 22 00:06:32 2012
  73. crtime: 0x4fbb01ac:be7fc6ac -- Tue May 22 00:02:04 2012
  74. Size of extra inode fields: 28
  75. EXTENTS:
  76. (0):30154696
  77. \end{verbatim}
  78.  
  79. \begin{Nota}
  80. Este comando stat passado para o debugfs é um comando
  81. interno do debugger e não o stat do coreutils usado
  82. anteriormente.
  83. \end{Nota}
  84.  
  85. Se o arquivo for excluído, o atributo \textbf{dtime} aparecerá:
  86.  
  87. \begin{verbatim}
  88. $ rm mbr.iso
  89. # debugfs -R 'stat <7604329>' /dev/sda5
  90. Inode: 7604329   Type: regular    Mode:  0644   Flags: 0x80000
  91. Generation: 3982433542    Version: 0x00000000:00000001
  92. User:  1000   Group:  1000   Size: 0
  93. File ACL: 0    Directory ACL: 0
  94. Links: 0   Blockcount: 0
  95. Fragment:  Address: 0    Number: 0    Size: 0
  96. ctime: 0x4fbb3ad4:d0c06a9c -- Tue May 22 04:05:56 2012
  97. atime: 0x4fbb39fe:dce57df0 -- Tue May 22 04:02:22 2012
  98. mtime: 0x4fbb3ad4:d0c06a9c -- Tue May 22 04:05:56 2012
  99. crtime: 0x4fbb01ac:be7fc6ac -- Tue May 22 00:02:04 2012
  100. dtime: 0x4fbb3ad4 -- Tue May 22 04:05:56 2012
  101. Size of extra inode fields: 28
  102. EXTENTS:
  103. \end{verbatim}
  104.  
  105. O debugfs também pode atuar com imagens de disco,
  106. como faremos nos exercícios.
Advertisement
RAW Paste Data Copied
Advertisement