megamouthの葬列

長い旅路の終わり

パラノイアのプログラマと第6感

今だから白状すると、昔、運営していたサービスの一般ユーザーのパスワードをハッシュ化(暗号化)せずに平文でDBに保存していたことがある。

言いわけは、幾つかある。
一つは、今では当たり前のようについているパスワードリマインダーの仕組みが当時は一般的ではなかったこと。
ユーザーがパスワードを忘れた、と問い合わせしてきた時に、最も自然な方法はまさに当人が設定した「パスワード」を一言一句違わず登録メールアドレスに送信することだった。あなたのパスワードは○○○です。ああそうそう、そうだったね。こういう感じだ。
当時のユーザーはそれを不審がらなかった。
またサポートコストの問題があった、パスワードの再発行を、そのためのトークンを含んだ長いURLを、大半のユーザーが嫌がっていた。
サポート部門はOutlookExpressに表示された長すぎるURLのリンクが途中で切れててクリックできない、という苦情にいつもうんざりしていた。だから僕たちは、"taro1234"とか”ilovepoosan"とかそういった間抜けな平文のパスワードを、いつでもメールで送信できるように、そのまま格納していた。
三番目は、僕が入った頃には、もうそのようにシステムが実装されていたことだ。それよりも重要なことは僕たちが、リスクを声高に主張して是正することまではしなかったことだが、それは単に面倒くさかったからである。せいぜい次のバージョンアップでやればいいと思っていたのだ。
とはいえ、そのサービスにバージョンアップの機会はなく、無数の思いが詰まった平文パスワードとともにサービスは終了した。


それから10年ほど時間がたって、宅ファイル便の情報流出があった。
「なんと」パスワードが暗号化されていないことがわかって、コテンパンに叩かれた。
無数のプログラマが呆れてオージス総研のエンジニアたちをTwitterで血祭りに上げている最中、前述の過去がある僕は何も言えなかった。宅ファイル便もけっこう年季の入ったサービスだったから、きっとハッシュ化したかったんだろうけど、できなかったんだろうな、とだけ思った。

品質は死活問題だ。特にセキュリティ品質はサービスの命運を左右することさえある。クソどうでもいいポエム投稿サービスでさえ、セキュリティ品質を疎かにすることはできない。僕たちはそういう教育を受けてきた。

だから、後に大手SIerの孫請けで某政府機関に関わるシステムに関わっていた時も、あらゆるリスクを考慮してプログラミングした。扱うのはポエムではなかった。国や自治体の重要な情報だ。僕たちはパラノイアのようにプログラミングした。


リリース直前、元請けから不思議なExcelファイルがやってきた。セキュリティチェック項目表というシートがあって、簡単に言うと、あなたの作ったシステムで以下のセキュリティホールへの対策をしているか、「はい」か「いいえ」で答えなさい。というものだった。

SQLインジェクションはできないようになっていますか?→はい
XSS脆弱性の対策はしていますか?→はい
CSRF脆弱性の対策はしていますか?→はい

はい、以外に答えようがあるのだろうか、と思った。「CSRFですかーあるかもしんないですねー」と軽い調子で答えてみたらどうなるだろう?と思ったけど、多分一悶着があった後で、「修正してください」と言われるだけだろう、ということは容易に想像できたから、僕は正直に、全ての対策が万全であることをExcelファイルに記入した。そして、本人が見逃した脆弱性の責任は誰が取るのだろうと考えた。

あるいは、このように言質をとっておいて、大手SIerの特別セキュリティ査察チームがペネトレーションテストを行って、僕たちの見込みの甘さを暴く、という演出なのかもしれない。と思った。「意図しない文字コードを混入した場合、SQLインジェクションが成立しますね」と黒いスーツに身を包んだ、いかにもなエリートの外見の美女に個室で説教されるのかもしれないとも思った。

だけど、その可能性は皆無だった。納期は2週間後だし、元請けがコストをかけて自分から納期に間に合わないことをするのもいかにも不合理だったからだ。
だから、言いたくはないが、儀式のようなものなんだろうと思った。何かあった時に、ベンダーが大丈夫だと言ったんです!私たちも騙されたんです!と言いたいための。

ある時などは、明らかに対応していない設備(IDSとかだったと思う)を導入しているかのチェックがあった。
僕は当然言った。
「そんなの見積もりにも入れてないし、もちろん設置されてもないから『いいえ』にしますね」
Excelシートを手渡した。営業が頭を抱えて言った。
「ここ・・・・・・何とか『はい』になりませんか?追加予算はないんですが」
なりませんよ。と僕は冷たく返した。

