« 2006年6月11日 - 2006年6月17日 | トップページ | 2006年6月25日 - 2006年7月1日 »

USBメモリを用いたソーシャル・エンジニアリング

 ソーシャルエンジニアリングの第一歩は、「組織内の人に化けること」にある。イーサン・ハントみたく化けの皮を被る必要もない。もっと重要なのは、機密ではないが、組織内の人しか知りえないような情報を知っていること。例えば座席表やビルドサーバの名前だとか。

 ひとたび組織内の人に化ける情報を得たならば、攻略はぐっと楽になる。「欺術」を参考に潜入を進めることができる(ホントにやっちゃダメよ)。ここでは、USBフラッシュメモリを使って最初のハードルを効率的に超える方法を考えてみよう。

 オフィスの受付窓口の片隅や、社員食堂(外の人も入れる)の廊下でUSBメモリを拾ったら、どうするよ? USBメモリなんてありふれているし、最近じゃオサレな奴やカワイイ系まで出回っているぐらいだ。誰かが落としたんだろうな… で、何が入っているのだろうか?

 で、自分のPCに挿してみる…が、すぐに覗けない。それぐらい知ってるって、しばらく待たなきゃいけないんだろ。砂時計が矢印になったのを確認して、開けてみる… なんだ、何にも入ってないじゃないか、変なの。え? いや、オレだって知ってるよ、社内通達で、「不審なファイルは開けちゃダメ」って、ほら、".exe" とかいうのがヤバいんだろ? 大丈夫、フォルダを開けるだけなら問題ないはず…

 …こんな奴ぁいねぇ、と誰も断言できない。やる奴はいる、必ず。社内のセキュリティシステムを突破して、直接ファイアウォール内のPCへ『配達』してくれるのだから笑いが止まらない。たった一人でOKなんだ。

 グッチやシャネルといった有名ブランドのUSBメモリなんていかが? パチモノで充分。ディズニーキャラクターをプリントしてもいい。女の子が「欲しい」と思った時点でトロイの木馬が成功。あるいは『2GB』とプリントするのなんてどう? ギガバイト級の情報を持ち歩くなんて、いったいどんな情報なんだろう? 興味津々好奇心はネコを殺す。

 信じたいあなたに実例をどうぞ→"Social Engineering, the USB Way"[参照]。これはセキュリティのコンサルタント会社が擬似的にアタックをかけた例なのだが、受付係のキャンディ皿に蒔けというのは、なかなか気が利いている。

 良い子はマネしちゃいけません。そして、"そういう立場の人"は対策を考えておくこと。そのうち出てくるか、見つかってないだけで既にいるのかも

| | コメント (2) | トラックバック (3)

要求仕様戦争(その1)

■要求仕様とは

 要求仕様とは、開発するシステムに対する顧客のニーズのこと。要するに「お客さんがやりたいこと」そのもの。仕様調整で紛糾したときの決め台詞「結局アナタは何がしたいの?」の【何】に相当する。仕様トラブルの100%はこのスレ違いによる。

 要求仕様について考えるために、ちょっとした質問に答えてみよう。以下のa. b. のうち、「要求仕様」を表現しているのはどちらになるだろうか?

  a. 身長57メートル体重550トン

  b. 汎用人型決戦兵器

 まず a. を考えてみる。これは「何」だろうか? これは「何」かのスペックだ(しかも部分的だ)。身長・体重は分かるが、横幅や厚み、姿かたち、素材 etc... は分からない。これは受注側が「○○はどうするの?」といちいち問い合わせる必要がある。当然、聞くのを忘れたスペックは製造者の「思い」で作られるリスクを負う。

 次に b. はどうだろう。身長・体重その他もろもろは分からないが、「何」かは分かる。要求されているのは「兵器」だ。したがって、スペックは分からないにせよ、次の質問は、こう続くだろう。何を想定した「兵器」なのか? 必要な性能は? 操作方法は? … 身長や体重といったスペックは、その結果によって決まってくる。

 正解はもうお分かりだろうが、本当の問題はここから始まる。要求仕様として最初に「身長57メートル」と提示されると、スペックからの視点に引きずられ、結果として仕様モレにつながることこそ、大問題。一見、矛盾しているようだが実はよくある話。

 いや、スペックを書くなといっているわけではない。もちろんスペックは重要であり、できる限り詳細に書いておくべきだ。しかし、本当に欲しいものが書いていなければ、スペックの羅列は罠になる可能性が非常に高い。欲しい「何」が書いてない場合、作り手はスペックの羅列から「想像」しはじめるからだ

 その結果、どうなるか?

