今回はメカAGさんのブログからご寄稿いただきました。
■遠隔操作ウィルス事件のコードプロファイル(メカAG)
「まるで“第二のキラ”:遠隔操作ウイルス事件、コードプロファイリングから浮かぶ「気持ち悪さ」」 2014年06月06日 『@IT』
http://www.atmarkit.co.jp/ait/articles/1406/09/news013.html
シャーロック・ホームズのパロディを思い出してしまった。ホームズの推理力は素晴らしく、初対面のワトソンにいきなり「最近までアフガニスタンにおられたでしょ?」と言い当てて度肝を抜く。一方で、その推理はかなりご都合主義で、ホームズの推理とはまったく違う可能性もありえることを、パロっていった。
まあでも名探偵の推理というのは程度の差こそあれ、ご都合主義だよね。確かにある程度高い可能性を持っているが、あくまで順位の1位という程度の意味しかなく、2位が正解というのもありえるわけで。
プログラムのデバッグも、いろんな状況を分析した結果「きっとこれだ」と、確信を持った判断が外れる。つまり入手している情報は十分ではなく、あくまで入手した情報の中でベストな可能性を推測しているだけだからだ。
ホームズのパロディも、詳細はよく覚えてないが、ホームズが何かの所持品から持ち主の素性を一生懸命推理したのに対して、「ああ、あれは来る時に拾ったんだよ」とあっさり切って捨てるのがあったような。
* * *
遠隔操作ウィルス事件の犯人の技術力が高度か否か。これは犯人の技術レベルに関する推測の差というよりも、「高度」の基準をどこに置くかの違いだと思うのだよね。ようするに体重の見積は皆同じで、それを「太っている」と表現するか否かの差だけ。
例えばソフト開発をやっていると、馬鹿なプログラマは無数にいる。プログラマに向かないような人間が仕事でプログラムをしている(まあ、プログラマに向かない人間は趣味ではプログラムしないだろうけど)。
なので意外とソフト開発に携わり、そういう悲惨な状況を知っている人間の方が、「高度」の基準が緩かったりする。コピペしかできず、やることを1から10まで教えてやらないと何もできないプログラマに比べれば、自分でTorをどう使えば身元を隠せるか、設計できる犯人は「高度」なのだ(笑)。
* * *
むろんその程度のことはまとおなプログラマならできて当然。だから案外趣味でプログラムしている人間なら、「その程度のこと、俺だってやろうと思えばできるのに、なんで高度なんだ?」と思うわけだ。
趣味で(さらに趣味の延長で仕事で)やっている人間が、自分を基準にすれば、そう考えるのは無理からぬ事。かくて専門家が「高度」と判断し、素人が「高度じゃない」と判断するような逆転現象が生じる。
* * *
犯人を「高度」と判断していたブロガーに高木浩光がいる。彼自身JavaHouseという技術系コミュニティを主催し、1990年代頃の日本のJavaの普及に多大な貢献をした人間だ。彼自身結構なレベルのプログラマ(少なくとも当時は)。
最近はセキュリティ関連のことばかりやってるから、プログラミングの方は現役ではないのかもしれないが、こうした「考え方」の能力の部分は、現役を離れてもそうそう劣化しないだろう。
まあ同時に彼はJavaHouseでさんざんド素人を相手にしてたので(苦笑)、その意味で「高度」の基準が低くても不思議はない。いや、その辺彼が何を考えてるのかしらんけど。俺は彼が嫌いだしw。だって横柄でムカつくじゃん。まるで鏡を見てるようw。
* * *
一方容疑者の能力の方は、どこかの会社に派遣されてそこで常駐してプログラムをする人間となると、第一印象としてあまりレベルの高いプログラマという印象ではなかった。むろんそういう仕事をしているプログラマにも高度な技術を持った人たちはいるが、彼の経歴からして失礼だけど、そうは見えなかった。
とはいえそういう人間でも潜在的にプログラミングが好きな人間なら、自己流であれこれプログラムを作ることはあるだろう。
遠隔操作犯人が見せるアンバランスさ、ある部分異常に慎重であるかと思えば、ある部分はとんでもなくずさんという素人の自己流っぽさは、一面共通点があるともいえる。
* * *
iesys.exeのコードの質について、自動生成ツールが生成したままの変数名Form1とかをそのまま使ってたり、あちこちからコピペしている点を、「素人」「レベルが低い」と評する人達がいるけれど、これはそれほど単純ではないと思う。
プロでも手を抜くことは多い。といよりもプロだからこそ、割りきって手を抜く時はおもいっきり手を抜く。アマチュアが趣味で丹精込めて書いているコードと、商売でコードを量産しなければならないプロとの違いかもしれない。
また変に自分のオリジナルで作るよりも、既存のコードをそのまま使ったほうがバグも少ない(ことが多い)。なまじアマチュアだとどうしてもコードに愛着がわき、自分流にあれこれ直してしまって、かえって余計なバグを生んで墓穴をほったり。でもアマチュアの場合そういうのを含めて「楽しい」んだよね。
なのでiesys.exeのそういう部分を見て、作者のレベルを推し量ると、両極端に分かれると思う。プロが絶妙な判断で割りきって最小限の労力で必要な機能を持つコードを仕上げてるのだと言う見方もあれば、出来合いの中身もろくに理解せずにコードを継ぎ接ぎしただけの素人の作品という見方もできる。
まあ、ようするにどの側面を強調するかで、180反対の筋の通ったそれっぽい推理ができる。
* * *
「犯人は高度な技術をもっている」というそれっぽい説明もできるし、「犯人はあまり高度じゃない」というそれっぽい説明もできるということは、同様に「容疑者が犯人である」という状況証拠にも使えるし、「容疑者が犯人でない」という状況証拠にも使えるということ。
で、それを「犯人の可能性がある」という部分に力点を置くか、「犯人でない可能性がある」という部分に力点を置くかで、意見が真っ二つにわかれるわけだ。
* * *
もう一つ。容疑者が早い時期から「自分はC#の経験がない」と主張していた点。これも180度逆の見方が同時に出来る。ソフト開発に携わっている人間なら、C#の経験があるのに、経験がないとウソを付くのは難しいことがわかっているはず。たった一人でずっと開発しているならいざしらず、複数人で開発する以上は、そういう経験はそう簡単に隠せない。
つまりそれでもなお容疑者が「自分はC#の経験がない」と主張するなら、その主張を押し通せる勝算がそれなりにあるのだろう、という見方ができる。いってみれば詳しい人間ほど、「嘘をついたら簡単にバレる」とわかっているので、「嘘ではないだろう」という印象をもっても不思議ではない。
これは仕事先のPCにウィルスの開発痕跡がないという主張も同じで、痕跡というのは用意には消せないんだよね。あちこちに残る。ハードディスクをフォーマットして全部インストールし直すのでなければ、ちょっと表面的に削除しただけではいろいろなところに痕跡が残る。
んで、それでもなお「痕跡が見つかるはずがない」と容疑者が自信を持って主張するなら、本当にないんだろうと考えても不思議ではない。嘘を突き通す難しさを正しく見積もれるからこそ、逆に嘘をついていないのだろう、という推理。まあ、この点は結果的に裏目に出てしまったが。
* * *
今回の件に限らないけれど、専門家とド素人の判断がたまたま一致し、その中間層の判断だけが違うという現象は割とあると思う。下駄を投げて占った天気と気象衛星を使った予報が結果的に同じで、空模様を眺めた推理だけが違う、みたいな。
でも結論は同じでも下駄の天気占いと気象衛星の予測は、中身が違う。それをもって何億円もかけた気象衛星の価値は下駄と同じだという人はいないだろう。
また(これは冒頭の記事とは関係ないが)、ネットのあちこちで「容疑者が怪しいのは最初から明らかじゃん」という人たちがいるけれど、そりゃ怪しいか怪しくないかといえば、怪しいだろう。過去に同様の事件を起こしてるわけだし。しかし「怪しい」=「犯人だ」という安直な思考が冤罪や誤認逮捕を生んでるわけで、そういう主張をする人たちは、これからも冤罪や誤認逮捕が繰り返されていいと思ってるんですかね。
執筆:この記事はメカAGさんのブログからご寄稿いただきました。
寄稿いただいた記事は2014年06月13日時点のものです。
■関連記事
「痩せすぎ」「目が死んでる」加藤茶さんのブログの写真に体調を心配する声が多数
「アッコにおまかせ!」スタッフに苦言の落合弁護士TBSの幹部クラスから謝罪があったと『Twitter』で明かす
【ひと先試食】スタバの新商品はずっしり贅沢!『コーヒー ジェリー フラペチーノ』はこの夏一度は飲みたいデザート
“iOS 8”に現時点で対応していないアプリ『Chrome』は全く使えず『LINE』はスタンプのみ使用不可
『AKB48選抜総選挙』の渡辺麻友でもない“真のセンター”のメンバーが話題に!
コメント
コメントを書く