その後色々あって、チェックは合格して、システムは完成した。IDSは最後まで姿形もなかった。何があったかは察してほしい。

たまに、コンサルを雇えるぐらいの金持ちクライアントがやってきて、外部機関によるセキュリティ診断が実施されることもあった。いよいよ僕たちも年貢の納め時かな?と様々なマニアックなハックに対する準備を進めていると、60ページぐらいのPDFが送られてくる。
立派な装丁の「セキュリティチェック診断結果(社外秘)」に目を通すと、URLごとに自動生成されたレポートページが飽きる事も無く続いていて、主な問題は、Webサーバーが脆弱なDESを含む暗号化スイートをサポートしていることを教えてくれる。なにしろ全ページにわたって同じ指摘があるのだ。
もちろん大事なことなのだが、僕たちにではなく、IE8サポートしろっていったクライアントに言ってくれるのが一番なのは間違いなかった。

大手のシステムになればなるほど、こういった儀礼的なことが増えていった。多くの場合、システムのセキュリティを担保しているのは現場のエンジニアの経験と勘のように思えた。彼らがボトムアップしなければ、致命的な問題が最後まで残っただろう、ということを幾つか見聞きした。
だけど、そういったセキュリティに強いエンジニアが長持ちすることはなかった。彼らもまた十把一絡げのエンジニアとともに契約を終了され、現場を渡り歩いて、そのうちどこかにいなくなった。代わりに入ってくるのは新米で、僕たちは彼らをパラノイアに育てあげようとするのだが、彼らの大半はパラノイアになる前に、もっと割のいい仕事を求めて辞めてしまう。

僕はこの調子でまともなエンジニアがいなくなったら、今に「大変なこと」になると思った。実際、ここ数年の話だけでも、あらゆる仮想通貨取引システムがハックされたし、大量の個人情報が漏洩してしまった。絶対に安全だった銀行の口座から他人に金を引き出されるようなことまで起こっている。マジに「大変なこと」だ。

だが同時に気づいてしまってもいた。「大変なこと」はしょっちゅう起こっている。でも、それで世界が終わってしまったかというと、全くそんなことはなかった。やらかした企業の屋台骨すら、揺らいでいない。実際に起こったことは役員が記者会見で頭を下げ、被害者に500円のクオカードを配って、それで全部だった。そう、それで、終わりなのだ。

僕としては「大変なこと」が起こったら、サービスは終了、経営者は引退に追い込まれ、PMはじめエンジニアたちもまた相応の責任をとらされる、そういうイメージを持っている。そういう気持ちでプログラムを書いている。
でも実際にそれが起こったら、決してそうはならない。最近は特にそうだ。宅ファイル便が終わったのだって、責任を取った結果ではなくてリプレースできないレガシーシステムを切り捨てる口実にされたように見える。

なぜこれほどまでに致命的なことが許されてしまうのだろうか、と思う。やらかした会社はみんな、精一杯がんばったけど、悪い奴に裏をかかれた、どうしようもなかったみたいな顔をする。でも内情を知っている僕が推測するに、普通のITエンジニアの考えるギリギリ及第点のセキュリティ基準すら、満たしている会社はわずかだろう。彼らは往々にしてシステムを1行書き換えるのに3つの判子が必要な体制を誇るが、もちろんそんなものには欠片も意味がない。

一つ推論をたてることはできる。資本主義と競争の観点でセキュリティリスクを評価すればまずまず説明ができるのだ。

ある会社のセキュリティ品質がめちゃくちゃだとしよう。事故も起こったとしよう、しかし、その会社は潰れない。経営者が1ヶ月ほど頭を下げて回って、切腹最中を取引先に配った以外、特に何もしなかったが、すぐに日常が戻ってくる。
それは大なり小なり、全ての会社で似たようなことが起こっているからだ。競争相手の内情も似たり寄ったりだからだ。
コ○ンチェックがヤバいからって他の業者が安全な保証はまるでないし、Adobeが気が遠くなるほどの数のパスワードを漏洩しても、僕たちがみんなCreative Cloudを解約して、コーレルのPaintShopProを買うわけじゃない。
会社として、経営として本当に「大変なこと」というのは、ドメスティックな競争に敗れて市場から退場させられることであって、実社会に取り返しのつかないダメージを与えようが、何十億もの金が闇に消えようが、それ自体は経営的には「大変なこと」でも何でも無いのだ。

