53: _ 03/04/28 00:18 ID:Jv0RqavI
韓国人と仕事して困ったことと言えば・・・。 

漏れが派遣されたとある職場で、韓国製パッケージソフトの導入が決まった。 
韓国でも大手のソフトハウスで、WEB受注パッケージだった。 
それはASP+MSSQLで構成され、まあ機能の割に値段が安かったので、損な導入では無いと思っていた・・・。 

保守は派遣先企業の情報システム部のSEさんが担当し、漏れはそのシステムには一切触れることは無かった。 
※そのSEさんはASPは読めない。 


スポンサーリンク
スポンサーリンク



スポンサーリンク



それなりに平和な日常が過ぎ去っていたある日。

その事件は起こった・・・。

続く。

54: 53 03/04/28 00:24 ID:Jv0RqavI
続き

皆さんの記憶に新しい、スラマー事件が起こった。
日曜の昼、スラマーの実態が掴めてきた。そして、嫌な予感が脳裏をよぎった。
「まさかね・・・・・・」

月曜の朝、その予想は現実のものとなっていた。
WEB受注システムがスラマーに感染していたのだ。
担当SEさんは日曜に出勤し、既に対策を行っていた為たいしたことは無かったのだが。

それで解決したと思っていた・・・。

続く。

55: 54 03/04/28 00:37 ID:Jv0RqavI
続き

その日の午後、情報システム部の部長が私を呼んだ。

部長 「○○(システム名)のウィルス感染は聞いてると思うんだけど、以前から少し挙動がおかしいようなんだ」
漏れ 「挙動がおかしい?」
部長 「担当者は経験が浅くてね。君、ちょっと手伝ってやってくれないか?」
漏れ 「はい、解りました」

漏れはASPコードのレビューをすることになった。
これが、さらなる事件の幕開けだった・・・。

ソースをレビューして30分後。

漏れは、唸った・・・・・・。

そのコードには、トランザクション処理が、無かった。

57: 55 03/04/28 00:53 ID:Jv0RqavI
54の続き・・・。

あまりに「アレ」な出来のコードを見て、担当者と相談することにした。

漏れ 「これでよく動いてますね・・・。これ、やばいですよ」
SE  「そんなにヤバイの?」
漏れ 「ええ、データを保存してる最中にネットワークが遮断されたら、その受注データはお陀仏です」
SE  「それほんと?」
漏れ 「データの整合性が保てませんし、この採番テーブルが更新されず、受注番号が既存データと重複する危険があります。
    そうなったら、プライマリキー制約で受注ができなくなります」
SE  「それはまずい・・・・・・部長に相談してくる」

かくして、受注WEB改修プロジェクトが発足する。

しかし漏れは、このとき重大な命令文を見逃していた。
韓国人プログラマは、更なる落とし穴を用意していた・・・・・・

続く。

58:   03/04/28 01:00 ID:qRcLQ5Aq
>55
頼むからもっとまとめてから書け。
ついでに専門用語が多いので、専門外の人間が読んでも
何処がダメなのか非常に判りにくい。


59: 57 03/04/28 01:04 ID:Jv0RqavI
続き。

深夜、ソースを修正していた漏れは、ふとURLの引数をいじってみた。
「http://ime.nu/www.~ORDERNO=E90098」という名の引数の98を・・・97にしてみた。

すると、たちまち見ず知らずの人の受注データが表示されたではないか。
漏れは、錯乱した。

漏れ 「こ、こここ、こ・・・これ・・・・・」
SE  「どうしたの?ちゃんと動いてるみたいだけど・・・」
漏れ カチャカチャ・・・タンッ! ← 震える手で、キーボードを叩く
SE  「え?」
漏れ 「・・・・・・ここ、顧客データが漏洩している可能性があります・・・」
SE  「え?え?なんで・・・って、カード番号とかもでてるぅ!」
SE  「た、たたた大変だぁ!ぶぶ部長の携帯に連絡する!」

かくして、仕事量が倍になりました。
会社内でも凄い問題になりましたが、真実を知っている人間が漏れとSEさんと上層部のひとだけだったので、
会社としての信用を失墜する前に対策がとれたのがせめてもの救いです。

韓国系ソフトハウスは、顧客情報なんて屁とも思ってないのか・・・。

60: 57 03/04/28 01:23 ID:Jv0RqavI
>>58
スマンす。用語の解説を以下に。

ASP = Active Server Page の略。VBの簡易版言語。あるていど簡単にプログラムが出来る。

MSSQL = Microsoft SQL Serverの略。マイクロソフト製データベース。スラマーに簡単にやられる。

ASPコードのレビュー = ここでは、プログラムの内容をチェックし、問題点を洗い出す作業のことです。

トランザクション処理 = データベースへデータを保存中に事故が起こっても、処理を行う前に戻せる処理のこと。UNDOとか、Ctrl+Zみたいなもの。
               データの整合性を保つ為に絶対必要。
               「Begin ~ 処理 ~ Commit」 ←この、「Begin」から「Commit」までの間に事故が起きたら、「Rollback」する。
               そうすると、「Begin」直前まで処理をなかった事にしてくれる。

データの整合性 = データに矛盾が無いこと。

採番テーブル = シリアル番号とかの連続した番号は重複すると大変にまずいので、採番テーブルをつくって、
          そのデータを1づつ加算し、確実に連続した番号を取得するよう工夫している。

プライマリキー制約 = データベースにはプライマリキーというのが設定できて、プライマリキーに設定された項目は値の重複が許されない。
              もし重複した場合、データの保存が出来ないようロックされる。


61: 03/04/28 01:27 ID:bkmmoNPj
引数変えたら他の人のメールが読めたとかいうトラブルあったよな・・・w

フリーメール並かいな。

62: 60 03/04/28 01:36 ID:Jv0RqavI
んで、何が問題だったかというと・・・。

ネットワークが遮断されても問答無用でデータを保存し、かつデータがぶつ切りになっても気にしないプログラムになってた。
※通常の場合、何か事故があったら処理をやり直す。
現に、顧客の住所とかが無いのに商品のリストだけ保存されてたり、カード情報とかが抜けてたりした。

あと、WEBシステムってのは、URLに引数っていう情報をもっていて、そいつを元にデータベースを参照したりしするのだが、
その引数を弄るとまったく関係の無いお客さんの情報まで閲覧できてしまう構造になっていた。
ORDERNOってのは受注番号のことで、これが全ての情報の鍵となる番号だったわけで。
この受注番号さえあれば、そのお客さんの全ての情報を引き出せる事ができてしまう。Playstation.comでも同じ事件がありました。
カード番号も余裕で見れるので、下手したらカード詐欺に使用されている危険性もあった。

韓国企業は顧客情報の保護なんて考えていないようで・・・。

しかし物語形式にしたのは失敗だった・・・。

引用元: 韓国人と一緒に仕事して困ったコト・アイ5-


お悩み相談、最新ニュースで語り合う『ガルトピ』♪ 女性のためのおしゃべりコミュニティOPEN!気になる話題にみんなでコメント、投票ボタンで盛り上がれる掲示板サイト【ガールズトピックス】


スポンサーリンク