通勤電車で周囲を見渡せば大抵数台のスマートフォンを見つけられるようなご時世ですが、現実は日本の伝統的な携帯電話が多数派です。今もそんなガラケー向けWebサイトの開発案件は衰えることありません。
そんなガラケーサイトの開発者の間で話題になっている「セキュリティ対策」について、ガラケー界の現状をふまえた上でまとめてみます。
携帯電話のIPからのアクセスであることを前提としたセキュリティ対策はすでに無駄
- ソフトバンク3Gのプロクシ情報は検索すればすぐに出てきます
- イー・モバイルのEMnetに至っては公開情報です
- サイトのソースもFlashのswfも画像もPCから丸見えだと思うべきです
危険な「かんたんログイン」
- かんたんログインで使う契約者IDはあなたのサイトにも他のサイトにも同じものが送出されてます
- 悪意をもった人が他人の契約者IDをヘッダに乗せてかんたんログインのアクションを呼び出したらどうなりますか
iモードブラウザ1.0以外はPCと同じくcookieを使えばいい
- iモードブラウザ2.0、すべてのEZwebブラウザ、ほぼすべてのYahoo!ケータイブラウザはCookieが使えます。EMnetももちろん使えます。
- Yahoo!ケータイだとSSLで https://secure.softbank.ne.jp/ がcookie食べるのでは?
→ リンクを <a href=”javascript:window.location:’https://example.com/’”> で作れば大丈夫 。https://secure.softbank.ne.jpに飛ばされません。 - 幸いなことにP型とC型の旧Jスカイ端末は2010年3月末に停波したので滅びてます
- Yahoo!ケータイだとSSLで https://secure.softbank.ne.jp/ がcookie食べるのでは?
- 旧iモードブラウザ以外は「かんたんログイン」をやめてPCのようにログイン操作をcookieにより省略できる「ログイン状態を記憶」機能をつけてあげましょう。
iモードブラウザ1.0 でのかんたんログイン機能の実装
- (まだ割とシェアの多い)旧iモードブラウザでどうしてもかんたんログイン機能が必要な場合は”iモードサーバーのIPアドレス帯”+”iモードID”で認証する。ドコモのiモードゲートウェイは他社にくらべだいぶ堅牢っぽいです。
- 携帯IPアドレス帯+iモードIDの認証は厳禁。例えばYahoo!ケータイのゲートウェイに自作のX-DCM-GUIDヘッダがあっても特別な対応はせずにそのままリクエストされます。
- 「取り返しのつかない行為」、例えば日記の投稿、商品の購入やポイントの消費、退会などでは他の認証手段を検討すべきですが、どうしても簡略化しないといけない場合は(例えばミニブログの投稿サービスなど)投稿初回のみutnを用いた認証をし、その後はセッションを引き回す方法もあります。
- 現時点でドコモのプロクシからのアクセスでUser Agentを書き換えられたというケースがないこと、またutnの送信は明示的な操作が必要なので攻撃者が比較的取得しにくいことを基にしていますが、それでも危険なことは言うまでもありません。
携帯電話もJavaScriptが使えちゃいます!
- iモードブラウザ2.0だけでなく、ここ3〜4年ぐらいのソフトバンク端末 (NetFront 3.3以降か)もJavaScriptが使えます。
- ちなみにiモードブラウザ2.0、ここ1〜2年ぐらいのソフトバンク端末(NetFront 3.4以降) はAjaxが使えたり
- iモードブラウザ2.0、大多数のソフトバンク端末、WIN以降のau端末はiframeが使えます
- 従ってPCと同等のXSS/CSRF対策は必須。
- XSS対策: 正しいエスケープを行う
- CSRF対策: コミット操作を伴うアクションに[使い捨て/セッションIDとは別の]トークンの検証を加える
- 怠るとフォームを自動的に操作される、cookieが盗まれる、XMLHttpObjectが作成されてしまうなどのことが起きてしまいます
IP制限はやめるべき
- 冒頭で述べた通り、携帯のWAPプロクシにパソコンから入ることは容易です。そんなことで盗用やいたずらを防げると思ったら大間違いです
- IPブロックでよくある話: 検索エンジンにひっかからなくなる→Google BOTのIPアドレスだけ開ける→Google翻訳プロクシから入られてしまう→やっぱり意味ない
- IPアドレス帯の制限がセキュリティの砦のような設計は即刻見直すべきです
- iモードブラウザ1.0+iモードIDでの認証をやりたいならしょうがないですが。
- どうしてもIP制限をしたければ、取り返しのつかないアクション(掲示板への投稿や記事削除、ポイント消費など)でセッション検証とあわせてIPアドレスの正当性を検査すれば、一定レベルのいたずらアクセスからサイトを守ることは可能。
- セキュリティの担保としてキャリアネットワークであることを検証したいならば FirstPassやSecurityPassなどの携帯電話のSIMカードをつかった公開鍵認証という方法があります。利用料は無料です。
まとめ
携帯サイトだからって安全が増すということはまったくないので、PCサイトと同じく正攻法のセキュリティ対策を行いましょう。
追記
携帯サイトセキュリティTODOリスト を書きました。 (5/3)
Comments:0
Trackbacks:3
- Trackback URL for this entry
- http://d.1555.info/2010/05/01/jpmobile-site-security/trackback/
- Listed below are links to weblogs that reference
- 携帯サイト開発者のためのセキュリティ再入門 from しゃおの雑記帳
- pingback from しゃおの雑記帳 – 携帯サイト開発者のためのセキュリティ再入門 | 俺的ニュースメモ 10-05-02 (日) 15:51
-
[...] しゃおの雑記帳 – 携帯サイト開発者のためのセキュリティ再入門 [...]
- pingback from links for 2010-05-02 « 個人的な雑記 10-05-03 (月) 7:08
-
[...] しゃおの雑記帳 – 携帯サイト開発者のためのセキュリティ再入門 (tags: mobile security webdev) [...]
- pingback from 2010/05/03に気になったこと | debeso 10-05-04 (火) 0:06
-
[...] しゃおの雑記帳 – 携帯サイト開発者のためのセキュリティ再入門 携帯電話のセキュリティ関連の話 [...]