僕の見当違いはここにあった。僕が見逃したシンプルな事柄は、ある品質の宇宙が縮小しつづけたところで、その収縮が著しく偏在しない限りにおいては、特に何の問題もない、という事実だ。デフレ世代の僕でも、そんなシュールな原則は認めたくないが、それが真実なのだ。


一介のプログラマがセキュリティに関してパラノイアになる意味あいはあるのだろうか?もちろん、セキュリティコンサルタントや、その手の職業につくなら意味のあることだと思う。しかし、そうでない場合、あまりにも心的負担と労力が釣り合ってないのではないだろうか?

世界が、母なる海に向かって流れる水死体のように、まどろみながら、どんどん下流に落ちていく。
僕たちは安いサラリーで、自尊心を守って、命を削っている。それはまるで夢の中で徒手空拳を繰り出すみたいで手応えがない。
それでもやるべきなんだろうか?それは報われる仕事なんだろうか?

そんな時、徳丸先生ならどうしますか?


今月の懺悔、アフターコロナ時代の葬列

お久しぶりです。
この懺悔と称する、埋め草のエントリー。それほど意味がないし、何より自分で読み返しておもしろくないので、もうやらないつもりだったんですが、うっかりカクヨムのほうに小説を載せてしまって、このブログからリンクがないのも不親切な気がしたので、書きます。

kakuyomu.jp

カクヨムでは
フライ・ミー・トゥ・ザ・ムーン(@megamouth) - カクヨム
にリンクを貼るのが流儀のようなんですが、一度で本文にたどり着かないし、別にカクヨムのシステムに合わせる必要もないので、前述の「いきなり本文が出てくる」リンクを公式ということにします)

で、この話のプロット。去年の冬には出来上がっていて、もちろん、このブログのエントリとして書くつもりだったのですが、皆さんご存じの通り、2020年の2月ぐらいで世界が変転してしまい、書かずじまいになっていました。
というより、それまで溜め込んでいたネタを、このコロナの時代に出していいものか、全く判断がつかなくなっていたのです(それが1~6月ぐらいまでの空白期間の懊悩の主なものです)

でも、宇崎ちゃんは密に先輩とくっついているし、かぐや様の学園も平常通りラブコメを決め込んでいて、「あ、どうでもいいんだな」と気づいたのが6月ごろで、そのころ、私は何となくカクヨムの文芸クラスタ(というか大澤めぐみ)周辺のtwitterをぼけーっと眺めていたので、

第一回イトリ川短編小説賞 - カクヨム

というのが開催されていると聞きおよび、興味本位で投稿してみた、という次第です。
書く機会をいただけた関係者の皆様には大変感謝しております。

と言いつつも、カクヨムに載せた文章の読まれなさ加減は、本当に想像を絶するものがあって、Twitterであれだけしつこく通知したのに、イトリ川対象関係者含めて380PVしかなくて、冗談だろ?と個人的には思ったので、ブログからリンク貼りました。もう選考は終わってるからこれぐらいはいいですよね?

8月のエントリについて

www.megamouth.info

www.megamouth.info

両方とも、ビフォーコロナの頃に書いた下書きが元になっています。もちろんちゃんと書いたのは、投稿日前後なので、多少はコロナの時勢が影響しているのかもしれないですが、ほぼ情念と手癖で書いてるので、良くはなかったですね。
それでもブクマいっぱいつけてくれる、みんなは優しいと思いました。

アフターコロナの過ごし方

IT業界を主戦場とする私のまわりでは特に営業面で、コロナをきっかけとした大変動の影響がでていて、時代に積極的に乗っかろうとするクライアント、影響を最小限にしたいクライアント、もうダメそうだから最後に国金から金引っ張れそうな企画を持ってくるクライアントなどが、どういうわけか無免許フリーランスの私のところに大挙して押し寄せてきて、正直パンク状態になってます。
そういう意味ではコロナによる不景気というのは私には無縁なのですが、働きたいという意思も同時にないので、仕事の大半はgdgd進行で溶けてしまって、コロナ前と変わらない日々を送ることにはなるでしょう。
ただ、この情勢を見る感じ、儲かってるやつは本当儲かってますよ。このことは皆様にご注進申し上げます。

うつ転

