PyCon JP 2023年のやらかしを記録に残しておく
(他のコミュニティやカンファレンスでの再発防止を願って、去年(2023年)のPyCon JPのやらかしを記録に残しておきます。) (なお長い文章が読める人が対象です。長い文章が読めない人は対象読者ではありません。)
2024年9月現在、PyCon JPが不正な審査プロセスをしていたという内部告発がありました。
『PyCon JPの技術に対する不正の告発、並びに技術者と大衆に対しての警鐘』
概要本文章は、一般社団法人PyCon JP Associationが主催したPyCon APAC 2023の開催に際し、そのプロポーザル選考過程において行われていた不正行為の告発を目的とするもので…
たいへん話題になったので、この件を知っている方も多いと思います。 PyCon JP、やらかしましたね。
■やらかしは去年もあった
しかしPyCon JPのやらかしは、去年(2023年)もありました。 「PyCon APAC 2023」というイベントで、一般ユーザによるDNSクエリの内容(名前解決したドメイン名)がリアルタイムで公開(可視化)されていたというのです。 もっとわかりやすくいうと、どのWebサイトにアクセスしたかがみんなに見えるようになっていたというのです。 (ただし、「どこに」アクセスしたかは分かっても「誰が」アクセスしたかは分からない。また正確なことをいうと、DNSクエリだけではそこにアクセスしたかどうかまでは断定できないけど、アクセスした可能性はとても高い。)
この件はスラドで記事になってました。概要がわかるので、知らない人は読むといいでしょう。
あるAnonymous Coward 曰く、10月26日から29日かけて開催されたプログラミング言語「Python」の年次カンファレンス「PyCon APAC 2023」において、運営から会場にFree Wi-Fiが提供されたが、そのFree Wi-FiでDNSに名前解決された結
では、どんな形で公開されていたのでしょうか。 当日ネットワーク作業をした人が書いた記事(の魚拓)があり、そこにスクショが載ってありました。 https://megalodon.jp/2023-1102-1237-05/https://qiita.com:443/engishoma/items/ef8eb2bd52e7910381cc
分かりにくいかもしれませんが、イベント会場に大きなモニターがあり、そこにこんなふうに表示されていたようです。 クエリされたドメイン名が日付や時刻とともに表示されていますね。
(注:この画像自体はイベント当日のものではなく準備中でのスクショだと思われる。一般ユーザのDNSクエリ結果は載ってないはず。雰囲気だけ味わってください。)
なぜ、わざわざこんなことをしたのでしょうか。 先ほどの、当日ネットワーク作業をした人が書いた記事によると、運用上の必要性があってやったわけではなく、「魅せ」や「すげえ感」のためにやったそうです。 記事から引用します。
・DNSのクエリログの可視化 運用の為に用いる監視ではなく、魅せの為の可視化システム。なんかすげえ感を出す。
いわゆる「映え」というやつですね。 インスタ映えを狙ってデザートやドリンクの写真をアップする人たちと同じ思考です。
さて、この件の問題点は5つあります。
通信の秘密を侵している
目的が「魅せ」や「すげえ感」のため
事前にあった外部からの忠告を無視
事務局からの声明文に重要な点が抜けている
問題点を指摘した人をPython関係者が執拗に攻撃
順番に見ていきますが、その前に用語を整理しておきましょう。
PyCon ・・・ Python Conferenceの略称。Python開発本家(Python Software Foundation)が関わっている正式なイベント。毎年アメリカで開催。またEuroPyConやPyCon APACのような地域ごとのイベントもある(主催は別)。
PyCon APAC ・・・ 本家PyConとは別に開催される、アジアパシフィック版のPyCon。アジア各国で持ち回りで開催されており、去年(2023年)は日本で開催された。なお本家からの許可がないと「PyCon」の名を冠したイベントは行えないはず。なので「PyConはPython好きが集まっただけのイベントだし騒ぐようなことではない」といって矛先をずらそうとする意見は無視しよう。
PyCon JP ・・・ 本家PyConともPyCon APACとも別に開催される、日本版PyCon。去年はPyCon APACが日本開催だったのでPyCon JPは開催されず。今年(2024年)はPyCon APACが日本開催ではないので、PyCon JPが開催される。本来はイベント名だけど、PyCon JP関係者のことも含めて「PyCon JP」と呼ぶことがある。
一般社団法人PyCon JP Association ・・・ PyCon JPの主催者(法人)。日本におけるPython界の重鎮が中心メンバー。勘違いしないでほしいが、決して悪徳団体ではない。問題への対応能力が低く悪手ばかり打っているだけ。
それでは用語を整理したところで、問題点を順番に見ていきましょう。
■問題点その1。通信の秘密を侵している
問題点の1つ目は、通信の秘密を侵していることです。 具体的には、「有線電気通信法」という法律(の第9条)の違反だそうです。
法律って言われても、よく分からないですよね。 このへんが参考になりそうです。 https://x.com/ymotongpoo/status/1718813714881925299
このポストのリプライに、説明があります。
法律の条文についてはこちら。 https://x.com/osabori_jp/status/1720392392686416255
また、電気通信事業者以外の者が提供する公衆無線LANサービスについては、有線電気通信部分における通信の秘密は、有線電気通信法(昭和 28 年法律第 96 号)第 9 条及び第 14 条により、無線通信部分における通信の秘密は、電波法(昭和 25 年法律第 131 号)第 59 条、第 109 条及び第 109 条の 2 により保護される。
「無線」LANサービスなのに、「有線電気通信部分における通信の秘密は、有線電気通信法」により保護される、というのが面白いところ(そして分かりにくいところ)です。
(高木浩光先生が解説してるかなと期待したけど、見つかりませんでした。誰か教えて。)
そもそも「通信の秘密を侵す」というのはどういうことでしょうか。 https://x.com/shinyaohnishi/status/1719128837953671606 画像の文字部分。
「秘密を侵す」とは? ・一般に、秘密の「知得」「漏えい」「窃用」のそれぞれが該当。 ・なお、「人手」であろうが、「機械の自動処理」だろうが、「知得」に相当。 ・極論すると、「ルーティングのためにdst IPをルーターがチェックする」ことも通信の秘密の侵害に相当。
DNSクエリを「誰が」行ったかは分からないから個人情報の漏えいではないけど、DNSクエリ結果の内容(と日付と時刻)を公開するのは通信の秘密を侵していることになります。
PyCon JPのネットワーク担当チームはボランティアですが、素人の集団ではありません。 本職がネットワークエンジニアやインフラエンジニアである人たちが何人も参加してますからね。 それでもこのような公開が「通信の秘密を侵すことになるぞ」と事前に気付いた人がいなさそうなんですよ。 ネットワークエンジニアこそ「通信の秘密」に敏感なのかなと思ってましたが、全然違うようです。
参考。
IIJ、言われてるぞ。
■問題点その2。目的が「魅せ」や「すげえ感」のため
問題点の2つ目は、運用上の必要性があって行ったわけではなく、「魅せ」や「すげえ感」のためにやっていたことです。 先ほどの、当日のネットワーク作業を行った人が書いた記事から、再度引用します。
・DNSのクエリログの可視化 運用の為に用いる監視ではなく、魅せの為の可視化システム。なんかすげえ感を出す。
きっと、みんなから「すげえ!」と言われたかったのでしょう。 通信の秘密よりも承認欲求のほうが勝ってしまった感じでしょうか。 ネットワークエンジニアやインフラエンジニアは、普段は表に出ることが少ないため、派手なことをして目立ちたい人には向かない、という重要な教訓が得られます。
(ITエンジニア以外の人向けに説明すると、通信販売やECサイトのカスタマーサポート担当者が、芸能人や有名人のショッピング内容や住所をたまたま知ることができたとして、それを他人にべらべらと得意げに話している様子を想像してみてください。やばさが伝わるといいのですが、業務上知り得た秘密を自らの虚栄心のためにべらべら喋る人をカスタマーサポートにいれるべきではないと思いませんか?)
SNSでは「ネットワーク担当者たちはボランティアでやってるんだから批判するな!」と擁護する人が何人もいます。 しかし、運用上必要なことをしてやらかしたならともかく、「魅せ」や「すげえ感」のために、あるいは承認欲求のためにやらかしたなら、たとえボランティアといえど批判されて当然でしょう。
■問題点その3。事前にあった外部からの忠告を無視
問題点の3つ目は、イベント開催よりも前に「こんなことは止めたほうがよい」という外部からの忠告があったにも関わらず、忠告を無視してDNSクエリ内容が公開(可視化)されたことです。 詳しい経緯はこちら。 https://x.com/mipsparc/status/1763467254925328574
該当箇所を引用します。
改めて経緯を説明させていただきます。最初に情報があったのが、ネットワークチーム(NOC)ボランティアの元友人でした。ダッシュボードで通信を可視化するという話を聞いたので、通信の秘密を犯すから、やめたほうがよいとアドバイスし、元友人もNOC MTGに持ち帰って議題にすると確約してくれました。(ですから、「初手でSNSに晒し上げた」といった批判は的外れです) そして開催日当日にWebで見たのは、現地参加者が繋いでいるフリーWiFiのサブドメイン含むDNSクエリがそのままリアルタイムで表示されている様子でした。そのため、事前指摘が反映されなかったことを残念に思うと同時に、注意喚起を行いました(添付1)PFNのプライベートなSlackのアドレスなど、多数の機微情報が表示されている状態にありました。サンプルとして出したPFNの方からは、それは本物で秘密なので消してほしいと連絡を受け削除しました。
つまり、こういうことのようです。
【イベント前】
イベントのネットワーク担当の一人が、「ダッシュボードで通信を可視化する」ことを外部の人に話す。
→ その外部の人が、「通信の秘密を犯すからやめたほうがよい」とネットワーク担当者にアドバイス。
→→ そのネットワーク担当者が、イベント関係者のミーティングに持ち帰って議題にすると確約。
【イベント当日】
DNSクエリ内容が堂々と公開(可視化)される。
→ アドバイスをした外部の人が、注意喚起目的で晒す。
もしかしたら、ネットワーク担当者がミーティングで議題にしなかった可能性がなくはないです。 しかしイベント初日に指摘を受けたにも関わらず、公開が停止されたのはイベント2日目の午後だったので、結局は同じことなのだろうと思います(つまりDNSクエリ結果の公開が問題だとは思ってなかった)。
なお公開が停止されたときは「機材の故障により」という説明がされていました。 しかしこれは虚偽の説明だったことが分かっています。 https://x.com/miyahancom/status/1718178001207382339
■問題点その4。事務局からの声明文に重要な点が抜けている
この件がSNSで騒ぎになった後、一般社団法人PyCon JP Association(長いので以下「PyCon JP事務局」)が声明文を出しています。
PyCon JP, PyCon JP や海外の PyCon 情報、Python イベントに関するブログです。
一見するとよくできた声明文のように見えますが、実は大事な点が抜けています。 それは「通信の秘密を犯すからやめたほうがよいと、事前にアドバイスを受けていた」ことと、公開停止を「機材の故障である」と虚偽の説明をしていた点です。 先ほどの声明文には、そのことに一切触れていません。
特に最初の点は、「そのネットワーク担当者がイベント関係者のミーティングに持ち帰って議題にすると確約」したのですから、ミーティングの議題になってる可能性が高い。 ミーティングの議事録を見れば、誰がどんな意見を出して、結果としてどんな扱いを受けたのか、分かるはずです。 もし議事録がなくても、担当者にヒアリングすれば分かることです。 でも、声明文には記載がないし、触れられていません。
声明文にはこうあります。
当法人は本件を厳粛かつ真摯に受け止めるとともに、本件の発生事実・問題点を公表し、再発防止に努めてまいります。
本当に「厳粛かつ真摯に受け止める」つもりがあるなら、「発生事実」を記録しているはずの議事録とヒアリング結果を「公表」すべきでしょう。
実はこの声明文には、この点を指摘するコメントがついています。
問題提起者によれば、イベント開催前にNOCミーティングに話を持ち込んだが問題ないとされたためSNSに投稿したとのことですが、今回の経緯説明に含まれていないことが気になりました。 PyCon側の視点では、実際にそのような出来事はあったのでしょうか?
しかしPyCon JP事務局は、この質問コメントに返信をしていません。 おそらく、事前に指摘があったかどうかについて、事務局は回答したくないのでしょう。 事実はきっと事務局にとって都合の悪い事実・・・
また声明文では、問題をなるべく軽く見せようとしている姿勢が気になります。 声明文から引用します。
DNSクエリ情報を収集し、その一部の情報をインターネット上に公開したコンテンツがありました。
DNSクエリ結果のドメイン名は、たしかに「一部」の情報かもしれないけど、DNSクエリにとっては「核心」部分ですよね。 これを「一部の情報」と表現するのは、なんとか問題を小さく見せようとする意図が透けて見えます。 (事情を知らない人が読んだときに「一部だけか、じゃあ大した事なさそう」と思うことを期待した書き方ですよね。)
「NOCコンテンツに関するご指摘について」という声明文のタイトルも、事情を知らない人にとっては何のことかわからないように計算されていることが伺えます。 不祥事を起こした企業による声明文でもこういう小賢しいテクがちりばめられているので、たぶん、こういった声明文を作成するのが得意なコンサルかなんかに頼んだのでしょう。 PyCon JP事務局は企業じゃないのだから、「本件を厳粛かつ真摯に受け止める」気があるなら、他人に頼まず自分たちの言葉で声明文を出してもよかったのでは。
再度、声明文から引用します。
当法人は本件を厳粛かつ真摯に受け止めるとともに、本件の発生事実・問題点を公表し、再発防止に努めてまいります。
厳粛かつ真摯に受け止めてるなら、発生事実に「事前の指摘を受けていたこと」と「機材の故障だという虚偽の説明をしたこと」を入れてほしかったと感じます。 じゃないと、口先だけなんだなという印象のほうが強い。
■問題点その5。問題点を指摘した人をPython関係者が執拗に攻撃
この件における最大の問題点は、「問題点を指摘した人をPython関係者がよってたかって攻撃」、これです。 なんとスラップ訴訟さえ行われていました。
(長くなったので、次回へ続く)
(ブログタイトルで期待した人はごめん。強く要望してくれたら次回は画像でも載せる。)














