暗黒大陸長野 記事一覧

暗黒大陸長野 Vol.2 - SIer世界の闇と光(2013-2014頃)

公開日時:2021/05/15 15:01

初めてのSIerの世界へ

起業後に割と大きな収入源となっていた企業からの仕事がどう考えても割に合わないと判断されるほど崩壊して束縛されるようになって来た為、別の取引先を探す必要性が出てきました。

何しろわたしの会社は所謂一人株式でしたから、わたしがシステム開発に専念している間は誰も営業活動をしてくれません。『働いたら働いた分だけ請求してもらって構わない』という契約ではありましたが、劣悪なコードの山の修正の為に毎日12時間以上も働いていたらそれ以外に割ける時間が全く無くなってしまいます。それでは企業経営は成り立ちません。

本来はそういう事にならないようなプログラムコードを書くのですが、既に劣悪なコードが山のように書かれてしまった後ではもうどうしようもありません。

ですから、大きなバグが一通り取り終わってなんとか動くという段階になったところで『当初の契約の予定期間を2ヶ月過ぎており、稼働時間も多くなり過ぎた事』を理由に、そのプロジェクトからは離脱させてもらいました。

勿論、それに先立って次の仕事を見つけてあり、そちらに参加したい事も理由として相談しましたから無理には引き止められませんでした。

次の仕事ですが、起業当初から参加させてもらっていた長野市ソフト産業協議会で面識が出来たSI企業さんに以前に営業活動に行っていた事がきっかけとなり、年末から翌年半ばまでの半年間で予定されている既存システムのスマフォ対応WEBアプリ化プロジェクトに技術者を派遣してもらえないか?という依頼が届いた事で話が進みました。私の専門分野であったからです。

SIとはSystem Integrationの略で、顧客からの依頼に沿って主にコンピュータシステムを構築して提供する事を指し、それを主業態としている企業の事を蔑視を込めてSIerと呼びます。

派遣事業 - 特定派遣とは?

当時の日本のシステム開発業界では技術者派遣が一般的でした。パソナやパーソルテンプスタッフのような一般的な登録型派遣ではなく、自社の常用型従業員を専門職として派遣する特定派遣という派遣形態です。

この特定派遣事業、事業者として国に届出さえすれば派遣事業を行う事が可能でした。

ですからわたしの会社でもその企業さんからの仕事を受注するため、急遽社会保険労務士さんの事務所の門を叩いて特定派遣事業者としての届出を手伝ってもらいました。届出にあたっては就業規則や職場環境の整備が必須だったからで、一人株式であったわたしの会社には当時、それらが存在しなかったからです。

従業員のためのデスクも必要だったので、長野市にある中古オフィス家具専門店『天下一』さんでそこそこモダンなデスクを確か1万円で購入しました。

中古オフィス家具の天下一

椅子は実家に在った物を持ってきて代用です。

ちなみに、自分が普段使っている椅子はHumanscale製の13万円程の椅子(フリーダムチェア)です。東京に出張に行った時にまだ元気だった頃の大塚家具さんで購入しました。365日、一日12時間以上も座り続ける椅子ですから、そこをケチるわけには行きませんでした。

Humanscale フリーダムチェア

長野市に限らず地方というのは仕事が殆ど無いですから、大抵の中小規模のシステム開発会社は大都市圏の企業に技術者を派遣し、その派遣料で生計を立てるのが一般的になってしまっていました。

ですから、届出制という容易さも相まって、悪徳な経営者は適当に雇い入れた未経験者をロクに教育もせず『3年の実務経験があります』という建前で派遣先へ大量に送り込んで荒稼ぎをするといった悪行が横行するようになります。実はシステム開発会社ではなく、実態は人材紹介会社ですね。

雇用にあたっての待遇もかなり悪く、ずっと派遣先で働いていて基本的に所属会社には出社しない為、自分のデスクすら無い事も少なく無かったようです(※これは違法です)。

こうした背景に加えて偽装請負問題の温床ともなっていた為、法改正によって特定派遣事業の廃止が決まり2015年に施行、それまでの届出済企業についての経過措置も2018年に終了し、現在は非常に厳しい登録基準のある許可制の一般派遣のみに一本化されました。

ですが、特定派遣に味を占めたのは派遣元だけではなく派遣先も一緒でその業界体質は変わる事は無く、現在はSES契約という全く新しい形態へと進化(悪化)を遂げています。

日本の法律にはそんな契約形態は存在しませんから実態としてどの契約形態であるのかを明確にする必要があるのですが、大抵の人は法律を全く知らないので特定派遣よりも更に劣悪な環境で業務をさせられていたりするようです。

SIerが嫌われている理由を痛感する

仕事の基本がなっていない

派遣先で働き始めてからすぐに、特定派遣の酷さについて理解し始めます。

初日はまず、貸与されたノートPCのセットアップでした。A4用紙10枚ほどの手順書が渡され、OSの初期設定や職場内での環境の統一、セキュリティ面の安全性の確保といった基本的な作業について、派遣労働者が自分でセットアップを行います。大々的にシステム開発を謳っている会社ですが、環境構築自動化ツールみたいな物はありません。だから派遣労働者にやらせるのでしょうけどね。

手順自体は非常に簡単でしたが、ノートPCのスペックが低くHDDのため異常に時間が掛かります。規定のインストール作業だけでほぼ丸一日費やしました。就労期間中に新しく入って来た別の会社の派遣労働者さん達の様子もみていましたが、皆、必ず丸一日掛かっていましたからわたしだけ手が遅いといった話ではないです。

そして、2日目から既に業務開始です。自分が普段使っているIDEを入れてセットアップしたり、ローカル検証環境を整えたりといった時間は一切ありませんでした。ネットの情報を色々見てきましたが、大体どこもこんな感じのようですね。システム開発に限った話ではなく仕事を行う上で一番重要な環境を整えるという工程が完全に無視されています。何故ならSIの人達は『仕事とはどのようにやるべきか?』という基本的な事を何一つ知りませんから。『そりゃ、どこのプロジェクトも炎上しまくるだろ』と納得します。

楽観排他を知らない人

その業務、わたしの会社とそのSI企業が契約する際に前提となっていたプロジェクトではありません

当初予定されていたプロジェクトの前工程が遅延している為、準備が整うまでの間別のプロジェクトを手伝って欲しいというわけです。

それ自体は特に異存は無いのですが、やっている事がめちゃくちゃでした。

業務指示をしてくる人も契約書にある派遣先指揮者では無く、とにかく態度が横柄です。技術者派遣の現場でのプロパー(生え抜き社員、派遣の場では主に派遣先企業正社員の意味で使われる)の人格の酷さについては噂で聞いていましたが『あ、本当だったんですね』といった感じでした。

業務内容はある程度進行しているシステム仕様追加の検証と改修対応でしたが、わたしの手元に来た時点で既に燦々たる状況です。ソースコードは巨大ネストしている上、インデントがバラバラですが整形はしてはいけません。修正対象外の行が差分として検出されてしまうからだそうです。そして、開発用サーバですらエラー表示が切ってあり、異常終了しても何が起きたのかすら分かりません。もう、言っている事とやっている事がメチャクチャです。

ベタ書きしてあるデータベースのSELECTクエリは仕様追加・変更の度に無計画にUNIONが繰り返されたらしく400~500行もありますが、その仕様が仕様書には書いてありません。長大なSQLクエリだけが記述してあります。ですから本当は一体何をしたいのか?すらよく分かりません。つまり、まともに検証する事も書き直す事も出来ません。

渡された仕様書では楽観排他が必須とされていますが、肝心の実装では楽観排他の基準となるレコードをロックしていませんからアクセスが重なると当然コンフリクトします。

それをプロパーに報告すると『なんで楽観排他なのにロックしなきゃいけないの?』と、まるで馬鹿を見るような顔をして言われます。ですから仕方なくメカニズムを図示して提出したのですが、今度は『難しくてわかんない』だそうです。あなた、仕事を一体何だと思ってるんですか?

その仕様書、この人が書いたんですけどね…。自分で『楽観排他』と書いたのに、楽観排他とはどのような物なのか全く知らないのです。SIerってこんな感じなんですよね。楽観排他を理解していなかったら、複数人が同時に使用するシステムなんて作れるわけがありません。

ダメな楽観排他

※こういった事を公開するのはNDA(機密保持契約)に違反する可能性があるという事も理解しますが、NDAというのは本来企業利益に対する侵害を禁止する契約であって、企業の杜撰さを隠蔽する為の物ではありません。守秘義務とは全く異なります。ですから、可能と思われる範囲で杜撰さについては言及していきます。一個人・一企業の利害だけ語っているわけではありませんので、それがシステム開発業界全体の為であろうと考えます。

urlを開いてボタンを押すことすら出来ない人

そのプロジェクトが終わると、次はちょっとした作業の指示が来ます。

外注して納品されたWEBページにFacebookの『いいね!』ソーシャルボタンを追加するだけという依頼でしたが、本当にだけなら、自分でやるんですよね。

いいね!ボタン

見てみると、外注した業者が納品したHTML、CSSのソースコードが既にカオスです。

とにかくやっている事がメチャクチャ。WEB制作会社とかWEBデザイナーとか言っている人達は難しい事を考えられない人が多いので構造化が本当に下手くそです。

一時、セマンティック・ウェブとかいう言葉が流行りましたが意味を理解していないので片っ端からidやclassをつけまくってHTMLだけ見てもゴミクズの山みたいになっている事が頻繁にありますし、CSSに至っては『これ、巻物ですか?』みたいに長大なファイルになっていたりして目も当てられません(Sassコンパイルやwebpacしたわけではなく)。

そのゴミ溜めのようなHTML上にソーシャルボタン用HTMLを追加し、ゴミ溜めのようなCSSにスタイルを追記して検証環境でレイアウトの確認、本番環境のサーバへのアクセス権は貰っていないためソースコードだけ渡して作業を終了しました。

それが、翌日になって『いいね!』ボタンを押してもカウントが変わらないと言われます。

