Hatena::ブログ(Diary)

EC-CUBEのカスタマイズならクロスキューブ!サイト制作メモ このページをアンテナに追加 RSSフィード Twitter

2013-06-02

ECサイトのセキュリティの原則 - 最近の情報漏洩に対して

f:id:xross-cube:20130602203828j:image:w360

どうもお久しぶりです。

今日は、最近多発しているECサイト情報漏洩についてです。

最近、いくつかのWebサイトでおきた情報漏洩ニュースを良く聞きます。

特にECサイトでの通常考えられない様な漏洩もあったりするので、発注者側、開発者側の人に対して強く言いたい事があります。


漏れたら危険情報は持たない

こう言ってしまうと余計な危機感あおりそうで嫌ですが、基本的に全てのWebサーバ侵入可能です。

どれくらい難しいかという話で、時間や労力を考えなければインターネットに繋がっている全てのサーバは侵入可能なのです。

Webサイトセキュリティは、それを踏まえた上で、「侵入されても最悪の事態を防ぐ」「侵入させにくくする」という視点で対策を施す必要があります。

なんだか原発と似てますね。

事故が起きない事を前提に考えてはいけない」という事です。


その為には、基本的なログインIDパスワード管理接続IPの制限、ミドルウェア保守等も当然ですが、なによりかにより最強なのが「情報を持たない」という事です。

持っていない情報漏洩のしようがありません。コレが最強です。


では、ECサイト漏れたら致命的な情報とは何でしょうか?

実害が発生しうる可能性が最も高く、危険MAXなのが決済情報、それもクレジットカード情報です。

最近起きた情報漏洩の最悪なケースがコレです。

グローバルデータの情報流出に、深刻な三つの問題点

クレジットカード決済で必要情報は、カード番号と有効期限、カード名義人情報です。

それだけだとあまりにも危険なので、インターネットで決済する場合に追加で付与された情報セキュリティコードという、クレジットカード裏面に記載されている3桁の番号です。

この漏洩を起こしたグローバルデータサイト場合、なんとこの情報をセットでサーバ内に保持していたのす。

僕らECサイト制作する事を生業としている人間からは信じられない仕様です

原発に例えると、「燃料棒監視も施錠も無い庭の物置に積んどいた」くらいの危険度です。


通常、ECサイトクレジットカード決済を行う場合カード番号や有効期限などの決済に必要情報を、Webサイト上で入力してもらいますが、その情報ECサイト側では保持しません。

ECサイトでは受け取ったカード番号等を、保存せずにそのまま決済代行会社サーバ安全な通信で送信し、結果を受け取ります。

保存したとしても一時的にサーバメモリ上にその分だけ保存され、1/100秒くらいで消えてしまいます。

また、カード情報入力しないでも、1度カード決済をすれば2回目以降はカード番号の入力を省略できる機能があります。

これは、ECサイト内の顧客IDカードの決済情報決済代行会社側が結びつけておいて、顧客ID店舗契約情報を結びつけて決済ができるという仕組みです。

この場合店舗の決済ID暗号鍵、顧客IDが無いと決済できず、そのECサイトサーバからしか決済を受付ない様になっています。

つまり、カード情報なんかWebサーバで持っていなくても、正規の手順を踏めば正常な決済は可能なのです。


これは予想ですが、グローバルデータではレンタルした端末を返却した後に決済をするので、それまでカード情報を持っていないといけないと思ったのでしょう。

あまりにも決済についての知識が無さ過ぎる仕様です

考えられる理由としては、

のいずれかだと思います。

ECに詳しくない制作会社の方へお願いです。

決済については決済代行会社の方が聞いて無い事まで詳しく教えてくれます。ちゃんとサービス内容や仕様勉強してください。

ECサイト発注者の方へお願いです。

利便性を優先するあまりに、危険仕様を強制しないでください。概ね利便性セキュリティの強さは反比例します。

それにより事故が起きた場合の被害額を考えれば、おのずと正しい判断ができるはずです。


できれば、個人情報についても決済代行会社さんで持って頂きたい位ですね。

EC-CUBE脆弱性について

さて、お話し変わってEC-CUBEです。

先日、2.11系に危険度の高い脆弱性発見されました。

http://www.ec-cube.net/info/weakness/

まだパッチを当てていないサイトはすぐにでもパッチを当ててください。バージョンアップ必要はありません。

制作会社にお願いしても大した金額は取られません。

今回の脆弱性についての詳細は、EC-CUBE東京ユーザーグループで、EC-CUBEエバンジェリストでもある川口先生が詳しく解説もしてくれています。

これを機会に、東京近郊の方はぜひユーザグループへの参加もお願いします。「参加」ボタンクリックするだけです。


今回の脆弱性についてですが、SQLインジェクションXSSWebアプリ脆弱性のお手本の様な脆弱性オンパレードです。

でも、EC-CUBEクレジットカード決済モジュールは、サーバ内にカード情報を保持する様には作られていません。

なので、顧客カード情報漏洩する事はありません。

ある条件が揃った際に情報漏洩する危険性があるというもので、EC-CUBEでは会員のログインパスワード暗号鍵を混ぜた状態で暗号化されており、ショップ管理者でさえもパスワードを知る事はできません。*1

EC-CUBEオープンソースであり、株式会社ロックオン主導で開発が進められていますが、多くをボランティア開発者に支えられています。

その為、時にこういったバグが出てしまう事が稀にあります。

でも、川口先生をはじめ、主要メンバーはECサイト構築のプロなので、漏れても最悪の事態を招かない様に作られています。

また、公式のインテグレートパートナーコミッターには、一般公開前にこういった脆弱性情報が通知され、公開前にパッチを当てる事ができる様になっています。


コミッターのひとりとして、EC-CUBEのこういった「事故が起きる前提で考える」体制も評価のひとつに加えて頂きたいと思います。

*1:まあ、破り方はありますが...