Post on 31-May-2015
description
ファイルの隠し方
@mfumi2
自己紹介
● セキュキャン2012 セキュアなOSを作ろうクラス
● Bitvisorを少しいじってました
本題: ファイルを隠すには?● ファイル名を偽装する● フォルダを深くする● 暗号化する
本題: ファイルを隠すには?● ファイル名を偽装する
→ 例えばテキストならgrepでばれる● フォルダを深くする
→ 検索で一発● 暗号化する
→ 何か隠してあることがばれる ブルートフォースの可能性
別のアプローチ● ファイルシステムの空きスペースを利用する
ファイルシステムについて● ファイルを管理● 基本的にファイルはいくつかのブロックからなる
4KB
10KBのファイル
方法1: 空き領域に勝手に書き込む
● 例)空き領域をビットマップで管理していた場合
1
1
0
1
0
0
ここが空いてる!
方法1: 空き領域に勝手に書き込む
● 問題点消される可能性がある
方法2: 空き領域に勝手に書き込む ver.2
● 空き領域管理のメタデータも修正する
1
1
0
1
0
0
ここを使うここを1にする
空き領域管理ビットマップ
方法2: 空き領域に勝手に書き込む ver.2
● 管理上は使用領域となっているがファイルシステム上のどのファイルも使用していないファイルが存在 → fsck 等でばれる
方法3: 不良セクタ領域を使用● 不良セクタの管理情報を勝手に書き換えて使用
0
0
1
0
1
0
ここを1にする
不良セクタ管理ビットマップ
ここを利用
方法3: 不良セクタ領域を使用● 空き領域を利用するよりは見つけにくい● でもたくさん不良セクタがあれば不自然
方法4: ファイルのスラック領域を利用
● 10KBのファイルのため4KBのブロックを3つ割り当てる → 4KB×3-10KB = 2KB の余り! → この領域がスラック領域
4KB
10KBのファイル
方法4: ファイルのスラック領域を利用
● 問題点対象ファイルが更新されれば消える可能性 → 変更の低いファイルが狙い目
方法5: ファイルシステムの領域外を利用
● 現在普通にUbuntuを新規HDDにインストールすると2048セクタ目からファイルシステムがはじまる(いわゆるAFT) → HDD先頭2000セクタほど使える
ブートローダ
空き
パーティション
応用● これらの領域をうまく利用して隠しファイル
システムを実装すれば利便性up!
まとめ● ファイルを隠す方法はいろいろある● ファイルシステムは奥が深い