どういう事だろうと思ってGoogle検索してみると、Facebookソーシャルボタンの実質バグだそうで、対応方法まで含めて30秒で理由が分かりましたが、プロパーはGoogle検索すら出来ません。わたしには本番環境へのアクセス権が与えられていませんからわたしが自分で動作検証する事は出来ないんですけどね…。

その後プロパーはソーシャルプラグイン上に表示される画像等も含めて自分で何度か微調整を繰り返していましたが、その変更内容を即時反映させるにはFacebook上で強制的にキャッシュをリフレッシュさせる必要がありました。やる事はFacebookのデベロッパーツールでボタンをクリックするだけなのですが、そのプロパーはそれすら嫌がってわたしに指示を出してきます。

WEBページを開いてボタンをクリックするだけよりも、わたしの席までわざわざやって来て口頭で指示を繰り返す方が簡単な思考回路の方なんですね…。ちょっと想像の枠を超えてきました。

A社、再び

次の業務もやはり、炎上中のプロジェクトのサポートです。契約の前提であったプロジェクトにはいつまで経っても参加出来ません。

炎上理由は端的に言えば、A社から来ている技術者の能力の低さです。

参加した初日に私に依頼された業務は、現在開発中、あるいは改修中であったWEBシステムのテストを行う、というものでした。

これについてテスト項目書は存在せず、仕様書も存在せず、ただひたすら抽象化された極めて内容の把握しにくい設計書があるだけでした。

私が関わった仕事の全てについて「まともな仕様書」というものは存在せず、「画面設計書」という名のサーバーサイドの処理とクライアントサイドの処理を併記した、奇妙な書類が必ず存在していました。システム開発がどういう物なのか分かっていない人程、仕様書と設計書の違いという物を全く理解していませんね。

これにおける最大の問題点は、設計書の通りに確かに動作はするが、論理的に考えてこの動作はおかしかろうというものについて、それが期待される仕様であるのか、設計書そのものが間違っているのかの判断が不可能なことで、試験を行った結果の適合・不適合は全く意味を持たない事です。

ある時わたしが、設計書には書かれていないが極めて非論理的な動作を行う処理に気づき、実装を行っているA社の女性を呼んで「これは正しい動作ですか?」と聞いたところ、彼女は「え!?なんでこうなるんだろう!?」と頭をかかえながらノートパソコンを開き、プログラムコードを確認し始めました。

そのモニタに映ったコードを見て『なるほど、これではバグだらけになるのも無理はなかろう』と納得しました。

私が見たのは、彼女のノートパソコンの画面一面を埋め尽くすPHPのソースコードでした。1関数内のソースコードだけでノートPCの画面一面を埋め尽くしています。

正しく『縦にも横にも長い巻物』という奴です。そんなコード書いていたら、そりゃあ、バグだらけになりますよ…。

※イメージとしてはこんな感じです。

画面一面のソースコードイメージ

みんな、病んでいる

その後やっと本来のプロジェクトに参加出来るようになったのですが、この時点で既にマイナススタートです。

使用が予定されている技術について、前任者であるB社の技術者Mさんとプロパーが一緒に事前調査・動作検証を行って完了していた筈なのですが、実質的に何もやってありませんでした。個別の技術が動作する事は確認してあったようですが、それらを組み合わせて干渉し合わないかといった検証は何一つやってありませんでした。このせいで正規の実装中に無視できない問題がいくつか発生する事になります。本当に2ヶ月近くの間一体何をしていたんだろう?という感じです。

Mさんから引継ぎがあったのですがMさんは完全なコミュニケーション障害の方で、ドキュメントは全く作れていないし、マトモな会話すら満足に出来ません。というか、恐らく鬱病を発症していました。

以前にB社さんに営業に行った事があるのですが、あそこの社長さん、爬虫類みたいな顔をしているんですよね。つまり感情が無いんです。色々な会社を回りましたが、システム開発会社の経営者の多くはそんな感じです。そういう会社で言われるがままにわけも分からず派遣先に打ち込まれていたら、それは精神を病むでしょう。

ですから公にはされませんでしたが『能力不足』という理由でMさんは契約解除されて去って行きました。それについてはある意味、可哀想であったと今でも思っています。

最悪のプロパー

そして、このプロジェクトにもやはりまともな仕様書というものは存在しませんでした。

あるのは、わたしが他のプロジェクトに携わっている間に連絡された様々な場所にちりぢりになって置いてあるサーバー構成想定図であるとか、旧システムプログラムだとか、旧システムのインターフェイス仕様書だとか、旧システムのDB設計書だとか、お客様とのやりとりの記録だとか、先ほどあげた検証の結果だとか、そんな断片の山でした。

仕方なくそれらを手繰りしながら設計書を書き始めたのですが、ある日の朝のミーティングでプロパーがいきなり「このシステムはスマフォ端末からWEBサーバーを経由してWEBサービスにアクセスするの? それとも直接WEBサービスを呼ぶの?」と聞いてきました。

えーと、わたしは派遣労働者なのでそれを決める裁量権限はありませんから、方針を決めて指示を出すのが貴方の役目です。もう、根本からして認識が狂っています。

ですが、旧Androidアプリケーションが直接WEBサービスにアクセスを行っていたので、想定として本プロジェクトにおいても直接WEBサービスを呼ぶつもりだと答えました。

そうしたら「それではダメだ、このプロジェクトはWEBサービスのみをばら売りで提供することも想定しているし、 Androidアプリはそこで取り扱う情報においてアプリが機密を担保してくれるからいいが、今回はWEBブラウザで動作するWEBアプリだから必ずWEBサーバーを通し、取り扱う情報の機密においてはWEBサーバーが担保するようにしなきゃだめだ」と言われました。

また、私は機密情報については PHPの標準機能であるセッションを用いてWEBサーバ上に保存し、 cookieを経由してセッションID のみをクライアントに渡すというごく普通の実装を想定していたのですが、そのプロパーは「cookie なんて悪いことしようとする人が誰でもみれちゃうんだよ!」と謎の言葉を放ちます。

それで、私の知らない何かがあるのかと思い「そうなんですか?」と尋ねた所、そのプロパーは自信満々といった顔つきで「たぶん」とだけ答えました。憶測で断定します? 普通。

そして敢えて言及すると、そのプロジェクトで使用が決まっていたフレームワークはCodeIgniterですが、すいません、CodeIgniterが提供するセッションは、保存されている機密情報を暗号化して全部クライアント側に送信してしまう仕様なんです。ですから、暗号化キーが漏洩した時点で全部筒抜けになります。あなた、自分でこのフレームワークの採用を決定したのにそういう事を何も理解していないんですか?

発狂するプロパー

それで、設計書を書き換え始めたのですが、ある朝の会議で突然プロパーが怒りをむき出しにして、わたしが書き直している途中の設計書を画面に映し「これはどういうことなの!?」と詰問しました。

それはクライアントからWEBサーバへのアクセスについて「api_keyの送信は行わない」と書いた部分でした。旧Androidアプリがapi_keyを送信する仕様だったからです。

わたしは「先日の会議でapi_keyについてはクライアントには送信しないというお話になったと思いますが」と答えた所、「誰でもアクセスできるってことじゃないか!! これは情報漏えいだよ!?」と怒鳴り散らされました。

わたしは一体何を怒られているのか全く分かりませんでしたが、プロパーが「api_key渡さなかったらどうやって正しいクライアントを判断するの!?」と怒鳴ってくるので、「それはサーバのドメインじゃないですか?」と答えたら、「三木さんは全然理解していない、この仕様書見て!」と、先日の会議の後に送られてきたシステム全体の情報伝達経路の図を示しました。

それを見ても一体何が悪いのか分かりませんが、取り敢えず「申し訳ありませんでした」と謝ってその会議は終わりました。

その後、席に戻って設計書の修正を行っていたら、しばらくしてプロパーが私のところにきて「ごめん、 書いてあったね」と言って、先ほど見せられたわたしの設計書の下の方を指差しました。

それは「WEBサーバからWEB サービスへ行う問い合わせにおいて、ユーザー認証を行う」といった記述でした。

シーケンス図

だって、そういう話だったじゃないですか。正しい利用者としてWEBサービスを利用する為のapi_keyはクライアントには渡してはいけないって、あなたが言ったんじゃないですか。

本当に、言っていることが狂い過ぎているんです。

この仕事に限った事ではないのですが、あらゆる企業のあらゆる仕事に於いて、1ヶ月も経った頃には後からやって来たわたしのほうが以前から居るどの従業員よりもその会社の業務についてよっぽど詳しくなってしまうのです。嫌な言い方をするとわたしは個の能力が高過ぎるんです。あらゆる仕事をこなしてきましたからこの時点で既に一介の従業員の能力の範疇では無くなってしまっていました。

メンバーが増えても状況は変わらず、更に悪化

やがて、プロジェクトにもう一人のメンバーSさんが異動して来ます。

彼はわたしが新規開発しているスマフォ用クライアントアプリの開発ではなく、既存管理画面の改修担当となりました。元々のソースコードが劣悪で改修が遅延していた事による補充要員です。

管理画面改修を担当していたもう一人の技術者さんと同じ会社の人だったので比較的スムーズに進むであろうと思われていたようですが、これがかなり難航しました。

実は彼はNSEG仲間、つまり知り合いだったのですが、わたし達はそれについてはお互いに秘密にしていました。仕事に私情は挟まないようにしていたのです。

その彼から会社の同僚伝いに「今のソースコードがかなり酷い」という話を事前に聞かされていて、どうやらそれが尋常でないほどの酷さであるということが十分に予測されていました。

ある朝のミーティングにおいて、彼の改修が一向に進まないのをいぶかしんだプロパーが、WBS(作業分解構成図)を見ながら「なんでこんなに遅れてるの? 先週まででここまで終わってるはずだよね?」と言いました。それで彼は「コードが少しばかり汚いのと、私自身が仕様を完全に把握していないので…」と言ったところプロパーは激昂し、「なんで仕様を理解しないのに実装やってるの!!」と怒鳴りつけました。

