@port139 Blog

基本的にはデジタル・フォレンジックの技術について取り扱っていますが、記載内容には高確率で誤りが含まれる可能性があります。

タイムラインの謎

sonodamさんが書かれている「調査中出てきたおもろネタ」のタイムラインですが、ネタバレしちゃうと*1
まず調査のきっかけというかネタ振りになっている .bash_history の一部が以下のような記述になっています。

.bash_historyの記述内容

vi pin.sh
sh -v pin.sh

キャプチャされていた ARP パケットの発生時刻、/bin/vi の Atime 変化と、ping の Atime 変化に注目し、該当時刻帯のタイムラインを Autopsy で確認するとこんな感じ↓になります。

時刻:MAC変化項目:inode番号:ファイル名

20:04:47 mac 32429  
         .a. 32427  
         .a. 36223 /5/bin/vi 
         .a. 66760 /2/share/vim/vim57/macros/vimrc 
20:06:02 m.c 32427  
         m.. 32428  
20:07:56 .a. 44207 /5/lib/libnss_dns.so.2 -> libnss_dns-2.1.93.so 
         .a. 26111 /5/etc/host.conf 
         .a. 26159 /5/etc/resolv.conf 
         .a. 44206 /5/lib/libnss_dns-2.1.93.so 
20:08:08 .a. 44220 /5/lib/libresolv.so.2 -> libresolv-2.1.93.so 
         .a. 36198 /5/bin/ping 
         .a. 44219 /5/lib/libresolv-2.1.93.so 
20:08:09 .a. 32428  

ちなみに、pin.sh はディレクトリエントリからは削除された状態となっており、Autopys 上からファイル名 pin.sh では存在を確認することができません。*2
しかし、先ほどのタイムラインで vi の起動後にデッドリンクとなっている、inode 32428番のエントリ のメタ情報確認すると以下のようになっています。

inode: 32428 
Not Allocated 
Group: 16 
Generation Id: 1519935856 
uid / gid: 0 / 0 
mode: -rw-r--r-- 
size: 475 
num of links: 0 

Inode Times: 
Accessed: Tue Sep 5 20:08:09 2006 
File Modified: Tue Sep 5 20:06:02 2006 
Inode Modified: Tue Sep 5 20:08:30 2006 
Deleted: Tue Sep 5 20:08:30 2006 

Direct Blocks: 
138359 

割り当てられているブロック番号 138359 の内容を確認してみると、以下の pin.sh ファイルのデータ内容だったと推測できる文字列が確認できます。

ping -c 4 192.168.1.1
ping -c 4 192.168.1.2
ping -c 4 192.168.1.3

さて、inode 32428 番が元ファイル名 pin.sh であったとすると、なぜ /bin/ping の Atime より後ろ(未来)になっているのかという部分に違和感ないですか?
流れ的には vi の編集後、sh が pin.sh を読み込んでから ping が実行されるわけですから、pin.sh の Atime が ping より 1秒後に変化する理由は何か?という事です。
回答例:「スレッガーさんかい? 早い!早いよ!」

*1:仮に来年は同じ講座があっても、きっと同じネタではやらないだろうと予想してw

*2:inodeのエントリ情報は残っている状態