そうはいっても、毎日コロナウィルスにおびえて家で仕事ばっかしている生活というのも気が滅入るもので、久しぶりに希死念慮が沸いたりしました。
10年ぶりぐらいに来たそれを、適当にあしらっていたらそのうちどっかに行きましたが、思えばこういうのに20年以上つきまとわれているわけで、うつ病って大変ですね。同病の方がおられましたら、どうかお気をつけください、とmegamouthからはお伝えさせていただきます。お互い大変ですね。どのみち死ぬタイミングは逃したんだからダラダラ行きましょう。

こんなとりとめのない懺悔でいいんでしょうかね?
あ、AmazonMusic Unlimeted限定だけど楽曲レビューでもしておきます。


Record Collection [Explicit]

Record Collection [Explicit]

  • 発売日: 2010/09/27
  • メディア: MP3 ダウンロード

全然知らない人なんですけど、ちょっと前には売れてたっぽいです。
MarkRonsonは機材の扱い方を見るとYAMAHA系統のキーボディストの香りがします。
”Bang Bang Bang"は私が2019年に最も聴いた曲になりました。ループにして1週間を聞き続けたので無理はない。
歌っているMNDRは本当にかわいいので、是非Youtubeでも見てください。

5年後の世界

5年後の世界

  • 発売日: 2019/07/12
  • メディア: MP3 ダウンロード

筋肉少女帯大槻ケンヂも実はそれほど好きではないんですが、特撮は好きです。
特に大槻ケンヂ氏は邦楽で唯一、何ら目標を持たない人に着目して、その内なる情熱を描きだす、という離れ業をこなしてらっしゃる印象があって、こいうことを文学のお偉方がまったくと言っていいほどキャッチアップできないのって何々でしょうか?芸術をしたいなら、画商みたいな流通で高級な御本を丁重に売ればいい話で、本屋の棚を使わないでほしいと思います。

Modal Soul

Modal Soul

  • 発売日: 2017/12/13
  • メディア: MP3 ダウンロード

早逝されたnujabes氏の珠玉の名作です。死んだからってわけでもないでしょうが、あらゆる曲が、自分の感傷とリンクしているように感じるのは、おそろしく鋭利にそぎ落とされているからだと思っています。

クラムボンとのコラボしたこの曲を時々聴きます。

Amazon Music Unlimited - ヴァリアス・アーティスト 『2nd Collection』


聴くたびに00年代の夏は郷愁の領域に入ってしまったのだと感じます。それはとても寂しいことです。

ではまた。


ソリティアおじさん

中年になったのでソリティアおじさんになりたい、と思った。西日差す窓際で、Windowsに入っているソリティアというゲームを日がな一日やり続けて、給料を貰っているおじさんにである。

ソリティアおじさんは伝説の存在だ。私も実は、目にした事はない。主に大企業にいたらしいので、就職活動すらしなかった私には縁遠い存在なのだ。

私が実際に見たことのある一番ヤベえおじさんは、CASIOの電卓を超高速で叩きながら、その計算結果を一つ一つ手入力するExcel手入力おじさんだった。
おじさんのExcelには数式がない。全てはおじさんがテンキーを叩いて入力したものだからだ。
一つセルを打ち間違えたり、後で訂正が入ったりすると、当然合計値を入れるセルの数値も変わってしまう。それを、おじさんは(Windows付属の電卓アプリではなく)CASIOの電卓を叩いて計算し、LCDが表示した内容をパソコンのテンキーで写し取って修正する。ほかに合計値を使っている場所があれば、そこも修正しなくてはならないから、二十世紀最大の発明である表計算ソフトのアルゴリズムを、おじさんはひたすらキーを打ち続けることで辿るわけだ。

この行為はとめどない無為と呼べるものだが、とはいえ、ソリティアおじさんが抱える巨大な虚無とは比べようもない、と私は考えている。
実際、外から見て、Excel手入力おじさんはいかにもせわしげだった。オフィスに響き渡る16ビートめいた打鍵音は、こうして一生懸命働いているのだからわたしをクビになんてできないでしょう、けしてそんな無体なことを考えないでくださいよと、どこかにいる上司へ一心に口上を述べているようで、はっきり言えば、まるでなってなかった。


