はまやんはまやんはまやん

hamayanhamayan's blog

CTFのフォレンジックにおけるファイルフォレンジックまとめ [MS Office, PDF]

親記事 → CTFにおけるフォレンジック入門とまとめ - はまやんはまやんはまやん

ファイルフォレンジック

  • よくわからないファイル、壊れたファイル、悪性なファイルが与えられて解析するタイプ
  • ファイル毎にできることやツールがあるので、それを解析する技能を鍛える。ファイルごとにできることは結構決まっている
  • 難しい問題ではファイルフォーマットをきっちり理解して解く必要がある。仕様書を読み漁ること
    • 簡単な問題では、ファイルからデータを適切に抽出できますか?
    • 難しい問題では、フォーマットを理解して欠損部分を復元したり、隠されたデータを取得できますか?みたいな所まで問われる
  • フォレンジックというよりステガノグラフィーの場合があるので注意

バイナリ全般

バイナリ全般に使える知識

  • バイナリエディタ
    • バイナリエディタで眺めることで、印刷可能文字の分布とかエントロピーとか、そういった職人めいたことが分かるっぽいです
    • バイナリエディタによってはフォーマットごとにシンボル表示が行えるようになっていて、かなり便利な場合がある
      • TSXBINを愛用してます
      • 使うバイナリエディタはお国柄出るイメージがある(日本人だったらStirlingとかBzとか)
      • HxDとか、ImHexとか、010 Editorとか見る気がする。たまーに有償の最強ツール(名前忘れた…)で殴ってる回答も見られる。なんでもいいが、シンボル表示はマジで便利
  • ファイルフォーマット
    • ファイルフォーマットを理解して、壊れたファイルを復元するような問題が出る
    • マジックナンバー): ファイルの先頭にフォーマット固有のバイト列をいれておくもの
    • 後はひたすらググって仕様書を読む
  • エントロピーテスト
  • fileコマンド
    • そもそも。何のファイルかも明かされないときがある。単純にfileコマンドで通すと分かるかも
    • fileコマンドの結果で検索すると開けるソフトが出てくるかも
  • stringsコマンド
    • 文字列を抜き出せる。何のファイルか分からないときにググるキーワードが見つかったりする
  • File Carving: バイナリからフォーマットを検索して、ファイルを無理矢理抜いてくること
    • binwalk -e [filename]でとりあえず試す
    • foremostやPhotoRecなど色々できるソフトがある。手動で引っ張ってこないといけない場合もある
    • Data Stream Carvingというファイルというより文字列を探してくるCarving方法もあるっぽい
      • https://から始まる文字列を持ってくるとか
      • base64エンコード列っぽいものを持ってくるとか。(どこで見たかな?知ってたら逆に教えてほしいです)
  • メタデータ取得
    • 画像データなどであればexiftoolを使えばメタデータが取得可能かも。だいたいstringsでも取れるけど
    • 例えばwordファイルなど、ファイルによってメタデータが個別に色々あったりする。だいたいstringsでも取れるけど
  • yaraルール
    • ルールベースでバイナリのパターン判定するルール。
    • あんまり見ないけど。

ファイル種別ごと