セキュリティータグの投稿

2008-07-29
晴れ

端末識別情報の蒐集はリスクが大きい

ゆりこ による 08:27:59 の投稿
カテゴリー: WordPressハック,モバイル・携帯電話
タグ: , , ,

Ktai Style バージョン 0.98 から、携帯電話でのコメント投稿時に、端末識別情報を要求できるようになっています。バージョン 1.30 からは、iモードIDにも対応しています。この機能を付けたのは、荒らしコメントに対応するためでした。ケータイの場合 IP アドレス制限を行うことができないため、端末識別情報で投稿者を区別するしかないためです。ただし、まだ端末識別情報でコメント投稿を拒否する機能はありませんし、設定パネルの説明にも「『送信を必須』にしても、フルブラウザ・PC サイトビューアー等に切り換えれば回避できます。通常は『必須ではない』を選択することをおすすめします。」と書いてある通り、実効性は少し疑問があるため、オマケ機能に近いものです。

しかし、iモードIDの登場以降、端末識別情報を蒐集することはリスクが大きいことが指摘されています。高木浩光さんの日記「『日本のインターネットが終了する日』あとがき」では以下のような記述があります。

これが、住所氏名と契約者固有IDを含むデータを流出させてしまった場合には、被害者に具体的な損害が生ずるようになる。被害者は、どこのサイトに行っても住所氏名がバレてしまうという事態になるので、携帯電話の契約者固有IDを変更する必要に迫られ、改番手続きないし契約の解除と再契約などが必要になる。携帯電話会社によっては手数料を請求するところもある。また、契約者固有IDと住所氏名の漏洩は、任意サイトにおける過去のアクセス記録についてもそれが誰のものだったかバレてしまうという被害をもたらすので、被害者の精神的苦痛は大きいと判断される可能性がある。原状回復のために被害者にかかる作業の負担もあり、それらの損害を、漏洩させた企業に賠償請求することができるようになると思われる。なにしろ、被害の発生原因が漏洩させた企業にあることは明白だ。

ウェブログのコメントに「自身の住所氏名や電話番号」を書くことはめったにないでしょうが、端末識別情報を蒐集することはこのようなリスクがあることを意味します。Ktai Style の「端末識別情報の要求」を「必須」に設定する人すべてが、この問題を認識しているのならいいんですが、附属ドキュメントにはそこまで詳しく書いてないので、安易に「必須」にする人がいるかもしれません。次期バージョンでは記述を詳細にしなければなりませんね。機能をオンにするときは、JavaScirpt のダイアログを出して「本当に端末識別情報の要求を必須にしますか?」と注意を喚起するようにしましょう。また、各サイトのプライバシーポリシーの改訂も行うことを指南した方がよさそうです (Yuriko.Net のプライバシーポリシーでは、端末IDは個人情報と規程していますが、コメント投稿時に必要とする理由が分かりにくい)。

ちなみに、Ktai Style の「簡単ログイン」機能の実装が遅れている理由は、「端末識別情報だけでログインするのは危険」という理由が大きいです (ウィルコムで使えないというものあります)。今のところ、Ktai Style 2.0 で予定している「クッキーによるセッション管理」が実現したら、「クッキーを保存したままにする」という実装方法にすることを検討しています。つまり、Ktai Style 1.xx 系統では自動ログインはできない予定です。

2008-07-27
晴れ

ユーザー視点と作者視点

今ごろ気がついたのですが、wpmob, wpmobExpress の作者さんから「そっとしておいてもらえると嬉しい」と言われていました (リンクするかわりに引用しておきます)。「作者の視点」としてはまさにその通りで、そう言いたい気持ちもよく分かります。

あと最近、ソフトウェアを批評する方のサイトから良くリンクを頂いているようですが、正直そっとしておいてもらえると嬉しい。

紹介して頂けるのは本当に有り難いのですけれど、単なる趣味としてやってんだから類似したソフトウェアといちいち何回も細かく比較されるのは不快です。
自作のソフトウェアの機能アピールに当て馬として使われるのはもっと不快です。

他のソフトを引き合いに出して自作をアピールするなら、もっと優秀なソフトウェアのみ選出すると良いでしょう。
拙作は明らかに「機能不足」で「時代遅れ」なソフトウェアなワケだから無視して下さい。

