五郎丸さんのツイートの画像がアレだったのはTwitterのバグ?
もうブログさ、文章まとまらないしどう書いていいのかほんとうにわからない。まあいいか。
もう削除されちゃったみたいだけど、五郎丸さんの古い「北見のバーのオーナーからかなり遅めの誕生日プレゼント」というTweetの写真に、女性器の写真が添付されてたのでなんだかRetweetされまくってた。
北見のバーのオーナーからかなり遅めの誕生日プレゼント https://t.co/Le5R3ZPXaT
— 猫ちゃん (@gnufrfr) 2016, 1月 24
これは、そのツイートに書いてあった文字を検索できるようにしておいた自分のメモ用ツイート。この文と一緒に、おmんkが並んでて五郎丸さんの公式のアカウントだったから、まじかよ何このギャグwww公式アカでこんなことするはず無いよね?wwってわらってたら、ヒントが飛んできた。笑
@werewolf74 @TA_K_ 該当ツイートの前後の投稿を確認すると、本文と関連性のない画像が表示されているものがいくつか… アレはおそらくご本人が保存していた画像ではないだろうなと(ってマジレスは必要無いですかね…? pic.twitter.com/RMC1jYlTK0
— ナヲト (@nwt_g) 2016, 1月 24
素晴らしく有用なマジレスが流れてきたので、これはバグだろうなって直感で思った。
ご本人の投稿写真とは違うものが表示されていることは確実として、原因はアカウントのハッキングかという話も出ていたけど、そもそもツイートの編集機能が公開されていないので、Twitter社の外部の人が意図的に操作することはできませんね。システムってものは悪意があって操作されても悪意が操作する機能が実装されていなければ全くもって無害だ。
過去、Twitterに写真添付ができなかった頃にあった、今や屍、yfrogやtwitpicなどが乗っ取られて変な画像出してる可能性もあると思ったので、Twitter Clientを見てみるたらAndroid公式のアプリからの投稿だった。そして、画像のURLはpic.twitter.comになってた。だから外部の写真サービスが乗っ取られたっていうのは無い。
ということは、結局Twitter本体のバグ確定でしょうね。ちょうどTwitter本体で画像投稿機能をリリースしたタイミングでの投稿だったようです。その頃の画像ファイル名の生成ロジックと、今の生成ロジックが競合して上書かれたんだろうなって思います。どこの時点でこうなったのかは謎だけど。
Twitterの公式写真投稿機能がスタート - ITmedia ニュース https://t.co/1Og0kbHS16 pictwitterを始めたのが201108か。ふむ
— ころふわ (@corofuwa) 2016, 1月 24
こんなので恥かくの嫌だろうから、よかったよかった。さわやかな髪の毛渋谷で切ったったわーっていうTweetとともに女性器の画像がRTされてきたのは、笑った。
久々に渋谷にカット行ってきた。 渋谷は人が多かね〜 明日は早いので、おやすみzzz #Team salon de milk pic.twitter.com/G7a9tZXCdX
— 五郎丸歩 (@Goro_15) 2016, 1月 23
画像の保存ってシステムの作り方にもよるんだけど、よくあるのは裏で1,2,3....って順番が振られていて数字で保存されてて、数字をそのまま表示するのは危ないから、数字を暗号化したものをファイルの名前にしてたりする。
なんで数字でURLにするとだめかって言うと、image/1 image/2…image/23985、とかすると、この数字を100万まで順番にいっきにアタックできちゃったり、image/2の非公開設定を破るってのを試しやすくなってしまうからだ。
なんでこんなファイル名がバレているだけでハッキングしやすくなるかというと、有るか無いかわからないところにアクセスしても答えはアクセスしてみないとわからないのだが、番号順に有るはずってなると、もうすでにひとつ答え探しのステップが進んでいることになるからだ。
だからこんな風「AzuuY9GCYAEEwWm」にランダム文字っぽく、変換ロジックを1方向で変換して元の順番がバレにくくするの。でも暗号化のロジックを知っている人は辿れるようにしてある。
インターネット上のサービスで変換した結果。
文字列 :
1のmd5ハッシュ値: c4ca4238a0b923820dcc509a6f75849b
私のパソコンで1を変換した結果。
MD5 ("1") = c4ca4238a0b923820dcc509a6f75849b
同じ。すごい。
サービス始めたばかりのロジックだったから、障害とかで順番が狂ったりした時に上書きされたりしたんだろうな。(これも適当書いてるけど)それか、大量に画像作ってるから、「AzuuY9GCYAEEwWm」の名前が循環で出てきたか。
んじゃそもそも、順番で発行しなきゃいいんじゃんバカかよって話もあるんだけど、まあそこはウェブアプリのお作法で順番にデータを入れるのが楽だしそういう風に作ったほうが複数のデータの種類の連携が楽になるんだよって作り方を習ったからだよね。
最初から発明するのは難しいことですね。
暗号化のロジックが漏れちゃってると、同じ答えが毎回出せるからまたハッキングのステップが進んじゃってることになったりする。(適当に書いてるけど、最近のウェブアプリは全然もっと複雑になってる)
終わり。まとまらない。
最後に自分のツイート貼っとこ。間違ったこと言ってるけど。
ぷいきゅあ〜!がんばえ〜!
— 猫ちゃん (@gnufrfr) 2016, 1月 24
北見のバーのオーナーからかなり遅めの誕生日プレゼント https://t.co/Le5R3ZPXaT
— 猫ちゃん (@gnufrfr) 2016, 1月 24
@gnufrfr もしかしたら別の写真サービスとかなのかな?とか思ったけど、公式のクライアントだなー。
— 猫ちゃん (@gnufrfr) 2016, 1月 24
@gnufrfr https://t.co/gEMgRySaXn
— 猫ちゃん (@gnufrfr) 2016, 1月 24
https://t.co/aXOhmt3Exg が https://t.co/aXOhmt3Exg に展開されるんだけどハッシュが被ったのかしら
— 猫ちゃん (@gnufrfr) 2016, 1月 24
あれ。毎回ハッシュできるんだ…。 でもこの桁数でかぶるのってだいぶすごい投稿数ないといけないはずだけど同じ時期で画像が入れ替わってるの見るとハッシュが循環で使いまわされて違う人のになったって可能性高そう。よくあるバグだし。 pic.twitter.com/dkZwca4KAo
— 猫ちゃん (@gnufrfr) 2016, 1月 24
@gnufrfr よくあるってのは、ダメなシステムあるあるね。1から自動採番してるint 型変数の最大値(2147483647)こえてIDの自動採番を循環にしてたから1番からデータが上書きされちゃう!!!とか二重にデータが入っちゃう!とか昔の初心者がシステム作るときの要注意事項。
— 猫ちゃん (@gnufrfr) 2016, 1月 24
N8SDhSqb 50+10=60 60の8乗だから167,961,600,000,000パターンが尽きたってやつ? 最近Twitter公式がツイートIDの型をでかく変更するリリースもやってたはずだしなんか関係ありそうって想像した。
— 猫ちゃん (@gnufrfr) 2016, 1月 24
なんか想像のつかないことが起こっちゃうとすぐに乗っ取りとか悪い人間が何かしたみたいに思えちゃう世の中はマークパンサーがマルチビジネスを堂々と初めてしった様な信頼する近しい人の意見に頼るという世間様と五人組みたいなアレ感じませんか?感じませんか。申し訳ございません。わたしが悪い。
— 猫ちゃん (@gnufrfr) 2016, 1月 24
Twitte公式クライアントで画像一覧で超速スクロールで最初の画像見たいってファン心理は普通で、粗探しの為の意地悪な探索ではないと思うんだけど、世間様の荒波と五人組がそうさせたんだよね?猫ちゃん性善説で生きてる死にたいニャーン! pic.twitter.com/Zyi3WeSx52
— 猫ちゃん (@gnufrfr) 2016, 1月 24