何でと言われますと、前のプロジェクトから間髪いれずにこのプロジェクトの実装に参加させられ、これまでの経緯等について学習時間が全くないままWBSだけが規定されているからなのですが、一体何を言っているのでしょう?

こうなると最早、瞬間湯沸かし器なんじゃないかと心配になってきます。別に一々怒鳴らなくても仕事の指示くらい出せるでしょう? 本当に理解、出来ない思考回路の人です。

そして「前の会議で、ここまで終わってるって言ったよね!?それは嘘だったんじゃないか!!」と怒鳴りつけるのですが、仮に嘘だったとして、それは本当に終わっているか確認しなかったあなたの過失ではないですか?

基本的に、仕事の出来ない人は責任感が無いので全て他人のせいにします。階級社会というのは兎角そんな物ですね。

前述した通り、彼とわたしは友人であって、仕事の場において私情を挟むのは適切ではないことは良く分かっていましたがどう見ても理不尽なのはプロパーであろうと思ったので「Sさんは最近まで別プロジェクトにいて、こっちにきたばっかりですからねぇ」と助け舟を出しました。

それでプロパーもどうにか納得し、その場はなんとか収まりました。

しかし、根本的な問題がどうやら元のソースコードの汚さのようなのでSさんの改修はなかなか進まず、プロパーは常にイライラしていたようです。

もはや仕事とは呼べないまでに丸投げ

そのプロパーの態度の悪さや仕事に対する姿勢については忍耐を超える感じでした。その酷さについて詳細に記録したドキュメントが手元にありますが、あまりに酷過ぎるので訴訟にでもならない限り、流石に公開出来ません。

プロパー自身も管理画面側の改修を少し行っていたのですが、そのコード内で利用されている &(PHPでの参照渡し、C言語と同等)についてSさんに質問した際、Sさんが回答に加えて詳細に解説してあるWEBページのurlを見つけて返信した所、それに対する返答が『で、どっちなの? とっていいの~』という一行。文章を読んで自分の頭で考えるという事が全く出来ない知能の人です。

プロジェクトの進行については全てわたしに丸投げ。管理画面側を担当しているSさんの業務内容についてもわたしが指揮する事態になっていきます。こうなるともはや派遣契約では無く、逆の意味での偽装請負です。

試験についても私に丸投げ

サーバの環境構築についても私に丸投げ

ごめんなさい、それすらしなかったら、あなた一体何をしているんですか?

契約終了すら、簡単にはさせてもらえない

そんな感じであまりに酷い環境でしたから、契約更新はあり得ない状況でした。

それでも、これから長野市で長く営業活動を続けて行く事を考えると喧嘩別れのような事は出来ません。何があるか分かりませんし、長野のような村社会では噂はあっという間に広まります。

ですから、契約満期の1ヶ月前にあたって部署長のTさんから呼ばれ「契約更新の時期になりました」と言われた際、ニコニコ笑って「申し訳有りません、自社でやりたい事があるので契約を終了させてください」と答えました。それで全て丸く収まる筈だったのです。

ですが、そうは行きませんでした。

何しろわたしはプロパーに代わってプロジェクトの進行から派遣従業員さん達の業務の調整、問題解決まで平気な顔をして全て行ってしまっていたので『とても良く働いてくれる派遣さん』という認識が広まってしまっていたのです。

わたしは元々印刷・出版業界で部署長を務めており、仕事人としての能力が並ではありませんでした。人材教育まで行っていましたから人の扱いはお手の物です。そこに加えて一人とはいえ企業経営をし、自分で営業活動までしている。チームマネジメント等わたしにとっては造作も無い事で『プログラムコードなら書けます』という一般的な派遣技術者さん達とはそもそもの次元が違うのです。とにかく、わたしの能力が高過ぎました。

ですから、わたしが契約更新を断ったのを聞いたTさんは正に晴天の霹靂という感じで驚き、「何故ですか? 別の仕事を受注している訳でもないのに何故契約を終了するのか理解出来ません。もし当社に何か落ち度があったのであれば必ず改めるので理由を教えて下さい。でなければ納得出来ません!」とおっしゃるのです。

そこまで言われてしまうと、おためごかしでごまかしたら逆にわたしにとって不利になります。

仕方がないので本当の事を説明するしかなくなり、一週間の猶予を貰って、それまでこの会社で働いた5ヶ月間に起きた事を詳細に記録した報告書をTさんに提出するに至りました。

その報告書を見たTさんは、それ以上わたしを引き止めたりはしませんでした。内容が辛辣過ぎましたから。

Tさんはその後すぐに部長に昇進しますが、SIerにしておくのはもったいない位に本当に素晴らしい人だったのです。

契約終了が決まってから起きた事

みんな、苦しい

わたしが提出した報告資料はA4で100ページを超える物でしたが、Tさんはたった一晩で全てに目を通してくれました。

そして、これまでのわたしの不遇な扱いについて心の底から謝罪してくれました。

そのTさんは主に外回りの仕事をしていたので内情について全く知らなかったのだそうです。それが、部長さんが精神を病んでしまって休職が突然決まり、急遽、代理を務めていた矢先の事でした。大体世の中というのは常に理不尽なんです。仕事が出来る人程沢山の仕事と責任が降ってきます。

前任の部長さんが精神を病んでしまった理由もわたしには分かります。

何しろ、部長さんが担当していたプロジェクトに派遣されていた技術者は実は暗黒大陸長野 Vol.1 - ここが出発点(2011-2013頃)で言及した劣悪なプログラムコードを書いたA社の技術者さん達でしたから。長野ってそういう狭い世界なんです。

問題だらけですからそれは心労が並大抵の物では無かったでしょうね。

Tさんがこっそり教えてくれました。

そのSI企業さんも結局世界的大手企業の子会社なので、親会社は下請けのように仕事を丸投げしてくるのだそうです。それでいてノルマや要求される品質だけは高いので、プロパーさん達もかなり精神的に追い詰められているのだそうです。

ですからプロパーさん達も親会社と派遣従業員との板挟みで結構苦しいみたいです。ブルーハーツが楽曲『TRAIN-TRAIN』の中で唄っていた「弱い者達が夕暮れ、さらに弱い者を叩く」の言葉通りの世界が広がっています。

契約が終了してからしばらく経った頃、その企業の社屋の近くにある家電量販店に買い物に行ったら、休職中の部長さんとばったり出くわしました。

本当にやつれていて明らかに精神を病んでいましたが、それでも会社の側には居たかったんでしょうね…。本当に心が痛みました。

もし仮にA社の技術者達では無くわたしが部長さんのプロジェクトに配属されていたら、絶対に部長さんを休職に追い込むような事態にはさせなかったのに…。人生とは、本当に上手くいきません。

派遣の品格

A社の技術者の低次元さについては目に余る物があります。

就労期間中に参加したとあるプロジェクトに於いて、検索結果の表示が遅過ぎるのでSQLクエリチューニングをして欲しいという依頼が来た事があります。

DBに問い合わせを行っているSQLクエリを見てみるとRDBMS(リレーショナル・データベース・マネジメント・システム)のオプティマイザが何をしているのか全く分かっていない感じのSQL文が書いてありました。

それで、実際に検証を行うために検証用データが無いか聞いた所、依頼をしてきたA社の技術者2名は目配せをした後、あろう事か膨大な個人情報の塊である本番環境の生データを書き出して禁止されているUSBメモリにコピーし、わたしに渡してきたのです。

それが、どれほど重大な契約違反であるのか全く理解していないんですね、この2名は。普通、開発するにあたってダミーデータとか用意しませんか? ちょっとコードを書いてランダムデータを生成すればいいじゃないですか。

これが一般的な派遣労働者の仕事人としてのレベルなのです。

同胞に裏切られる

そして、わたしの友人であったSさんもやらかしてくれます。

派遣契約を終えて自社で仕事をしている合間にSさんのTwitterを何気なく見たら、平日の真っ昼間に一日中呑気に延々とTweetしていました。勿論、派遣就労期間中です。

これを見た時は、流石に怒りが湧いてきました。あなたの状況でそういう事します? 普通。

わたしが必死であなたのサポートをしてあげていたの、一体何の為だと思っているのですか? あなたが何を言っているのか分からなし、改修が全く進まないからプロパーが常に不機嫌なので場の空気が悪くなるからです。

それなのにあなたがそんな事しているのを相手企業が知ったら、あなただけではなくて弁護してあげていたわたしの評価まで下がるんですけど、全く理解出来ないんですか?

非常に厳しい事を言いますが、あなた、社会性皆無じゃないですか。まともな対人会話が殆ど出来ない。だからわたしがサポートしていたのに、全く理解出来ていなかったんですね。

ずっと見ていましたけど、あなたはいつまで経っても本当に自分の事しか見えていないから、わたしがでしゃばり過ぎない範囲で人知れずチーム全体の調整まで行っていた事に全く気付いていませんでしたよね。少なくともプロパーの人の多くはそれにちゃんと気付いていました。

特定派遣企業の従業員の辛さは理解しますし、そこから先は個人の価値観の問題なのでわたしがとやかく言う事ではないですからその時は何も言いませんでしたが、それ以降SさんのTwitterのフォローは行わないようにしました。見ているとイライラしてつい余計な事をリプライしてしまいますから。考え方が違うので下手にリプライするとSさんには迷惑な話でしょう。

基本的に、自分では改善の方策を何もしていないのに愚痴しか言わない人は見るに耐えません。

もう一つ厳しい事を言うと、あなたの所属していた会社さん、派遣されてくる技術者達があまりにも仕事が出来ないので賃下げ交渉されています。

わたしは起業して3年目のたった一人の会社なのに実は派遣単価が一番高くて、契約更新を断った際には引き止めまでされています。単価の話になった時にあなたのプライドを考えて嘘を言っておきましたが、実はあなたの会社の派遣単価よりも6%近く高かった。