ただ、わたしが「メール投稿ツールの比較表を作った」のは、純粋にユーザーの便宜のためでした。WordPress 用メール投稿ツールは、日本語に対応したものだけでも7種あり (Ktai Entry 含む)、選択基準を提示すべきではと考えたのです。網羅性を重視したため、見つけたものはすべて掲載しました。そして、ユーザーの立場としては「機能の劣る点」「問題点」も重要な情報ですから、○×表として記載したり、日本語ファイル名の対応などを確認したわけです。確かに「作者としての立場」を考慮しない書き方なのはまずかったですが、「作者さんにはがんばってメンテナンスしてほしい」という願いがありました。

「当て馬」があるとすれば、それは拙作の wp-mta および、Otsukare さん作の wp-shot になるでしょう。wpmob および wpmobExpress は、古いというより「枯れている」というのが合っていると考えていて、けなす意図はありません。優劣を判断してツールを選択するのはユーザーですから。

ついでに書いておくと、WP MOBILE の非難は、どちらかというと作者視点セキュリティー啓発者としての活動です。同様の機能を持つプラグインを作っているために「ライバル潰し」と誤解される可能性が大なのですが、あくまで「危険なプラグインの啓蒙」です。Ktai Syle は、「安全なものの代替案」として提示していると考えてください。(その割にバージョン 1.3x はバグが多くてご迷惑をおかけしましたが……)

幸い、WP MOBILE はユーザーがほとんどいなくて安心しているのですが、Mobile Eye+アダルト広告問題が見つかってしまい、これを啓発せざるを得ないのは残念なところです。セキュリティー欠陥ではないので「ほっとけばいい」という考えもあるでしょうが、危機管理という面では放置できないネタなので、広報しています。ライバルとなるソフトウェアを開発している人が言うのは、告知効果という面ではいまいちなので、利害関係のない第三者にやってもらいたいところです……。というか、まおうさんに修正して頂くのがベストですね ;-) 例えば、URLGATE 機能にリストアップするサイトを個別に ON/OFF できるようにして、画像リサイズ/画像URLGET/ファイルシーク/pic.to の横に「アダルト広告注意」と書いておく (デフォルトはすべてオフ) などの実装が考えられます。

ユーザー視点としてみると「便利なものを使いたい」「機能豊富なものを使いたい」となるでしょうし、多くのプラグイン作者は「自分が必要なものを作りたい」「ハック欲を満たしたい」となるでしょう。わたしの場合、そこに加えて「セキュアなものが普及してほしい」「危険なものは使うべきではない」という考えも持っています (「使うべきでないプラグイン12選」はその一例)。そのへんのバランスはなかなか難しいですね。WordPress コミュニティーに「セキュリティーを重視する」という文化が醸造されればいいのですが……。

2008-07-17
晴れ

SOMY 製プラグインはインストール禁止

ゆりこ による 01:07:29 の投稿
カテゴリー: WordPressハック
タグ: ,

SOMY プラグインがリストアップされた画面

かつて、WordPress 向けに有用なプラグインを提供されていた SOMY さんですが、SOMY さんが制作したプラグインすべてに、セキュリティー欠陥があることが分かりました。それは「プラグインの PHP ファイルに script 要素が埋め込まれていて、WordPress 2.0.x 以前 (2.0 を含む) で、管理画面のプラグイン一覧でリストされたときに実行されてしまう。」というものです 。プラグインをインストールするだけで発生し、停止していても script が実行されます。

画面のバージョン数字の部分に script 要素があって、XHTML ソースは次の通りです。

<td class='vers'>1.0<script src="http://wp.somy.jp/up_check/?f=logined-publish&v=1.0"></script></td>

この script 要素は、おそらくバージョン確認が目的だと思われます。今のところ、サーバー側 API が停止しており、何の反応もありませんが、将来 wp.somy.jp がクラックされたり、SOMY.JP ドメインが失効して他人に渡ったりして、悪意あるコードが設置された場合は非常に危険です。なお、WordPress 2.1 以降では、script 要素が削除されてから管理画面に表示されるので安全です。

対象プラグインは以下の通りです。

