【緊急リリース】携帯版かんたんログインの不備によりなりすましがおこなわれてしまう問題について
03 / 05 金曜日 2010
この記事に関連する次の記事もご覧ください。
携帯版を使用している OpenPNE では、かんたんログイン機能の不備により、なりすましがおこなわれてしまう可能性があります。
このエントリでは、本問題についての解説と、 OpenPNE 1.6 〜 OpenPNE 1.8、 OpenPNE 2.0 〜 OpenPNE 2.8、 OpenPNE 2.10 〜 OpenPNE 2.14、 OpenPNE 3.0 〜 OpenPNE 3.4 向けに対応方法の説明をおこないます。
本問題について
影響を受けるシステム:
携帯版を有効にしているすべての OpenPNE 1.6 〜 OpenPNE 1.8, OpenPNE 2, OpenPNE 3
本問題についての説明:
OpenPNE の携帯版には、携帯電話の端末 ID (OpenPNE では「携帯電話個体識別番号」という呼称を使用しています)を使用して、メールアドレスやパスワードの入力をユーザに要求することなくログインをおこなうための、かんたんログイン機能が存在します。
かんたんログイン機能は IP アドレス帯域制限によって、真正な携帯電話からのアクセスに限定しなければ安全に使用することができません。 PC からかんたんログイン機能を使用できる状態にある場合、特定の情報を送信してかんたんログインをおこなうことで、なりすましログインがおこなわれてしまう可能性があります。
かんたんログイン機能の安全性を担保するための OpenPNE の IP アドレス帯域制限には以下の問題があります。そのため、なりすましログインをされる危険性があります。
- ・OpenPNE 2.14 (OpenPNE 2.13.2 以降) には、特定の操作をおこなうことで、携帯電話の IP アドレス帯域制限を回避されてしまう脆弱性が存在する
- ・IP アドレス帯域制限機能が OpenPNE 2.10 以降にしか存在しない
- ・OpenPNE 2.10 以降、 OpenPNE 3.0 以降の IP アドレス帯域制限機能がデフォルトで OFF (使用しない) になっている
想定される影響:
なりすましログインがおこなわれることによって、パスワードなどを要求する重要な操作を除き、ほとんどの情報の閲覧や変更を、なりすましたメンバーの権限でおこなわれてしまう可能性があります。
対策方法・回避方法:
本エントリの「本問題への対応方法」をご覧ください。
掲載されている各対応方法をすぐには実施できない場合、管理画面から「携帯版使用設定」を「使用しない」にすることでこの問題を回避することができます。
謝辞
OpenPNE 2.14 における IP アドレス帯域制限機能回避の脆弱性について、高木浩光氏よりご報告いただきました。厚く御礼申し上げます。
関連情報
JVN#06874657 OpenPNE におけるアクセス制限回避の脆弱性
JVNDB-2010-000006 - JVN iPedia - 脆弱性対策情報データベース
本問題への対応方法
OpenPNE 3.0 〜 OpenPNE 3.4
マイナーバージョンアップもしくは修正パッチの適用を実施してください。
(OpenPNE 3 の修正パッチは patch -p1 < /path/to/patch のようにして当ててください)
OpenPNE 3.0.6.1 :
[.zip 版ダウンロード] [修正パッチ]
OpenPNE 3.2.2.1 :
[.zip 版ダウンロード] [修正パッチ]
OpenPNE 3.4.1.1 :
[.zip 版ダウンロード] [修正パッチ]
その後、管理画面の SNS 設定を確認し、「携帯電話のIP帯域設定」が「携帯電話のIP帯域をチェックする」になっていない場合は変更してください。
マイナーバージョンアップをしていない環境で、パッチを適用できない場合、携帯電話の IP アドレス帯域リストを更新した上で SNS 設定の「携帯電話のIP帯域設定」を「携帯電話のIP帯域をチェックする」に変更してください。
お使いのバージョンの最新版の IP 帯域リストの入手方法は、本エントリの「今後の OpenPNE プロジェクトとしての携帯電話 IP 帯域リスト更新ポリシー」に示してあります。
OpenPNE 2.10 〜 OpenPNE 2.14
マイナーバージョンアップもしくは修正パッチの適用を実施してください。
OpenPNE 2.10.13.1 :
[.tar.gz 版ダウンロード][.tar.bz2 版ダウンロード] [.zip 版ダウンロード] [修正パッチ]
OpenPNE 2.12.17.1 :
[.tar.gz 版ダウンロード][.tar.bz2 版ダウンロード] [.zip 版ダウンロード] [修正パッチ]
OpenPNE 2.14.4.1 :
[.tar.gz 版ダウンロード][.tar.bz2 版ダウンロード] [.zip 版ダウンロード] [修正パッチ]
ソースコードの入れ替え、もしくは修正パッチの適用をおこなった後、 config.php の CHECK_KTAI_IP の設定が false になっている場合は、以下のように true に設定してください。
define(‘CHECK_KTAI_IP’, true);
OpenPNE 2.12.17 では ソースコードを入れ替えることなく、 config.php の CHECK_KTAI_IP の設定を true に設定する(IP アドレス帯域制限機能を使用するようにする)だけでも効果があります。
マイナーバージョンアップをしていない環境で、パッチを適用できない場合、携帯電話の IP アドレス帯域リストを更新した上で config.php の CHECK_KTAI_IP の設定を true に変更してください。
お使いのバージョンの最新版の IP 帯域リストの入手方法は、本エントリの「今後の OpenPNE プロジェクトとしての携帯電話 IP 帯域リスト更新ポリシー」に示してあります。
OpenPNE 2.0 〜 OpenPNE 2.8
OpenPNE 2.0 〜 OpenPNE 2.8 で携帯電話 IP 帯域制限機能を利用するためのパッチを公開します。
OpenPNE 2.0 〜 OpenPNE 2.2 向けのパッチはこちらになります: https://gist.github.com/raw/322468/bb6bbd4c5f59dff51c571b0a32c1752c5cc9320f/openpne2.diff
OpenPNE 2.4 〜 OpenPNE 2.8 向けのパッチはこちらになります: https://gist.github.com/raw/322468/2798c821f82eaa064294eea519407f771ea17714/openpne2.4.diff
今後 IP アドレス帯域リストを更新する場合は、 2.12 向けのリストを使用してください。
このパッチを適用するか、もしくは、 OpenPNE 2.12, OpenPNE 2.14 へのメジャーバージョンアップを実施してください。
OpenPNE 1.6 〜 OpenPNE 1.8
OpenPNE 1.6 〜 OpenPNE 1.8 で携帯電話 IP 帯域制限機能を利用するための .htaccess を公開します。
https://gist.github.com/raw/322468/51e7cdf982a3f4a8f7e322ff5b2b9fbedfa1127b/.htaccess
このファイルを public_html ディレクトリ以下に設置してご利用いただくか、もしくは、 OpenPNE 2.12, OpenPNE 2.14 へのメジャーバージョンアップを実施してください。
今後の OpenPNE プロジェクトとしての携帯電話 IP 帯域リスト更新ポリシー
今回、すべての OpenPNE において携帯版の IP アドレス帯域制限をデフォルト ON にするにあたり、各キャリア側の携帯 IP アドレス帯域への対応ポリシーを決定しました。
いままでマイナーバージョンアップに IP アドレス帯域リストの更新を含めていましたが、それとは別に IP アドレス帯域リストのみの単体リリースを実施するようにしていく予定です(本サイトで発表します)。
OpenPNE 2 をお使いの場合は、 webapp/lib/ktaiIP.php を以下から入手できるものに置き換えれば IP 帯域リストを更新できます。
2.10:
https://trac.openpne.jp/svn/OpenPNE_specification/mobile_ip_list/20100305/2.10/ktaiIP.php
2.12:
https://trac.openpne.jp/svn/OpenPNE_specification/mobile_ip_list/20100305/2.12/ktaiIP.php
2.14:
https://trac.openpne.jp/svn/OpenPNE_specification/mobile_ip_list/20100305/2.14/ktaiIP.php
OpenPNE 3 をお使いの場合は、 lib/config/config/mobile_ip_address.yml を以下で発表されるものに置き換えれば IP 帯域リストを更新できます。
3.0:
https://trac.openpne.jp/svn/OpenPNE_specification/mobile_ip_list/20100305/3.0/mobile_ip_address.yml
3.2:
https://trac.openpne.jp/svn/OpenPNE_specification/mobile_ip_list/20100305/3.2/mobile_ip_address.yml
3.4:
https://trac.openpne.jp/svn/OpenPNE_specification/mobile_ip_list/20100305/3.4/mobile_ip_address.yml