■「仕様書に書いてある!バグだ!」 vs 『読み取れない!追加要件だ!』

 萌芽は要求仕様書にある。一瞥しただけで分かる。表紙はご大層だが中身はスカスカ。経営層が決定を先送りしてきたからだ。「要求」をまとめ、仕様化し、レビューするだけの時間は、常に省みられない。「何が欲しいのか」が読み取れない要求仕様書が契約のテーブルに載る悲劇。それで見積もってくる営業に石を投げても詮なし。

 いっぽう受注者は、そこに書かれた「仕様」を逐一実装すれば、「要求」を実現できると信じる…わけねぇだろ!それは「仕様」の体を成しておらず、ひょっとすると「要求」どころか要望すら突き抜けた希望的観測の羅列となっている。

 それでも、「要求仕様書」と表紙に書いてあるので、恭しく頂いて、そこを起点に「仕様」を補完することになる。いくばくも進む前に気づく。これは穴だらけの仕様ではなく窓だらけ、ドアだらけだというべきことに。

 スケジュール上では「設計フェーズ」になっているので設計書みたいなアウトプットを作るのに注力することになる。実際は「何がしたいのか?」を想像したり尋ねたり、仕様の穴埋めをせっせとしているのだが。

■仕様戦争の起爆装置

 その結果、仕様の穴埋めは「製造フェーズ」まで持ち越される。仕様戦争が勃発する起爆装置の代表例は次のものが挙げられる。

  • 片仕様…最もポピュラーな起爆装置。「○○の場合、△△をする」とあるが、「○○でない場合」が未決定。放っておくとプログラマは「何もしない」ルートにつなぐ
  • error漏れ…片仕様のエラー版。エラーだった場合何をすればいいかが未決定。放っておくと最悪の場合「読み捨て=何もしない」ルートにつなぐ。今ならexception漏れというべきか
  • 状態考慮漏れ…「○○の場合」は値なので漏れも気づきやすいが、「状態」は通常外出しテーブルで定義される。状態を参照して判定するロジックは、安易に追加される「新状態」を考慮されない
  • 仕様の賞味期限漏れ…その仕様が影響する開始時点と終了時点(仕様の賞味期限)が明記されてないがため起きる仕様間衝突

 なんせ「作りながら仕様決め」に等しいため、作り手は決めながら実装してるような気になる。コードの可読性は後回しとなり、「できるだけ早く」が合言葉になる。

 当然、当初の「要求仕様書」は省みられず、「メモ」「メール」「議事録」「資料の朱書き」といった形であちこちに飛び散った断片が実装されることになる。

■仕様戦争の勃発

 上記の起爆装置が作動するのはいつだろうか?

    「顧客からの仕様変更が多すぎて…」

    「やってるうちに要求の追加がつぎつぎと…」

    「実装フェーズで見積もりの甘さが露呈して…」

 よくある上のセリフは的外れな場合が多い。ぶっちゃけ、ホントのところは作っている最中に仕様を検討しているからなんだが、さすがにおおっぴらに言えん。まさか仕様も決めずに受注しちゃってリソースを投入しているなんて、経営層にバレたら懲戒モノだぜ。

 王様は裸じゃないから、一度ついたウソは続けなければならない。ホンネとタテマエの使い分けが上手いSE/PMが出世する。マジメに取り組む奴ぁ出世する前に胃に穴があく。開き直った連中がテストファーストとかスパイラルとか名前を変えているだけで、やっている本質はまるっきり同じ。むしろ現実にタテマエを追随させようとしているに過ぎぬ。

 経営層が先送りしたIT戦略意思「未」決定のツケがスカスカ仕様書に化け、スカスカ仕様書を押し付けられたSE/PMはプログラマへ華麗にスルーパス。そして、全てのシワヨセがプログラマへ。

 ところが、プログラマは正直者だから、

    「if (hoge)の後のelseには何を実装すればいいんでしょうか?」

    「HogeException を受け取ったらどうすればいいんでしょうか?」

    「状態テーブルの値と case 判定が一致しませんケド?」

…と訊いてくる。あたりまえだ。知らないと書けないから。しかし、誰も答えられない。当然だ、誰も考えてなかったから。

 さあ、仕様戦争の始まりだ。野郎ども、準備はいいか? ハイホー!ハイホッホー!

| | コメント (2) | トラックバック (2)

徹夜小説「告白」でトランス