[このセクション追加] WordPress 2.0 以前で当該プラグインを使用している場合は、WordPress の管理画面を *開かずに*、FTP/SFTP ツール等で、サーバーのプラグインディレクトリー (wp-content/plugins/) から当該プラグインを削除してください。管理パネルでプラグインを無効にする必要はありません (というか、管理パネルに入ると危険です)。

以下のツールは、厳密にはプラグインではなく、WordPress のプラグイン一覧にリストアップされないので、この問題はありません。しかし、別のセキュリティー欠陥が存在する可能性は否めません。

ドキュメントに「プラグインには、バージョンチェック用の JavaScript が入っています」という記述があればマシなのですが、そういう記述が一切ないため「バックドア」と認定していいでしょう。SOMY さんは去年あたりから活動を停止されており (2007年9月9日のコメントが最新)、プラグインの更新もされていません。リリースされたプラグインはすべて古くなっており、WordPress 2.3 以降に対応していないものも多くなっています。このため、すでに「SOMY 製プラグインは (古いため) 使うべきではない」という状態だったのですが、こんなバックドアが埋め込まれているとすれば、「インストール禁止」と言うべきでしょう。WordPress 2.1 以降では問題ないとはいえ、バックドアを作ってしまうような作者のコードは、他の部分も信用しない方が無難です。

SOMY さんが現在活動中であれば、直接連絡するなり IPA に通告するなりして改善をお願いするのですが、そうではないため、この場をもって多くの人に警告するしかありません。その点が非常に残念です。

逆に言うと、この問題は、WordPress 2.0 自体の欠陥とも言えます。2.0 ブランチは一応現役なだけに 2.1 以降での修正をバックポートしてもらいたいのですが……。→ ME 2.0 については自分で直してしまえばいいのだった ;-)

「プラグイン10選」で SOMY プラグインを挙げられている人にピンバックしてみましょうか。おそらくみなさん WordPress 2.1 以降なので安全だとは思いますが。(追記: その他にも使っているユーザーを見つけたら追加します)

[追記 2008-08-20] チケット #7325 を切って報告しましたが、WordPress 2.0 ブランチでの修正は望めそうにありません。「SOMY プラグインというヤバイ例がある」と書いてみたものの、期待薄ですね……。本家が修正しないとしても ME で修正するのは自由なわけですが、あまり本家と差異ができるのは嫌なので避けたいところです。となると、地味に「SOMY プラグインは危険」と告知するしかないのかな。

2008-07-15
晴れ

使うべきでないプラグイン12選

ゆりこ による 00:19:06 の投稿
カテゴリー: WordPressハック
タグ: , , ,

トラックバック企画「WP2.5に入れるプラグイン10選」ですが、中間集計が始まったようなので、「使うべきでないプラグイン10選」を挙げてみたいと思います ;-) (追記: ヤバいものが増えてしまい、12選になりました) Masayan さんはこういうリストアップを好まないと思いますが、「やばいものは避けよう」という注意喚起としてあえて出してみます。もし、自身で使っているプラグインが該当していると不快になるかもしれませんが、セキュリティー向上のための情報ですので、気を悪くされないようにお願いします。

危険なプラグイン

以下のプラグインは、セキュリティーホールがある/ありそうなため、即座に使用停止した方がいいものです。

WP MOBILE
デジタルスタジオ製のモバイル対応プラグインです。当サイトでは度々危険性を告知しています。当初発見された脆弱性は塞がれていますが、まだ突破口があるのでないかと思われます。また、WordPress 2.3 以降には未対応なこと、IE, Firefox, Opera 以外の PC 向けブラウザー (Safari など) では閲覧できない、という重大な問題があります。(Safari ユーザーお断りサイトができてしまう ;-) (追記: このプラグインがあまりにふがいないため、Ktai Style の開発を始めました。Ktai Style の普及のために WP MOBILE を叩いているのではありません)
Plug ‘n’ Play Google Map
Lightweight Google Maps の前身である Google 地図対応プラグインです。XSS 脆弱性があること (作者に報告しても梨のつぶて)、位置情報が多くなると PHP およびブラウザーのメモリエラーになること (16MB だと 1000個が厳しい) などの問題があります。(追記: こういう問題があるので、Plug ‘n’ Play Google Map の使用をあきらめて自作することにしたのです)
まだベータ版なので、ここに挙げるのはかわいそうなのですが、2回も脆弱性を指摘したのにまだ同じ箇所が直ってないのは残念です。今後修正版が出るでしょうが、多くのテスターによる確認が済むまで使わない方が賢明です ;-) (作者がんばれ!!)