管理画面からの修正方法がわかりません。
当方素人なので詳しく修正方法をお教えいただけませんでしょうか?
IP アドレス帯域制限機能を有効にするには、 2.14.1.1 では管理画面の操作ではなく、 config.php の変更が必要です。「OpenPNE 2.10 〜 OpenPNE 2.14」の対策方法をご覧ください。(※もしご自分で config.php を編集できる権限をお持ちでない場合は、権限をお持ちの方に本エントリの URL を知らせ、早急に何かしらの対応を打つように訴えることをお勧めします)
携帯版を使用しないように設定したい場合は、管理画面の「SNS設定」にある「携帯版使用設定」を「使用しない」に設定してください。
ということですが、「ご自分で OpenPNE をダウンロードして設置しましたか?」、それとも「OpenPNE を設置したのは別の方ですか?」。
「OpenPNE 2.10 〜 OpenPNE 2.14」の対策方法にあるように、 OpenPNE 2 系の場合は config.php の設定をしなければ携帯版の IP アドレス帯域制限機能が有効になりません。
サーバ上のファイルを触る権限がない場合は config.php を編集できないので、その権限を持つ人に依頼をする必要があります(そもそも 2.14 の場合は脆弱性対処がおこなわれた 2.14.4.1 にアップデートしなければ完全には問題を解消できません)。
もしすぐに対処できなければ、一時的な対処として、先ほど書いたように管理画面の「SNS設定」にある「携帯版使用設定」を「使用しない」に設定してください。
携帯サイトのSSLでのアクセスでトラブっています。
よろしくお願いします。
こちらでも携帯からはログインのところで「証明書不一致」となってアクセスできなくなりました。もし同じ症状ならどのように解決されたかご教示願えませんか? 証明書関係は何も触っていないのでどうしたものか悩んでいるところです・・・。
一部の機種でメモリオーバー(?)でエラーが出る現象がおきるそうです。
まだ把握しきれていませんので、携帯の機種やキャリア、エラーメッセージなどは後ほど追記させていただきます。
同じような現象再現するかた、いましたら情報よろしくお願いします。
> ...PC からかんたんログイン機能を使用できる状態にある場合、...
という説明についてですが、どのような状態を指しているのか、意味がよくわかりません。
これは、
『携帯版で「かんたんログイン機能」を使用できる状態にある場合、PCから特定の情報を送信することで、「かんたんログイン」機能の脆弱性を利用した「なりすましログイン」がおこなわれてしまう可能性があります。』
という解釈でよろしいでしょうか?
また、そうであった場合、
・PC版を利用していない
・かんたんログイン機能を使用している
・IPアドレス帯域制限機能を使用している
というケースでは対応が必要ない、という理解でよろしいでしょうか?
PC版を利用しているかどうかは関係なく、携帯でかんたんログインを使用していたら必ずアップデートしてIP制限をONにする必要があります。
これって運用で解決するしかないでしょうか。