2005年04月07日(木) << 前の日記 | 次の日記 >>
これまでの04月07日 編集

■1「スクリプトを実行しても安全だとマークされているActiveXコントロール」は安全か[セキュリティ]次の記事 >> このエントリーをはてなブックマークに追加

「安全だ」とマークした人は配布者なので、配布者を信用できれば安全だけれども、自分が作ったプログラムを「安全だ」って言い切るためには相当の慎重さと覚悟が要る。
簡単に「安全だ」と言える人は、現実的なサイズのプログラムを書いたことが無いか、不正な引数を与えればプログラムはクラッシュしても当然と思っているか、世の中には良い人しかいないと信じているか、とても楽観的な性格を持っているか、人智を超えたプログラミング能力を備えているに違いない。
つい最近、コード署名付きのJavaアプレットを開発した知人がいる。彼のプログラミング能力は私から見ると天才的だし、セキュリティに関する知識も相当のものだ。
それでも、コード署名するコードを書くのには相当の気を使ったという。作り手が意識すればセキュリティが確保しやすいと言われるJavaにしてそうである。機会があったら、「スクリプトを実行しても安全だとマークされているActiveXコントロール」を書くのには、どれ位の気を使うか聞いてみたいと思っている。
「スクリプトを実行しても安全だとマークされているActiveXコントロール」は、悪意のあるパラメータを渡されても、「安全」でないといけない。これを保証するのは大変だ。当然、クラッシュすることも許されない。
攻撃者が意図した時に、しかも好きなパラメータを与えて起動することができるという点が、スタンドアロンにインストールされるアプリケーションとの決定的な違いだ。
こういう点で、ActiveXコントロールを受け入れるのは、普通にアプリケーションをインストールするよりも遙かに慎重である必要がある。
署名は誰にでもできるけれども、署名した人が署名の意味を分かっていなければ、コード署名モデルは役に立たないのだ *1
「安全だ」とマークした配布者が信用できるかどうかを利用者が見極めるのは残念ながら難しいだろう。迷ったらインストールすべきでない。マイクロソフトもそう言ってる。
*1: もちろんコード署名には改竄防止という役割があるけれども、そもそも署名した人が署名の意味を分かっていなければ改竄以前の問題だ。正当に配布されたものに問題がある場合は救いようがない。安全じゃないものに署名しても安全にはならない。

■ 関連記事

