別にシリーズにするつもりじゃなかったセブンペイ事件の小並感メモ。
いつまでつづくのやら(汗)
認証に関する考え方(つづき)
ID、パスワードのリストや、ID、電話番号、誕生日のリストを利用された可能性
今回の事件では、実際にどんな手法で攻撃が行われ、成功したのでしょうか?
これについては、本当のところはフォレンジック調査をしてみなければわかりません。可能性と言ってしまえば色々あり、サーバがハッキングされた、被害者の端末に既に情報窃盗マルウェアが入っていてそこから情報が盗まれた、セブンペイアプリの開発に侵入されていて、不正コードを注入されていた、など色々考えられます。
ただ、今回は認証関係に不備があることが分かっており、そこを突かれた可能性は十分にあります。サイバー攻撃は弱いところを突かれることが多いことは周知のとおりです。では、今回の認証関係の不備が攻撃に使われる可能性はあるか、ちょっと考察してみます。
今回、二段階認証、二要素認証がないことで、他者がなりすまししやすかった、という点が問題として挙げられています。
これは、犯人が自分の手元のスマホにセブンペイのアプリをインストールした後、被害者のID、パスワードを入れるだけで、容易にその人になりすましできることが事件に繋がった、という考えです。
もし、ここでSMSやメールでの二段階認証が必要だったとしたらどうでしょう?SMSやメールのメッセージは被害者のほうに届いてしまい、登録がそこから先に進めません。あまつさえ、被害者はそのメッセージを受け取ることで、身に覚えのない登録操作に気づき、不審点を運営に通報することで、事件を未然に防ぐことができたのではないか、と考えられます。
(ユーザの管理画面に簡単に入れる場合、二段階認証のあて先を変更される恐れはありますが、それはまた別の話。)
とはいっても、ユーザのID、パスワードが分からないといけません。
では、犯人はこれをどうやって知ったのでしょうか?これが二段階認証、二要素認証がなかったためになりすましができた2つめのキモです。
もっともクリティカルなのは、セブンのサイトからハッキングなどによる情報漏えいです。
ここでID、パスワード(ハッシュを含む)が漏洩していた場合、容易に知ることができます。
こういった被害がなかったかどうかは、しっかりと調査する必要がありそうです。
他に考えられる方法として、スマホのスパイウェアの感染です。
バッテリーの管理機能など、ホワイトなアプリを装って情報窃盗を行うマルウェアを埋め込むケースなどが問題になっており、これに潜在的に感染していた人が被害に遭った可能性はあります。
しかし、多くの人が被害に遭う可能性があり、かつ「海外、特に中国からのアクセスが多くあった」という発言から推測されるのが「リスト型攻撃」です。
リスト型攻撃とは、ID(メールアドレス)、パスワードのセットといったリストを元に、認証が通るかを試す攻撃です。
今回の攻撃では、ID、パスワードをダイレクトに狙う方法と、ID、生年月日、電話番号を元にパスワードリセットをかける方法の二種類で利用できます。
後者のパスワードリセットは、パスワードリセットで「送付先メールアドレス」という第三者にもパスワードリセットのメールが送れてしまう仕組み上の不具合を利用する方法です。犯人がID、生年月日、電話番号のリストを持っていた場合、「送付先メールアドレス」に犯人が受け取れるアドレスを指定することで、パスワードリセットのメールが犯人にも送られてしまいます。犯人は、これを用いてパスワードを任意に設定することで、ID、パスワードを知ることになるのです。
ただ、この手法の場合、プライマリの「7ID(メールアドレス)」にも同様のメールが飛ぶのではと思われます。この場合、被害者に気づかれるきっかけになるので、使われたかどうかはちょっと微妙だと思っています(「送付先メールアドレス」を設定した場合、「7ID(メールアドレス)」には通知しないという最悪以外何者でもない仕様だったら別ですが)。
いずれにせよ、犯人は「リスト型攻撃」を行うために、ID、パスワード、もしくはID、生年月日、電話番号のリストを入手しなければなりません。
サイトのハッキング以外で、それは可能なのでしょうか?
残念ながら、そういった情報はネットに大量に流れています。最近では、ダークウェブという名前も耳にすると思います。
今年の2月にも、大量の流出データが発見、報道されました。
22億件超の流出アカウント情報、ダークウェブで一括公開(ZDNet)
Collection#1~5と呼ばれるデータで、これだけで数百GBの容量があるシロモノです(数百GBのテキストデータとは一体・・・)。
もちろん、データは世界中のデータが集まっているため、日本人の情報は一部に過ぎませんが。
しかし、ドメイン名が「.jp」になっているものは、日本人や日本に住んでいる可能性が高いことは容易に推測できます。
また、「自分は『.com』で国が分からないから」と思った方には、残念なお知らせがあります。漏洩元のサイトが分かっている情報も結構あり、漏洩元が日本のサイト(.jp)だった場合、同様に日本人だろうと推測されてしまいます。
犯人は、こういった情報源から「日本人だろう」で抽出したリストを元にアクセスを試みて、成功したものを利用する、といった手法が考えられます。
今回の攻撃でその推測を裏付けとして、そのためのアクセス試行が、「海外、特に中国からのアクセスが多くあった」の理由なのではないか、と考えられるのです。
このため、この攻撃が成功するのは、もっぱら「同じパスワードを複数のサイトで使いまわしをしている人」になります。
もちろん、最近ではパスワードの使いまわしをする人は減ってきています。
しかしながら、0にはならないのもまた事実です。
セブンペイに登録したのは150万人といわれていますが、たとえパスワードを使いまわししている人が0.1%(1000人に1人)だったとしても、犯人からすれば1500人もカモがいることになります。今回の事件では被害者900人、被害額5,500万円といわれていますが、犯人にとっては1500人のカモは十分な数字だったんじゃないでしょうか(でも、使いまわししている人もっといそうだよね・・・つまり・・・?)。
Collection#1~5のような情報の漏洩は、特に登録するユーザ側からは防ぐことが難しいのが現状です。
せいぜい、セキュリティがしっかりしているサービスかどうかを見極めて登録する、が関の山です。
そのため、「被害を局限するために、パスワードは決して使いまわさない」が鉄則になってきます。
それならば、仮にそのID、パスワードが漏れたとしても、被害はそのサイトの範囲内に限定されます。
また、「二段階認証、二要素認証を利用することで、仮にパスワードが漏れても簡単には不正利用できないようにする」というのも、有効な手段となります。
「パスワードの漏洩が注意喚起されたら、変更して回ればいい」は甘いです。
なぜなら、漏洩したサイトも漏洩した瞬間気づくわけではなく(というか、気づけるくらいなら防ぎますよね、普通・・・)、下手すると、漏洩していても未だに気づいていないという可能性すらあります。例えば、「Collection#1~5に自社のサイトが含まれてないか?」なんて、ちゃんと確認した会社はいくつあったんでしょう?また、全ての漏洩事件が公開、報道されるわけではなく、今でもダークウェブで流れていたりします。つまりそういうことです。
今回の攻撃の教訓としては、「パスワードの使いまわしはしない」、「二段階認証、二要素認証はなるべく利用する」という、ありきたりなものになりました。
しかし、今回の問題点と攻撃手法、その情報源の事情の考察から、その意味を少しでも理解してもらえたなら幸いです。
これでも、あなたはパスワードの使いまわしできますか?
面倒くさいと思っていた二段階認証、二要素認証も、ちょっと使ってみるかという気になりましたか?
考える機会になったのなら幸いです。
本当の顧客第一とは
今回の事件の、特に例の記者会見で「利便性のため」という言葉が耳に障った人が多かったのではないでしょうか。
正直、あとで会見の動画を見た私も「イラッ」としたものです。
「利便性」=「顧客のため」と言いたげな態度で、だからしょうがない、それが理由なので非難するな、と感じたものです。
「本音は顧客の囲い込みなんだろ?」とヒネた邪推はこの際置いておいて、顧客第一とセキュリティについて考えてみようかと思った次第です。
セキュリティに関しては、様々な理論があったり、現実的な脅威があってその対策があったりと、様々な要素が絡みます。
また、サイバー犯罪も技術的な進歩が続いており、それをくまなくみなさんに説明、理解していただいて使ってもらう、というのは困難な状況です。
そのため、機会あるごとに説明はするものの、専門家で議論した結果を実装し、使ってもらうというのが現実的になっています。
そこでは、リスクを現実的に起こる確率を可能な限り小さくし、その上で実用可能な方法を提示しているはずです(極稀に、原則論ばかり言うDQNもいるけど・・・ごにょごにょ)。
ただ、それでも二段階認証などは、ある程度のメンド臭さがつきまといます(今回の事件を見て分かるとおり、このメンド臭さが、本当は被害防止の鍵なんだけどもね)。
これがあることで、スマホを使い慣れないお年寄りなどにとってハードルになるという考え方もあるのかもしれません。
でも、だからといってセキュリティを甘くしていい理由にはなりません。
なぜなら、簡単に登録できた仕組みが原因で、被害に繋がる可能性があるためであり、今回の事件もそれが原因であると思われるからです。
これでは、「簡単に登録できるから登録したことによって、被害に遭ってしまった」ということになりかねません。
これが利便性のため、顧客のためと言えるのか?というのが、セキュリティエンジニアとしての問いです。
厳しい言い方になって批判は受けそうですが、必要なセキュリティ条件を満たしたものを扱えないなら、現金を使ったほうが安全なのでは、ということになります。
これを無視してセキュリティを下げて登録者数を増やそうとしたのであれば、顧客の囲い込みと購買情報が欲しかった、という邪推をされても仕方ないと思います。
顧客第一で考えるなら、利便性ばかりでなく、顧客を守ることにも真剣に取り組むべきではないでしょうか?
その面が見えずに、利便性、利便性と言うから反発を招いている気がします。
ここからは個人的な愚痴・・・。
そもそも、利便性っていったら、セブンやそのグループ内でしか使えそうにないっていう段階で、よほどのインセンティブが無い限り使う気になれないんだけど・・・。
「なんちゃらpay」って電子決済が乱立しすぎて、却って使いにくい印象。チャージだって、あちこちに分散しちゃって使いづらい印象。
9000円を3000円ずつ3つのペイにチャージしてたら、ある店で5000円の物が買えなくなるってことになるし、それならもう現金でいいじゃん、になるという。
こういった電子決済を業界で一まとめにするとかいうほうが、よっぽど「利便性」を追求と言えると思うんですけどねー。
目下のところ、関東に住んでる自分は、「Sui○a(Pasm○)でいいじゃん」といったところ。駅構内、駅近辺の多くの店で共通で使えるし。
ただしSui○a(Pasm○)のオートチャージ、あれは落としたときが怖いからやめとく。
購買履歴を取られておススメ表示されると・・・自分のおススメ表示が成人向け雑誌ばかりになりそうで怖いとか・・・ナンテオモッテマセンヨ?
拙速な再開は危険
こういったサービスで事故が起きた場合、しかし企業側は、可能な限り早い再開を望み、目指します。
気持ちは分かるんですが、拙速な再開は危険以外の何者でもありません。
多分、再開には数ヶ月かかるんじゃないでしょうか?
理由として、今回の問題は見た目よりも根深い可能性が高いことが挙げられます。
指摘では二段階認証、二要素認証があれば防げたのではないか、と言われていますが、だからといって今の機能に二段階認証、二要素認証を実装して再開したとしても、それで本当に問題が解決するかは疑問といった点があります。
手続きの流れ、仕組みや、その元になった考え方に瑕疵がある場合、そこまで遡って見直さなければ、同様の問題が別の箇所に残っている、ということになりかねないためです。
例えば、Web画面でパスワードリセットしても、アプリのセッションが切れないなどはいい例です。
つまり、今回のケースではまだ顕在化していない不具合が、まだ残っている可能性は十分考えられます。
まず、元々の思想になかった機能を後付で付けた場合、整合性などの問題が生じます。
そのため、その設計変更から行い、レビューしての修正になります。
実装、テスト、検証の工数を考えると、結構な時間がかかると思います。
また、今回の被害の原因となった攻撃の分析も十分行う必要があります。
攻撃の手口がわからないまま、二段階認証、二要素認証を実装しても、もし原因が全然別だった場合は、その修正は攻撃の防御に何の意味も成しません。
最低限、攻撃の分析、評価と、その対策が判明するまでは、そもそも改修自体に手を付けられないでしょう。
被害にあった会社などにありがちなのは、被害にあった箇所に集中しがちなことです。
もちろん、被害にあった箇所を直さなければならず、集中する必要があるのは分かりますが、それゆえに他の問題を見過ごす危険性があります。
例えば、脆弱性があってSQLインジェクションでデータを盗まれた場合、開発会社はSQLインジェクションを行われたページやそれに関わる関数を集中的に修正します。当然、水平展開は行い、直したと開発会社は言います。
しかし、念のためプロに脆弱性診断を行ったところ、別のページの検索窓にまだSQLインジェクションの穴が残っていた、というケースも耳にします。
こういったケースでは、全体を俯瞰して見直し、それぞれに丁寧にチェックを入れることに尽きます。
それには、相当の時間とコストがかかります。これが、拙速な再開は危険という理由です。
「全体を俯瞰して見直し、それぞれに丁寧にチェックを入れる」というのは、再発防止の最低限必要な事項だと思っています。
これには、「じゃあ、ビジネスの判断で、この程度でいい、というところで、経営者の判断で再開してください。」と答えることにしています。
ただし、その上で再度同じ被害にあった場合、顧客に本当に見放されるんじゃないかと思います。この影響、リスクを経営者として理解した上で臨んでください、というのが答えになります(普通の経営者は、ここで「無理」と思うはずです)。
とりあえず、認証に関して(やや飛躍した部分も含めた)の考察は終わります。
・・・認証以外の点で続くの?マジで・・・?
(自分でも「何をうだうだ考えているんだろう?」と思う今日この頃)