2010年09月25日() << 前の日記 | 次の日記 >>
これまでの09月25日 編集

■1 シリーズ・クロールとDoSの違いと業務妨害罪と(21) - 三菱電機ISが考える「強固なセキュリティ」[http://www.nantoka.com/~kei/diary/?20100923S1][LibraHack][電子自治体][図書館][セキュリティ] このエントリーをはてなブックマークに追加

3カ国別の回答割合(F-Secureより), パスワードの使い回しは大きなリスク、偽の確認メールで聞き出す手口も以前、 Web サービスの開発者は、「多くの利用者は、どのサービスにもおんなじパスワードを使ってる。」って覚悟をもってなきゃいけないと思う。[http://www.nantoka.com/~kei/diary/?20100619S1] という記事を書いた。
セキュリティ企業のF-Secureが、英国、ドイツ、スウェーデンで1500人のインターネット利用者を対象に実施した市場調査の、
回答者の約20%が同一のパスワードを使い回していた。
という結果から、サービス提供者としては、利用者が他のサービスと同じパスワードを使用している可能性も考慮すれば、利用者のパスワードを預かることには大きな責任があるという事を書いた。
万が一、 利用者の個人情報と共にパスワードが漏れる様な事があって、利用者が同じパスワードを他のサービスでも使用していれば、そのサービスも危険に晒される から、パスワードを認証に用いるサービスを作る時は、ハッシュなどの方法を用いて、 パスワードは決して復元できないような形で保存するのが、前世紀からの常識 になっている。
暗号化とハッシュ化ハッシュは暗号化とは異なり、いわば復元できない暗号化だ。暗号化した結果からは、たとえ暗号化に用いた鍵があっても、元のパスワードは復元できない。
パスワード確認の用途であれば、復元できる必要は無く、入力したパスワードを照合する際には、同じ鍵でハッシュ化してみて、ハッシュ化した結果が一致していることを確認すれば、パスワードが一致していたことを確認できる。
このあたり、
世界最高水準の暗号化・復号化技術「PowerMISTY」を採用し、個人情報は安心の暗号化。
と、「強固なセキュリティ」を主張するMELIL/CSがどの様に実装しているのか関心を持っていた。
しかしながら、応答時間やクッキーの扱いなどで外部から実装を推測できることと異なり、 利用者のパスワードという極めて重要な機微情報がどの様に扱われているかを外部から知る方法は無く、開発会社が「バッチリですから大丈夫ですよ」と主張したら、利用者はそれを信じるしかない のが実情である。
これが、民間企業の場合であれば、開発会社のミスであれ、その様な機微情報が漏洩すれば、自らの信用にも傷が付くから、採用時にその企業の責任において確認をすることが期待されるし、利用者はサービスを提供する企業の取り組みを見比べてサービスを選択することができるが、 行政サービスの場合は、利用者はサービス主体を選択できず、従って、信用して利用せざるを得ない構造になっている。
にも関わらず、極めてルーズな調達や受入検査を行っている自治体があることは、これまでに明らかになった通りだ。
MELIL/CSが、利用者のパスワードという極めて重要な機微情報をどの様に扱っているか を明らかにすることができれば、 MELIL/CSとこれを採用した図書館が、利用者の個人情報をどの程度「強固なセキュリティ」で保護しているか と、 三菱電機ISが考える「強固なセキュリティ」がどの様なものか が推察できるであろう。
念写されたcommon.aspそう考えて、何とかしてパスワード認証の仕組みを突き止める手掛かりが得られないかと念じ続けていたのだが、以前に 予言[http://twitter.com/keikuma/status/22588049466] した通り、 各地で杜撰なコピーを繰り返して展開[http://gutei.cocolog-nifty.com/hibikore/2010/09/mdis-af2c.html] していることが明らかになっていった。
それだけ杜撰な作業をしていれば、サーバで直接、ファイルを編集した挙句に作業ファイルを消し忘れる等という事が起こっても不思議ではないと気付いて、robots.txtや、明らかにされた消し忘れコンテンツをヒントに、それっぽいURLにアクセスしてみたところ、ついに左の図の様なファイルが表示された。念ずれば通ず。
「common.asp」という名前が示す通り、コメントによれば「共通定義・関数」であり、システム内で共通に使われるべき定義や関数が詰め込まれている *1 。 ここで表示されたファイルは、このcommon.aspファイルの修正作業をサーバ上で行って、作業ファイルを消し忘れたために、公開状態になっているものだろう。
パスワード関連の操作関数も存在した。
'///現行パスワード取得///
'処理概要:現在設定されているパスワードの取得を行う
function gfGetPass(ustrRcode) on error resume next Dim wobjDS, wstrSQL Dim waryData 'パスワード取得 wstrSQL = "SELECT * FROM WWWRIY " _ & " WHERE 利用者コード='" & gfSQL(gfZero(ustrRcode,10)) & "'" Set wobjDS = Session("OraDatabase").CreateDynaset(wstrSQL, &H4) '&H4=ReadOnly if err.Number <> 0 then exit function end if if wobjDS.eof then gfGetPass = "" else waryData = gfDeCode(wobjDS("DATA")) gfGetPass = waryData(13) 'パスワード end if Set wobjDS = Nothing end function
取得できてはいけない。 念のため、gfDeCodeも見ておこう。
'///復号化処理///
'処理概要:利用者情報を復号化して返す
function gfDeCode(ustrValue)
	on error resume next
	Dim wobjPM,waryData
	Dim waryDmyData(26)

	if not isNull(ustrValue) and trim(ustrValue)<>"" then
		Set wobjPM = Server.CreateObject("Power_Melil.Misty")
waryData = wobjPM.decode(ustrValue) 'デコード Set wobjPM = Nothing ' waryData = ustrValue 'デコード無し waryData = Split(waryData,"|") '利用者情報をパイプで区切って配列に格納 if UBound(waryData)=26 and Err.Number=0 then gfDeCode = waryData else gfDeCode = waryDmyData end if else gfDeCode = waryDmyData end if end function
世界最高水準の暗号化・復号化技術「PowerMISTY」 も、この様な間違った使い方をすれば、 なんちゃってセキュリティ と化してしまう。
この他、 利用者の電話番号、パスワード、メールアドレス、生年月日等の個人情報 も、同様に暗号化して保存されているが、暗号化・復号化に使用する 鍵はWebサーバ上に置いてあるので、Webサーバに侵入されれば「全部」盗まれる 仕様であった *2
三菱電機ISが考える「強固なセキュリティ」 というのは、ここで見たようなセキュリティのことを指すようだが、採用した自治体としては、利用者の個人情報を保護するに十分だと考えているのであろうか。
セキュリティインシデントは、起こる可能性があれば起こるものだが、 MELIL/CSを稼働させている自治体における個人情報漏洩事件。 実装によるガードがここで見たように、事実上機能せず、運用も自治体間で丸ごとファイルコピーを行うほど杜撰なものであるとすると、これは 明日にでも発覚してもおかしくはないと思う。
*1: この「共通定義・関数」にも大量のカスタマイズが加えられているところからすると、パッケージ化が破綻しているのは間違いない。
*2: しかも、そのWebサーバが、書き込み可能な状態で、Anonymous FTPサーバとして稼働していた実績もある。Webサーバへのアクセスがガードされているから大丈夫とは言えないだろう。

■ 関連記事

今日のつぶやき

  • 新着図書のジャンル別一覧のURLを毎日変更するように改造したのだから、新着図書全ての一覧を取得しようとしているという事は分かっていたはずで、それを知っていながら「何のために行っているのか不明」と説明するのは、不自然ではある。 #LibraHack2010-09-25 01:36:10 Tween
  • 「このような事例が他にも存在するのか、犯罪性はあるのか」ということを確認すべき相手は、警察では無くて三菱電機ISだったんじゃないかなぁ。 #LibraHack2010-09-25 01:37:26 Tween
  • 「相談窓口はないか、といったことについて相談」すべき相手は、警察では無くて、IT推進課だったんじゃないかなぁ。 #LibraHack2010-09-25 01:39:12 Tween
  • やはり、このあたりの不自然さを解消してくれないと、最初っから恨みでもあるかのように「警察だ」「逮捕してもらおう」って方向に突っ走った様に見えて仕方がないです。 #LibraHack2010-09-25 01:40:50 Tween
  • おやすみなさい。本日の活動時間は、20時間0分でした。 [ST:GDNGT WU:20.00 PP:1654] #picotwi2010-09-25 02:02:38 ピコツイ
  • おはようございます。本日の睡眠時間は、5時間0分。 [ST:GDMNG SL:5.01 PP:1659] #picotwi2010-09-25 07:03:17 ピコツイ
  • @ManaIshi 「このような事例が他にも存在するのか」「犯罪性はあるのか」の言質を得ておけば、今みたいな無責任な言い逃れはできなかったと思うのですよ。 #LibraHack2010-09-25 08:01:12 Tween ManaIshi宛て
  • @mabow 別に特別な事じゃないということですね2010-09-25 08:03:44 Tween mabow宛て
  • @mabow なんですかね。新版はPHPで作りかけて諦めた?2010-09-25 08:04:03 Tween mabow宛て
  • robots.txtを、クローラに対するルールだとか、守るべき紳士協定だと捉えるのは、私の感覚とはちょっと違う。あれは、クローラが迷子になったり、いつまでも彷徨いつづけたりしないように用意してあげる案内板という感じがある。著作権法改正も案内板の方向だと思う。 #LibraHack2010-09-25 08:46:29 Tween
  • 岡崎市立図書館が、資料購入費の1.6倍という国内でもまれにみる高額なシステム経費を掛けているということを、岡崎市民の方に知って欲しいと思います。一方で、利用者もスタッフも経費削減のために、我慢や苦労を強いられていないでしょうか。 http://bit.ly/bNGTi62010-09-25 08:55:24 Tween
  • common.aspによると、「メールアドレスの妥当性チェック」として、50文字を超えるアドレスをエラーとして処理しているのだけど、いったい何を拠り所にしてるんだろう。RFC2821では、local-partだけでも64文字まではMUSTだけど。 #LibraHack2010-09-25 09:16:00 Tween
  • @kozawa ハッシュタグ見ている人には既出でしょうから外しました。2010-09-25 09:16:49 Tween kozawa宛て
  • 大体、「共通定義・関数」なる、common.asp に、図書館ごとのカスタマイズがこんなに入っていることから見ても、「パッケージ」としての設計が破綻していることは明らかであろう。幻のパッケージMELIL/CSであったと断じざるを得ない。 #LibraHack2010-09-25 09:23:25 Tween
  • @hitoshi 返品自由にした時の返品率も、適切な商品紹介で低下させることができますから、こちらにも工夫の余地がありますね。事実、返品自由な通販の商品紹介は、ネガティブ情報も予め上手に説明していて、信用できるものが多いと感じます。2010-09-25 09:34:21 Tween hitoshi宛て
  • おくすりなぅ [ST:TKMED PP:1664] #picotwi2010-09-25 13:11:28 ピコツイ
  • うわ。利用者が登録したパスワードをハッシュじゃなくて元に戻せる状態で格納してるじゃん。他のシステムにまで災厄を及ぼす実装だ。gfGetPass ' 現行パスワード取得 とかあるし。世界最高水準の暗号化・復号化技術も使い方間違ったら何にもならないって話ですな。 #LibraHack2010-09-25 14:17:20 Tween
  • @tetsutalow 今、各地で激しく修正が入っている訳ですけれども、落ち着いたあたりで、作業報告書の開示請求を一斉に掛けたいなと思っているところです。 #LibraHack2010-09-25 14:22:07 Tween tetsutalow宛て
  • @kozawa 確認した限りでは、電話番号、メールアドレス、生年月日、パスワードといった情報がPowerMISTYで「可逆暗号化」されて、格納されているみたいですね。そして、その鍵は当然だけど公開サーバに置いてあると。 #LibraHack2010-09-25 16:04:10 Tween kozawa宛て
  • @dechnostick それに似た黒い話が某所であってですね。入札仕様書に「パスワードは暗号化して格納すること」とあったために、ハッシュ使っている製品が落とされたという。 #LibraHack2010-09-25 16:07:37 Tween dechnostick宛て
  • @Vipper_The_NEET それ、そこの図書館の分だったら、個人情報の漏洩はなかったがウソだし、よその図書館の分だったら、個人情報を安易に取り扱った挙句漏洩させたという話ですね。どっちにしろひどい話。 #LibraHack2010-09-25 16:15:11 Tween Vipper_The_NEET宛て
  • @Vipper_The_NEET それは面倒ですね。えびの市に漏れてるんじゃない?ってお手紙書くところから始めないといけないですね。2010-09-25 16:51:09 Tween Vipper_The_NEET宛て
  • @gutei 篠栗はそもそもWeb側に個人情報置いていない運用じゃなかったでしたっけ?2010-09-25 17:00:45 Tween gutei宛て
  • おくすりなぅ [ST:TKMED PP:1669] #picotwi2010-09-25 19:39:15 ピコツイ
  • @dechnostick 「ハッシュでも良いのではないか」と主張したところ、ハッシュでは登録されたパスワードと異なるパスワードを入力したにも関わらず、一致したと判定される可能性を否定できないからダメだと言われて、指定文字数での衝突可能性をレポートした記憶が。 #LibraHack2010-09-25 20:43:12 Tween dechnostick宛て
  • 関連情報が適切すぎますw http://bit.ly/dzGrjJ - 関連事例:三菱図書館システム MELIL/CS 導入事例 岡崎市立中央図書館様、関連トピックス:弊社「図書館システム」について #Librahack2010-09-25 21:00:05 Tween
  • 三菱電機ISが考える「強固なセキュリティ」っていうのはこんな感じなので、「明日にでも個人情報漏洩事件が発生してもおかしくはないって」という様に書いたのだけど、最新の情報をもとに「発覚しても」に修正しました。 http://bit.ly/bXl7p2 #LibraHack2010-09-25 22:11:04 Tween
  • おやすみなさい。本日の活動時間は、15時間54分でした。 [ST:GDNGT WU:15.91 PP:1679] #picotwi2010-09-25 22:57:48 ピコツイ
以上、1 日分です。

指定日の日記を表示

前月 2010年09月 翌月
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年04月01日

新元号「令和」について

2019年03月23日

DXアンテナ ワイヤレスチューナー メディアコンセント DMC10F1

2019年02月17日

#例のグラボを活用する

2019年01月03日

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

2018年12月25日

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

2018年12月23日

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

2018年12月19日

続・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