■2 日本認証サービス[http://www.jcsinc.co.jp/][セキュリティ]<< 前の記事 | 次の記事 >> このエントリーをはてなブックマークに追加

とある銀行は日本認証サービスの証明書を使っているが、普段使いのFireFoxには日本認証サービスのルート証明書が組み込まれていない。
毎回、本物かどうか分からない証明書を受け入れていては、証明書の意味が無くなるので、ルート証明書を組み込むことにした。
まず、認証局としての日本認証サービスが信用できるかどうかだが、これは信用できると考えた。
次に、運用ルールが納得のいくものかどうか。これは、 「SecureSign パブリックサービス運用規定」[https://www2.jcsinc.co.jp/repository/SecureSignCPSv1.54-ja.pdf] にまとめられているので、確認する。私は受け入れられると判断した。
ということで、認証局のルート証明書を信頼できる方法で入手する方法を考えれば良い。
JCSIリポジトリ[https://www2.jcsinc.co.jp/repository/root-cert.html] にルート証明書があるが、これをFireFoxでダウンロードしてそのまま信用して組み込むわけにはいかない。なぜならこのページの真正性を確認するために使った証明書は、未証明の証明書だからだ。
このページに書いてある通り、フィンガープリントを確認しても安心できない。このページの内容も偽物の鍵に合う様に改竄されている可能性があるからだ。
オレオレ証明書と同じ様な堂々巡りに陥りそうだが、幸いなことにIEにはこのルート証明書は組み込まれている。
ということで、IEの証明書マネージャーでフィンガープリントを表示させて、確認することにした。
80桁の16進数を三つ照合して、無事に組み込み完了。

■ 関連記事

■3 日本企業初!!フィッシング詐欺対策機能を持ったツールを導入[http://www.tokyostarbank.co.jp/profile/pdf/050323.pdf][セキュリティ]<< 前の記事 | 次の記事 >> このエントリーをはてなブックマークに追加

東京スター銀行[http://www.tokyostarbank.co.jp/] も「日本企業初!!フィッシング詐欺対策機能を持ったツールを導入」していた様だ。
東京スター銀行のホームページをご利用いただいているお客さまに対して、安全・安心をご提供できるツールであり、これにより、アクセス中の個人情報保護のさらなる強化を図ります。
(中略)
特に、最近被害が拡大しているフィッシング詐欺に対しての有効な対策機能である「フィッシングブロック」機能を導入するのは、 東京スター銀行が日本で初めてとなります。

この「フィッシングブロック」機能は、 ツールを起動するだけで、お客様がアクセスしようとしているサイトが、 正規の東京スター銀行のサイトかどうか、簡単に判別することができます。もちろん、フィッシング詐欺は企業側の努力だけで防げるものではありません。この画期的なツールを無償提供することで、広くお客さまにご活用いただき、共闘してフィッシング詐欺に対策できることを目的としております。東京スター銀行はこれからも、お客さまに安全・安心をご提供すべく、努めてまいります。
ということの様だ。
昨日は、Virtual PCでうまく動かないで苦労していたけれども、色々やってみて「バーチャルマシン追加機能」をインストールしなければ、動作することが分かった。
警告画面
ここでは、UFJカードから起動しているけれども、関係ないページを開くと警告が表示されている。

使用方法:

フィッシング詐欺のメール *2 が届いた時はどうすれば良いかが書いてある。
使用方法
まず、東京スター銀行のホームページにアクセスして、「nProtect Netizen」を起動する。当然のことながら、 メールに書かれているURLをそのままクリックすると、何にもならないから気を付けないといけない。
次に、
別のブラウザウィンドウを立ち上げ、メールに記載されているURLをクリックしてそのサイトを開きます。もしこのときに、『東京スター銀行とは関連のないホームページにアクセスしました。』というメッセージダイアログが表示されたら、そのサイトはフィッシングサイトである可能性があります。
という使い方をする様だ。

フィッシング詐欺サイトにアクセスしてみる:

ということで、仮設のフィッシング詐欺サイトの様なものを作って試してみた。 日本初の画期的な機能が動作する瞬間である。
仮設フィッシング詐欺サイトへアクセス
使用方法に従ってnProtectを立ち上げ、 仮設フィッシングサイト[http://www.nantoka.com/~kei/upload/nProtect/tokyostar/phishing_test.html] にアクセスしているところだ *3

「日本初の画期的な機能」が動作する瞬間:

どうもうまく動いていないようだ。
なんとか☆ダイレクト ログイン画面
既にキャッシュにある内容にアクセスしているために、実際のアクセスが発生していない可能性を考えて、Etherealで監視してみたけれども、通信は発生しているにも関わらず、警告が表示されない。
これは一体どういうことだろうか。JavaScriptを使っているのがいけないのかも知れない。 仕様かも知れないが、危険なので直した方が良い。
もちろん、 Virtual PCという特殊な環境で使っているのが原因なのかも知れないが、とても心配だ。

結局、アドレスバーと証明書を確認することに尽きる:

もちろん、上記のログイン画面ではアドレスバーも表示されていないし、ステータスバーも隠されているので、証明書を確認する方法もない。
一番大事なことが確認できないのだから、 こんなログイン画面が表示されたら、偽物と思えば間違いない

東京スター銀行の本物のログイン画面:

ここで問題だ。
東京スターダイレクト ログイン画面
この画面は本物のログイン画面だろうか。 そして、どういう理由で本物あるいは偽物だと判断しただろうか。

続・東京スター銀行の本物のログイン画面:

実際に通信が発生しているかどうか、 Ethereal[http://www.ethereal.com/] で確認をしていたのだが、不思議なリクエストを見つけた。
ログイン画面を開く時に、「www3.tokyostarbank.co.jp」へのアクセスに混じって、 「www06.tracer.jp」というサイトへのアクセスをしている様だ。
<meta http-equiv="Content-type" content="text/html; charset=EUC-JP">
<title>東京スターダイレクトログイン</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta name="copyright" content="(C) Copyright 2003 TOKYO STAR BANK All rights reserved.">
<SCRIPT type="text/javascript" src=" https://www06.tracer.jp/VL/Trace?c=107&p=IB0000&tp=1"></SCRIPT>
によるものらしい。
何をやりたいかは、 CLICK TRACER[http://www.tracer.jp/top.html] をみて大体分かったが、 オンラインバンキングのページにアクセスする時に、外部の会社のロボットに追跡されるのは不安だ。
当然のことながら、このロボットはページで入力されるIDやパスワードにアクセスすることが可能 *4 なのだけれども、この点についても安心できるのだろうか。
ちなみに、 プライバシーステートメント[http://www.tokyostarbank.co.jp/privacy/statement.asp] には、
(14)インターネットをご利用の場合
当行は、お客さまへよりよいサービス提供のためにクッキー(cookie)を使用することがあります。ただし、この中にお客さまのお名前や連絡先などのプライバシーに関する情報を記録することはありません。クッキーは、例えばお客さまがAサイトにアクセスされた際にAサイト・ウェブサーバーからお客さまの PC(端末)内に一定のファイルを格納することにより、次回、お客さまがAサイトにアクセスされた際にAサイト・ウェブサーバー側で前回と今回のアクセス者が同一人であることを容易に識別できる技術です。 当行のサイトが設定するクッキーは、当行のサイトでしか読むことはできず、また、同クッキーには、電話番号、電子メールあるいは郵便などによって第三者がお客さまに連絡できるような情報は含まれておりません。また、お客さまは、お客さまのPCに保存されているクッキーをいつでも削除することができ、また、ブラウザの設定を変更することでクッキーがセットされないようにすることができます。
と書いてある。確かに「当行のサイトが設定するクッキーは、当行のサイトでしか読むことはでき」ないかも知れないが、第三者が自由にJavaScriptを埋め込める様にした上で、他のサイトからもTRACERを通じて同じクッキーを追跡可能になる様な仕掛けを作り込んでいる訳で、本質的にサードパーティクッキーと同じプライバシー問題を含んでいる。
ログイン画面で第三者のCookie警告
セキュリティが高度に要求されるオンラインバンキングの、しかもログイン画面でこういうことをするのは、「アクセス中の個人情報保護のさらなる強化を図ります。」という姿勢としてどうか。
「フィッシング詐欺は企業側の努力だけで防げるものではありません。」と言って、利用者に安全かどうか保証できないActiveXを組み込ませる前に、企業側がなすべき努力があるのではなかろうか。

フィッシング詐欺対策の教材として素晴らしい東京スター銀行:

今回行った 実験[http://www.nantoka.com/~kei/diary/?200504a&to=200504073S2#T200504073S2] においては、残念ながら「日本初の画期的な機能」が動作する瞬間を観察することは できなかった。
[http://www.nantoka.com/~kei/diary/?200504a&to=200504073S3#T200504073S3] これは、 Virtual PCという特殊な環境で使っているのが原因である可能性があるため、通常の環境下でどの様な動作をするのかを確認することが今後の課題である。
また、 ログイン画面[http://www.nantoka.com/~kei/diary/?200504a&to=200504073S5#T200504073S5] の節では、利用者が本物サイトと偽物サイトをどの様にして判断するかについて考察した。
さらに、 第三者サイトによるJavaScriptの埋め込み[http://www.nantoka.com/~kei/diary/?200504a&to=200504073S6#T200504073S6] について確認を行い、その危険性について考察した。
以上の様に、「日本企業初!!フィッシング詐欺対策機能を持ったツールを導入」した東京スターバンク銀行はフィッシング詐欺に関連する豊富な事例を提供しており、フィッシング詐欺対策を考える上で格好の教材であると考えられる。

関連リンク:

この記事関連の記事行きと、この記事に関連する記事のためにリンク設置場所を確保しておく。
本日記中の関連すると思われる記事は以下の通り。
*2: と、分かっているんだったらアクセスしなきゃ良いのだけど。
*3: FireFoxだとポップアップブロックが作動するから、偽のログイン画面は表示されない。
*4: ロボットとして、任意のJavaScriptを走らせることができるのだから。

■ 関連記事

■4キーロガーという脅威<< 前の記事 このエントリーをはてなブックマークに追加

キーロガー(keylogger)と言われるソフトがある。
元々は、デバッグ時にキー操作を記録しておいて、問題が起きた時に再現を助ける用途に良く使われた。私自身も非常に昔の話だけれども、PC98の時代に、記録と再現を行うプログラムを書いた覚えがある。
また、メッセージフックの教材としても非常に分かりやすいので、良く取り上げられるプログラムである。
ところが、このソフトをインターネットカフェ等の他人が使うパソコンに仕掛けておいて、 秘密情報を盗み出すという事件[http://www.keishicho.metro.tokyo.jp/haiteku/haiteku/haiteku404.htm] が起きている。
キーロガーが仕掛けられたパソコンで入力したIDやパスワードは全て記録されてしまうため、この情報を使って、インターネットバンキングで他人のお金を振り込んでしまうわけだ。
それどころか、最近ではネットワーク経由でパソコンに入り込んで、知らない内に情報を盗み出し、しかも盗んだ情報をネットワーク経由で送り出すというものまで作られている。知らない内に自分のパソコンが盗聴器になっているわけだ。

キーロガーを体験してみる:

実際のキーロガーがどういう仕組みで作られているのかは、調べていないので *5 分からないけれども、Windows上のメッセージを収集するソフトとしてVisual Studioに付属してくる「Spy++」というものがある。
Windows上で発生する様々なイベントを収集して分析できるソフトウェアで、ウインドウやプロセスを指定して、特定のメッセージを収集、記録してくれるものだ。
このソフトを使って、キーボード関係のイベントを全て記録してみることにした。本物のキーロガーの仕組みがどうなっているかは分からないけれども、このソフトができることは全てできるはずだ。
例えば、パスワードを入力すると、
<00049> 000E0AAA P WM_CHAR chCharCode:'p' (112) cRepeat:1 ScanCode:19 fExtended:0 fAltDown:0 fRepeat:0 fUp:0
<00052> 000E0AAA P WM_CHAR chCharCode:'a' (97) cRepeat:1 ScanCode:1E fExtended:0 fAltDown:0 fRepeat:0 fUp:0
<00055> 000E0AAA P WM_CHAR chCharCode:'s' (115) cRepeat:1 ScanCode:1F fExtended:0 fAltDown:0 fRepeat:0 fUp:0
<00058> 000E0AAA P WM_CHAR chCharCode:'s' (115) cRepeat:1 ScanCode:1F fExtended:0 fAltDown:0 fRepeat:0 fUp:0
<00061> 000E0AAA P WM_CHAR chCharCode:'w' (119) cRepeat:1 ScanCode:11 fExtended:0 fAltDown:0 fRepeat:0 fUp:0
<00064> 000E0AAA P WM_CHAR chCharCode:'o' (111) cRepeat:1 ScanCode:18 fExtended:0 fAltDown:0 fRepeat:0 fUp:0
<00067> 000E0AAA P WM_CHAR chCharCode:'r' (114) cRepeat:1 ScanCode:13 fExtended:0 fAltDown:0 fRepeat:0 fUp:0
<00070> 000E0AAA P WM_CHAR chCharCode:'d' (100) cRepeat:1 ScanCode:20 fExtended:0 fAltDown:0 fRepeat:0 fUp:0
の様に表示される。
ここではイベントとして見やすい様に表示しているが、キーロガーとして作る時には、例えば入力タイミングの再現が必要だったら時刻情報を付加したり、逆に無駄な情報を省いて記録したりするだろう。

キーロガーを無効化するソフト:

という訳で、キーロガーを無効化するソフトが登場してきている。
色々な仕掛けのものがある様だけど、たまたま調べたソフトは解析をしてはいけないソフトだったので、調べていない。
たまたま調べてみたソフトでは、同様の事をやった場合に、
  1. 別のキャラクタでキーイベントが発生している様に見える。キーロガーを妨害するためだろう。
  2. だが、入力がエコーバックされる時には、本来の文字でイベントが発生する。
  3. パスワードフィールドへの入力の際は、本来の文字でのイベントは発生しない。
  4. だが、日本語FEPが有効で「半角入力」になっていたりすると、本来の文字でのイベントが発生する。
という結果が得られた。
そのソフト自体を解析していないので、実際のところは分からないけれども、想像するに、この対策ソフトがターゲットとしたキーロガーは2や4のイベントを無視するものだったか、日本語FEPの存在を想定していなかったのかも知れない。あるいは、日本語FEPの実装に依存するのかも知れない。世の中のキーロガーはここで試した様な作りになっていないのかも知れない。本当のところは分からない。解析したわけではないので。

キーロガー対策ソフトを有効に活用するために:

ということで、キーロガー対策ソフトを有効に活用するためには、
  • パスワード等の秘密情報は入力した文字がそのまま表示される入力ボックスに入力しない。ダミーの文字列を入力して確認する。
  • もちろん、表示されないと確認できないからと言って、メモ帳などで試し書きをしてはいけない。
  • 日本語FEPが無効になっていることを確認する。
方が良いと思われる。

そもそもキーロガーが存在する可能性のある端末で秘密情報を入力してはいけない:

もちろん、上で調べたキーロガー対策ソフトがたまたまそういう問題を持っていただけなのかも知れないが、確実に安心できるキーロガー対策ソフトというのは原理上作成が困難だと思われる。
例えば、キーボードの物理的なデバイスドライバに割り込むソフトを作るのは不可能ではないが、これに対応するソフトを作成するのは困難を極める筈だ。
そもそも、キーボードから入力した文字をあるプログラムに伝えないといけないという制約がある以上、キーロガー対キーロガー対策ソフトの対決は、キーロガー側がはるかに有利なのだ。
通常、自分が使う端末は信用できるものでないといけない。信用できないプログラムを導入した瞬間に大事な情報は扱えなくなるし、一度信用できなくなった環境は、最初から構築し直さないと元に戻すことはできない。
*5: あやしいソフトを色々収集して、それを動かしてみるとなると Virtual PCがいくらあっても足りない。

■ 関連記事

以上、1 日分です。

指定日の日記を表示

前月 2005年04月 翌月
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

最近の日記

2019年02月17日

#例のグラボを活用する

2019年01月03日

シリーズ5・myHomeAlexaで自分のCDをかける

2018年12月25日

シリーズ4・英語の楽曲・アルバム・アーティスト名をカタカナに直す

2018年12月23日

シリーズ3: Echo Dotがやってきた

2018年12月19日

続・Echo Dotがやってきた

2018年12月18日

続・Echo Dotがやってきた

分野別タイトル一覧


全て
CLIP
SYA!nikki
book
freebsd
hns
magic
おさけ
おしごと
お買いもの
ぐる
ごはん
アクセシビリティ
オープンソース
セキュリティ
音楽
地域情報化
電子自治体
日記

keikuma on Twitter

keikuma Name:前田勝之
Location:長崎市
Web:http://www.nantok...
Bio:前田勝之(まえだかつゆき)。長崎在住。コンサル、SE、プログラマー、 なんとか株式会社代表、非常勤講師(情報セキュリティ)。 セキュアド、テクニカルエンジニア(SV,NW)。サーバ管理とWeb日記を10年ほど。 ネットとリアルの接点に関心あり。食べること・歌うこと・愛すること・作ること・飲むこと。おいしいものがぜんぶすき。

サイト内検索

Google AdSense

Powered by hns-2.19.9, HyperNikkiSystem Project