新しい WordPress に対応していないもの

以下のプラグインは最近の WordPress に対応していないものです。また、作者が開発を中止した/新バージョンが今後出ないと思われるものです。コードを自分でいじれる人ならば、改造して使ってもいいですが、プログラミングの知識がないならば、避ける方が無難です。

SOMY Mobile Gate
SOMY さんのメール投稿ツールです (厳密にはプラグインではありません)。残念ながら 2006 年秋頃に開発を中止されてしまいました。そのため、WordPress 2.3 以降の新しいカテゴリーテーブルには未対応となっています。後継の MobG を使いましょう。こちらはメンテされています。
SOMY SpamBlock JP
SOMY さんのスパム対策プラグインです。こちらも 2005年3月以降メンテナンスされていません。トラックバック・ピンバックの識別方法が古く、すべてコメントとして処理してしまっています。また、ブロック時の表示が文字化けしやすいこと (Shift_JIS 表示かつ HTTP ヘッダで Content-type 未指定)、コメント/トラックバックを必ずデータベースに一度保存させていること、どうにかがんばれば SQL インジェクションを起こせるかもしれないこと、将来 $tablecomments が廃止されたら動かないこと、などいくつか問題などがあります。
WordPress 2.0 以前 (2.0 含む) でセキュリティー欠陥があることが判明しました。WordPress 2.0 以前ではインストール禁止です。
SOMY IMG Collect
SOMY Logined Publish
SOMY さんのギャラリープラグインと、ログインユーザー判別プラグインです。どちらも、設計が古く将来の WordPress で動くかどうか不明です。なんとか WordPress 2.6 でも動きそうですが……。なお、WordPress 2.0 以前 (2.0 含む) でセキュリティー欠陥があることが判明したため、インストール禁止です。

アダルト広告が出てしまうもの

以下のプラグインは、取り扱い注意な機能を含むため、万人にはおすすめできないものです。設定を変更するか、「ポルノ広告表示機能」を了承の上使うのならば問題ありません。

Mobile Eye+
まおうさんの携帯対応プラグインです。Otsukare さん作の Mobile Eye がベースとなっていますが、大幅に変更されています。これも、当サイトで口が酸っぱくなるほど書いている通り、「画像や外部リンクをクリックしたときの URLGATE 画面には、ポルノ・出会い系広告が出る外部サービスがリストされる」という問題があります。しかも、この機能はデフォルトで ON にかかわらず、ドキュメントや配布サイトには記述されていません。このため、Mobile Eye+ をデフォルト設定で使うと、「アダルト広告に繋がる携帯サイト」ができあがってしまいます。
URLGATE 機能がドキュメント化されているならば、「ポルノ広告が出てもいい」というユーザーだけが ON にすればいいのですが、そうでないため、取扱注意なプラグインとなっています。PHP5 未対応のため Ktai Style が使えない、という人は、ちょっと機能が低いですが「MobilePress」も検討してみてください (ただし、short_open_tag が off だと動きません)。
(追記: WordPress 2.3 以降で「ブログのパーマリンク」が「使用しない」の設定の場合、標準 URL (Canonical URL) の仕組みにより、パーマリンクを使った URL に常にリダイレクトがかかってしまいます (ドコモ携帯ではダイアログが出ます)。また、前後ページのナビゲーションで URLGATE 経由になってしまいます。「使用する」に設定すればどちらも回避できます)
(追記その2: Ktai Style 開発動機のもう1つの理由が、「Mobile Eye+ の挙動が好みと違う」ことでした (まおうさんも「かなり自分仕様な設計」と明言されています)。わたしには「ページ分割機能がない」「パケット節約が十分でない」「コメントとトラックバックを強制的に分離する」「スマイリー画像をそのまま出す機能がある」などは不満でした。このため「もっといいものが作れるんじゃないか」と考えて、携帯対応プラグインの開発を検討したのです。その後、「アダルト広告問題」が発覚したため、Mobile Eye+ も非難せざるを得なくなってしまいました。これは残念なことです)

お行儀が悪いもの

以下のプラグインは実装が凶悪で、他のプラグインに悪影響を出すものです。

