WebMoneyを決済手段として実装するサイトの一部に運営者のミスによって脆弱性が発生しています
IPAとWebMoneyとサイト運営者に報告したのが2月7日です. そろそろ注意喚起を兼ねて広く公開しておきます.
脆弱性の内容
WebMoneyの「基本導入マニュアル」を参照してください.
持ってない方は頑張って手に入れてください. このバグもWebMoneyにバグ報告したのですが優先度が低いということで修正されませんでした.
そしてその7ページ目の下半分テーブル4行目(ヘッダは含めない)を読んでください. 次に9ページ目の下半分を読んでください.
このファイルを公開してはいけないということがわかりましたね?
WebMoneyのモジュールは素のCGIなので, CGIを動かすようにApacheをディレクトリ全体に適用して, うっかりファイルも公開してしまっていることが多いです.
IPAに報告したところ, 運営者から「これは公開して構わないものだから脆弱性ではない」という寝ぼけた返事をもらいましたが, マニュアルにも書かれている通りこれは公開してはいけません. マニュアルできちんと警告されています.
具体的な攻撃方法については面倒臭いので調べてないですが…
WebMoneyは加盟店を検査した方が良いでしょう, やらないだろうけど
私はWebMoneyを決済手段として実装している時に, 適当に実装すると脆弱性が発生すると気が付き, Google検索を使うことにより4件のサイトに脆弱性が生じていることを発見しました.
発見した全てのサイトにはメールにて連絡を出しましたが, 全てをカバーできているとは到底思えません.
本来ならばこれはWebMoenyがスクレイピングなどによって設定ミスをしていないかどうか加盟店の検査を行うべきなのではないでしょうか?
私が機械的にスクレイピングしても良いのですが, 1銭にもならないことに手間をかけるのがイヤですし, 不正アクセス扱いされて様々なサイトにブロックとかされたらイヤなのでやりません.
我々の対策
我々はApacheではなくnginxをフロントのwebサーバに使っているので, nginxで必要なCGIのURLにアクセスした時だけApacheに通信を繋いでいます.
もちろん, Apache側でもCGIとして実行できないファイルを静的ファイルとして配信することがないようにしています.
多分これで問題ないかと思われます.