wakatonoの戯れメモ

はてなダイアリーから引っ越してきました。

ファイルレスマルウエアは「確かに」ファイルは作らない

「ファイルレス=ファイルを作らない」という話はまぁ間違いではないけど、そこから「痕跡を残さない」と飛ぶのは少し行き過ぎ。

www.nikkei.com

 

「本当に」痕跡が残らないと、そもそもどこからも何も検知できないが、実際には検知できているし、そのためのソリューションもある。

じゃあ、どこで検知しているのか?というのを少し考えてみよう。

フォレンジック関係ツールの検証やってみた(少しだけ)

思うところあって、TSURUGI Linuxを使ってみた

TSURUGI Linuxは、デジタルフォレンジック向けのLinuxディストリビューション

デジタルフォレンジックに使えるLinuxディストリビューションには、例えばKali LinuxやSANS SIFT Workstationなどがあるが、今回あえてTSURUGI Linuxを使ってみたのには理由がある。

  1. わりかし新しいディストリビューションである
  2. Acquire向けの機能に絞ったISOイメージを配布している
  3. 起動するだけであれば、誤ってHDDイメージを壊すことがない

新しいのはまぁいいとして、なぜ2,3が重要なのか?を以下に述べる。

まずは2から。実際にフォレンジックをやったことある人ならば経験ある人もいるかもだけど、HDDイメージを取得する時に、普通に配布されているLinuxディストリビューションではうまくいかない(そもそもブートすらしない)ことがある。

ブートすらしない理由は、経験的にはIA32の拡張機能であるPAE(物理アドレス拡張)が関係していることが多い。PAEをサポートしないCPUでは、PAEを有効にしたカーネルでブートさせられないため、いろいろと小細工が必要になってくるが、TSURUGI LinuxのAcquire用イメージは、PAEなしCPUだろうとCylixだろうとTransmetaだろうと(ブート時のメッセージを読む限りは)サポートしており、わりかし安心して動かせる(速度は遅いがw)。

環境によってはGUIがうまく動かない(画面がうまく出ない)ことがあるが、この場合であってもCtrl + Alt + F1を押下することで、CUIログイン画面が出る。実はThinkPad X31GUIがうまく動かなかったのだが、Ctrl + Alt + F1を押下し、ユーザ名root、パスワードなしでログインできた。

そして3。TSURUGI Linuxは、起動した段階では(少なくとも)ブートデバイス以外のHDDやSSDは、接続形態を問わず書き込み禁止状態になっている。あとでUSB HDDを追加しても、追加したHDDはかたっぱしから書き込み禁止状態になる。この状態であれば、起動しても(所定のコマンドを知らない限りは)書き込みをできるようにならない。

TSURUGI Linuxでブート後HDDを書き込み可能にするためには?

blockdevコマンドを用いる。

wrtblkコマンドをはじめとして、複数のそれ向けコマンドがあるが、これらのコマンドはシェルスクリプトであり、中でblockdevコマンドを実行している。

詳しくはblockdevコマンドのヘルプをみてもらいたいが、少なくとも書き込み禁止状態を解除するだけならば、blockdev --setrw <書き込み禁止を解除したいデバイスファイル名> とすることで、書込み禁止状態を解除できる。

ファイルシステム作成時とマウント時のblockdev --setrw の範囲の違い

ファイルシステムを作成する時には、作成するデバイスパーティション)に対応するデバイスファイルのみをblockdev --setrwすればいいが、マウントしたりという時には、そのパーティションが含まれるHDDを指すデバイスファイルもblockdev --setrw しておかないといけない。そうでないとマウント時にread onlyモードにされる。

商用ツールだと、EnCase ImagerやFTK ImagerがTSURUGI Acquireに近いが、多分TSURUGI Acquireのほうが使い勝手がよい

フォレンジックをやる人の中には、イメージ取得にEnCase ImagerやFTK Imagerを使う人も多いと思う。

しかし、EnCase Imagerは入手方法がわからず(私は30分格闘してあきらめた)、FTK ImagerはWindows版は64bit版しか配布されていない。ところが、TSURUGI Acquireの中にはなんとFTK ImagerのLinux 32bitコマンドライン版が含まれている。FTK Imager のLinux 32bit コマンドライン版はなかなかステキな機能がある。個人的には以下の2つがツボった。

  • バイスファイルやraw形式のファイルを入力に指定可能
  • e01形式(EnCase形式)で出力可能