それが何故なのか、もうちょっと良く考えた方が良いのではないでしょうか? 仕事って、一体何でしょうか? それ以前として、時間給の契約なのに仕事中にTwitterするのとか、本当に辞めた方が良いですよ? 明らかに契約違反ですから。

わたしが大先輩である技術者さん達に対してあまり敬意を払わなくなったのはこの頃からです。経験が長いだけで『組織における仕事の何たるか』を全く理解しておらず、自分しか見えていないので言われた事しかやれない癖に『自分は凄い』と思っている人は、相手の気分を害さないように気を遣って会話をするだけで疲れるからです。社会性が全く無い人、つまり周りが全く見えていない人、問題解決の為の議論が全く出来ない人が多過ぎますから。

だから一般的に技術者という人種はあんまり信頼されていないし社会的地位が低いのだという事が分かっていません。これはITの技術者で特に顕著ですね。

部署長Tさんの凄さ

最後に、わたしの陳情を聞いてくれたTさんの凄さについて言及します。

わたしが報告書を提出したTさんは報告書の全てにきちんと目を通してくれて、心の底から謝罪してくれたのは前述の通りです。

それにとどまらず、Tさんは部署内の改革にまで着手してくれます。

元々SIは技術の事は全く分からない人の集まりなので技術的な事はすぐには改善出来ないが、出来る事から一つずつ改善していくと言ってくれて、わたしが報告書に書いた本当に隅の方にある非技術的な事柄、つまり組織運営での改善すべき点について、たった一週間後に対策を行ってくれました。

それだけではありません。

どうしようもないプロパーのせいで疲弊していたわたしの心身にまで配慮してくれて、契約期間の最後の1ヶ月間は殆ど何もしなくても良いと言ってくれました。何しろわたし一人の尽力でそれまでにプロジェクトをほぼ完了に導いていたので、契約は既に果たされていたからです。

それでも、ちゃんと1ヶ月分の契約料金がわたしの会社宛に支払われました。人格者って、本当に居るんです。当たり前の事のように聞こえますが、経営者でも無いのにその判断と決断が出来る人というのは、実は私の50年の人生において片手で足りる程しか見たことがありません。

Tさんは私と同い年ですが、わたしと違って一つの企業にずっと勤めています。にも関わらず、わたしと同等の社会観・倫理観を持っているのです。心の底から『この人、凄いなぁ…』と思いました。

だから尚更その会社に残るわけには行かなくなりました。

だって、前述のような劣悪な派遣労働者ばかりなのです。わたしが残れば必ず『ここがおかしい、あそこがおかしい』と言わざるを得なくなりますが、それはわたしのようなマトモな技術者にとっては改善であっても、劣悪な技術者達にとってはぬるま湯を作るだけなのです。

そうしたら、きっとあちこちでプロジェクトは停滞し、最終的にTさんの責任問題に発展します。人間というのは、善人よりも愚者の方が遥かに多いですから。

Tさんの事、人間的に大好きでした。

だからこそ当時のわたしは力が無さ過ぎて一緒に働く事すら出来なかったのです。

まとめ

この記事では、わたしが働いたSI企業で見た闇と光について言及しました。

こうした事はわたしに限った事ではなく、日本中の膨大な現場で繰り返されているようです。こんな状態ではマトモなシステム開発等行える筈もなく、だからこそ欠陥システムが日常的に生産され続けているのです。

それについて『問題だ』と思う人は沢山いても『なんとかしよう』と行動を起こす人はほぼ居ません。そこにこそ、闇を感じます。

非常に多くのシステム開発が大炎上して実質的な失敗を繰り返していますが、どちらが悪いとか無いです。上流工程もマトモに仕事が出来ていないし、下流工程も同様にマトモに仕事が出来ていません。だから遅延して失敗します。

誰か一人でも全体を見て調整が出来れば全く違った結果になるんです。船頭って、普通一人ですから。

次回は、SI企業での派遣契約を終了した後の事を記そうと思います。

※このシリーズに記載されている内容は些末な事を取り上げて大げさに語っているのでは無く、膨大に起きていた杜撰極まりない一般企業体制のほんの一部でありサンプルです。ほぼ全ての事象は詳細に記録されていますので異議申し立て等で必要性が出た場合にはそれら全てを公開します。

暗黒大陸長野 Vol.1 - ここが出発点(2011-2013頃)

公開日時:2021/05/14 14:37

『暗黒大陸』とは?

1970年頃まで、アフリカ大陸は未開の部族の土地として、ヨーロッパ諸国からは『暗黒大陸』と呼ばれていた。

魂の目覚め

みなさん、長野県って知っていますか? こんなところです。

長野市の風景

もう、誰がどう見てもど田舎ですね。

わたしは長野県の北の方にある市に住んでいて、WEBエンジニアをしたりしています。

『したりしている』という微妙な表現を使う理由は結構ややこしくて今はその事情を話せる状況ではないのですが、これまでにはグラフィックデザイナーをしたり、学習塾の講師をしたり、看護助手の仕事をしたりと、結構色々な事をやってきました。

最終学歴は千代田工科芸術専門学校。成績は悪くなかったのですが『漫画家になりたい』『大学は勉強したい人が行く場所』という理由で大学進学しませんでした。結構な中二病だったんです。

当時描いたデッサン

懐かしの『写ルンです』撮影なので、露出とか全く補正されていませんからかなり薄く見えますが、木炭デッサンです。専門学校で初めてまともなデッサンを始めた割には上手いでしょう? デッサンが下手な人は『この奇妙な生物、一体何ですか?』みたいになってしまう事も多いです。※今思うと、右上のマルスの胸像は顔の立体感が足りず平面的に見えますね…。

デッサン

そういった経緯で出版社でDTP及びデザインの仕事をしていたのですが、ちょうどインターネットが爆発的に普及する時期が重なり、それに伴って印刷・出版業界が急速に衰退していきました。

ですから、家に帰ってからは勝手に一人でWEBの勉強を重ね、当時働いていた出版社のWEBサイトを完全オリジナルのCMSサイトとして大リニューアルする事を提案、了承を受け成功させるに至ってWEBプログラミマとしての第一歩を踏み出しました。

その時のサイトは少しずつ手を加えられてきましたが、今でも大体そのままの形で動いています。今から思うと相当稚拙なソースコードではありますが、各種脆弱性対応は十分行ってあったので特に問題無く動作しているようです。

ほおずき書籍

長野県長野市の出版社『ほおずき書籍』※レイアウトが崩れているのはわたしの退職後に追加された機能です。

その後は今度はApple社からiPhone、iPod touch、iPadが続けざまにリリースされて、出版業界に何度目かの『電子書籍ブーム』が沸き起こります。

これについて会社の専務が『これからはこういうのの時代だよな』と雑談で言ったのを聞き、売り言葉に買い言葉というか、若気の至りというか、血気の勇というか、『じゃぁ、やってやろうじゃないか』と一念発起、MacBook Proを購入して今度は独学でObjective-Cを勉強し、iPhoneとiPadのユニバーサルアプリを作って会社に提案しました。若いから元気だったなぁ…と、今では思っています。

これについても了承され、App Storeからリリースされました。

iOSアプリ

とにかく、出版業界は衰退していく一方でしたから、10年先を見据えてなんとか生きていく為の能力を身につけるのに必死でした。

ですが、わたしと同じ事をやれる人間は、他には居ないんです。そして、世界の技術進歩の速度が速過ぎてわたし一人が孤軍奮闘してもどうやっても時代の流れには逆らえず、下流へとどんどん押し流されていくのをひしひしと感じて悶々とした日々を送り続けていました。

このままではいけない…。

それが、7年間勤めた会社を辞めて独立するに至った理由です。

とにかく前に進むためには身体を軽くしなければならなかった。ほおずき書籍という会社を背負って時の流れと対等に渡り合うには、わたしの能力はまだまだ低過ぎたのです。

2011年の初夏の事でした。

独立直後の修行期

BtoB

受注の足がかりとしては、当時サービスが開始されて大分賑わってきていたLancersを利用します。システム開発とデザインの小さな案件を受注して顧客を獲得して、まず実績を作るという作戦でした。

Lancersは安価な発注単価のサイトなので些末なトラブルはあった物の、比較的この作戦は上手くいきました。

発注者も軽い気持ちで発注しているので、受注側としてもいつまでもその案件に縛られるような事さえなければ、手っ取り早く実績を作るにはよいサービスでした(※現在はランサー〈受注者の事〉としては利用していない為、どうなっているかはよく把握していません)。

こうして受注したいくつかのシステムをポートフォリオとして簡単なアナログ資料を作り、長野市のシステム開発会社を回って仕事を貰えないか打診する、というのが次に予定していたステップでした。

ポートフォリオ

その際に、少し変わった手法を用いました。

何をしたのかというと、いきなり飛び込み営業をするのではなく、まずハローワークに行って求人検索端末でシステム開発会社の求人を検索したのです。

なぜかというと、

  1. 求人を出しているシステム開発会社というのは
  2. 人手が足りていないはずなので
  3. 営業をかければ仕事が貰える可能性が高いのではないか?

という仮説を立てたからです。

この作戦は(当時は)見事に的中しました。

最初に飛び込み営業をかけた企業さんから、ちょうど中規模のWEB業務システムのリプレース案件を受注したが社内では人手が足りないので困っている、開発を手伝ってくれないか? と相談を受けます。

この案件をきっかけに別の開発プロジェクトも受注し、約1年半程に渡って取引をさせていただきました。ですからその間、この一社だけで割と無視できない収入を得る事が出来ました。

ただ、内容はかなり酷くて、当初の話と全く違う内容の仕事依頼になっていったり、先方が依頼した設計の内容がめちゃくちゃだったり、共同参画していた別会社A社のプログラマの書いたコードの品質が劣悪でバグだらけな上、その対応がなぜかこちらに回って来たりしてかなり難航しました。

