【レポート】
BlackHat Japan Briefings(以下BlackHat)では、セキュリティ関連の様々な話題に関するセッションが開かれたが、中には「よくもまあこんな方法を考えた」というようなものも数多い。本稿ではそんなセッションの中からいくつかをピックアップしてご紹介する。
最初にご紹介するのは、ネットエージェントの伊原秀明氏による「国内のフォレンジック」。一般に英語圏では文字コードというとほとんどASCIIコードのみを意識していればいいのに対し、日本語ではJIS(ISO-2022-JP)やEUC-JP、シフトJISなど多様な文字コードを意識しなければならない上、最近ではUnicodeに対応したソフトもかなり増えてきており、それを利用してフォレンジックを回避するような方法も開発されてきているという。そこで伊原氏はそれらのフォレンジック回避手法と、それに対する対策の一端を披露した。
まず伊原氏が取り上げたのは、文字列の中へ画面上に表示されないゴミデータを混ぜることでフォレンジックを回避する手法。例えば文字列の中に改行コードが混じるだけでも一般的な検索では文字列がヒットしなくなってしまうが、伊原氏はそこからさらに一歩進んで、Unicodeで定義されている様々な制御文字を利用する方法を紹介し、U+FEFF(ZERO WIDTH NO-BREAK SPACE)をファイル名に埋め込むことで、エクスプローラ上での見た目は全く同じファイル名に見えるが、バイナリ的には異なるファイル名のファイルを作ることが可能になる様子などを実演した。
![]() |
![]() |
|
さらにIEの表示をコピー&ペーストしてファイル名に入力すると、見た目には同じファイル名(だが実際は異なる)のファイルが作成できてしまう |
コマンドプロンプトで参照すると、片方のファイル名に何か文字が混ざっているのがわかる |
これを回避するためには、正規表現を利用したgrepなどにより、検索対象とする文字列の間に何かゴミが挟まった場合でもヒットするようなパターンを指定するのが一般的だと伊原氏は語ったが、一方でこの手法は大量の誤検知を生んでしまう上、検索に必要な時間も大幅に増加してしまう。そこで伊原氏が紹介したのが「文字列抽出」。これは、通常の文章では考えられないタイミングで登場する記号類や、明らかにゴミと考えられる制御文字などを取り除くようなツールを用いて、ターゲットとなるファイルに含まれる文字列のみを抽出するという手法だ。
伊原氏はフォレンジック用のツールとして広く使われている「The Sleuth Kit」に含まれる「strings」コマンドや、それを日本語・Unicodeに対応させた「istrings」、FTK(Forensic Toolkit)の日本語対応版である「FTK Asia」といった、文字列抽出に対応したツール群を紹介し、それらを利用することでフォレンジックに必要な情報を検索する時間を大幅に短縮することができる様子を紹介した。
ここまでは単なるフォレンジック回避策だが、この「Unicode文字の活用」という考え方を発展させると、何といわゆる「Directory Traversal攻撃」(相対パス指定を利用して、当初想定されていないようなディレクトリにアクセスしてしまう攻撃)への応用が可能になってしまうという。
通常日本語版のWindowsでは「\」マークはディレクトリの区切り文字に使われているため、「\」マークが含まれたファイル名を入力してもWindowsのシステム側で拒絶されてしまうが、伊原氏はWindows XP上でUnicode文字のU+00A5(Unicode上の「\」マーク)を用いて、実際にファイル名に「\」マークが含まれたファイルを作成できる様子を披露。さらにその「\」マークが含まれるファイルをエディタ(デモでは秀丸エディタを使用)で開いて、ファイル名に含まれる「\」が今度はパス名として解釈され、そのファイルが本来存在するディレクトリとは全然別のディレクトリのファイルが開かれる様子をデモした(ちなみに同様の作業をnotepadで行った場合には問題は発生しない)。
しかもこの問題は日本語版に限った話ではない。伊原氏は続いて英語版のWindows XPを開き、英語版で通常ディレクトリの区切り文字に使われている「\」(バックスラッシュ)の代わりとして、U+FF3C(全角のバックスラッシュ)やU+2216(数学記号)といった、見た目がバックスラッシュに似ている記号を含むファイル名のファイルをコマンドプロンプトで表示させ、「どうもOS内部でこれらの記号がU+005C(通常のバックスラッシュ)に変換されて処理されているのではないかという疑いがある」と語った。この他にも伊原氏は「韓国語版のWindowsでは、ディレクトリの区切り文字にウォンの通貨記号を用いているため、同様に文字が変換される問題が発生する可能性がある」と指摘した。
| 電通、カカクコムと資本・業務提携を発表 [17:22 5/23] |
| 海上保安庁、海洋情報を地図上に表示する「海洋政策支援情報ツール」を公開 [10:51 5/23] |
| 東京都交通局、路面電車の日にイベント開催 - 都電6000形も登場 [10:40 5/23] |
| オプト、ソーシャルメディア総合管理ツール「Smms」をリリース [10:20 5/23] |
| セプテーニ、チームでミッションに挑む位置情報ゲーム「bondship」を公開 [10:14 5/23] |
|
白か黒か? 『劇場版ポケットモンスター ベストウイッシュ』、7月12日放送 [00:47 5/24] ホビー |
|
TVアニメ『Fate/Zero』、第21話「双輪の騎士」の先行場面カットを紹介 [00:16 5/24] ホビー |
|
アニメ「夏目友人帳」展覧会の開催決定、主題歌集発売で [00:00 5/24] ホビー |
|
[ポケットモンスター]人気投票で放送作品を決定 異例の試み [00:00 5/24] ホビー |
|
【コラム】Windowsスマートチューニング 第188回 Vista/7編: タスクスケジューラでリマインダー通知を行う [23:07 5/23] パソコン |