採用情報技術評論社 2012年度新卒採用のお知らせ

gihyo.jp » ADMINISTRATOR STAGE » 連載 » 本当は怖い文字コードの話 » 第10回 文字コードが引き起こす表示上の問題点[後編]

本当は怖い文字コードの話

第10回 文字コードが引き起こす表示上の問題点[後編]

この記事を読むのに必要な時間:およそ 2 分

前回は,文字コードの引き起こす問題がソフトウェアの処理上だけでなく,人間に対する視覚的な効果という点でも強く影響を与え,攻撃者にとっての強力な道具となることがある,という点について説明しました。今回も前回に引き続き,そのような文字コードが引き起こす視覚的な問題点について説明します。

拡張子の偽装

Unicodeを利用したWindowsにおける拡張子の偽装は,文字コードを利用した視覚的な攻撃の中でも特にインパクトの大きいものだと思います。

Unicodeには多数の文字に加え,さまざまな制御も収録されています。そのような制御コードのうち,U+202E「RIGHT-TO-LEFT OVERRIDE」(RLO)と呼ばれる文字をファイル名に含めることで,見かけ上の拡張子を簡単に偽装することができます。

たとえば,copy-txt.exeという名前の実行可能ファイルがあったとします。

図1 copy-txt.exe

図1 copy-txt.exe

RLOというのは,Unicodeでヘブライ語を扱う際に,文字列を部分的に右から左の方向に表示させるための制御コードです。このRLOを図2,図3のようにファイル名の「-」と「e」の間を挿入すると,図4のように「-」より後ろが反転して表示されるため,拡張子が「txt」のように見えてしまいます。

図2 RLOを挿入する手順1

図2 RLOを挿入する手順1

図3 RLOを挿入する手順2

図3 RLOを挿入する手順2

図4 RLOを挿入したあとの表示。「copy-exe.txt」のように見える。

図4 RLOを挿入したあとの表示。「copy-exe.txt」のように見える。

もちろん,拡張子が .txtに見えるのは見掛け上だけで,実際のファイル名は"copy-<RLO>txt.exe" であり,Windowsとしての拡張子は依然としてexeですので,ダブルクリックすれば実行可能ファイルとしてアプリケーションは動作します。

このようにUnicodeのRLOを使って拡張子を偽装したファイルは,見た目での判断がつきにくく,Windowsに慣れているユーザであっても騙されてしまうかも知れません。

Windows XP ProfessionalやVista Bussines以上のエディションであれば,ソフトウェア制限ポリシーを利用して,パス名にRLOを含むファイルの実行を禁止することで,RLOを使って拡張子を偽装されたファイルをうっかり実行してしまうことを防ぐことができますが,ポリシーの利用できないWindows XP HomeやVista Home Basic/Premiumでは簡単に設定する方法はありません。

これは脆弱性なのか

このRLOを利用した拡張子の偽装について話をすると,「それは(修正されるべき)Windowsの脆弱性ではないのか」あるいは「脆弱性ではないにしてもWindowsを修正すべきではないのか」との意見を多くの人からいただきます。

実際,この方法による拡張子の偽装に気付いた当時,私自身も同じように感じましたので,IPAの情報セキュリティ早期警戒パートナーシップを通じて「これは脆弱性ではなく仕様ではあるが,修正されるべき問題と考える」と伝えました。

通常,情報セキュリティ早期警戒パートナーシップを通じて脆弱性を報告した場合,2,3日で受理あるいは不受理の返答がIPAから返ってくるのですが,この件に関しては3週間以上経った後に返ってきた返答は以下のようなものでした。

Windowsにおけるファイル拡張子の偽装の件について,調整機関であるJPCERT/CCと協議していた関係で,ご返答に長い時間を要してしまい,ご迷惑をおかけいたしました。

たしかに仕様により,ファイル名が一見違ったものに見え,利用者がだまされやすくなるということは考えられますが,この仕様そのものにより,利用者が攻撃を受けたり,ウイルスに感染したりするものではないため,私どもで取扱う脆弱性の範囲からは外れるものと考えております。

(略)

今回の件につきましては,

  • 届出としては正式に取扱わない
  • 参考情報としてMS に連絡する

という方針を採りたいと思いますが,いかがでしょうか。

