2014年の10月23日、こんな記事を書きました。
記事は「JALさん、お願いですから英数字のパスワードの導入を!!!」という魂の叫びで締められているわけですが、ついに!2015年9月29日より、JALマイレージバンクでもパスワードが導入されることになりました!!!しかも!!!記号も使えます!!!!
で、これは何か書かねばと思いまして。
最初は、昨年調べた航空会社のパスワードの長さや使用可能な文字種について再度調べようかと思い、いくつか見てみたんですが全然変わっていなかったので、全く趣旨を変えて、Twitterでパスワードについてのツイートを集め、頻出単語を探ってみることにしました。もはやJALなんもかんけーねー。
方法
1. ツイートの収集
英語ツイートの収集ルール
- Search APIで「password」「#password」を含むツイートを取得
- langは「en」指定
日本語ツイートの収集ルール
- Search APIで「パスワード」「#パスワード」を含むツイートを取得
- langは「ja」指定
2. 単語の頻度をカウント
日本語
以下の条件でわかち書きにして出現単語をカウント。動詞はMeCabで原形に。
3. ノイズの除去
上記の方法でカウントしてみたところ、あまりにもエロ系スパムやボットのツイートが多く結果が偏ってしまったので、以下の条件に当てはまるものはノイズと判断し除去しました。
- 全期間で26回以上(=1日平均2回以上)つぶやいているアカウント
- アカウント名が「_bot」で終わるアカウント
結果0:ツイートの概要
全期間のツイート数やアカウント数を簡単にまとめました。
英語
総アカウント数 | 85468 |
総ツイート数 | 148093 |
ノイズと判断されたアカウント数 | 133 |
ノイズと判断されたツイート数 | 40227 |
解析対象ツイート数 | 107866 |
日本語
総アカウント数 | 49929 |
総ツイート数 | 83853 |
ノイズと判断されたアカウント数 | 991 |
ノイズと判断されたツイート数 | 17427 |
解析対象ツイート数 | 66426 |
ちなみにファイルサイズは英語が1日2MB前後、日本語が1日1.5MB前後。
結果0についての考察
ノイズについてここで書いておきます。
結果を見るとノイズと判断されたアカウント数が英語133、日本語991とかなり開きがあります。これは以下が原因と思われます。
- ツイート数の多いアカウントをノイズと判断しているだけで、ツイートの内容では判断していない
- 日本語のボットが律儀に「**_bot」ってアカウント名にしてる
- 英語は別個のアカウントがスパムツイートしている(のでスパムのアカウントかの判断が今回の条件ではできない)
スパムの内容は、日本は完全にエロ。エロ画像/動画のパスワード教えます、みたいなのが大量にありました。英語では、Amazonがパスワードのリセットを要求してます、とか、Twitterのフォロワー売ります、みたいな定型句はいくつか見当たりましたが、エロ系は少ない。
で、英語の方は今日時点で11月にスパムツイートしていたアカウントはほぼ生き残ってないですね。こまめにBANされているようです。他方、日本のエロなスパムアカウントは今日も元気にツイートしています。BANされないんだろうか・・w
ノイズの除去については正直かなりの偏りが出てしまっていると思います。1日平均2ツイート以上はノイズ、というのも特に根拠ないし。いっそ全期間で1度だけつぶやいている人のツイートを解析するとかもありかなぁ。いずれにせよ改善の余地がかなりありそうです。
結果1:頻出単語TOP25
1 | change | 13731 | 忘れる | 17670 |
2 | forget | 9343 | 見る | 8049 |
3 | get | 9130 | 変える・変更 | 6886 |
4 | wifi | 7304 | ログイン | 6261 |
5 | account | 6676 | 入力 | 5534 |
6 | can | 6332 | アカウント | 5458 |
7 | 6044 | わかる | 4568 | |
8 | reset | 6040 | 自分 | 4135 |
9 | just | 5956 | もう | 3978 |
10 | remember | 5637 | 思う | 3890 |
11 | know | 5299 | 入れる | 3765 |
12 | new | 5262 | 設定 | 3154 |
13 | 5014 | 秘密 | 3042 | |
14 | phone | 4251 | ヒント | 3005 |
15 | need | 3766 | 開く | 2986 |
16 | give | 3362 | 質問 | 2918 |
17 | now | 3344 | 教える | 2739 |
18 | use | 3316 | 考える | 2686 |
19 | like | 3242 | 書く | 2652 |
20 | try | 3119 | 2563 | |
21 | amazon | 2615 | 登録 | 2555 |
22 | never | 2382 | 使う | 2534 |
23 | make | 2373 | 続ける | 2418 |
24 | still | 2285 | 出来る | 2338 |
25 | log | 2218 | 過去 | 2327 |
結果1についての考察
みんな忘れてる
まず世界規模でみんなパスワード忘れ過ぎ。日本語では「忘れる」がダントツ1位、「わかる」も「わからない」の原形と思われるのでもっと増えそう。「教える」も「誰か私のパスワード教えてくれー」というのが多かった。あとよくあるネタツイートで、「パスワード忘れたので秘密の質問/ヒントを見たら○○だったのでxxと答えたら当たってた」ってやつね。
LINEが上位に来るかと思いましたが45位。まあLINEはスマフォ以外では使わなそうだから必要ないのかな。
英語は「change」の方が上で意外でしたが、おそらく「forget」だけでなく「can’t/cannot remember」とかもあると思うのでやっぱり忘れてるよね。ちなみに英語24位の「still」は「still can't remember」「still can't log in」みたいな叫びが主。
日本語英語共に上位入りしている「Twitter」は「パスワード忘れたからこの端末以外からつぶやけねー」みたいなのが多かったですね。英語のWifiもそう。他の端末繋げねえよって。Amazonに関してはパスワード忘れよりスパムツイートが多かったです。14位の「phone」は携帯のロック解除のためのパスワードがわからないという悲惨な人たちが。
秘密の質問は日本ばかり
日本ではよくある「秘密の質問」も上位にありますね。英語で「秘密の質問」は「secret/security questions」となることが多いようですが、「question(s)」でも100位以下。日本じゃ秘密の質問は前述の通りネタツイートとしてすっかりおなじみですもんねえ。定番のネタツイートは2種類あるようです。
パスワード忘れたからヒント見たんだけど「忘れるほうが悪いでーすwwwwwwwwピッピロピーwwwwwwwwwブフォwwwwwwwwwww」て書いてて過去の自分にこの上ない怒りを込めながら「ころすぞ」て入力したら、合ってた。
パスワード忘れたからヒントを見たら『今のお前のことだ』と表示されてしばらく迷った末に「バカ」と入力してみたら無事通ったけど過去の自分への殺意が止まらない
これもノイズ候補だな。
結果2:時系列ツイート数
英語
誤差の範囲な気がしなくもないですが、11月18日、24日〜26日が9,000越えで多くなっています。
日本語
平均5,000件前後ですが、11月23日は6,142件と突出して多いです。
考察2
英語圏のツイート数のばらつき
データの収集期間が短いため、誤差なのか判断しかねるところではありますが一応ツイート数が多かった日(11月18日、24日〜26日)を調査してみました。
ツイートが多い日に大量のつぶやきをしているアカウントを抽出し、それらのアカウントのツイートから頻出単語を割り出し、ツイートの生データを見て・・という原始的なやり方で原因を探ってみました。26日は特徴的なものは判別できなかったのですが、他の3日に関しては原因らしきものが判明しました。
11月18日
えー、なんか「Password」としておなじみ(popularly known as Password)のナイジェリア人プロデューサーが手がけたアルバムが出たようです。431ツイートありました。
Patrick Mathias, popular known as Password is a Nigerian producer, song writer and sing... https://****
アカウント名はバラバラ。純粋な宣伝かなぁ。それにしちゃ規模がでかい・・。
11月24日
なぜこの日なのかは不明ですが、以下のようなツイートをするスパムアカウントが大量に発生したようです。421ツイートありました。
NEW CUSTOMER OFFER! Buy 5000 Twitter Followers Without password needed only $29, See here https:/****
同じくアカウント名はバラバラ。現在はこのツイートをしたアカウントはほとんどがBANされています。
11月25日
一番分かりやすかったのが11月25日。といってもこれもなぜこの日なのかは不明ですが、Amazonのパスワードが漏れた、パスワードがリセットされた、という旨のツイートが1,724もありました。アカウント名はこれもバラバラ。
Amazon suffers potential password leak, unknown number of accounts affected https://***
Amazon force-resets some account passwords, citing password leak https://***
11月23日に日本で何があったのか
この日はツイート数が明らかに多いです。まずはこの日急に出てきた単語を以下の条件で抽出。
- 11月22日にはツイートに出現しておらず、11月23日に出現した単語
- 1. のうち、ツイート数が30以上
結果は以下の通り。
進研模試 | 74 |
安藤 | 83 |
ひびき | 35 |
11月23日の日本語のツイートを上記の単語で検索してみたところ、どうやら以下のようなことらしい。
- ベネッセが実施している「進研模試」という高校生向けの全国規模の模試の結果が公開され、進研模試デジタルサービスにログインすることで見られるようになったが、パスワードを忘れている人が続出
- アニメ「プリパラ」で、紫京院ひびきさんが執事の安藤玲さんの名前をパスワードにしている、という話が放送された
不正アクセスによるパスワード漏えいとかそういう話かと思ったら全然違った・・。
11月24日にはセキュリティらしい頻出単語が
ツイート数は平均的ですが、24日についても上の方法で急に出てきた単語を調べてみたところ、以下のようになりました。
ホリデー | 44 |
高める | 44 |
マカフィー | 43 |
呼びかける | 42 |
標準化団体 | 31 |
2.0 | 31 |
これは、以下の記事を紹介するツイートが増えたため。
こういうセキュリティ関連の記事でBUZZってるものを拾ってきて、今運用している政府機関等のセキュリティ関連の新着情報をつぶやくTwitterボットにつぶやかせられると楽なんだけどなー。
やってみた感想、今後の予定など
パスワードは全世界で忘れられまくってるんだろうなあという予想を見事に裏付けてくれただけで満足ですが、ツイート数急増の原因を探るというのもとても興味深かった。特に日本、まさかアニメと模試が原因なんて思わなかったですからね。結果1が主役のはずだったんですが、それほどこうだと言えることがなく、結果2の方が面白かった。
英語に関してはスパムツイートの除去がうまくいかなかったため、結果スパムの傾向しか見られない感じになっちゃいましたね。いま別件で文書の類似度を測る、というようなことをやっているので、同じ方法で英語のツイートを丸ごとぶっこんでクラスタリングするというのもやってみたい。スパムツイートがうまいことクラスタリングされたら、それでフィルタを作ってスパムツイートを除去できたりするとかなり精度が上がりそう。逆にスパムツイートだけ集めれば、スパムの進化とかも見られるかもしれない。
スパムの傾向といっても突発的に同じスパムがバッと出るというのが分かっただけで、なぜその日なのかなど理由はよくわかりませんでした。まあスパムは定期的に出てくるんでしょうけども、曜日や感謝祭なんかのイベントで偏るのではないかと思ってましたがそうでもないし。でも考えてみるとスパムに限らず、日本語は公用語にしている国が日本(とパラオの一部)のみなのに対し、英語だとたとえばアメリカ、イギリス、オーストラリアというように多数の国で使われているため、傾向が顕著には出にくいのかもしれません。ということは、ベトナム語とかノルウェー語とか、1言語1公用語国な言語を選んでこの手の解析をすると、今回の日本がそうだったように、その国で何が起こっているかがはっきり分かりそう。
一応今も同じ条件でツイートは集めているので、もう少し長い期間で同じ解析をしてみるつもりです。同じスパムツイートが定期的に発生するのか確認したいし、クリスマスやお正月特有のツイートもありそうだから見てみたい。クリスマスと正月って日本と英語圏でだいぶ違いが出そうだし。
あとは、パスワード以外にもなんか面白そうなキーワードがないかと模索中。ファイルサイズが意外と小さかったので同時進行でいろいろ収集できそうです。
というように、今後もいろんな切り口でこの手の解析をやってみたいと思ってます。
きっかけを与えてくれた論文
JALのパスワード導入記念、というのはあるんですが、これ自体のアイディアは別のところから来ていて、最後にそちらもぜひ紹介したく。
プライバシー関連の国際学会「SOUPS(Symposium On Usable Privacy and Security)」というのがありまして、先日その論文を読破するという「SOUPS2015論文読破会」というのに参加しました。
そこで紹介されていたこの論文。
Twitterでパスワードについてのツイートを集め(”password”と#passwordで検索)、内容からなんらかのクラスタリングができないかというものでした。クラスタリングとなるとなかなか大変そうですが、「ツイートをある単語をキーワードにして収集し解析する」というアイディアはいいなと。ある程度の量のデータを簡単に集められるというのは魅力的です。
論文の読破会というものには初めて参加したのですが、これ以外にもいろいろなインスピレーションをいただけたとてもよい場でした。
参考
- Documentation | Twitter Developers
- Twitter APIの使い方まとめ
- Twitter Ruby Gemを使って、RubyでTwitterキーワード検索を試す - Qiita
- Twitter gemの検索結果インスタンスとその内部を解説(ついでに since_id モンキーパッチも) - 別館 子子子子子子(ねこのここねこ)
- 統計的テキスト解析(3)〜形態素と構文解析〜
- Python形態素解析ライブラリ3つを徹底比較 - Qiita
- Ruby - Macにmecabインストール - Qiita
- rubyのmecabバインディングnattoを使う - Qiita
- [O] MeCab 用の新語辞書 mecab-ipadic-neologd を公開しました
- rubyのmecabバインディングnattoを使う - Qiita
- 【natto・mecabで】5分で形態素分析に入門して、修造の「人生を強く生きる83の言葉」の頻出語を調べてみる。【形態素解析】 | Project name
- バイト先のツイッターアカウントを形態素解析して最もリツイートされやすいつぶやきを考えた - razokulover publog
- 逆引きRuby - 逆引きRuby
- 作者: 高橋征義,後藤裕蔵,まつもとゆきひろ
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2013/06/04
- メディア: 単行本
- この商品を含むブログ (33件) を見る
- 作者: Peter J. Jones,arton,長尾高弘
- 出版社/メーカー: 翔泳社
- 発売日: 2015/01/09
- メディア: 大型本
- この商品を含むブログ (13件) を見る