そんな感じでそのプロジェクトが崩壊するのに合わせてわたしはその会社と距離を置き、そのうちにその会社も立ち行かなくなり、今はもうその会社は存在しません。

このプロジェクトの大失敗の際、A社が書いた劣悪なソースコードを教訓として『柔軟性が高く、堅牢で利便性の高いフレームワークの整備』の重要性を痛感します。

A社のソースコードは記述者に依って手続きその物が違っていましたから、もう、ルールという物が全くない無法地帯でした。どこで何をしているのかコードを読み込まないと全く分からないし、関数を呼んだ後、何が返っきているのかも全く分からないし、1つの関数の中に平気で100行とかコードがベタ書きしてあるし、とにかくメチャクチャという表現が適切でした。

サンプル1:A社のソースコード

わたしが改修を担当した際に証拠として保存しておいたA社のソースコードの一つがこんな感じでした。1関数に100行、深いネスト、意味のないバリデート、根本的におかしい日本語…。こんなソースコードがわたしの手元に渡された時点で既に数百万行に膨れ上がっていたので、当時改修にあたったわたしが相当イライラしていたのがコメントにありありと表れています。不具合対応で、ある程度直した上でこれですからね…。

劣悪なコード

※これで1関数…。あれもこれも1つの関数に詰め込み過ぎです。ガードを知らないので深いネストになっています。

基本的に if ~ elseifelse ~ を多用する人は技術力が低いと言って良いでしょう。else分岐は通常、実はほとんど必要ありません。

そして、技術力が低い人のコードは『これ、巻物ですか?』というくらいに、縦にも横にも長いです。必ず、1つのクラスの中にも1つの関数の中にもいくつもの処理を埋め込んでしまうので『このクラス、一体何をする為のクラスですか?』という状態になっています。(※クラス:複数の関数からなる、1つの目的を持ったプログラムの集合)

『これは○○をするクラスです、○○をする関数です』と一言で言い表せなかったら、それはプログラム設計が間違っていますね。

サンプル2:わたしが普段書いているソースコード

可読性を上げるためにオールマンスタイルを使用し、空改行を適度に入れているにも関わらず1クラスで100行未満。根本的に技術力が違い過ぎます。

わたしが普段書いているコード

※これで1クラス(4関数)。

サンプル3:別会社が書いたSQL

月締めの集計帳票出力処理が『5時間掛かっても終わらない』という顧客クレームが入り、これの調査と改善を求められた際の、A社とは別の会社の技術者が書いたSELECT文が以下です。

問題のクエリ

えーと、全て相関サブクエリで書いてありました。ちょっとこのSQL酷すぎません? 流石にこんなSQLはあんまり見たこと無いです。

本番環境の10万件の取扱商品と220万の店舗別在庫、そこに5,000件ほどのコードマスタ情報を相関サブクエリでSELECTしているため、MySQL(5.5未満)では概算で1,100兆回の照合が行われる事になります。

ためしにLIMIT 1(1件の商品のみについて抽出)してみても15分経っても終わりません。

ちなみにこれは月末締めの売り上げ報告書を作るための処理ですが、1件15分としても、1,041日かかる計算になります。つまり、1か月の売り上げ結果を出すのに3年掛かるわけですね…。

さらにこのプログラムでは、このSQLとほぼ同等のものがもう1つ実行されています。苦笑いしか出てきません。

とりあえず、SQLを完全に書き直して1店舗全商品で3分、全店舗7分程度で取得できるように修正しました。夜間バッチ等で実行すれば十分実用的でしょう。

SQLクエリって、RDBMSのオプティマイザがどうやってクエリの実行計画を立てているのか理解していないと全く使い物にならないシステムになってしまうんですよね。

銀の弾丸の構想

こんな感じで、その仕事を5年とか10年とかやっている人達よりも、職業プログラマとしては1、2年の経験しかないわたしの方が既に能力が高かったのです。これは恐ろしい事でした。

これが、当時Feijoa Prototype Framework、そして現在Pine Frameworkと名前を変えた独自フレームワークを開発するに至った理由です。

Pine Frameworkの世界

Pine Framework の世界へようこそ | striking-forces.jp

技術者の間では『独自フレームワーク』は嫌われる傾向にありますが、先に上げた業務基幹システムのような大規模開発になるとオープンソースで無料で利用出来る一般的なフレームワークでは力不足で、大抵の場合、開発が進むにつれて結局崩壊します。

PHPでいえばLaravelやCakePHPあたりが現在に於いての主要な選択肢でしょうが、あれはRuby on Railsを雛形として作られていてRoR自体が『プロトタイピングフレームワーク』という位置づけであるため、同様に、コンセプトをすぐに形にするためのフレームワークと言って良いでしょう。

ですから、簡単なWEBサイトやWEBアプリを作成するのには向いていますが、基幹システムのように大メニューが10以上あって、そのサブメニューがそれぞれ10くらいでトータルで100以上あって、更にそのサブメニューがある機能もあって…、といった感じになると、そもそもそういう事を想定して作られていないのでソースコード管理自体が破綻してきます。

売却されたEC-CUBEがSymfonyベースで作り変えられてリリースされていますが、結局崩壊していますね。この手の一般的なフレームワークは利用する側にもある程度知識がある事が前提となっていますし、システムの方をフレームワークのルールに合わせて行く必要があって、特に、WEBシステムに於いては一番重要とも言えるRDBの取り扱いに対するサポートが不十分ですから分かっていない人が使うとやはり崩壊します。

Feijoa Prototype Frameworkは、そういう巨大なシステムを破綻させず効率的に作るためのフレームワークの整備が目的でした。出発点からして目指している場所が一般的に知られているフレームワークとは違っていたのです。これが、今となっては定番とも言えるフレームワーク『Laravel』が普及した現在に於いても尚開発を続けている理由です。目的が違うのです。

その現在形であるPine Frameworkについては後日、動画などでその利便性について紹介していこうと思っています。

なぜそんな能力差が生まれたのか?

一つの理由としては、書いたコードの性質の差です。

わたしは独立直後から膨大なコードを寝る間も惜しんで書いていました。

それはシステム開発業界にありがちな『設計書の通りにコードを書く』作業ではなく、自分の頭で『どうしたらより良くなるか?』を考えながらコーディングをする仕事でした。

これはLancersでわたしが自分で直接受注したからこそ出来た事です。

設計書通りのコードを書いていると、基本的には他に良い方法があってもその通りに書くしかなくなりますし、やるべき事が決まってしまっているのでその通りに書くだけになって全く頭を使わないコーディングになりがちです。それでは良いプログラムにはなりませんし、良いシステムにはなりません。つまり、プログラマとして全く成長しません。

それが、たった2年足らずで10年ものキャリアの差を覆すまでになりました。

NSEGでの武者修行

もう一つの大きな理由、実はこちらの方が遥かに大きな理由ですが、NSEG(Nagano Software Engineer Group)に参加した事が、WEBエンジニアとしてのわたしの爆発的な成長を促しました。

NSEG

NSEG 長野のIT勉強会

NSEGについては、ほおずき書籍在籍中にmixiのコミュニティでその存在を見つけ、そこの管理者であったすのさんという方を頼って、思い切って飛び込んでみました。

初めての参加は2011年5月の第15回勉強会、これよりも前から同じ長野で活動するWEB製作者のグループid=Naganoにも参加していたのですが、id=Naganoが所謂『意識高い系』のグループであるに対して、NSEGは『本当の意味で意識高い系のガチのエンジニア達』の濃密なコミュニティで、初心者には何を話しているのか全く分からない世界でした。

こちらに過去の勉強会の概要がアーカイブしてもらってありますが、当時主流になりつつあったGitの話や最先端のWEBの仕組みの話、システム開発業界の闇の話等など、つい昨日今日業界に飛び込んだばかりのわたしには、話題に上がってくる単語の一つ一つが既に何の事を言っているのか全く分からない状態でした。

それで『これは、我ながら凄い業界に足を踏み込んでしまった物だ…』と思ったのですが、もう始めてしまった以上後戻りはできません。

分からない単語があったからといって一々質問していたら勉強会に参加している他の技術者さん達の迷惑になるので会の進行の妨げにならないよう人知れずひたすらGoogle検索して意味を調べます。それでも分からなかった事は、勉強会の後にほぼ必ずあった懇親会で聞きます。それでも分からない時は家に持ち帰りです。一人スパルタという表現が適切でした。

そんな事をひたすらくりかえしていたら、1年半も経った頃には、長野市のその辺にいる技術者よりはよっぽどわたしの方が能力が高くなっていました、というのが事実です。

NSEGに飛び込んだ時、『これがプロのプログラマの世界なんだ』と思って必死で勉強しましたが、実は、長野市辺りだと次元が違うくらいにNSEGのレベルが高過ぎただけでした。

とみたさんとの出会い

そのNSEGの中で、NSEGの代名詞的な人と出逢います。

何しろわたしは突然ITエンジニアの世界に飛び込んだので前知識が全くありませんでしたから、最初の頃は特になんとも思っていまでしたし、他の参加者さん達が「とみたさんは凄い」と度々言うのを聞いても特に何とも思っていませんでした。当時のわたしは他人に全く興味がなく、逆に言うと先のような理由で『みんな凄い』と思っていたので取り立ててとみたさんだけが凄いとも思っていませんでした。

それが、どんどん技術の事を勉強していくうちに、WEB検索するととみたさんのブログに行き着いて問題が解決する事が頻発するようになります。

『あれ? この前もとみたさん見た』『今度もとみたさんだ』、ここに来てやっととみたさんがどんな人なのか気になり始めたところにとみたさんがTwitterで妙な事をつぶやきます。

現在 MySQL を日本語で使えてるのは私のおかげなので、みなさん私に感謝してもいいのですよ。

これを初めて見た時は申し訳有りません、『あ、この人は頭がおかしい人なんだ…』と思っていました。

でも違ったんですね。とみたさんは実は、本当に初期の頃のMySQLに日本語のようなマルチバイト文字に対応可能なパッチを作成して公開し、それがMySQL本体に取り込まれたんだそうです。ガチの意識高い系エンジニアの代表格でした。