もうこれだけでも使う価値がある。

64bitカーネルが動かない/64bit Windowsでないなどの理由でFTK ImagerやEnCase Imagerが使えない場合でも、マシンを落としてOKならば、TSURUGI Acquireを使ってイメージを取得することが可能だ。

TSURUGI Linuxの弱点:とりあえずドキュメント類に乏しいw

まだ出たばかりなのでしょうがないといえばしょうがないのだけど、まだドキュメント類はそんなにない(というかほとんどないw)。まずは自分でいろいろ使ってみて、情報量を増やすのはアリかなと思った。

GPD Pocketを使ってみての所感(その他編)

わりとどうでもいいようなよくないような点をまとめてみた。

  • 性能は意外に悪くない。WinSATの結果は、メインで使ってるマシンの1台であるThinkPad Helix(1st Gen、Core i5 3rd Gen)よりちょっと悪いくらい(気が向いたら結果載せます)
  • 筐体の加工精度はものすごく高い。閉めたらぴったり閉まる。すげえ気持ちいい。物欲満たされた感になる(個人的には重要)
  • 内蔵オーディオ(というかスピーカー)はモノラルだけど、別に気にならない(というか気にする気もない)
  • Webカメラは内蔵してないけど、別に不便でもなんでもないのでOK。どうしても必要ならば、これこそUSBカメラつければOKな世界
  • USB-CのHUB兼カードリーダーがついたモデルが届いたけど、正直いらなかったかなと感じてる。給電して充電可能なHUBを調達するほうがよっぽどいいかなと思った

GPD Pocketを使ってみての所感(お値段編)

オレの場合は、約400ドル程度の出資でGPD Pocketを入手できたわけですが、出せるのはいくらまでか?と言われると、この使い勝手ならば、たぶん6万円が限度だと思います(500ドルはまぁアリ。600ドルとか言われると、"No, thank you"となりそう)。

GPD Pocketを使ってみての所感(電源まわり編)

まとめると、「ハイバネーション設定必須」だけど、個人の責任でよろしくという感じで。
ハイバネーションを有効にすると、問答無用でストレージ上の8GBの領域を食うので、これを惜しいと思う人は有効にしないほうがいい(けど、スリープでバッテリごんごん減るよw)。

  • スリープ時の消費電力が半端なくでかい(閉じた状態で半日放っておいて触ったら「熱い」って意味わからねえw)。ハイバネーション必須
  • まだ試してないけど、先人によると、モバイルバッテリ経由での給電もできそうな風

GPD Pocketを使ってみての所感(操作性編)

まとめると、画面はまだしもキーボードは長時間作業にはつらい風。なので、長時間これで作業することを想定するならば(特に作文やプログラミング)、外付けキーボードは必要と判断してたりします(あくまで個人の感想ですw)。

  • 本体だけだと、インタラクションや作文、プログラミングをはじめとして、長時間の作業には(まったく)向かない。キーボード等は外付けするなど工夫の余地ありだけど、本体だけでも作業が可能なのは、(最終手段的には)アリ
  • スペースが限られる飛行機の中や電車の中(含む新幹線の中)では、それなりに快適に作業可能。とはいえ、キーボードがウルトラ小ぶりなので、作業効率はたぶん落ちる
  • ディスプレイは、7インチでFHDならば、たぶんギリギリ使い物になるレベル。拡大率は150%でちょうどいい感じ。100%はちょっと使うには厳しい(個人の感想)。125%はありかもしれないけど、150%のほうがいいかな(これも個人の感想)。オレ自身は別メーカのGOLE1も持ってるけど、こちらは5インチ。GOLE1は本体だけだとインタフェースがタッチしかないので、指がでかいオレとかはもう苦行にしかならなかったw。ということで、ほとんどネタデバイス扱いにしかならなかったw。

GPD Pocketを使ってみての所感(サイズ編)

わりかしありがちな所感だとは思うけど、以下のような感じで。

  • 7インチUMPCということで、本当に小さい。ユニクロのビンテージチノの後ろポケットには入る(入れないけど)
  • ACアダプタのインタフェースはUSB-C、ケーブルもUSB-C - USB-Cということで、USBで完結させることが可能だけど、サイズはそんなに小さいとは思わない。PD 2.0に対応しているので、ANKERのPD 3.0に対応しているUSB電源とかをかわりに調達して使うのがいいのかも。