予想通り脆弱性としては取り扱えないものの,きちんとMicrosoftにも伝えてくれるということで,もちろん異論はありませんでしたので,この件に関しては終了で了解との旨を伝え,不受理という形で終了したのがちょうど4年前の2005年12月でした。

しかし,それ以降もWindows側での対応がまったく取られていないのは承知の通りであり,残念なかぎりです。

おわりに

10回の連載を通じて,文字コードが引き起こすセキュリティ上の問題点について解説してきました。

数年前はこの分野での研究は世界的にも情報や資料が少なく,私自身も試行錯誤で調査を進めてきましたが,ここにきてようやくセキュリティと文字コードが切っても切れない関係であることが広く周知されてきたのではないかと思います。

とはいえ,文字コードが引き起こすセキュリティ上の問題というのは,まだまだ誰にも知られていない内容が潜んでいるのではないかと思いますので,今後もより深く調査を続けていきたいと思います。本連載が少しでもみなさんのセキュリティ向上の手助けになれば幸いです。

著者プロフィール

はせがわようすけ

ネットエージェント株式会社 研究開発部。
Unicodeなどの文字コードが引き起こすセキュリティ上の問題点について調査・研究を行っている。Internet Explorer,Mozilla Firefox をはじめソフトウェア製品およびWebアプリケーションに関する脆弱性を多数発見。

URLhttp://utf-8.jp/

コメント

コメントの記入

G-CLOUD

ピックアップ

サイバーエージェントを支える技術者たち

「アメーバブログ」などを展開するAmebaを運営するサイバーエージェントの技術者に,多くの魅力的なサービスを支える秘密を伺いました。

大規模ソーシャルサービス mixiのインフラ技術

日本最大のSNS「mixi」を支えるべく活躍するエンジニアが,日々の運用にまつわるさまざまなできごとを紹介します。

業務アプリケーションがUIフレームワークに求めるカスタマイズ性とは?

アプリケーション開発をサポートするさまざまなツールを紹介。今回も業務アプリケーション開発にフォーカスを当て,XAMLを取り上げます。

エンジニアパワーアップ講座 ~システム基盤を活用するための基礎知識~

イマドキのエンジニアに要求されるさまざまな知識や能力。これらを効率よくキャッチアップしていくヒントをいろいろな視点から取り上げます。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた情報や魅力を多角的に紹介します。

その他の連載

使える!サーバ運用の実践テクニック

確実性と永続性が求められる業務の現場では,どのような技術が,どのように組み合わせられ,使われているのか。さまざまな面で必要とされるスキルやテクニックを紹介していきます。

無関心な現場で始める業務改善

業務改善に着手したものの,現場は無関心,経営者は担当者に丸投げという経験はありませんか?『上流モデリングによる業務改善手法入門』の内容を参照しながら,経営を巻き込み,現場をその気にさせる働きかけと様々な仕掛け作りをお伝えしていきます。

KVMで始めるプライベート・クラウドへの第一歩

KVM(Kernel-based Virtual Machine)は,Linuxカーネルに備わっている仮想化機能です。仮想環境,クラウド環境の構築において非常に重要な技術と言えます。本連載では,KVMの導入構築方法,管理方法などを紹介していきます。

Hosting Department:ホスティングを活用するための基礎知識

本連載では,ホスティングサービスを活用する上で知っておきたい基礎知識を解説します。

CMSのポテンシャルを引き出す─MODxで作る商用サイト

筆者が作成,運用している商用サイトの構築を例に,OSSのCMSであるMODxを使った商用サイトを作るためのポイントを紹介していきます。

Lifelog~毎日保存したログから見えてくる個性

コンピュータを使って,日常のさまざまなことの記録(ログ)をとり,それを分析して活用することで,もう一段階上の「楽な生活」をめざす日々の研究報告です。

帰ってきた大規模Webサービスの裏側

日本最大規模のSNS「mixi」運用部門の担当者が,日々直面する業務やネットワーク運用の最新事情を紹介します。

本格派エンジニアの工具箱

アプリケーションの開発効率を向上させるためには,自身のコーディング能力を向上させるのと同時に,開発をサポートするツールやライブラリ,フレームワークを適切に使いこなすことが重要です。この連載では,アプリケーション開発をサポートするさまざまなツールについて,使い方を交えながら紹介していきます。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT
  • CLOUD COMPUTING STAGE

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス