今回の件まさにコレ。なお大屋先生は法学者なので、法制度上防衛省と自治体のシステム接続が現行法そのままではできないことを知っていてのツイート。
この件は程度問題で、本当に個人情報と合致しているかをチェックするためには自治体データと付き合わせる必要があり設計的にも法制度上も難しくなるのは事実である一方、市区町村番号や生年月日の形式的チェックもしていなかったというのはそれとは別問題でありバカなんじゃという感想しかない。 https://t.co/5ZjeX0PkKS
— Takehiro OHYA (@takehiroohya) 2021年5月18日
批判対象と批判対象にしてはいけない部分は分けて考える必要がある。
自分では触ってみなかったのでどんな不具合があるのかを調べてみた。
2chにコロナワクチン大規模接種予約システムの凄さがシンプルにまとめられていた。 pic.twitter.com/5nNllppm6y
— シン・深海魚クンさん@T.N.G (@53Channel) 2021年5月17日
文字起こししておく。文字を書き写すのが面倒なのでGoogle Driveに入れてGoogle Docsで開いた。
- 番号&生年月日全部デタラメでも入力できる
- 65歳未満の生年月日でも予約できる
- それどころか未来の生年月日でも予約できる
- なんなら2月31日生まれでも予約できる。
- 選択肢のラジオボタンは選択できないダミー
- メールなどで予約日時を確認できるわけではなくマイページで見るしかないが、クッキーを消すとマイページには入れなくなる
- 同じ番号を入れて予約すると、先に予約していた人のは勝手にキャンセルにな
- マイページで架空番号の予約合戦の様子が見られる
この予約システム、システムだけで完結するわけではなく接種会場における本人確認、接種券確認が行われることを前提に考えると、非難する奴のほうが分かってないという点もある。チェックしてみよう。
- 番号&生年月日全部デタラメでも入力できる
→この時点では非難に値しない、突合先が無い。 - 65歳未満の生年月日でも予約できる
→これはチェックアウトしたほうがいいけど、このあとワクチン接種の対象年齢が若年層に広がっていくことを前提とすれば非難するほどの事でもない。どうせ接種会場でハネられるし。 - それどころか未来の生年月日でも予約できる
→どの程度の乳幼児までを接種対象とするかはわからないけど、当日日付よりも先の生年月日は受け付けるべきではない。これは批判されるべきだが小さい問題。 - なんなら2月31日生まれでも予約できる。
→存在しない日付を受け付けるのはバカである。date関数使え。これは批判されるべき。 - 選択肢のラジオボタンは選択できないダミー
→現物見てないからわかんないけど、文字通りに受け取ればダメな作り。これは批判されるべき。 - メールなどで予約日時を確認できるわけではなくマイページで見るしかないが、クッキーを消すとマイページには入れなくなる
→まずメールやSMSに送る方が(照会を受け付ける頻度が下がるので)トラフィックを抑制できるわけだが、メールアドレスや携帯電話番号を保持したくなかったのかもしれない。とすると、必ずマイページには入れる必要がある。Cookieを消すとマイページに入れないというのがどのような条件で発生するのかによるが、マイページに入る手段を必ず確保する必要がある。これはモノによっては批判されるべき。 - 同じ番号を入れて予約すると、先に予約していた人のは勝手にキャンセルになる
→後勝ちの仕組みはよくある作り。間違ったり予約を変更したい人が入力した場合はこれで問題ない。問題はただキャンセルになるだけの場合(新規予約を入れられない)と、生年月日や他の特定情報とセットで管理されていない場合。 - マイページで架空番号の予約合戦の様子が見られる
→この表現ではちょっと意味が分からない。他者のものが見えるならNGで批判されるべき。
接種券番号については現状これ以上やりようがない。
そもそも接種券番号の仕様は…と思ったらどうやら「市町村ごとに任意のルールで10桁の整数をつける」だけしか決まってなかったみたい。やべぇ!これ市町村ごとに仕様請求とルール実装が必要になるわ。そりゃ汎用システムなら桁数しかチェックできないよ。PM悪くないなコレ。 https://t.co/5j3P2CBddR
— ひろじ (@kondohi) 2021年5月17日
date型については使われているのがLaravelだCakePHPだという話が出てきたので、ふつーあるよねと思ったら当然あった。
とまあこんな感じ。そもそもシステム以前の問題がある。接種券番号の発番方法である。
券番号の突合が難しいのはわかるが、それなら最初からチェックデジット入れとくだけで誤入力防げるのだけど、厚労省の自治体向け手引き書では番号が一意であることしか求めてない模様。バーコードもオプションだし… / “【独自】「誰でも何度でも予約可能」ワクチン大規模…” https://t.co/3CZ4I2s080
— 上原 哲太郎/Tetsu. Uehara (@tetsutalow) 2021年5月17日
まぁ突貫工事だったので仕方ないかも知れないけど、そういうロジ設計の勘所で微妙に外してるのが積もり積もって効いちゃってる気がして残念。まぁITから医療から事務から物理的ロジから全部見通して全体最適設計できる人なんてなかなか居ないんだろうけど…
— 上原 哲太郎/Tetsu. Uehara (@tetsutalow) 2021年5月17日
いい加減な番号でも通るってTVで見た時に真っ先にこれは思った。オレならもうちょっと細工して接種券番号が市区町村別になるようにすると思うけど。この手の細工ってチェックデジットもそうだけど、単純に連番じゃなくするとか、市区町村を示すコードを埋め込んでもその部分は一般人が見ても、家族などと突合せをしても分からないようにするとかである。時間が無くてできないかもしれないけど。
事後諸葛亮という表現を発明した中国人は偉いw
タイムラインで賑わっている事後諸葛亮各位、今回のワクチン予約システムの欠陥の件について偉そうに文句つけている暇あったら、どうやったら彼らを救ってあげられたかを考えてあげて欲しい。たぶん技術的な問題だけでは収まらないと思うけど。
— 伊藤 祐策(パソコンの大先生) (@ito_yusaku) 2021年5月18日
そう。上に書いたように全体の業務と法制度を俯瞰する必要がある。 単に今の出来栄えだけで批判している奴は、やらせてみれば別のミスをするレベルの人間。
結局SQLインジェクションは5chで書かれただけで確認はされていない。
SQLインジェクションできるとか本当ですかね。外部者が合法的に確かめるのは難しいと思いますが…
— 徳丸 浩 (@ockeghem) 2021年5月18日
付け加えると、更新系処理のSQLインジェクションを「安全に」確認することも難しいです。試している人は「正義のため」という意識でやっているかもしれませんが、本番データ壊したら「正義」どころではないですからね https://t.co/gctWHPz0i8
— 徳丸 浩 (@ockeghem) 2021年5月18日
防衛省ワクチン予約の件、SQLインジェクション等を一般人がイタズラ半分にやると、普通に犯罪です。防衛省相手にサイバー攻撃とか冗談にもならないので気をつけましょう。 pic.twitter.com/qSdnjkrpmB
— 麹@今だけ勉強垢 (@oryzae1824) 2021年5月17日
そもそもこの手不具合の話は日本だけではない。
ちなみにカリフォルニアの予約サイトも当初はひどかったんだよ。 https://t.co/JqR3DPKpG4
— Masayoshi Nakamura (@masayang) 2021年5月18日
まあマスコミには期待してませんが。
「ワクチン予約が難しくては」
— 弓路 (@yumiji3156) 2021年5月18日
「老人には無理だと思います」
「もう諦めました」
こんな報道垂れ流してるなら、その時間使って「たれぱんだでもわかる、ワクチン予約マニュアル完全版」でも放送したら良いと思うんだ。
現場の意見はコレだろうな。
だいたいワクチン業務やってる公務員の考えることは全国みんなただ1つで「とにかく早く無事に終わらせたい」だけですよ。政府を擁護なんかしてないし、言いたいことは山ほどある。だいたい、記者を名乗る人が、擁護してる奴は危険みたいに断じてくるのも相当怖い国ですよね。
— コロナワクチン担当課長 (@wakwaktintin) 2021年5月18日
批判側、野党がこんなんだから政権取ってもまともに運営できないんだよ。 3~4年我慢すれば元通りって公務員に思われる。
なお、自衛隊東京大規模摂取センター(東京センターの予約・受付案内には大きくこのように書かれている。
足りないとすればこれだな。
大規模接種の予約システムについて
— ひもたろう (@himotarou) 2021年5月18日
強いて言うなら、偽予約しても接種出来ないし、業務妨害罪になるだけって、申し込み画面にデカく書いとけよ。って不具合はあると思うよ(´・ω・`)
この件でAERAと毎日新聞擁護している奴らって、留守宅の玄関に鍵がかかってなければ大声で言いふらしてもいい、盗みに入っていいって考えなんだろうな。
自衛隊大規模接種センター予約の報道について。
— 岸信夫 (@KishiNobuo) 2021年5月17日
今回、朝日新聞出版AERAドット及び毎日新聞の記者が不正な手段により予約を実施した行為は、本来のワクチン接種を希望する65歳以上の方の接種機会を奪い、貴重なワクチンそのものが無駄になりかねない極めて悪質な行為です。
先に書いたように不備は不備で対応してもらえるように通告、その上で詳細な手口は伏せての報道だったら問題にはならないけど。
サーバー管理者側の了解を得て行っているのであればいいのですが、そうでない場合電子計算機損壊等業務妨害罪にあたる可能性が生じます。
— 株式会社ゼクト【公式】 (@ZECT_1972) 2021年5月17日
真似しないでください。 https://t.co/aJs3iVL2kp
「システムがぼろっちいからといって、それに対して悪事を働いてはいけません。まともじゃないものを突っついて壊したら、壊した人に責任が発生します」
— KGN (@KGN_works) 2021年5月18日
このレベルの話に落として説明してわからないようなら、そもそも世間知が足りなさすぎて、この問題を理解するのは無理だと判断したほうが良いです https://t.co/EZJ4lOa8yI
「それがなんであれ、今は使わなきゃいかん。
— KGN (@KGN_works) 2021年5月18日
ヤバそうだと思うんならなおさら、下手に手出しすんな。
判っててやっただと?それさらに悪いぞ。
ぶっこわれかけてたから俺は悪くない?つついたおまえが悪いに決まっておろうが、反省しろや」
まで落とした方が良いかな。
まあ簡単に言うと「セキュリティに関わるバグを発見した時の手順に従ってない」「勝手にやるのがまずい」ので、あれシステム側にいかなる問題があろうが関係なしに『やらかしたマスコミは非常にまずい』んですよね。
— KGN (@KGN_works) 2021年5月18日
まあ持続化給付金のように、今回色々予約システムにニセ予約を入れたヤツは後から追跡して検挙すればいいでしょ。