「display: none;」とは、株式会社セブン・ペイが2019年7月4日に提案した最新の緊急セキュリティ対策である。
概要
セブン&アイ・ホールディングスが既存のスマートフォンアプリ「オムニ7アプリ」に機能を追加する形で2019年7月1日からのスマートフォン決済システム「セブンペイ」のサービスを開始した。
「オムニ7アプリ」には、登録したメールアドレス以外のメールアドレスにパスワードリセットのためのメールを送信できるという仕様上の致命的なセキュリティホールが長らく存在していたが、不正アクセスしたところで盗むことができるのが割引クーポンだけだったため、攻撃の対象とはなっていなかった。
ところが、そのセキュリティホールを放置したままクレジットカードやデビッドカードと連携できるスマートフォン決済システム「セブンペイ」のサービスを開始したため、サービス開始直後から中国を中心とした反社会的勢力の中でお祭り騒ぎとなり、「セブンペイ」の不正利用が頻発した。
株式会社セブン・ペイが不正利用を認識したのが 7/2 の夕方で、海外IPアドレスの遮断等の対策が取られていたが、上記セキュリティホールへの対応がとられたのが、ほぼ丸2日が経過した7/4 の昼頃になってからであった。
が、直後に善意の市井のデバッガーにより、登録したメールアドレス以外のメールアドレス入力欄がCascading Style Sheets(カスケーディングスタイルシート、CSS)で「display: none;」と記載されているだけでサーバサイドの処理は修正されておらず、セキュリティホールは全く改善されていないことが発覚し、twitter で日本のトレンド入りするほどのお祭り騒ぎとなった。
ツイートを読み込み中です
https://twitter.com/8796n/status/1146602173511262208
CSSの「display: none;」の機能
CSSのdisplay要素はhtmlのブロック要素、インライン要素等に記載でき、表示形式を指定できる。「display: none;」を指定した場合、ブラウザのレンダリング(描画)時に画面上に表示しないだけであり、「display: none;」が指定されているhtml要素の機能はそのまま残る。
そのため、ブラウザに付属している開発者ツールを使用して、消えているhtml要素を再表示し値を入力すれば、サーバにデータを送信することができる。
なお、CSSでは次のCSS要素がない場合、末尾の「;(セミコロン)」はなくてもよいため、「display:none」の記載も間違いではない。
本来すべきだったセキュリティ対策
本来行うべきであった上記セキュリティホールへの対策は以下の2点となる。(最悪でも1は対応する必要がある。)
社会科学的意義
本来すべきだったセキュリティ対策の必要性を実際の実装担当者が認識していなかった可能性は考えにくく、その情報を上にあげられない(上が受け付けない)企業としての体質や大手ベンダーの多重下請け構造の闇等がうかがい知れ、大変興味深い事象である。
経済効果
2019年7月4日中に上記事象をパロディにしたTシャツが発売されるなど、日本経済への若干の貢献が見られる。
ツイートを読み込み中です
https://twitter.com/MomozuruZ/status/1146797350171529217
関連項目
- 1
- 0pt