告白 はてなでオススメいただいた徹夜小説「告白」を読んだ。一言で表すなら、読むロック(ただし8beat)。幸いなことに(?)これが何の小説であるか予備知識ゼロで読んだ。真黒なラストへ全速力で向かっていることをビクビク感じながら、まさかこんなとんでもない「事件」とは露知らず。

 テンポのいい河内弁でじゃかじゃか話が進む。この一定のリズムは音楽を聴いているようで心地よい。中毒性があり、ハマると本を閉じられなくなる。読み進むにつれ、朦朧とした不思議な感覚に包まれる。

 面白いなぁ、と思ったのは、明治時代の主人公の頭を極度に思弁的にしている設定。当然、ムラの衆との意思疎通や日常生活まで齟齬を来たしまくる。語彙と相手さえあれば、とてつもなく知的な存在になりえたのに、それが無いがために周囲からは理解を得られず、痴的な存在と見なされる。読み手はこの葛藤にまず笑うだろう。

 「告白」の名の通り一人称でずっと進むと思いきや、妙なトコで冷徹に三人称で書いたり、同じ一人称でも著者がしゃりしゃり出てきたり、誰? だか分からないツッコミが入ったり。読み手の気持ちピッタリなので、とりあえず「わたしの代わりにツッコミ」だと思いつつ進む。ドツボにはまる男を憎めないのと、彼の苦悩(周りに分かってもらえない)に同調しつつ、どんどん感情移入してゆく。

 ときおり、物語の構図がクッキリと閃く瞬間があって妙に恐ろしい。男の脳内独白を後ろで聞き書きしてツッコむ著者の文章を追いかける読み手、という多層構造。男のお面を被った著者が後ろ向きにこっちへ突っ込んでくる感じ。著者の視線をもって男の後ろ側か皮膚に入り込む…ううむ、UNIXパイプ処理の方が表現し易い、要はこうだ。

   cat 主人公の独白 > 思弁を聞き書き(著者) > 読み手

 この独白が上手い具合に自分にシンクロしてくるとさぁ大変。長広舌が病み付きになる。だるだる付き合ってるのが熱中してくる。仕舞いにゃ自分も河内弁で語りだす。

 …で、その延長上にそんな出来事が待っているとは…!!

 カタストロフの直前、男が被る獅子舞の内側から見た世界が最も恐ろしい。全世界から疎外される男の苦悩は、脳内をエコーしまくるだけでちっとも外へ出てこない。出るとしても切れ切れの思考の欠片だけで意味をなさない(だから愚者扱い)。まぶたの内側で涙を流すしかない。

   cat 獅子舞から見た世界 > 主人公 > 読み手

 獅子舞を被ったトンネル越しの世界、これこそ男の世界そのもの。河内弁なんざかなぐり捨てて現在用語でもって全力で語られる。男と読み手が一直線に貫かれる瞬間。そしてついに、【以降ネタバレ】殺戮が始まる。河内十人斬のビート(ホントにこのCDがある)が腕を這い回る、知らないはずなのに踊れるぞジョジョォォォーーッ!彼にしてみればとても明々白々。正義を成し善を遂行するために完全無欠に必要な行動を順番に実行する。やっている行為の一つ一つは輝くほど明白なのだが、思考の断絶がフラッシュのように入り込む。ずっと不審に思ってきた出来事の【非】一貫性は(作者の準備不足ではなく)、周到に計算された前フリなのかと好意的に捉えたくなる。大量殺人者にいたるまでの思考をシミュレートしたんだから仕方ないか。ところが読み手であるわたしと極限までシンクロしちゃっているんで、執行シーンでは体を(心を?)もぎ離すのに苦労する。パイプ">"を通じてしっかりと喰い込んじゃっているから、今やめると吠えだすに違いない、この体は!何て叫ぶって? もちろん人間停止ッ!、人間停止ッ!

 本書を「キ○ガイシミュレーター」と名付けてもいいが、どこから狂っているのかが分からないトコロが欠点。さらに、彼をキ印扱いするなら、わたしは…? と慄然とするところが非常にヤヴァい一冊。

 ええ、もちろん徹夜だよ徹夜…ただし一徹で済んだ。

――――――――――――――――――――――――――――――――――――――

企画「徹夜小説を探せ!」のリストを更新

