2011年1月18日火曜日

「アウトソーシング」の危険性

最近、若い「元プログラマ」に会うことがありました。
「元」というのは、現在はその仕事をよしちゃってるからです。

プログラムを組む、つまりコーディングは好きだ。でも、就職した会社ではコーディングはほとんどやらせてもらえなかった。
コードの多くは中国に外注して、日本人は全体の設計をする、というのが主流なのだそうです。そこで彼が何をやらされていたかというと、プログラムのテストとか。

プログラムにはバグがつきものですが、通りいっぺんの使い方では、それが明らかになることはすくない。
(昔のMicrosoftのアプリケーションでは、思いっきりバグ丸出しがありましたけど)

そこで、「テスト」が必要になってきます。
どういうことをやるかというと、「通りいっぺん」ではない使い方をいろいろ試みるのだそうです。
ABC……と手順を踏むのが正しい使い方とすれば、それをACBとか、CABとかの順番でやってみる。すると、欠点や誤動作があらわになったりする。

人間の行動をすべて規制することはできません。
ペットボトルのジュースはたいがいの人がフタを空けて飲むけれども、中にはボトルの底に穴を空けて飲む人がいるかもしれない。ジュースなら別にどんな飲み方してもいいわけですが、プログラムの場合、「底から」が重大な欠陥となる可能性がある。具体的には、そこがセキュリティ・ホールとなって、第三者の侵入やイタズラを奨励してしまうようになってしまったりする。

システムへの不法侵入者、いわゆるクラッカーは、そういうところを常に探しています。上級者になると、「なんとなくここが弱そうだ」というのが、カンでわかるのだそうで。
これは、コンピュータ・セキュリティを専門にやってるエンジニア(要は防御の専門家ですが、防御するには攻撃の手段を知らなければならず、攻撃者にもなれる能力をもった人です)に聞いた話です。
「当たり前ですけど、攻撃者だってプログラムの全部を見ることはできないんです。でも、なんか臭うんですよね。『このへんが弱そうだ』って。……で、そのあたりを見てみると、やっぱり弱いということがすごく多い」
テクノロジーの最先端で動物的カンが働く、というのはおもしろいですが、今回お話ししたいのはべつの話。

コーディングを中国に外注、すなわちアウトソーシングするというのは、企業としては正しい選択だと思います。複雑なプログラムはひとりではつくれないわけで、しこしこコードを書く人が大量に必要になる。すると人件費がべらぼうにかかるわけですから、それを外注して安く済ませようというのは、企業なら当然のことです。

でも、一方で外注された国の技術レベルは、どんどん上がっていきます。
ご存じの人も多いと思いますけど、サーバ侵入の自動攻撃(たとえばID/パスワードとなる文字列を大量に送り、合致するまでそれが続く)なんかは、たいがい中国からといわれています。
Googleは中国でのビジネスから撤退してしまいましたけど、理由として「中国からのサイバー攻撃が絶えないため」というのを第一に上げています。クラッカーは、中国にたくさんいる。それは世界的なコモンセンスです。

だとすれば、「中国にアウトソーシング」は、そうした悪玉を増加させていることにならないか。
なんでもそうですけど、プログラミングだってやればやるほど実力がつきます。昼は日本から注文されたコードをしこしこ書いて、夜は日本企業のサーバに侵入している。そんな人はいくらもいるでしょう。聞いた話では、中国のクラッカーは組織化されていて、勉強会もたびたび開催されているという話です。

アウトソーシングはたいへんけっこうなんですけれども、「プログラムをつくった人」が「穴を見つけて侵入する」のって、すごく簡単な気がします。
日本人がやっている「テスト」が十全ならばそれで問題ないわけですが、「プログラムをつくる人」は「テストの裏をかく」ことも容易だろう。
すこし肌寒い気がしたのですが、それはシロウトの杞憂でしょうか?


This Page is created on Ubuntu Linux 10.10.
Ubuntu installed on IBM ThinkPad X41(The Last IBM Model - SSD remodeled.)

1 件のコメント:

  1. 私もその様に思います。
    支那人の方は怖いように思います。
    私もあなたの意見に賛成です。
    あなたはいい事を書かれている方の様に思います。
    支那人の方には気をつけましょう、そうしましょう。

    返信削除