2010-10-21 FTK ImagerとContents of Folder
■FTK Imagerを利用したコレクション
eDに関連したコレクション作業で、米国にある会社にコレクション作業をお願いしたりすると、FTK Imagerを使って AD1 形式でデータが送られてくることがあります。手元では EnCase 一本槍なので FTK Imager を使うことはほとんど無いのですが、便利そうなのでちょっと確認してみて気になった点を忘れないようにメモしておきます。
なお、確認に使っている FTK Imager のバージョンはいわゆる Lite 版と、最近リリースされた Ver3.0.0.1443 を使っています。
■Contents of Folderとロングパス
FTK Imager Liteを使い論理的なファイルやフォルダを収集する場合、Evidence Item としては「Contents of Folder」を指定することになります。(物理または論理ボリュームでアクセスする方法も別途あります)
これを使うのは主にファイルサーバにあるユーザーの共有フォルダをコレクションする場合ではないかと思いますが、こういったケースで課題になるのは非常に長いパス上にあるファイルです。エクスプローラーなどでは246文字を超えるパスを扱おうとすると問題が発生します。
FTK Imager Liteではどうか?と思い 246文字を超えるパス上のファイルを Contents of Folderで収集してみたのですが、取れませんね。取れないだけならまだしも、246文字を超えるパス上にあるフォルダやファイルについては、取れなかった(収集に失敗)ログが残りません。
例えば、ユーザーのホームシェアが U: として割り当てられている場合、このフォルダ配下を全てコレクションしたとしても、246文字を超えるパスにあるファイルは収集されず、またログにそれが残りません。これはちょっと困りますね、エラーが出れば確認できますが、取れていると思ったところ実は取れていなかったということが起こりえます。まぁユーザーが日頃使っている中で246を超えるパスは扱えないので基本的に問題にならないのかもしれませんが、ちょっと気持ち悪いですね。
なお、マイクロソフト社の Robocopy を使うと3万2千まで対応していますので特に問題にはならないはずです。*1っていうか FTK Imager も 3万2千まで対応すれば良いのではないかと思いますけど。
念のため補足すると、物理ディスクや論理ボリュームを FTK Imagerでマウントしてそこから収集する場合には、246文字を超えたパス上にあるファイルとかでも問題なく収集できます。ただし、エクスポートする時にはパス長の制限にひっかかりますから、Export 機能も 246文字越えに対応して欲しいものです。なお、このExport における制限は EnCase にもあって、246文字を超えるようなパスのファイルを Copy/UnErase とか Copy Folder を使うとエラーになってしまうので、事前にパス長をチェックするスクリプトを使ったりしています。EnCase も 246 越えして欲しいんですけど、昔から機能リクエストが出ているものの対応しませんねダサイ。
■Contents of Folderとオープンファイル
Contents of Folder 経由でのコレクションは、論理的なアクセスですので対象ファイルがオープンされていたりロックされている状態だとエラーになってしまい取得できませんね。例えば Excel でシートを開いていたりすると、そのファイルはコレクションできずエラーとしてログに記録が残ります。
これは Robocopy でも同じですが、FTK Imager だとリトライ回数とか待機時間を指定できないので、その辺りは少し改良して欲しいところですかね。KaniCopyもリトライ回数はないか...
最近、オープン中のファイルやロックファイルをコピーするツールが幾つか見受けられますが、VSS 使っていたりするので、やはり回避策としてはその辺りの対応が必要になるんでしょうかねぇ。一般ユーザーの権限範囲で対応できるのが嬉しいんですけど。『全てのアプリケーションを閉じてください』とお願いするのが確実?!
■FTK Imager 3 と LEFファイル
FTK Imager 3 では EnCase LEF(論理証拠ファイル)を取り扱えるようになっているので、これは便利かも!と思ってちょっと確認してみたのですがまだ完全ではないようです。
EnCase LEF ではファイルを論理証拠ファイル内に収容する段階で、すでに収納済みの重複するファイルがあると、重複排除のような仕組みを持っているようです。LEF ファイルの詳細な仕様が公開されていないので勝手な推測ですが、例えば対象データが 1GB あっても半分重複していると 500MB の LEF が生成されます(もちろん非圧縮のオプションを選択している場合)。
例えば、LEF 内に重複しているファイルがある場合、FTK Imager からそれらのファイルを参照すると、ファイルのコンテンツが適切に表示されません。この為、そのまま Native ファイルを Export しても例えば 500MB 分しか出ないというか、重複処理されているファイルの中身については正しく取り出すことができません。
Twitter でも確か関連する話題が流れていた気がするので、そのうち修正されるのではないかと思いますが、現在の Ver 3.0.0.1443 では LEF の取り扱いについては問題があるということで注意が必要ですね。
*1:Ji2社内には、その名もずばりKaniCopyという船長作成の蟹ツールがあるんですが、これは3万2千まで対応していて、メタも維持する優れものです
2010-08-24 最近話題のパスワード
■Passware の Instant decryption of BitLocker To Go USB disks機能
みんな大好き? F-Response と Passware の組み合わせで、BitLocker のリカバリキーの確認が出来るデモが公開されていますね。Twitter に流れていたんですが見るの忘れていました。
F-Response and Passware, Bitlocker Access in Real-Time
メモリイメージと、暗号化ディスクの両方を使うことで、BitLocker のリカバリキーを取得するみたいですが、ターゲットになっていた F: は、この作業を行なう前に一度マウントされていたという理解でいいんでしょうかね?
この動画でよくわからなかったのは、事前に BitLocker to Go のディスクがマウントされたことがあったのか、それとも事前にマウントされていない状態でも OK だったのかよくわかりません。
その他、FireWire Memory Imager を使ってメモリイメージを取得する手順が Passware のサイトに掲載されています。(メモリイメージの取得自体はwin32ddでも何でも良いみたいですが)
Passware Kit Enterprise and Passware Kit Forensic decrypt hard disks encrypted with BitLocker or TrueCrypt.
F-Response は手元にあるんですが、Passware がないので試せないなぁ。
リカバリキーが取得できれば、BitLocker で暗号化されたデバイスでも、EnCase と EDS モジュールを使えば復号状態でマウントすることが可能になるので、なかなか便利そうな機能に思えます。*1
■RARファイルのパスワード解除とGPU処理
速度検証で使いたいので、商用製品ではない GPU に対応したパスワード解除ツールを探しているのですが、RAR 関係で発見したツールの URL をメモ。このサイトでは他にも色々なツールが提供されていますが、Office 2007/2010 系のツールは製品として販売しているみたいですね。
RAR GPU Password Recovery v0.5
http://www.golubev.com/files/igrargpu/readme.htm
IGHASHGPU
http://golubev.com/hashgpu.htm
Ivan Golubev's blog
http://www.golubev.com/blog/?p=122
※nVidia GTX480 の速度値があるので後からよく確認する予定
■CUDA Multiforcer
これもメモだけ。MD4/MD5/NTLM に対応している、GPU(CUDA必要)をサポート。文書ファイル系には対応していないので、RainbowTable で十分な気がする。
CUDA Multiforcer Multihash brute forcer
http://pentestit.com/2009/03/09/cuda-multiforcer-multihash-brute-forcer/
■RSMangler
入力した単語の組み合わせから辞書を生成するツールですね。*2単語の順序を変化させた組み合わせによる辞書を作成したいケースで使えそうですね。とはいえ、入力する単語数によっては、かなり出力サイズが大きくなる様子ですが。
RSMangler : Tool for Keyword Based Wordlist Generator
http://pentestit.com/2010/08/22/rsmangler-tool-keyword-based-wordlist-generator/
■指定したURLから単語リストを生成
まったく試してないのでメモだけ。指定した URL から単語を切り出して辞書を作成するのに利用できそうなツールです。
Accent Keyword Extractor (freeware)
どの様なケースで有効か、ちょっとすぐには思いつきません。
2010-08-19
■ばりかたに参加予定
出張版 FNG を福岡で開催します!!、というのは冗談で、9月11日(土)に開催される、ばりかた勉強会で少しお話させていただきます。実は?!これまで、ばりかた勉強会には参加したことがないので初参加ということになります。*1っていうか、FNG 以外の勉強会に参加すること自体がかなり久しぶりな気がしないでもないです。*2
まだ資料を全然作ってないのですが、ひょっとすると半分以上は脱線して関係ない話になるかもしれませんが、その場合にはご容赦いただければです。
第18回ばりかた勉強会
なお、セプキャンプのことを少し話して欲しいと主催者側から依頼があったのですが、そもそも今年は CTF の裏方でしか参加していないのと、皆さんの興味があるであろう CTF の問題内容とかはそもそも“お話できない”ので、その点は期待しないでくださいね。まぁ、Subject James メールでアプリが落ちるのはデモできると思いますけど(ぉぃ
2010-08-18
■CTFシステムについての雑感
今回のセキュリティコースでは、CTF 競技がありましたが、そこでは @yoggy さん謹製のスコアサーバを利用させていただいたんですが、幾つかフィードバックというか、来年(あるのか?)の為にもを忘れないうちにまとめておきたいと思います。
まぁ、言うのは楽だけど実装するのは大変!!とかあるとは思いますが(笑)、キャンプの卒業生がうっかり作ってくれるかもしれないですし。いや、きっと卒業生が作ってくれるかもしれないし!!
いずれにしても、今年のセキュリティコース参加者が CTF を楽しめた理由のひとつとして、バックヤードでリアルタイムにシステム改良対応いただいていた @yoggy さんと @_bun_ さんのお力添えがあったことに感謝しましょう!!
<8/19 追記>
早速?キャンプ卒業生に動きが!、期待してアウトプットを待ちましょう(笑)
http://twitter.com/masaki_ipodrepo/status/21493013933
■問題の登録
主に TIP さんが作業されていたのを見ていただけでわかりません(笑)
出題者が識別できると後から確認が便利ってお話はありましたので、入力項目として出題者を入れておけるといいですね。ただ、出題者が誰かわかるとプロファイリングされてしまうという噂はありますので、参加者に表示するか否かは別途設定できた方がよいかもしれません。
<8/19追記>
id:sen-u さんが問題の登録についてまとめてくださっています。
■答えの一致条件
答えの文字列が例えば「1234-5678」などの場合に、ハイフンで区切ってあっても無くても正解とするケースとか、Kani のように大文字小文字を区別しないといけない場合など、「大文字小文字を区別する」「入力された答えに含まれるハイフンやスペースは無視する」などのチェックボックスで簡単に選択できると便利ですかね。今回、正しい答えを発見していても、正解の定義に「-」が含まれているケースで入力と一致せずに悩んでいたケースもあるようなので。実は正規表現が使えるとかあるのかもしれませんが、正規表現とは別に簡単に設定できる項目があるとよいかなと。
■ヒント機能
今回は運用上、ヒントを出すタイミングになったら、というかヒント出さないと解けそうにないと判断された段階で、講師が設問文を編集してヒントを書き足していました。ヒントは予め問題文と一緒に登録しておき、ヒントを利用した場合には獲得ポイントが減るような仕組みがあると良いかもしれません。例えば、ヒントを一回使うと -50点されるみたいな機能ですかね(ヒント毎にマイナスポイントは個別に設定したい)。ヒントを使わずに回答すれば当然ポイントが高いので、ヒントを使うか否かはチームの戦略次第になる。
■シナリオ機能
ある問題を解かないとオープンしない(問題にアクセスできない)設問が設定できるといいですね。
■チームと個人の識別
今回のキャンプでは 6名 1チームの 5チームで競技になりましたが、各チーム毎の得点は把握できてもチーム内の誰が解いたのか、撃墜王は誰か?などの把握が困難でした。チーム毎のランキングとは別に、どのチームの誰が解いたのかを把握できるとより盛り上がる気がします。特に出題者側としては、真っ先に自分の問題を解いたのが誰なのかは知りたいところです。
アカウントを個別に発行しなければいけないという運用上の煩雑さは発生するかもしれませんが、アカウント登録時にチームと個人を紐付けて登録できればいいのかなぁと。
■回答履歴
ランキングやスコアが変化した場合に、どの問題を解いたのかを司会者が把握したい時に、各チームの解いた問題の履歴が表示されるとわかりやすい気がします。例えば一気に 500点アップしたチームが、100点を 5つ取ったのか、500点を一個取ったのかが把握できると便利ですね。
■人気・不人気問題の把握
心を折った問題とは別に、答えが全然入力されず参加者に挑戦されなかった問題と、しこたま挑戦された問題が識別できるといいですね。設問文の変更やヒントの追加などの対応が可能になると思いますし、何よりその後の設問自体の改善に役立つと思います。
■間違えた答えの保存
どんな答えが入力されたのかを見たい!という要望が出題者側から多かったですね。個別の設問に対して入力された誤った解答も保存されていると、意図しない方向に進んでいるかなども運営側でチェックできる気がします。何より間違えた答えをベースに実況中継などはやりやすくなると思います。
■ロックアウト機能
スクリプトでちょちょいのちょい!という不届きものへの対処として、回答を誤った場合には、1分間は答えを入力できない!といった機能があると一定のブルートフォース対策になりますかね。そして一定回数以上間違えるとロックアウトされてしまうので、解除を依頼しないとその問題への挑戦は再開できないみたいな。
■コンプリートボーナス集計機能
星取り表が急遽 .cgi で実装され、会場を盛り上げていましたが、特定の分野または得点を全て回答すると+500点のような、一定条件の設定と、ボーナスポイントの集計機能があるとキャンプ CTF 的には嬉しいですね。今回 Excel シートで集計しましたが、ちょっと面倒でした。
最初は全員回答したら全員回答ボーナスとかも予定されていましたが、これを予想より早く全員回答してしまったので、ジャンルや得点レベルによるコンプリートオプションが主でした。
ジャンルやレベルだけでなく、コレとアレとソレをクリアすると+100点のようなビンゴ?機能もあるとより盛り上がるかもしれませんね。
■出力機能
登録されている設問をリストにしたかったのですが、簡単に CSV か何かで出力できると嬉しいです。それくらい SQL 投げれば簡単だよって噂はありますけど(笑)
CTF 競技の終了後に集計結果を Mail で流す時とかに、簡単に結果のエクスポートなどができると嬉しいです。今回、60回以上コピペして疲れました。
出題者にリストで確認依頼とか用に別途 Excel シートにまとめていましたが、苦労した割に確認した人は少なかったという残念な噂はありますが。
■グラフ表示機能
密かに、国分さんが実装を終えているのではないかという噂もありますが、各チームの得点推移がグラフ表示されると、より見た目が格好良くて盛り上がる!というお話がありますね。
■ボーナス・ペナルティ得点機能
今回は無かったのですが、ズルしたチームにはペナルティというお話もありましたので、問題を解いて得た得点とは別に、司会者から与えられるボーナスポイントやペナルティ(マイナスポイント)を登録・得点への反映できる仕組みがあるといいかもですね。