■これから読む徹夜小説

  永遠の仔(天童荒太)
  第六大陸(小川 一水)
  ガダラの豚(中島らも)
  傭兵ピエール(佐藤賢一)
  ゼウスガーデン衰亡史(小林恭二)

  魔術師(J.ファウルズ)
  北壁の死闘(ボブ・ラングレー)
  イヤー・オブ・ミート(ルース.L.オゼキ)
  スワン・ソング(ロバート.R.マキャモン)
  シャドウ・ダイバー(ロバート・カーソン)
  カラマーゾフの兄弟(ドストエフスキー)米川正夫訳 /岩波文庫版

■徹夜を覚悟・徹夜した小説

  火車(宮部みゆき)某弁護士事務所では、新人研修に使う
  半落ち(横山秀夫)ラストで号泣、涙で読めねぇ
  ダ・ヴィンチ・コード(ダン・ブラウン)読むジェットコースター
  摩天楼の身代金(リチャード・ジェサップ)「最高」の冠を付けたい
  悪童日記(アゴタ・クリストフ)「ふたりの証拠」「第三の嘘」と一緒に!
  ベルガリアード物語(D・エディングス)ドラクエとFFを足して2倍した面白さ
  大聖堂(ケン・フォレット)2006年のNo.1スゴ本
  告白(町田康)読むロック(ただし8beat)

半落ち火車悪童日記
ダ・ヴィンチ・コードベルガリアード物語1大聖堂
告白

| | コメント (2) | トラックバック (3)

「わたしを離さないで」は重い思い出になる

わたしを離さないで スゴ本なんだが、どこまで紹介していいか分からない。カズオ・イシグロを知っているなら黙って読めとオススメするが、知ってる人なら既読だろう。だから、彼の作品を知らない人向けに語ってみる。

 …とはいうものの、この小説に隠されている秘密はご自身で確かめていただきたいので、とても抽象的にレビューする、ご勘弁。

 これはとても奇怪な小説。静かで端正な語り口から始まって、いかにもありそうな共同生活が語られる。淡々と語られる「思い出」が積み上げられていくうちに、読み手はだんだんと不安な心持にさせられる。彼女は何を伝えようとしているのか、と。

 それでも語られる内容は、ありふれた人間関係と思い出ばなし。イギリスの全寮制の学校を舞台としたドラマ? でもこの微妙な違和感は? と思いながらも、語り手の真摯さに思わず引き込まれる。

 真実は薄皮をはがすように、一枚また一枚と明らかになってゆく。読み手は自分が抱いた違和感(異物感?)を半ば確信しつつも、もどかしさにページを繰るだろう。書き手はそれを充分に意識した上で、抑制の利いた語り口でじわじわと切迫感を募らせてゆく…

 この小説が、いったい何をテーマに語っているのかが分かる段階では、読み手は、この語り手から目を離せなくなるだろう。結末がどうなるか、ではなく彼女が何を伝えたいのかが気になって仕方がない。… いや、ネタをバラしてもいいんだが、作品世界を成り立たせている要素の一つ一つは、ご自身の目で発見して欲しい。予備知識ゼロで、どうぞ。

 … ここまで書いて、何のこっちゃか全然分からんね。だから、朝日日曜版レビュー(2006/5/28)の一文を引用する。(読み終わったわたしに)突き刺さってくる。

 わたしたちは、何かの目的のために生まれるわけではない。生まれるために生まれ、生きるために生きる。なぜ、生きていくのか、わからないままに、先の見えない暗闇を進んでいく。ある目的のもとに生を受け、役割を果たして死ぬ彼らは、その点で私たちとまったく異なってみえる。だが、どんな圧力が彼らの生を限定し未来を縛ろうとも、命それ自体は、目的など無効にして、ただ生きようとするのだ。生きるために。

 これは、感動ではない。この気持ちに名前をつけることはできない。この気持ちは誰も経験したことがない。しかし、わたしは知っている。この未来があることを。この気持ちは、いずれ誰もが経験することを

--

 カズオ・イシグロ著作リスト。「わたしを離さないで」と「日の名残り」は自信をもってオススメ。

A Pale View of Hills (1982)「遠い山なみの光」 ハヤカワepi文庫
An Artist of Floating World (1986) 「浮世の画家」 中公文庫
The Remains of the Day (1989) 「日の名残り」 ハヤカワepi文庫
The Unconsoled (1995) 「充たされざる者」 中央公論社
When We Were Orphans (2000) 「わたしたちが孤児だったころ」 ハヤカワepi文庫
Never Let Me Go (2005) 「わたしを離さないで」 早川書房

| | コメント (1) | トラックバック (5)

« 2006年6月11日 - 2006年6月17日 | トップページ | 2006年6月25日 - 2006年7月1日 »