とみたさんのTwitter

とみたまさひろさんはMySQLコミュニティの成長に尽力したとして第8回日本OSS貢献者賞を受賞されています。ですから、それでなくとも非常に広範な知識のある方ですが、特にMySQLに関しては普通の技術者さん達に比べてちょっと詳しいです(笑。

参考:OSS貢献者賞を頂いたので昔話をします - tmtms のメモ

そして、とても優しいです。わたしは言ってみれば野良ですし、物怖じしていてはやっていけなかったのでかなり無礼な事もあり多くの技術者さん達には少なからず嫌われていますが、とみたさんはいつでもわたしに対してとても紳士的で優しく、何を聞いても誠実に対応してくれました。

とみたさんに限った事ではないですが、基本的にNSEGに参加していた皆さんは優しいです。分からない事があっても、きちんと自分で調べた上で不明点を聞けば親切に教えてくれますし、門外漢のわたしに対しても邪険に扱ったりはしませんでした。

みなさん、とにかく技術の事が大好きで、技術に対して誠実に向き合っている方達ばかりでした。そうでない方はNSEGに参加してもすぐに去っていく感じでしたね。最近までずっとそれが普通の事だと思っていたのですが、実は、そうではない人の方が遥かに多いのが今の日本のIT業界であるという事を痛感しています。

ですから、そういう人達の中で揉まれて、わたしは知らないうちにかなりの実力をつけていくことになりました。ですがそれが、長野のような未開の部族の村社会では命取りになって行きます。

まとめ

この記事では、わたしが何故WEBエンジニアになったのか、そしてWEBエンジニアになった当初はどうであったのかを記しました。

当初は些末な問題こそあれ、順風満帆であったようにも見えます。

ですが、暗黒大陸長野は、想像の枠を超えて来ます。その詳細については、今後の記事に記そうと思います。

※このシリーズに記載されている内容は些末な事を取り上げて大げさに語っているのでは無く、膨大に起きていた杜撰極まりない一般企業体制のほんの一部でありサンプルです。ほぼ全ての事象は詳細に記録されていますので異議申し立て等で必要性が出た場合にはそれら全てを公開します。

新型コロナウイルス感染症『COVID-19』で世界中が大混乱する中、コンピュータウイルス『ラッキービジター』も猛威を振るいまくっていた話

公開日時:2021/04/27 23:27

TL;DR

※TL;DRとは(Too Long, Don't Read.『長すぎるから読まないよ』転じて『要約です』の略語だそうです)

こんにちは。みなさんも少なからず新型コロナウイルス感染症『COVID-19』で不自由な生活を送られている事と思います。中国武漢からの帰国者の方により昨年2020年の1月15日に日本で初めての感染症例として認められて以来、既に1年3ヶ月が経ちます。

県境を超えた移動の自粛要請、初めての緊急事態宣言。この頃はまだ安倍さんが総理大臣でした。

第1波で萎縮した経済活動を呼び起こすために政府により『GoTo キャンペーン』が企画され、2020年7月からそのうちの1つである『GoToトラベル』が施行されそれなりに成果を上げ始めていました。

ですが、2020年11月から第3波と呼ばれるこれまでとは比較にならない程の感染拡大が起き、12月に入ってもそれは衰えず、結果として12月28日を以って『GoToトラベル』は一時凍結されて現在に至ります。

第3波は年が開けてから一旦は終息する気配を見せたものの、2021年3月に入ってから第4波となる感染者数の著しい増加が起こり始め、現在はその第4波の真っ只中です。それまでは比較的罹患しにくかった若年層にも感染しやすいとされるブラジル変異株の出現によって、更に予断を許さない状況になりつつあります。

新型コロナウイルス感染症(COVID-19)統計情報(日本)

新型コロナウイルス 日本 - Google 検索

ウイルス感染拡大しているのは人間だけではなかった

ところで、『COVID-19』を引き起こす新型コロナウイルス『SARS-CoV-2』がこれほどまでに世間的に認知されるようになる前、みなさんが『ウイルス』と聞いて最初に思い浮かべるのは何だったでしょうか?

インフルエンザウイルスか、ノロウイルスあたりかもしれませんね。

わたしの場合はコンピュータ技術者であるため、悪意ある不正ソフトウェアであるコンピュータウイルスが一番身近でした。『マルウェア』とも呼ばれます。気づかない内にパソコン内で実行され、利用者の望んでいない動作をします。そうして、その不正ソフトウェア自身を複製して別のパソコンへと感染を広げる物をコンピュータウイルスと呼びます。

このうちの一つ『ラッキービジター』が、割としゃれにならないくらいに悪質なウイルスだという事は、あまり知られていないようです。

わたしは全くの偶然でこのコンピュータウイルスについて調査をする事になり、その流れで、ウイルス感染したサイト2つを4ヶ月程の期間に渡って観測し続けました。その観測の過程で『これは、笑い事じゃないな』と驚かされる事ばかりでしたので、その経過をレポートとして残したいと思います。

発端

わたしがこのこのウイルス『ラッキービジター』について調査をするきっかけとなったのは、2020年11月26日、私が在籍している会社のグループウェアのスケジュールで、何気なく翌日の社長の予定を確認した事です。その予定表では、長野市のとある企業の会長さんとラジオ番組の打合せを行う事になっていました。

それで『どんな会社さんだろう?』と気になり(日常的な調査です)、何気なくGoogle検索してその企業のWEBサイトを開きました。途端に、これが表示されました。

調査の発端となったラッキービジター感染例

※画像は、この記事を書くために後日キャプチャした物です。

思わず吹き出してしまいました。というのも、このウイルス自体は何年も前から存在していて、比較的有名な物であったからです。

あまり詳しく調べた事は無かったのですが、概要としてはウイルス感染したサイトを閲覧しようとした人のアクセスを上記画面のような詐欺サイトへと転送(リダイレクトと言います)して、そこでクレジットカード情報などを入力させる詐欺ですね。

2018年頃から流行り始め、

  1. ウイルスに感染したサイトを閲覧しようとした人のアクセスを
  2. 海外にある詐欺サイトへとリダイレクトして偽アンケート画面を表示
  3. 『2018年間ビジターアンケート ブラウザー意見アンケート』
  4. 『おめでとうございます! 2018年間ビジターアンケートの参加者に選ばれました!』
  5. Apple iPhone 7 が当たるチャンスを差し上げます!』のようなメッセージで閲覧者を射幸心で煽りつつ
  6. 大嘘のアンケートに答えさせた後
  7. クレジットカード情報等を入力させて盗み取る

というマルウェアです。(※当時の呼称はラッキービジターでは無かったようですね。)

アンケート対象となるブラウザは閲覧者のブラウザを識別して動的に変更しますし、Androidでアクセスしている場合はiPhoneではなくAndroidが当たるチャンスになる仕様だったように記憶しています。

基本的には詐欺サイトへリダイレクトさせるだけなので、そこで何か入力しなければ何も起こらず、ただ『開いたブラウザのタブを閉じればよいだけ』というウイルスの筈でした。

ですからわたしはタブを閉じ、サイトが確かに感染している事を再確認するためにもう一度Google検索から同じリンクをクリックしてその企業のWEBサイトを閲覧しました。

『ん?』

正常に表示されたWEBサイト

今度は正規のサイトが表示されました。(※風評被害が出ないようにサイト画像を加工しています)

わたしの専門がWEBプログラミングなので、職業人として『これはどういう事なのだろう?』と好奇心が湧いてきます。そこで、このウイルス『ラッキービジター』についてわたしの会社の取締役に報告をしつつ、調査を開始しました。

Wordpressに感染するウイルス

ある程度予測はしていたのですが、最初に分かってきたのは、このウイルスは世界で最も利用されているWEBアプリケーションであるWordpressの脆弱性を狙って感染を広げるWordpress専用のウイルスであるらしい、という事でした。

Wordpressはその簡単さと利便性から主に非エンジニアの人達の間で世界中で使われており、非常に悪い事にWordpressはオープンソースといってプログラムコードが誰でも入手できる為欠陥を見つけるのは非常に簡単で、『ウイルスを作って金を騙し取ろう』と考えるような悪人にとっては良い鴨、恰好の餌食と言っても良いアプリケーションです。

また、Wordpressはそもそものプログラムコードの作りが古臭くコード品質も低い為、まともなエンジニアは絶対に触りたくないアプリケーションの一つです。こんな物を365日24時間、世界中のどこからでもアクセスできるシステムとして稼働させている人達の気がしれません。

Wordpressは、そもそもがその名の示すとおりブログを簡単に公開する為の手段として開発されました。ですから、単純にブログシステムとして利用するだけで良かったのなら、Wordpressは比較的優秀なアプリケーションでした。

それが技術力の無いWEB制作会社の目に留まり、システム開発の知識が無くとも動的なWEBサイトを簡単に作れるという理由で世界中で広まりました。その姿勢の是非について問い正したい所は少なからずありますが、とにかく顧客に安く動的サイトを提供できるのは非常に魅力的であったようです。

ウイルスによりリダイレクトされるのは最初のアクセス時だけ

そして次に分かったのは、ウイルスによって詐欺サイトへとリダイレクトされるのは、最初のアクセスの時だけらしいという事です。

どうやらウイルス自身がデータベース機能を備えているらしく、閲覧者の情報、恐らくはリモートホストのIPアドレスとブラウザ情報等を記録し、同一人物と思われるアクセスについてはリダイレクトせず正規のWEBサイトを表示するという仕様のようでした。

ですから、同じ組織内で誰かが一度アクセスしていれば、当然同一リモートホストを使ってアクスしているであろう他のアクセスについてもリダイレクトは起こらず、正規のサイトが表示される事になります。

これは、WEBサイト管理者にウイルス感染している事を気づかせない為の偽装工作のようです。つまり、普段頻繁にアクセスしている筈の企業の中の人達、あるいは管理しているであろうWEB制作会社の人間は、実際にリダイレクトされる現象を現認出来ない為に、仮に閲覧者から『おかしな画面が表示された』という相談があっても『きっと、お客様が何か勘違いしたのであろう』と誤解して対処が遅れる事を狙っているのだと思われます。非常に巧妙です。

感染経路はSEOキーワードでのWEB検索上位サイト

このウイルスは手始めに、WEB検索エンジンを使って感染を試みるサイトを探すようですが、その際に用いるのは『頻繁に検索されるキーワード』つまりSEOキーワードと呼ばれる物であるようです。

沢山の人が検索するキーワードで検索した結果に上位表示されるWEBサイトというのは沢山の人が訪れるサイトなので、リダイレクトされてくる見込み被害者数も当然多い筈であり、母集団が大きくなるので結果として詐欺に引っ掛かる人も必然的に多くなるという図式です。極めて巧妙です。

検索結果として上位表示されたサイトがWordpressを使っているかどうかは考慮しなくて構いません。スクリプト等を書いて全自動で片っ端から手当たり次第に感染を試みます。

WEBサイト運営をしているとWEBサーバのアクセスログに結構な数の奇妙なリクエストが記録されているのを見る事になりますが、あれはこうした理由です。

ナンパと同じで『拒否されるのが当たり前、受け入れてもらったらラッキー』みたいなところを、一切人力を使わずにコンピュータに自動でやらせています。悪人は基本的に寝て待つだけです。

例えば、これはわたしのこのサイトのアクセスログですが、しょっちゅうこんな感じでWordpressサイトであるかどうかを調べる為のリクエストが来ています。

不正アクセス1

この不正アクセスを行っているovh.caはトップレベルドメインが.caなのでカナダですが、ドメイン管理会社はアメリカのオレゴン州シャーウッドにあるporkbun.com | An oddly satisfying experience.で、安価でドメインやホスティングを提供するアメリカ版ロリポップみたいな会社のようです。

porkbun社

不正アクセス2

2枚目の画像の上のアクセスはおそらく手動によってSQLインジェクション脆弱性が存在しないか確認しているリクエストですね。

IPアドレスをWhoisで調べてみるとMicrosoft Corporation (MSFT)らしいですが、恐らくは、よく知られているMicrosoft社とは違うでしょう。

レセプターはWordpressのXML-RPCらしい

Wordpressには、外部から直接Wordpress本体と通信を行うためにXML-RPCという仕組みが備わっています。つまり、Wordpressにログインして管理画面上で操作したり、あるいはサーバにログインしてファイル操作を行ったりといった事をせずに外部からWordpressを操作出来る仕組みです。

WordPressのxmlrpc.php詳細ガイド(xmlrpc.phpとは、セキュリティリスク、無効にする方法)

もう、聞いているだけで危険な仕組みで、やはり、ラッキービジターはこれを利用して感染するようです。

昔のWordpressでは管理画面上でこの機能を無効にも出来たようですが、無効にすると動作しないプラグイン等があるらしく、闇雲に無効にしてしまえば良いという訳でも無いようです。また、何も知らない人が初期状態でWordpressを導入するとこの機能は有効となっているようです。

そして、現在のWordpressではそもそも、無効にする事が出来ないようです。

このため、この機能を無効にするためにはWEBサーバの設定ファイルで機能を提供しているxmlrpc.phpへの外部からのアクセス自体を拒否する必要があるようです。(※前述のようにWordpressは触りたくないため、現在どうなっているかはよく知りません)

『非エンジニアでもWEBサイトが簡単に作れる』という事を売りにしているアプリケーションで、WEBサーバの設定ファイルに詳しい人なんているんでしょうか? 本当に謎のアプリケーションです。

1つのサイトが感染すると、同一サーバ内にある他のWordpressにクラスター感染する

更に恐ろしい事が分かってきます。

このウイルスは、1つのWordpressサイトが感染すると、同じサーバ上で稼働しているWordpressを見つけて、手当たり次第に感染を試みるようです。もはや、極悪と言えます。

リダイレクト先は頻繁に変わる

そして、肝心の詐欺サイトであるラッキービジター・アンケート画面のドメインは複数存在します。

また、同じサイト経由でリダイレクトされる先もしょっちゅう変わります。追跡と特定を回避するのが狙いでしょうね。

リダイレクト自体もいくつものサーバを経由させるようで、そもそもが全て同一犯による犯行では無い可能性の方が高く、ドメイン名でフィルタをしたとしてもイタチごっことなるでしょう。

ウイルスの詳細と対処法を管理職に報告し、一旦調査終了

以上のような事を取締役に報告、『ラジオ番組の打合せの際に、出来るだけ事を荒立てないように会長さんにそっと伝えて下さい』と伝言して、調査を終えました。

事を荒立ててしまうと必ず現場の人、場合によっては管理を行っているWEB制作会社の担当者が地獄を見る事になる為、人知れず闇に葬ってもらうのが狙いでした。

ですがこの後、予想もしなかった事態へと発展していきます。

2ヶ月以上経っても、ウイルスは除去されていなかった!

それからわたしの方で目まぐるしく様々な事が起こり続け、その企業のラッキービジター・ウイルスについては完全に失念していました。

ですが、2020年12月末に1回、2021年の1月後半になってからもう1回『あそこ、どうなっただろう?』とふと気になりGoogle検索してアクセスしてみました。

また、リダイレクトされました。

ある程度予想はしていましたが、流石にため息が出ました。悪い方に予想通りだと本当に脱力します。

更にため息が出る事態になります。新型コロナウイルスに興味を持ったわたしが、その2ヶ月の間に訪れた様々な長野市のお店の現状について記事を書こうと思い、長野駅の傍にあるそこそこ有名な商業施設をGoogle検索してアクセスしてみた所、やはりラッキービジターが表示されました

後日のchromeの履歴

これは同サイトの、2021年3月後半のchromeのアクセス履歴画面です。明らかにリダイレクトされていますね。(※そして3月28日の履歴です。もう、この後どうなるかが予測可能ですね?)

このそこそこ有名な商業施設、長野では別の意味で有名でかなり問題のある会社名が冠として付いています。

おそらくはその商業施設を買ったのではないかと思うのですが、この会社、昔からあちこちのビルの屋上など目立つところにある看板に“広告として”大々的に会社ロゴを出して『あたかもそのビルが自分の会社のビルであるかのように錯覚させる』という手法を使っている会社なので、あるいは勝手に名乗っているだけである可能性も捨てきれません。

そこそこ有名な商業施設の正規サイト

(※風評被害を避けるため画像は加工してありますが、長野の人だと何となく分かりますね。)

ウイルスが強毒化していた

まぁ、そういう感じの会社なので『どうせWEBの仕組みについて何もしらない経営層が“Wordpressなら簡単だろ?”みたいな感じで従業員に作らせてメンテナンスしているお手製のサイトなんだろうな』くらいに考え、

『そりゃ、感染するのも無理ないわ』

と思いながらブラウザのタブのクローズボタンをクリックした所、

再度、別の詐欺サイト画面が“新規タブ”で開かれました

え!?

それはもう驚異でした。昔のブラクラが流行した頃の古いブラウザならいざ知らず、現在のWEBの仕組みというのは非常に安全を考えて作られているので、WEBページ内でのイベントはWEBページ内で完結しており、その外側にあるブラウザ本体の操作に干渉する事は出来ない筈でした。

ですが、その商業施設に感染しているラッキービジターがリダイレクトした先にある詐欺サイトは、ブラウザ本体のイベントを捕捉して新たなWEBページを開けるのです。

確かにわたしはWEB専門のエンジニアですが、諸般の事情によりここ1年以上は開発の現場から遠ざかっていた為、恥ずかしながら何が起きたのかすらわかりませんでした。可能性としてはbeforeunloadイベントで新規ページを開いているのだと思いますが、昔わたしが試した時はそれは出来なかったように記憶しているのですが…。

それで、『悪い事をして金儲けしようとする人の自己研鑽は目をみはる物があるな…』とある意味感心しながら、その会社はややこしい会社だから取り敢えずは放って置くとしても、当初の企業さんの方は何とかした方が良さそうだと思い始め、企業サイトにアクセスし直して正常に表示されたWEBサイトに掲載されている電話番号に直接電話を掛ける事にしました。

電話でウイルス感染を報告した所、予想外の返答が返ってきた

初めて電話する企業なので十分敬意を払って電話せねばならず、少々疲れる作業でした。

相手の不備を指摘してあげるだけなので明らかにわたしの方が立場は上ですが、相手企業が悪いわけでは無い可能性の方が高いので相手を責めるような事は出来ません。

電話口に出たのは確か、壮年期といった声色の男性、総務か何かのそれなりの役職の方ではないかと思います。それで、出来るだけ丁寧に事情を説明しました。

お忙しいところすみません。実はわたしの会社が昨年末に御社と関係が出来た時に御社のWEBサイトを確認したところ、ウイルス感染している事に気づきました。それで今日はその事をご連絡しようと思い、こうして電話しました

というような感じで事情を話した所、電話口の男性は、

ええ!? そうなんですか!?

と驚きの声を上げました。

『そりゃ、突然こんな事言われたら驚くわなぁ…』

と思いながら、

それで、その時に対処方を全部調べておいたので、もしよろしければその情報をお知らせしようと思うんですが…

と、完全に善意で情報の提供を申し出始めた所、相手が放った一言が、

いえ、こちらで調べさせるので大丈夫です。

という、予想だにしない物でした。

それで『え!?』っとなったのですが、相手が『自分で調べる』と言っている以上、押し売りではありませんからそれ以上掘り下げる訳にも行きません。

ですから、

ああ、そうですか。では、よろしくお願いします。失礼します。

とだけ言って、電話を切りました。大いに信用なりませんが、まだ相手が何もしていない現状ではそれ以上の事は出来ませんでした。

何よりも問題なのは、想像していた通り、前年2020年11月26日にわたしが私の会社の取締役に報告した情報は、一切相手企業に伝えられていませんでした。既にここに社会の闇を感じざるを得ません。

3月に入っても状況は変わらないどころか、更に悪化する

2月中は新型コロナウイルスに関する調査資料を書いていて、上記2サイトがその後どうなったのかは全く見ていませんでした。

それが、3月の中頃、やっと余裕が出来てきたので状況確認を行います。まずは、最初の企業。

相変わらず感染中のサイト

アクセス履歴

完全に予想通りでした。相変わらず感染しています。

以前と画面が違うのでリダイレクト先が変わったようですね。しかも、最後の勝者はNaganoにいるYamakawa Midoriさん(名前はランダムと思われる)、明らかにわたしのリモートホストのドメイン情報を見て文言を生成しています。完全にプロの詐欺師の手口です。

こちらで調べさせるので大丈夫です』と言った企業ですが、何をどのように調べたのか理解不能です。恐らく、何一つ調べていないでしょう。

それともう一つ、商業施設のサイト。こちらはとんでもない事になっていました。

更に強毒化したラッキービジター

Google検索して問題の商業施設サイトにアクセスした途端、突然、NortonLifeLock 360 premiumが、ポップアップ警告を出しました。

NortonLifeLockの侵入遮断ポップアラート

えー―――――――!?

もう、目が点になります。こんな挙動、今まで一度も見た事がありません。

すぐに『詳細を表示する』をクリックして、遮断の内容を確認しました。

遮断の詳細

(※後日、この記事を書くために同サイトにアクセスして検証した際のキャプチャです。)

この『Malicious Site: Malicious Domain Request 22』の意味は何だろう? という事で、この文字列でGoogle検索を掛けてみました。

Malicious Siteの検索結果

Google検索結果の画面がこれです。

この検索結果上位3番目に表示されている、アクセス済みを示す色が変わっているサイト、何だと思いますか?

ここにアクセスすると、再びリダイレクトされてこの警告が出ます!

NortonLifeLockの侵入遮断ポップアラート

あまりにも綿密に練られた計画的犯行! もはや、蟻地獄!

ちなみに、上記ページのGoogleキャッシュ。(※メジャークローラでは詐欺サイトへのリダイレクトは行わないらしい)

検索結果の正規ページ

検索結果に引っかかりやすいように、SEOを考慮して適切にキーワードを埋め込んでいるようです。敵ながら見事としか言いようのない、何重にも重ねた巧妙な作戦です。

詐欺師、恐るべし!

遮断している攻撃は、一体何をしようとしているのか?

Google検索して色々な記事を読んでみたところ、何らかのファイルをダウンロードさせようとしているのでは? という仮説を立てているサイトがありました。つまり『マルウェアをダウンロードさせようとしている』と考えるのが妥当でしょう。

これを別の何らかの脆弱性を使って実行させてそのPCを感染させるのが狙いであると考えるのが良さそうです。

どんなマルウェアかというと、最近の流行りで一番考えられるのは仮想通貨をマイニングさせるマルウェアだと思います。

わたしはNortonLifeLockが防いでくれていますが、Windows DefenderやあるいはMacintosh等の場合はどうなのか? といった事は、全く分かりません。そら恐ろしいばかりです。(※上記NortonLifeLockの警告でクライアントがMACBOOK-PROとなっているのは、ポリシーとしてMacのBoot CampでWindowsを動かすのがわたしの生きがいだからです。)

事態は更に泥沼化

4月に入り、状況は泥沼化します。

まず、当初の企業WEBサイト、停止しました

4月第2週目に入った頃から、500 Intenal Server Error 画面になりました。

Internal Server Error

(※キャプチャしていなかったので作った再現画像。)

やっとウイルス感染に気づいて対応を始めたようです。わたしが最初に感染を見つけてから実に、4ヶ月以上が経っていました。

4月7日から10日にかけて毎日アクセスしてみましたが、ずっと500 Intenal Server Errorのままです。

もはや、何をしているのかすら分からなくなってくる…。

そして4月15日、進展があります。PHPの致命的エラー情報が表示されるようになりました…。

PHPの致命的エラー画面

Permission deniedというところがもう素人丸出しです。恐らくここをメンテナンスしている人達は、恐らくLinuxであろうサーバOSの事を何一つ知りません。本当に頭が痛くなってきます。

そして4月19日、サイトが稼働し始めますが、相変わらず、リダイレクトされます。それも、今まで見たこともない全く新しい詐欺サイトへ!

更にリダイレクトされた全く新しい詐欺サイト

この詐欺サイト、HTTPSでアクセスさせているのでSSLの証明書情報を見てみました。

SSL証明書

案の定、無料で誰でも取得できるLet's Encriptの証明書です。しかも、証明書発行日は4月16日、つまり3日前です。となると、このサイトのドメインについても調べたくなります。

Whois情報

ドメイン取得日も同日の4月16日でした。この詐欺師、アジリティが高すぎます。(Agility:俊敏性、機敏性)

ウイルス感染を電話で連絡してから2ヶ月以上経ってやっとノロノロと対応を始めた感染元サイトとは、あらゆる面で機動力が違います。

もう一方の商業施設のサイトも、相変わらず感染したままです。しかも、いつの間にか『必ずリダイレクトされる』ようになっています。もう、目も当てられません。

最初の企業の時に電話連絡しても無駄だったので、この商業施設ではサイト上にあるFacebookプラグインから企業ページにアクセス、3月16日にMessengerにてコンタクトを取ってみたのですが、完全に無視でした。

Facebook Messenger

もう、筋金入りです。

わたしが相手の事を考えて事が公にならないように裏でこっそり連絡をしてあげても、どこも全くまともに対応しようとすらしません

新型コロナウイルスに始まった事ではないですが、世間のみなさんはなにかあると政府の対応の不備をやり玉に上げていますが、一般企業も似たような物です。みんな、自分の責任になるのを恐れて隠蔽ばかりしていて、誠実な人間なんて殆ど居ません。

世間が新型コロナウイルスで大混乱している時に、あなた達、一体、何してるんすか!?

本当に、頭を抱える事となりました。

近況

最初の企業さんですが、なんとか再構築が終わったようです。(※2021年4月27日現在)

現在の企業サイト

リダイレクトはされませんが、まだSSL/TLSは導入出来ていないようですね。今どきはSSL/TLS通信が導入されていないサイトのランクは低く設定されますので、企業宣伝として『ホームページ』を運営しているのなら、早めに対応した方が良いでしょうね…。

これ、わたしが2021年1月末に電話連絡した時にちゃんとわたしの話を聞いていれば、こんな事にはならなかった筈なんですけどね。

もっと言うと、わたしが私の会社の取締役に事情を話した時に相手企業と話をしてくれていれば、2020年中には解決していた話なんです。世の中って、こんな人間ばかりなので溜息が出てきます…。

結語

この問題の何が難しいかというと、今の日本の法律では『あそこのサイトはウイルス感染している』というような事をおおっぴらに言うことは許されない、という事実です。

そういう事をすると、自分たちの不備でウイルス感染“された”サイトの管理者ではなく、公にした“わたし”が罰せられます。もう、言ってる事が何もかもメチャクチャです。

最初の企業の場合はそこにアクセスしてくるお客さんが減るだけの話なのでその企業だけの問題ですが、商業施設の方は公共施設と考えて良いため、そこを管理している企業だけの問題では無いでしょう。テナントもたくさん入っていますし、何より一般のお客さん達が何も知らずにアクセスしてくるサイトです。

NortonLifeLockが通信を遮断している以上何らかの不正なアクセスが閲覧者に対して行われている事は明らかで、何も知らない一般のお客さんが被害にあっている可能性は無視できませんが、こちらとしては何も出来ません。

こういう場合に、『一体、どこに相談したら良いのか?』という明確な基準が、今の日本にはありません。IPAに届け出る程大きな影響力のある脆弱性とも思えないからです。

妥当なところだと警察の生活安全課あたりでしょうが、恐らく、あそこの人達はデジタルの事は何一つ分からないでしょう。政府がデジタル庁を作りたい気持ちが分かります。

もう、完全にお手上げです。

上記2サイトについては引き続き状況を見守りますが、これはWordpressを利用する全てのサイトに関わってくる重要な問題です。

Wordpressの何がマズいかと言うと、よっぽど知識がないと、サーバから送られてくるHTMLのソースを一目見ただけで『Wordpressで構築されている』という事がすぐに分かる程、独特なディレクトリ構造を採用している事です。

巷のWEB制作会社の人達は、裏側の仕組みの事なんか全く分からないのに『Wordpressなら安くて良質のサイトが作れます』と言って、どんどん布教活動を進めています。こんな危険なアプリケーションを勧める精神が理解出来ません。

確かにWEB制作会社の人達は、それなりにセキュリティ対策を行っているでしょう。

ですが、表向きのディレクトリパスを書き換えてWordpressである事を隠蔽するような高度な知識・技術を採用しているサイトは、本当にごく僅かです。

何よりも、裏側で実際にどのような処理が行われているかについては、殆ど全てのWEB制作会社の人達全員が、全く理解していない筈です。何かあった時に、本当に対応、出来るのでしょうか? 『世界中の有志が居るから大丈夫だ』とか考えていそうな勢いなので、本当に良心を疑いたくなります。

材料に何を使われているか分からない食事を提供する料理屋が居たら、信用して食事を食べられるでしょうか?

その辺のところを、みなさん、もう一度よく考えてみた方が良いと思います。

なお、サイトがラッキービジター・ウイルスに感染してしまった時の対処方法は、恐らくこれらのサイトが役に立つのではないかと思います。

参考:ワードプレスサイトがウイルス感染したときの対応策 | 中古ドメイン騎士オーラン

参考:【WordPress】「ラッキービジター」ウイルスの駆除とその予防方法とは? | SEの良心

参考:ラッキービジター詐欺で使用されるPHPマルウェア - JPCERT/CC Eyes | JPCERTコーディネーションセンター公式ブログ

記事リンク