Events Calendar
イベント表示プラグインです。標準のカレンダーの代替を提供します。しかし、プラグインの初期化段階で wp-includes/pluggable.php を require してしまうため、「プラグインが先に関数宣言することでオーバーライドできる」という pluggable.php の仕掛けを台無しにしてしまっています。WordPress コアの動作をまるで理解していない人が作っているわけで、これだと Extends から削除すべきぐらい酷いものです ;-) Ktai Style とコンフリクトするから敵対視しているわけではありません……。
All in One SEO Pack
人気のある SEO 増強プラグインです。しかし、タイトル書き換え機能が ob_start() を使うという凶悪な実装で、Ktai Style や Mobile Eye+ では title 要素が化けます (現在の Ktai Style では対策ずみ)。お行儀が悪い、という意味ではトラブルメーカーなわけで、初心者の方は避けた方が無難です。

セキュリティーを落とすもの

WordPress のセキュリティーを下げてしまうプラグインです。

Exec-PHP
runPHP
どちらも、投稿に PHP コードを記述できるようにするプラグインです。テーマの改造では不可能な動的なサイトを作ることができます。しかし、複数の投稿者がいる場合、ユーザー登録が自由なサイトではセキュリティーがかなり落ちますので、使ってはなりません。ページテンプレートや自作関数/自作プラグイン/自作ショートコードを作れば、これらのプラグインに頼らなくても済みます。逆に言うと、これらのプラグインを使うということは、まだ初心者の域であると言えるかもしれません ;-)

閲覧者が困るもの

他人のプラグインばかり非難していると「何様やねん」と言われそうなので、自作のものをオチとして出しておきましょう。

Ktai Style Shuffle (PC 向けバージョン)
Ktai Style のエイプリルフール版です。なんと、アクセスの度に表示される投稿が変化するという「ランダム表示」を強要します。閲覧者が困惑すること必死です ;-) 強烈なジョークプラグインですので、真面目なサイトで使ってはいけません。

なお、ここに挙げられていないものが「安全」というわけではありません。プラグインは便利ではありますが、PHP コードそのものですので、すべてセキュリティーの脅威となり得ます。プラグイン紹介サイトでは、コードの確認をしていない場合もありますので、「人気サイトで紹介されているから大丈夫だろう」と思わないようにしてください。

[追記] もちろん、上記のリスクを承知の上で、ここに挙げたプラグインを使うのは自由です。また、問題点がさほど重大でない場合もありますので (設定で回避できる etc)、一概に全部がダメ、というわけではありません。本当にダメなのは、一番最初の2つだけです。

[さらに追記 2008-07-15 09:20] デッドリンクチェッカーは、作者さんが根本的な改良をされたようなので、削除しました。そのかわり、Events Calendar を追加しました。

[もっと追記 2008-07-17 01:15] SOMY プラグインの欠陥を追記して、他のプラグイン2つも追加しました。

[本文中に追記 2008-07-27 22:45] WP MOBILE, Plug ‘n’ Play GoogleMap と Mobile Eye+ と拙作プラグインの関係について、本文中に追記しました。既存品に問題や不満があったため代替品を作ったという経緯なので、それらを非難するのは必然なわけです……。

2008-04-01
くもり

H11Tを交換依頼

ゆりこ による 15:46:32 の投稿
カテゴリー: モバイル・携帯電話
タグ: , , , ,

購入直後から EM chip を認識しない不具合が出た H11T ですが、カスタマーサポートセンターと相談した結果、移動機を交換することにしました。神奈川県内だと近いためか明日到着予定です→あさって3日到着に延期されました。

しかし、ここに至るには紆余曲折がありました。きのう電話したときは「オールリセットする」という対応を提案されました。それでしばらく動いていたように見えましたが、本日昼すぎから現象再現しました。再度サポートに電話すると、「交換します」という対応となったのですが、なんと「SIM 含めて丸ごと交換するので電話番号も変わります」という内容です。事前予約までして取得した良番なのに、変更するなんて「ありえない」話です。「移動機だけ送ってもらって、SIM はこちらで交換する」という方向で話をすすめましたが、SIM が不良の可能性もあるということで、SIM 記載の EMB 番号および ICC 番号を伝えることで、同じ電番が入った SIM を送ってもらえることになりました(SIM 交換すると思ったのは勘違い。EMB 番号とICC番号を聞かれたので、てっきりそうだと思ってしまった)。そのかわり、半日ほどは通信ができなくなります。