私がなりたいのは、ソリティアおじさんだ。
まばゆい逆光を背景に、スーツがきまった背筋をピンと伸ばし、ディスプレイを見つめて、マウスクリックの感触を全身で確かめるように、厳かに、慎重に、電子のトランプをスペードの5に運んで、そのクロンダイクの一手一手を、何人も妨げることができない、なぜそれが許されるのか、それでどうして金が貰えるのか、社内の誰一人としてわからない、孤高のプロゲーマー、あのソリティアおじさんになりたいのである。


ソリティアおじさんが登場したのは、90年代後半から00年代前半のことらしい。
インターネットとWindowsがオフィスに広がり、伝説のLotus Notesが、あるいはNEC渾身の情報共有基盤StarOfficeが、イントラネットを駆け巡ったあの日に、夏の強い日差しが、麦わら帽子をかぶった白いブラウスの美少女の隣に黒々とした影を落とすように、ソリティアおじさんもまた巨大なオフィスビルの片隅に生まれたのである。

今では想像すらできないことだが、オフィスのIT化に伴って、最初にネックになったのは「マウス」だった。
シングルクリック、ダブルクリック、ドラッグ・アンド・ドロップ、そういったマウス操作はPC強者の誇るべきスキルであり、少なくともおじさんの手に負えるものではなかった。
おじさんたちは部下が共有フォルダに置いたファイルを開くために、ファイルを選択状態にし、次にはデスクトップの虚空をドラッグして神秘的な矩形を描き続けた。
いつまでも繰り返す悪夢のような日々に終止符を打つべく、部下は上司に、僭越ながら、と断って、スタート>ゲーム>ソリティアのシーケンスを教えた。
おじさんが肩を不自然な方向に曲げて苦労して、アプリの起動に成功すると、デスクトップに緑色のテーブルとトランプが映し出される。遊び方はF1キーで表示されます。

部下は娯楽をおじさんにあてがったわけではない。
ソリティアを起動したのは、おじさんがさしあたり覚えなければいかないことの全てを、このゲーム、ソリティアは備えていたからだ。
カードを選択するのはシングルクリック、組札に移動はダブルクリック、まとめてカードを移動(ラン)はドラッグ・アンド・ドロップ。ゲームを遊ぶことで、全てが学べる。それがソリティアなのだ。

おじさんは喜び勇んで、ソリティアをプレイし始めた。部下はデスクを離れ、自分の仕事に戻った。昼休みが過ぎ、労働組合の放送があり、定時のチャイムが鳴り響いてもおじさんはソリティアをプレイしていた。部下は仕事を首尾良く終えることができて、おじさんに頭を下げて職場を出て行った。

明くる日も、そのまた次の日も、おじさんは教えられた通りソリティアをプレイし続ける。数千回のクロンダイクが行われ、山札は絶える事なくフリップし、大胆なランが実行される。
齢50も過ぎた、円熟した男性の純粋な行いが、その祈りに似た作動が、修養と礼式を獲得し、やがて、神性を帯び始めるのに、それほど時間はかからなかったはずだ。


2020年。オフィスすら、あやふやになった時代で、私はソリティアおじさんになれていない。
ソリティアはWindows10プリインストールゲームから消えていて、Windows Storeからダウンロードできるが、Microsoft Casual Gamesとして、ソシャゲの要素が取り入れられ、広告が表示されるようになっている。もはやそこに往事の面影はなく、ただ無為で死んだ時間が横たわっている。

代わりに私は、Google Collaboratoryを開く。Jupyter Notebookのテキストエリアに、どこかで聞きかじったコードを貼る。どこかで作られたHDF5形式のファイルをダウンロードする。
Googleのデータセンターの奥深く、目の飛び出るほど高価なGPUでそれらを実行して、私は結果を目撃する。それは、Qiitaで見たとおりの出力で、その意味も、どうしてこうなるのかも、根本的のところ、これが何なのかすらわからない。

明くる日も、その翌日も、私は、それをする。私より若い誰かが作ったニューラルネットワークと、巨大なデータセットに思いをはせて、無為に、訳知り顔で、呆然と、時代が変化していく不安を抱えて、それをする。決して届かない場所があることを、この行為は教えてくれる。

やがて、窓から西日が差して、私の顔を赤く染める。自宅のデスクトップの向こう側から、それを見た者がいたなら、きっと私はGoogle Collaboratoryおじさん。ソリティアおじさんと同じ面持ちをしていることだろう。

私は、それを恐れて、一方で、それを望んでいる。


任天堂 トランプ ナップ 622 (赤)

任天堂 トランプ ナップ 622 (赤)

  • メディア: おもちゃ&ホビー