音声サービスは開始したばかりとはいえ、データー通信サービスは1年もやっているのですから、サポートセンターの対応はもっとスマートにしてもらいたいものです。わたしのように「押しが強い人間」ならばまだしも、そうでない人は泣き寝入りをするパターンも多いのではないでしょうか。

何より、本人確認の手段として「ネットワーク暗証番号を口頭で答えさせる」のはひどいと思います。銀行やクレジットカード会社では、御法度な方法ですよ!! イー・モバイルは、大衆のセキュリティー意識を下げさせてしまっています!!

2008-03-22
晴れ

ヨソで配っている WordPress は危険です

ゆりこ による 14:16:28 の投稿
カテゴリー: WordPressハック
タグ:

WordPress Japan フォーラムで、「WordPress 附属テーマで右側に PR リンクや QR コードがあるのを消したい」という投稿がありました。ハテ、WordPress 2.3.3 日本語版も、ME 2.3.3 も、附属テーマにはそんなものはありません。不思議に思っていると、質問者から以下のような返事がありました。

Press9でWordPressをダウンロードし、そのテンプレートに入っていました。
プラグインは何の事かさっぱりわからないので、まったく触っていません。
Akismet
BlogConfigurationSetting(無効化)
Hello Dolly
MobileContentViewer(無効化)
Mobile Eye
podPress
SEO Title Tag(無効化)
Spam Karma 2
WordPress Database Backup
WP-ContactForm
という状態になっています。
PRには、WordPress無料提供中と表示されています。

うぎゃーー。またデジタルスタジオがやってくれたよ!! WordPress のパチモン (あえて断言) を配るとはとんでもないです。WordPress は GPL ソフトウェアなので、改変したものを配布することは自由です。しかし、その場合は、元の著作権表示を守り、また、改変箇所を明記しなければなりません。よりによって、脆弱なプラグイン (WP MOBILE; BlogConfigurationSetting, MobileContentViewer) を同梱してくるとは、ひどいですね。Mobile Eye (オリジナル版) も、2008年の現在では古すぎます (PHP5 では変な動作をする)。

ひょっとすると、WordPress コアにバックドアを仕込んでいるかもしれず、非常に怖いですね。日本語対応の WordPress 正式配布元は、http://ja.wordpress.org/ ないしは http://wordpress.xwd.jp/ (配布ファイルは sourceforge.jp に格納) です。それ以外で配布しているものは、偽物もしくはパチモンです。危険ですので、使ってはいけません!!

2007-05-09
晴れ

WordPress プラグインにひそむ脆弱性

ゆりこ による 11:02:25 の投稿
カテゴリー: WordPressハック
タグ: ,

WordPress はテーマやプラグインが豊富に存在し、かつ、自作プラグインが作りやすことが魅力です。しかし、その「作りやすい」ことが災いして、脆弱性を含んだプラグインがけっこうあるようです。

プラグインをいろいろ試すのはいいことですが、できれば、ソースを見てみて、危険性がないことを確認した方がいいでしょう。もし簡単に脆弱性が見つかるようなら、絶対にそのプラグインは使ってはいけません。

XSS を見つけるには、$_GET や $_POST の内容をそのまま echo していないかどうかのチェックしてみます。echo $_GET['lat']; なんてしていたら、それはモロ XSS があります。

SQL インジェクションはもっと簡単で、$wpdb->get_row とか $wpdb->query の引数にある SQL 文に、そのまま $_GET や $_POST を使ってないか調べます。例えば、以下のようなコードは危険です。

$wpdb->get_row("SELECT comment_content FROM $wpdb->comments WHERE comment_ID = ".$_GET['edit_this'])

もちろん、こんな簡単なチェックではすべての脆弱性を見つけることは無理ですが、現状では、この程度の点検でもやばいコードが見つかってしまいます……。

なお、プラグインに脆弱性を見つけたなら、それをいきなり公表してもいけません。まず作者に報告し、修正されるのを待つべきです。もはやメンテナンスされていないなら、(たぶん GPL なので) 自分で改善して配布するという手もあるでしょうか。