[-]=======================================================================[-] Wizard Bible vol.21 (2005,10,3) [-]=======================================================================[-] x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ---- 第0章:目次 --- x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ○第1章:SPAM対策のフィルタリングルール PSY 著 ○第2章:ハニーポットを作ろう 〜連載第5回〜 Narusase 著 ○第3章:Crackme Kracking 0x2 Will 著 ○第4章:無煙火薬の作り方 Defolos 著 ○第5章:Linuxアクセスコントロールクイックリフェレンス Taka John Brunkhorst 著 ○第6章:パケットフィルタリング 〜アプリケーション篇〜 Kenji Aiko 著 ○第7章:個人情報保護法 〜 試験直前対策編 〜 IPUSIRON 著 ○第8章:お知らせ ○第9章:著者プロフィール x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第1章: SPAM対策のフィルタリングルール --- 著者:PSY x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x01.) プロローグ =======================================================  パソコンが小さな音をたてた。  中央に封筒のマーク。  メールだ。  開いてみて、一瞬譲は凍りつく。  ただ一言、赤い文字。  I WILL CRACK YOU  差出人の名前は?  NOBODY・・・・・・         【Project Seven 第二章 脅迫より】     http://psy.ktplan.ne.jp/seven/top.htm =======================================================  かなり昔のことだが、友人にふざけて匿名メールを送ったことがあった。  うろ覚えだが、確か、 ----- From:nobody@anomymous.com Subject:Hello! Do you know who i am? -----  ってな感じ。  anonymous(匿名)なんてアドレスからメールが来るなんて、怪しくってワクワ クするでしょ? え、しない?  まぁ、彼はそういう遊び心を理解してくれる友人だったのだ。タブン。  んで、長いこと私は、 「ねー、メール送った?」  と聞かれるのを心待ちにしていたのだった。  が! んが!  反応ナシっ! ではないか。  ちぇ、気づかなかったのかな。  と残念に思いながら、だいぶ経ってから、尋ねてみた。 「あー、なんかよく怪しい英語のメール来るじゃん? だから見ないで全部捨て てた」  とのことだった。  なんじゃそりゃ?  当時は首を傾げたが、今でいうSPAMだったのだろう。  そのころ、私はSPAMなんて耳にしたこともなかった。  恐らく彼はあちこちでメールアドレスを晒していて、海外のSPAM業者にリスト 化されていたのだろう。そのため、SPAMがたくさん届いていたのだ。何やってた んでしょうね(藁)。 ■0x02.) 従来のSPAM対策の限界  さてさて、時代は変わり、今ではPCを扱う殆どの人がSPAMの嵐に晒されること となった。入りもしない情報、むしろ、見るだに不快な情報をチェックするのに、 貴重な時間を割かれるのだから、実に腹立たしい。もっと困るのは大切なメール がSPAMの山の中に埋もれてしまうということだ。かくいう私も知人や読者からの メールをゴミメールから拾い出すのに日々ウンザリしている。  プロバイダも一応対策に乗り出しており、最近ではスパムフィルタを用意して いたりする。が、自分でいじれるフィルタはFromとSubjectでのブロックが一般的 だ。メールにおけるFromなんてあってなきがごとし。簡単に偽装できるし、Subj ectも最近は知人を装ったものが多いので、これではとても対処できない。登録し たメールアドレスからだけ受け取るようにする手もあるが、私のようにHPを運営 していたりすると、知らない人からのメールを読まないわけにはいかない。また、 フィルタリングに対処していないメールサーバもある。何か手段はないものだろ うか?  最近のメーラには、SPAM排除機能がついたものも出てきている。また、Norton のAntiSpamのように、メーラに到達する以前にSPAM判断してくれるソフトもある。 もっともAntiSpam自体にも重大なセキュリティホールがあったりして(笑)、な んだかなーという感じだが、まあこういうツールも串、違った、駆使すれば、あ る程度SPAMは防げるらしい。しかし、ここで終わってしまっては、SPAM業者は痛 くも痒くもないのである。  受け手がSPAMメールを読んでいないことを業者は知らない。たとえ1,000人に1 人でも、クリックしてくれる鴨がいれば、SPAM業者はせっせとSPAMを送り続け、 トラフィックは日々増え続ける。  一方、送られる側は、正しいメールがSPAM判定されていないかどうか日々チェ ックしなければならず、喜ぶのはセキュリティ関連会社と通信業者だけという( ……おっと失礼!)。実に不毛な話なのだ。  第一、有料のソフトをインストールして、なんだか分からない学習機能をONに して、ハイ、満足、なんてのは、ハッカーの風上にも置けない……よね? 敵を 知り己を知らば百戦して危うからず、というではないか。Wizard Bibleを読んで る方は恐らく自分で中身を理解したいという意欲をお持ちだろう。  きっとそうだ。ここはお持ちだと決めつけて次に進む。そうしないと、話、終 わっちゃうし。 ■0x03.) SPAMの手口を理解するための基礎知識  さて、ではまずどうやったらプログラムでSPAMメールをSPAMと判別できるのか、 というところから考えてみよう。それぞれのヘッダを順に見ていこう。 ●From  Fromアドレスはたいてい偽装されており、同じ業者でも毎回違うメールアドレ スから発信してくることが多いため、実質あまりフィルタには使えない。ただし、 同じSPAM業者は同じドメイン名を使って送ってくるケースもある。とりあえず自 分のメールアドレスを装って発信してくるメールはフィルタ対象にできる。  また、名前に「love」「info」など特徴的な文字が入っているケースもある。 ●Subject  メールのタイトルは多くのメールサーバでフィルタリングがかけられるが、実 のところあまり効率的に機能しない。本来SPAM業者はここに「未承諾広告」の文 字を入れなければならないのだが、ほとんど守られていない。守っている業者は むしろ良心的で、読んであげたいぐらいだ。  海外のメールではフィルタに引っかかりそうな文字列をわざと置き換えたり( 「VIAGRA」⇒「V1AGRA」)、文字を増やしたり(「VIAGRA」⇒「VIAGRRA」)して いるケースが多い。日本では「ご無沙汰しております」「久しぶり!」「Re:」な ど知人を装ったタイトルをつけているケースが増えている。  以上のように、「FromとSubjectでフィルタリング」というのがいかに使えない かよくわかる。  他に使えそうなメールヘッダの項目を探してみよう。 ●X-Mailer  DM発信用のメールを使っている場合、ここにソフトの名前が入ることがある。 ●Reply-To  メールの返信先。このメールで情報収集している場合、Fromは変化していても、 返信先は毎回同じ場合もある。 ●To  宛先。SPAMではToに自分のメールアドレスが入っていないケースもある。が、 これだけでフィルタの対象にするのは難しい。 ●Content-Type  文書のタイプとキャラクタセット。日本語のテキストメールであれば、「text /plain; charset=ISO-2022-JP」などが入る。  例えば海外からの英語のメールが絶対に来るはずがない、などと分かっていれ ば、「charset="us-ascii"」などをフィルタすることもできる。 ●Body(本文)  本文に「盗撮」「逆援」などが含まれるメールをブロックすれば不快な内容を 読まずに済む。子供などに見せたくない内容をシャットアウトするにも有効だろ う。ただし知り合いのメールをはじいてしまう可能性もあるので、扱いには注意 が必要だ。  例えば「出会」でフィルタをかければ、出会い系サイトの宣伝は弾けるが、HP に来た読者が「あなたのサイトに出会えて良かったです!」なんて書いてくれて もブロックされてしまうことになる。  同じ業者が何度も送りつけてくる場合は、登録サイトのURLをフィルタとして 入れておくのもひとつの手だ。  ヘッダのチェックに加え、正規表現などを使って、本文をくまなく調べればあ る程度のフィルタは可能だろう。  しかし、手を変え品を変え送りつけてくる業者に対応するのは至難の業である。 そもそも、冒頭の脅迫メールや悪戯メールのように、簡単に差出人を偽ったメー ルが出せてしまうことに問題がある。メールの受信にはパスワードがいるが、送 信にパスワードは必要ない。サーバはどこから来たメールでも自由に中継してし まう。これでは犯人の手がかりがつかめない。  ちょっと待った、本当にそうだろうか。手紙だって、差出人を偽ることができ る。しかし、手紙ならば、郵便局の消印が入る。大阪の業者が、東京から手紙を 出したように見せかけるには、わざわざ東京まで足を運ばなければならない。メ ールに消印に当たるものはないのだろうか。ある。Receivedヘッダである。 ●Received  本来一番着目すべきはココ!!  ここにはメールがどんなサーバを経由してきたか履歴が残されている。要する に「消印」。メールは色々なサーバを経由されてくる可能性があるが、注目すべ きは<自分側の>メールサーバがどこから受け取ったか記されている部分だ。そ れ以前の履歴はSPAM業者が偽造したものかもしれない。実は、自分の側のメール サーバーが受け取ったReceivedを特定し、スパムを削除するツールを作って実験 してみたところ、ごく簡単なフィルタのルールで、実に9割のSPAMメールをフィル タすることができた。 ■0x04.) Receivedヘッダの見方  では実際、どんなルールを作ったら良いのだろう。  Receivedヘッダがどうなっているのか見てみよう。Receivedヘッダは例えばこ んな感じになっている。「xxx.xxx.xxx.xxx」はIPアドレスだと思ってほしい。 ----- Received: from smtp23.mail.bbt.yahoo.co.jp (smtp23.mail.bbt.yahoo.co.jp [202.93.85.138]) by www4.ktplan.ne.jp (8.12.11/8.12.10) with SMTP id j8PHIl1w026750 for ; Mon, 26 Sep 2005 02:18:47 +0900 Received: from unknown (HELO xp.yahoo.co.jp) (xxx.xxx.xxx.xxx with poptime) by smtp23.mail.bbt.yahoo.co.jp with SMTP; 25 Sep 2005 17:18:44 -0000 -----  この例では、ふたつのReceivedヘッダがある。下が送信者側のメールサーバが つけたヘッダ、上が受信者側のメールサーバがつけたヘッダである。つける位置 はメールサーバによって違うらしいので、自分の使っているメールサーバが一番 上につけるのか、一番下につけるのか確認してみてほしい。  上記はごく普通のメールだが、SPAMメールのヘッダを見ると、こんな風になっ ていることがある。 -----  Received: from hi.imspammer.com (AB210-202-7-23.adsl.spam.com.tw [xxx.xxx.xxx.xxx]) by www4.ktplan.ne.jp (8.12.11/8.12.10) with SMTP id j839XigE018840 for ; Sat, 3 Sep 2005 18:33:44 +0900 -----  複数あるはずのReceivedが一個しかない。どういうことだろうか? 実は、こ のSPAM業者は直接受信者側のメールサーバにメールを送りつけてきているのだ。  どういうことかって?  一昔前、SPAM業者はよそのメールサーバを中継して自分達のメールをばらまい ていた。メールサーバは受信時には認証が必要だが、送信時にはなんの認証もな い。実際、私の職場でこんなやりとりがあったぐらいだ。 O君 「T君、なんで仕事中にあんなメール送るん?」 T君 「あんなって?」 O君 「あんな画像送るなよ! ……恥ずかしい……」 T君 「はぁ? なんの話……??」 S先輩「ははは、悪ぃ、悪ぃ、それ俺だわ」 O+T 「……」  おちゃめなS先輩は、Tのメールアドレスを「拝借」してO君にHな写真を送りつ けたのだった。まったく、何やってんでしょうね(w。もちろんハッキングでも なんでもなく、匿名メーラーなどを使えば他人のアドレスであっても、ごく普通 に送信できてしまうのである。  現在ではPOP before SMTPが普及し、パスワードを使ってメールを受信した直後 でないとメールを送信することができないサーバが増えてきた。また、会社や大 学などのサーバーは、自ドメインのメールアドレスを使ったメールを、中継しな くなった。本来、組織のメールサーバーは、内部と外部、内部同士のメールを転 送する必要はあっても、外部から外部へ第三者のメールを転送してあげる必要な どないのである。外部からのメールを中継してしまうサーバー ――第三者中継 サーバー―― は、ORBL(Open Relay Black List)などのブラックリストに載せ られ、そこからのメールは受信メールサーバー側で拒否されるようになった。  さて、中継サーバが使えなくなってしまったので、SPAM業者は考えた。よその メールサーバーを中継せずに、自分自身がメールサーバーになってしまえばよい、 と。かくて、SPAMメール専用ツールがわんさと作られた。そう、先の例では、業 者のクライアントマシンがあたかもメールサーバーのふりをして、メールを渡し ているのである(編注)。  これで、先の例でReceivedヘッダがひとつしかなかったわけもおわかりいただ けるだろう。しかし、Receivedがいくつあるかは重要ではない。というのも、業 者は偽装のためReceivedヘッダをたくさんくっつけて送ってくることがあるから だ。重要なのは、あくまで自分のサーバが受け取った時に付加したReceivedヘッ ダである。  では、もう一度ヘッダを眺めてみよう。 ----- 正常なメール  Received: from smtp23.mail.bbt.yahoo.co.jp (smtp23.mail.bbt.yahoo.co.jp [202.93.85.138]) by www4.ktplan.ne.jp (8.12.11/8.12.10) with SMTP id j8PHIl1w026750 for ; Mon, 26 Sep 2005 02:18:47 +0900 ----- ----- サーバに直で送りつけてきたSPAM  Received: from hi.imspammer.com (AB210-202-7-23.adsl.spam.com.tw [xxx.xxx.xxx.xxx]) by www4.ktplan.ne.jp (8.12.11/8.12.10) with SMTP id j839XigE018840 for ; Sat, 3 Sep 2005 18:33:44 +0900 -----  2つ目のメールのおかしな点に気づいただろうか? 上のメールでは、「from」 直後のドメイン名と括弧内部のドメイン名が一致しているのに、SPAMではcomドメ インとtwドメインと全然違うものになっている。実は、この括弧内部の「xxx.xx x.xxx.xxx」は、スパマーの利用している端末のアドレス、もしくはルーターなど のアドレスである。どうやらfromの直後はスパム業者の端末が<自称している> ホスト名、括弧内部のドメインは受信サーバー側でIPアドレスからホスト名を逆 引きしてつけたものらしい。クライアント用の回線(ADSL)なのに、あたかもco mドメインを持つ組織から送りつけてきているように見せかけているのだ。  あるいはこんなケースもある。 -----  Received: from default ([xxx.xxx.xxx.xxx]) by www4.ktplan.ne.jp (8.12.11/8.12.10) with SMTP id j839YXCE018932 for ; Sat, 3 Sep 2005 18:34:33 +0900 -----  このケースでは、そもそもIPアドレスが逆引きできていない。SPAMメールには 意外にこういったものも少なくない。  自分のメールには、そんなもんついてないよという読者の方もおられるかもしれない。  どうやらReceivedの中身は、   from---> ○○ドメインからのメールが、   with---> ○○ドメインという方法で送られてきた。   by-----> メールを受け取ったドメインは○○で、   for----> 宛先は○○。  ということしか決まっていないらしく、fromの中の書式がどうかはメールサー バーに任されているようだ(詳しくはRFC2821参照)。  サーバーによって逆引きされたドメインをつけないものもある。あなたに来た メールは、もしかしたらこんな風になっているかもしれない。 ----- 正常なメール Received: from xxx.xxx.xxx.xxx (EHLO noproblem.co.jp) (xxx.xxx.xxx.xxx) by mta32.mail.bbt.yahoo.co.jp with SMTP; Mon, 26 Sep 2005 02:20:21 +0900 ----- ----- サーバに直で送りつけてきたSPAM Received: from xxx.xxx.xxx.xxx (HELO default) (xxx.xxx.xxx.xxx) by mta32.mail.bbt.yahoo.co.jp with SMTP; Mon, 26 Sep 2005 02:24:46 +0900 -----  これをクライアント側でチェックするには、自ら逆引きしてみて、照合する必 要があり、少々面倒である。だが、スパム業者は括弧内のドメインとFromアドレ スなどがめちゃくちゃになっていたりするので、そこをチェックするなど手はい ろいろありそうだ。 【編注】『ハッカーの教科書・完全版』に収められている匿名メール用メーラー のMail Senderやスパム送信用メーラーのSpam Senderはこの原理と同じことをし ています。 ■0x05.) フィルタリングの実験  今回の実験では、簡単にするため、 -----  Received: from smtp23.mail.bbt.yahoo.co.jp (smtp23.mail.bbt.yahoo.co.jp [202.93.85.138]) -----  のケースで括弧の中と外のドメイン名が一致しているか調べ、SPAMを削除する ツールを作ってみた。逆引きできていないものもSPAMとみなした。  残念ながら、<真っ当な>メールでも逆引きできなかったりドメインが一致し ないものがごく一部ある。そこで、購読しているメールマガジンや知り合いのメ ールなどは「SPAM除外リスト」として別に定義することにした。  テストで利用したSPAMの判定ルールを次に記そう。    +---------------------------+(YES) (1)| 除外リストに入っている? |------>(結果A)SPAMではない      +---------------------------+           ↓(NO)     +---------------------------+    | ドメインが一致しない/ |(YES)  (2)| 逆引きできない? |------>(結果B)SPAM      +---------------------------+           ↓(NO)     +---------------------------+(YES) (3)| SPAMリストに入っている? |------>(結果C)SPAM      +---------------------------+           ↓(NO)       (結果D)SPAMではない (1)除外リストに使用しているメールマガジンや知人のメールなどのドメイン などを定義しておき、一致したものはSPAMから除外する。 (2)除外リストに入っていないもので、逆引き結果と相手の名乗るホストが一 致しないものはSPAMとみなして削除し、専用フォルダに格納する。正当なサーバ ーでもホスト名が完全に一致しない場合があるので、末尾のみを比較した。例え ば、「mail.yahoo.co.jp」だったら「yahoo.co.jp」の部分、「mail.yahoo.com」 だったら「yahoo.com」も部分。 (3)それ以外にSPAMによく含まれるキーワードを正規表現で定義しておき、一 致したものはSPAMとみなして削除、専用フォルダに格納した。  本来ツールを掲載すべきだろうが、サーバーによってルールが違うので、ここ では(2)のフィルタリングルールに使った正規表現だけ載せておく。 1:「from .*([a-z0-9-]+\.[a-z][a-z]\.jp) \(.*\.\1 \[」に一致したらSPAMで はない 2:「from .*([a-z0-9-]+\.[a-z][a-z]\.jp) \(」に一致したらSPAM 3:「from .*([a-z0-9-]+\.[a-z]+) \(.*\.\1 \[」に一致したらSPAMではない 4:上記以外ならSPAM  Perlなどを使えば、皆さんの環境でも簡単にテストできるだろう。  最後に自分側のメールサーバーの名前を「.* by myserver.com」などのように 入れれば、メーラーに付属のフィルタリングなどでも使えるかもしれない。  私のところで試してみた結果は次のようになった。 ==============================================================================                           全メール比 SPAMメール比  ReceivedのチェックでひっかかったSPAM(B)……866 件 (62.0%) (85.74%)  ワードチェックでひっかかったSPAM(C)…………55 件 ( 4.2%) ( 5.85%)  フィルタされなかったSPAM(D)……………………79 件 ( 6.1%) ( 8.40%)  除外リストで除外したメール(A)…………………62 件 ( 4.8%)  SPAM以外のメール(D)………………………………298 件 (22.9%)  合計………………………………………………… 1300 件 ==============================================================================  SPAMでないのにスパムと認定されてしまうため除外リストに入れたルールは5つ。  SPAMに適用したワードチェックの数はたったの7つである。  SPAMメールの判定方法として、SPAMらしきキーワードに重みづけし、スコアを 集計していく方法などがあるが、Receivedヘッダをチェックする方法は簡単な割 にかなり有効なようだ。  過去のメールも遡って調べてみると、面白いことに、ReceivedでSPAMと認定さ れるメールの割合は、2003年度で40%程度だったのに、2004年度には60%台、20 05年には80%台と徐々に上がってきている。  大量SPAM送信ツールが普及したため、このような簡単な見分け方が可能になっ た、というのは皮肉でもある。 ■0x06.) クライアント側の対処での限界  めでたしめでたし。といきたいところだが、ひとつ大きな問題が残されている。 クライアント側でフィルタしても、相手にはメールが読まれたのか廃棄されたの かまったく分からないということだ。こっちはメールを見ていないのに、相手は メールを送ったと思い込んでいる……というのでは困ってしまう。クライアント 側で対処すると、どんなフィルタリングルールを使おうともおのずとこういう問 題が発生してしまうのだ。  相手に「あなたのメールはSPAMとして認定されました」とエラーメールを自動 返信する手もあるが、これだとSPAM業者は「存在しているメールリスト」として 他の業者にメールアドレスを売ってしまうかもしれない。できることなら、SPAM 業者には「このメールアドレスは存在しない」と思わせるのが一番だ。  そのためには、メールサーバー側で「そんなメールアドレスはないよ」とキッ クしてしまうことである。業者がメールサーバーに直接メールを送りつけようと すると、その場でエラーとなり送信そのものができない(試しに自分のドメイン と同じドメインで、絶対にありえないメールアドレスにメールを送信してみてほ しい。瞬時にエラーになるはずだ)。つまり、このメールアドレスはないと諦め るか、何度も再送して無駄にコストをかけるしかない。  知人のメールは「除外リスト」に入れておく。初めて自分にメールを送ってき そうな相手にはエラーメールが返ってしまうが、名刺やWEB上で「メールがエラー で送れない場合には、WEB上のフォームメールなどを使ってください」などと告知 しておけばいい。  擬似的にメールが存在しないようなエラーメールを返すソフトがあるが、SPAM 業者のやり方には通用しない。これではSPAM業者が<騙っている>Fromアドレス にエラー<らしきもの>を返すだけで、本当のSPAM業者は痛くもかゆくもない。 あくまでメールサーバー側で対処する必要がある。  この方法が普及すると、SPAM業者はホスト名に気を配るようになるかもしれな い。しかし、相手が一般クライアント向けの回線を使っている以上、判別する方 法はある。  将来的には、ドメインを取得している<真っ当な>メールサーバーはすべて自 ドメインと逆引きドメインを一致されるのが理想的である。  一方、ISPの提供するクライアント用の回線は、逆引きドメインにクライアント と分かるルールを適用するか、逆引きそのものを不可能にすれば、SPAMを直接送 りつけてくる方法は使えなくなるはずだ。  唯一の対抗手段は、SPAM業者は自らドメインをとってメールサーバーをたてる ことである。が、SPAM業者にはドメイン取得の手間と費用がかかる。しばらくす るとそのドメインは「ブラックリスト」に乗ってしまい、次々とドメインを取得 しなおさなければならなくなるだろう。  今まで、受信側ばかりが手間とコストをかけていたSPAMメール対策。SPAM業者 側に手間とコストをかけさせるためにも、管理者の皆様はぜひメールサーバー側 での対処をご一考願いたい。 ■0x07.) エピローグ  さて。  SPAMの話はここでおしまいなのだけど、最後にちょっとCMさせてください。  冒頭で引用したProject SEVEN。  女子高生の美少女ハッカーと天才プログラマがネットで繰り広げる冒険小説で す。  近未来SFではありますが、ウイルスからバッファオーバーフローまで、ソーシ ャルエンジニアリングからスニフィングまで、幅広く網羅されております。  ハッカー、SEはもちろんのこと、厨房君、サラリーマン、大学生、通りすがり の女子高生、八百屋さん、魚屋さん、小学生から主婦まで、必読必携です。 『Project SEVEN』 ・著者:七瀬晶 ・発行:アルファポリス ・価格:1,400円(税別) ・10月4日発売予定。予約受付中  詳しくは、   http://psy.ktplan.ne.jp/seven.htm  にて。  ご予約はお早めに! x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第2章: ハニーポットを作ろう 〜連載第5回〜 --- 著者:Narusase x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x01.) はじめに  前回は、honeydとarpdのインストールを行いました。  今回からは少しずつ、honeydの機能などについて説明していきたいと思います。 honeydの起動方法とその基本的なオプションに関して説明し、実際にhoneydにア クセスしてみます。 ■0x02.) 下準備  まず、honeydを起動させるためにはいくつかの下準備が必要となります、ひと つはhoneyd用のアカウント&グループの作成で、もうひとつは設定ファイルの書 き換えです。  honeyd用のアカウント&グループの作成ではhoneydのインストール時に「/usr /local/share/honeyd」以下の関係する各ファイルに割り当てられているUIDおよ びGIDを用いるように設定します。各ファイルの所有者の書き換えが面倒でない場 合は、他のUIDおよびGIDを使用してもかまいません。  ここではアカウント&グループ名はハニーポットに関係すると言うことでbee( 「蜜蜂」という意味)とすることにします。実際のアカウント&グループの作成 には次のようなコマンドを実行します。 ------ groupadd -g 32767 bee adduser -u 1000 -g 32767 -s /sbin/nologin bee ------  次に、サンプルの設定ファイルのバックアップを作成し、サンプルを元に新た な設定を作成します。 ------ cd /usr/local/share/honeyd/ cp config.ethernet config.sample.ethernet vi config.ethernet ------  変更するのは04行目と10行目で、新たに11行目を追加しています。  04行目では最後の部分がblockからopenに、11行目ではIPアドレスが192.168.1. 125から192.168.1.2へ変更されています。なお、IPアドレスは適宜自分の環境に 合わせてください。  設定後の設定ファイルは次のようになります。 ------ 01 create default 02 set default default tcp action block 03 set default default udp action block 04 set default default icmp action open 05 06 create template 07 set template ethernet "3com" 08 set template personality "Linux 2.4.7 (X86)" 09 10 bind 192.168.1.2 template 11 bind 192.168.1.3 default ------  ここで、簡単に設定について説明します。  まず、01行目では「default」のテンプレートを作成しています。  02〜04行目では「default」のテンプレートに対してデフォルトの動作として、 TCPとUDPについてはすべてパケットをブロックし、ICMPについてはすべて受け付 けるように設定しています。  06行目では「template」のテンプレートを作成しており、07行目では3comのEt hernetアダプタ(NIC)をエミュレートするように設定ています。  08行目ではエミュレーションするOSの動作としてX86系のCPU上のLinux 2.4.7を 指定しています。  そして、10、11行目でそれぞれ、監視対象となるIPアドレスとテンプレートを 結びつけています。つまり、ここでは192.168.1.2と192.168.1.3の仮想マシンを 作成してるということになります。 ■0x03.) 起動  連載5回目にして、ようやくhoneydを起動するときが来ました。  次のようにコマンドを入力して起動します。 -------- honeyd -d -f /usr/local/share/honeyd/config.ethernet -i eth0 -u 1000 -g 32767 192.168.1.2-192.168.1.3 --------  ここで、簡単に起動に必要なオプションについてのみ説明します。  -dオプションはデーモン化せずに実行することを意味します。また、このオプ ションを付けた場合、詳細なデバッグメッセージが有効になります。したがって、 実際の運用時には使用しないオプションで、どちらかといえば構築中のちょっと した実験や、バグの原因解明などのために使うオプションと言えます。  -fオプションは読み込む設定ファイルを指定します。ここで設定ファイルを指 定しない場合、デフォルトの設定で動作します。  -iオプションはどのインターフェースで通信を待ち受けるかを指定します。複 数のインターフェースがある場合にどちらのインターフェースを監視するか指定 するためのものです。  -uおよび-gオプションはそれぞれHoneydの実行時に用いるUIDおよびGIDを指定 します。デフォルトではUIDとGIDの両方とも32767を用います。なぜか一部の設定 ファイルなどではUIDは1000に設定されているため-uオプションの使用が必要です。  最後のIPアドレスは監視対象とするネットワークアドレスやホストアドレスを 意味します。実際にはホストアドレス(「192.168.1.1」の型)に加えてネットワ ーク単位(「192.168.1.0/24」の型)、ある一定の範囲(「192.168.1.10」〜「 192.168.1.20」の型)が指定できます。 ■0x04.) 実験  honeydを実行するといろいろメッセージが表示され、シェルに戻らない状態に なります。この状態になればhoneydはきちんと起動しているということになりま す。設定ファイルにミスがある場合は、たいがいエラーメッセージを表示してす ぐにシェルに戻ります。  では早速、LAN内の別のマシンから、「192.168.1.2」にnmapを用いてポートス キャンをして、honeydが未使用アドレスを監視できているか確かめてみましょう。 ----- [root@localhost root]# nmap -sT 192.168.1.2 Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2005-09-10 14:00 JST Interesting ports on 192.168.1.2: PORT STATE SERVICE 1/tcp open tcpmux 2/tcp open compressnet 3/tcp open compressnet ・・・(中略)・・・ 65301/tcp open pcanywhere MAC Address: 00:D0:96:E2:2B:F0 (3com Europe) Nmap finished: 1 IP address (1 host up) scanned in 4.760 seconds -----  「192.168.1.2」はどうやらほとんどのポートが空いている状態のようですね。 よく見るとMACアドレスも3comのものとして見えているようです。  では、次は「192.168.1.3」はどうでしょうか? ----- [root@localhost root]# nmap -sT 192.168.1.3 Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2005-09-10 15:00 JST Note: Host seems down. If it is really up, but blocking our ping probes, try -P0 Nmap finished: 1 IP address (0 hosts up) scanned in 2.104 seconds -----  おかしいですね、「192.168.1.3」のホストは起動していないようです。  では、自分のIPアドレス(192.168.1.1)に対してはどうでしょう。 ----- [root@localhost root]# nmap -sT 192.168.1.1 Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2005-09-10 15:10 JST Interesting ports on 192.168.1.1: (The 1659 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 199/tcp open smux 32770/tcp open sometimes-rpc3 MAC Address: 00:04:5F:11:22:33 (Evalue Technology) Nmap finished: 1 IP address (1 host up) scanned in 3.103 seconds -----  どうやら、「192.168.1.1」はアクセスできているようです。  では、pingはどうでしょうか? ----- [root@localhost root]# ping 192.168.1.1 -c 1 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. 64 バイト応答 送信元 192.168.1.1: icmp_seq=0 ttl=64 時間=0.233ミリ秒 --- 192.168.1.1 ping 統計 --- 送信パケット数 1, 受信パケット数 1, パケット損失 0%, 時間 0ミリ秒 rtt 最小/平均/最大/mdev = 0.233/0.233/0.233/0.000ミリ秒, pipe 2 [root@localhost root]# ping 192.168.1.2 -c 1 PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. 64 バイト応答 送信元 192.168.1.2: icmp_seq=0 ttl=255 時間=0.565ミリ秒 --- 192.168.1.2 ping 統計 --- 送信パケット数 1, 受信パケット数 1, パケット損失 0%, 時間 0ミリ秒 rtt 最小/平均/最大/mdev = 0.565/0.565/0.565/0.000ミリ秒, pipe 2 [root@localhost root]# ping 192.168.1.3 -c 1 PING 192.168.1.3 (192.168.1.3) 56(84) bytes of data. 送信元 192.168.1.74 icmp_seq=0 目的のホストへ届きません --- 192.168.1.3 ping 統計 --- 送信パケット数 1, 受信パケット数 0, +1 エラー, パケット損失 100%, 時間 0ミリ秒, pipe 2 -----  実験してみると、やはり「192.168.1.3」へは届いていないことがわかります。  なぜ、「192.168.1.1」や「192.168.1.2」へのスキャンには反応するのに、「 192.168.1.3」へのスキャンには反応しないのでしょうか?  紙面もつきてきたので、この問題の解決は次回に行います。 ■0x05.) まとめ  今回は、honeydの起動方法とその基本的なオプションに関して説明しました。  そして、honyedが動作していることも確認しました。  しかし、実験では自分のIPアドレス(192.168.1.1)や「192.168.1.2」へはア クセスできるのに、「192.168.1.3」を監視させようとしてもうまく動作しないと いう問題が発生しました。  そこで、次回はその問題に対してどう対処するのかについて解説していきたい と思います。 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第3章: Crackme Kracking 0x2 --- 著者:Will x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x01.) crackmeとは  簡単にいえば解析の練習用のソフトです。今回はcrackmes.deで配布されている crackmeを解析したいと思います。  なぜか解析中にそのファイルが削除されたので(バグが原因?)、勝手に再配 布させていただきますw ■0x02.) 用意 ●使用ソフト: ・OllyDbg 1,10 本家: http://www.ollydbg.de/  日本語化(予めOllyDbgは日本語化してあることを前提に書いています)  日本語化については下記のURL参照  Digital Travesia: http://hp.vector.co.jp/authors/VA028184/ ●ターゲット ・Cyclopsさん作成のcrackme  http://will.wbjapan.com/archive/other/crackme3.zip ●かる〜いやる気 ●アセンブリのコードが読める位の知識(そんなに要らない) ■0x03.) 解析開始  まず上記のURLからcrackmeをダウンロードして普通に起動します。適当に入力 してからボタンを押しても反応なしです。  まぁ気にせずにOllyでcrackmeを開いて右クリック→検索→全ての参照文字列を 表示させます。文字列を探していくと上の方に"YOU GoT It!!!"といった文字列が 見つかります。それをダブルクリックすると逆アセンブラ画面が表示されます。 ----- 00403358 . 8BF4 MOV ESI,ESP 0040335A . 50 PUSH EAX 0040335B . 8D4D E4 LEA ECX,DWORD PTR SS:[EBP-1C] 0040335E . E8 77030000 CALL 00403363 50 PUSH EAX 00403364 FF15 2C874100 CALL DWORD PTR DS:[<&MSVCRTD._strcmpi>] ; MSVCRTD._stricmp 0040336A 83C4 08 ADD ESP,8 0040336D 3BF4 CMP ESI,ESP 0040336F . E8 F6030000 CALL 00403374 85C0 TEST EAX,EAX 00403376 75 14 JNZ SHORT crackme3.0040338C 00403378 . 6A 00 PUSH 0 0040337A . 68 E8634100 PUSH crackme3.004163E8 ; ASCII "Cracked!!!" 0040337F 68 D8634100 PUSH crackme3.004163D8 ; ASCII "YOU GoT It!!!" 00403384 . 8B4D F0 MOV ECX,DWORD PTR SS:[EBP-10] 00403387 . E8 D2030000 CALL 0040338C > C645 FC 01 MOV BYTE PTR SS:[EBP-4],1 00403390 . 8D4D E4 LEA ECX,DWORD PTR SS:[EBP-1C] 00403393 . E8 3C030000 CALL 00403398 . C645 FC 00 MOV BYTE PTR SS:[EBP-4],0 0040339C . 8D4D E8 LEA ECX,DWORD PTR SS:[EBP-18] 0040339F . E8 30030000 CALL 004033A4 . C745 FC FFFFFF>MOV DWORD PTR SS:[EBP-4],-1 004033AB . 8D4D EC LEA ECX,DWORD PTR SS:[EBP-14] 004033AE . E8 21030000 CALL 004033B3 . 8B4D F4 MOV ECX,DWORD PTR SS:[EBP-C] 004033B6 . 64:890D 000000>MOV DWORD PTR FS:[0],ECX 004033BD . 5F POP EDI 004033BE . 5E POP ESI 004033BF . 5B POP EBX 004033C0 . 81C4 24010000 ADD ESP,124 004033C6 . 3BEC CMP EBP,ESP 004033C8 . E8 9D030000 CALL 004033CD . 8BE5 MOV ESP,EBP 004033CF . 5D POP EBP 004033D0 . C3 RETN -----  ここで、適当に00403358にブレークポイントを仕掛けます。そして実行させて 適当に入力してからボタンを押してブレークポイントで止まったらステップ実行 させます。  すると00403363でEAXに入力したNameに対応するパスらしきものが表示されます。 試しにこのパスを入力してみると正解らしきメッセージが表示されました。本当 は00403358より上のコードを見て、keygenを作らなければいけないようですが、 邪魔くさいのでこのcrackmeをkeygen化してみましょう。  それでは次のコードを変更します。 ----- 変更前 0040335A . 50 PUSH EAX 0040335B . 8D4D E4 LEA ECX,DWORD PTR SS:[EBP-1C] 0040335E . E8 77030000 CALL 00403363 50 PUSH EAX 00403364 FF15 2C874100 CALL DWORD PTR DS:[<&MSVCRTD._strcmpi>] ; MSVCRTD._stricmp 0040336A 83C4 08 ADD ESP,8 0040336D 3BF4 CMP ESI,ESP 0040336F . E8 F6030000 CALL 00403374 85C0 TEST EAX,EAX 00403376 75 14 JNZ SHORT crackme3.0040338C ----- ----- 変更後 00403363 83C4 04 ADD ESP,4 00403366 6A 00 PUSH 0 00403368 6A 00 PUSH 0 0040336A 50 PUSH EAX 0040336B EB 17 JMP SHORT crackme3.00403384 0040336D 3BF4 CMP ESI,ESP 0040336F E8 F6030000 CALL 00403374 85C0 TEST EAX,EAX 00403376 75 14 JNZ SHORT crackme3.0040338C -----  簡単に説明してみます。  まず0040335Eのstrcmpiは比較命令なので必要ありません。よって上の2つの命 令も必要ないので、いらない部分を書き換えます。  0040336AのADD ESP,8が消えてしまうので00403363をADD ESP,4に変更します。  そして00403366〜0040336AでMessageBoxに必要な引数をpushしています。  最後に0040336BのJMPでMessageBox近くまで飛ばします。  変更が終わったら右クリック→実行ファイルへコピー→全ての変更箇所→全て コピー→変なエラーが出ても「はい」→そして保存します。  パッチにすると次のような感じになります。 ----- *== TARGET_FILE ================ FILENAME crackme3.exe * FileSize: 114743 bytes * LastMod.: 2005/09/26 18:18:26 *=============================== 00003363: 50 83 00003364: FF C4 00003365: 15 04 00003366: 2C 6A 00003367: 87 00 00003368: 41 6A 0000336A: 83 50 0000336B: C4 EB 0000336C: 08 17 -----  ちなみにKeygen化した後は正しいパスを入力しても正解のメッセージは表示さ れません。  以上でKeygen化終了です。 ■0x04.) 終わりに  今回はめちゃ簡単ですね。本当は普通にKeygenを作ろうかと思いましたが、時 間がなかったので…。今もあんまり時間がないのでこの辺で。  それでは。 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第4章: 無煙火薬の作り方 --- 著者:Defolos x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x01.) はじめに  こんにちは、Defolosです。  以前、黒色火薬の作り方という題でWizard Bibleに投稿させていただきました ので、今回はその続編のような感じで読んでもらいたいです。というわけで、事 前にWizard Bible vol.19(http://akademeia.info/wizardbible/19/19.txt)の 黒色火薬の作り方を読んでいただけると幸いです。 ■0x02.) 注意点  注意点につきましてはWizard Bible vol.19の内容と重複する部分も多いのです が、念のためこちらにも記載します。このレポートに書かれた内容を実験して失 った信頼、社会的地位、生命などについての責任は一切負いませんので、実験に は細心の注意を払ってください。また、レポートの内容をよく読んでください。 特に注意点を守らなかった場合、高確率でなんらかの損害をこうむることになる と思われます。 1.大量に作ろうとしない 2.密閉された空間内で作ろうとしない 3.保存するときに密閉された容器に入れない 4.静電気のおきない安全な服装をする 5.衝撃や摩擦を加えない 6.金属製の棒などでかき混ぜたりしない 7.適当なものを一緒に混ぜない 8.消化するための水や消火器を近くにおいておく 9.材料を食べない(飲まない) ヽ(´ー`)ノ 10.随時解説する注意点に従う  これらの注意点を守り、決して他人に直接被害がおよばないように実験してく ださい。  この注意点を見てもらえばわかる通り、必ず密閉と衝撃を避けてください。火 薬は密閉状態にすることで爆発します(※1)。密閉していない状態なら燃焼する だけですので暴発しても比較的安全です。ニトログリセリンは衝撃によってすぐ に爆発してしまいますので、ちょっとした熱や衝撃も避けてください。低い温度 ですと比較的安定していますが、少しでも温度があがっていると揺らしただけで 爆発する可能性もありますので注意してください。  また、このレポートの著者であるDefolosは化学について全くの初心者ですので、 ここに書かれた内容を実験する際にはしっかりと検証を行ってから実験するよう にしてください。 (※1)今回解説するニトログリセリンについては密閉状態に関係なく爆発します ので、衝撃、熱などは絶対に加えないようにお願いします。 ■0x03.) ニトロセルロース  ニトロセルロースは綿火薬や硝化綿と呼ばれる火薬です。  手品などで紙をススや煙を出さずに一瞬にして燃やすパフォーマンスがありま すが、これに使われたり、煙が出ないことから銃弾のガンパウダーの成分に使わ れていたりします。  爆発力は小さいですが、無煙であること、製造コストが安く、容易に作れる、 安定性が比較的高いなどの利点が大きく、有用な火薬です。日本では太平洋戦争 末期には布団を国民に提出させてニトロセルロースの原料としたようです。  また、ニトロセルロースは乾燥状態では非常に発火しやすいですが、水分を20 %以上含んだ状態では発火しません。  ニトロセルロースは1845年にドイツのシェーンヴァインが実験を失敗したこと で発見されました。シェーンヴァインが机の上に硫酸と硝酸の混合物(混酸)を こぼしてしまい、近くにあった奥さんのエプロンでふき取ったそうです。このエ プロンを水で洗って暖炉で乾かしていたところ、エプロンが乾いたとき一瞬にし て燃え尽きてしまったようです。この偶然を糸口にシェーヴァインはニトロセル ロースの性質まで解き明かしたようです。  セルロースはその分子構造(ブドウ糖基)の中に-OH基(水酸基)を3つ持って います。この部分を硝酸でエステル化(ニトロ化)することでニトロセルロース ができます。  ニトロセルロースは、セルロースに含まれる-OH基を何個程度ニトロ化するかに よって窒素量がかわり、この窒素量によって色々な性質をもつ物ができます。2つ 程度ニトロ化した物を弱綿薬と呼び、窒素量は約10〜12%です。すべてをニトロ化 した物は窒素量14.14%となりますが、窒素量14%以上のものを作るのは難しく、日 本では窒素量約13%以上のものを強綿薬と呼びます。  窒素量の割合によって以下の表のように利用目的が異なります。 +------------+----------------+--------------------+ | 窒素量[n%] |ニトログリセリン| 用途 | | |への溶解性 | | +------------+----------------+--------------------+ | 13.1〜13.4 | 不溶 | さく薬・無煙火薬 | +------------+----------------+--------------------+ | 12.8〜13.1 | 不溶 | さく薬・無煙火薬 | +------------+----------------+--------------------+ | 12.5〜12.8 | 不溶〜僅溶 | 無煙火薬 | +------------+----------------+--------------------+ | 12.0〜12.5 | 甚溶 | 無煙火薬,コロジオン| | | 僅溶 | ダイナマイト | +------------+----------------+--------------------+ | 11.0〜12.0 | 僅溶 | フィルム,セルロイド| +------------+----------------+--------------------+ | 10.0〜11.0 | 僅溶 |セルロイド・ラッカー| +------------+----------------+--------------------+ | 9.0〜10.0 | 不溶 | 以下用途なし | +------------+----------------+--------------------+ (表:ニトロセルロースの窒素量および用途) 日本化学会編「化学便覧 応用化学編U 材料編」(丸善刊)より参照 ■0x04.) ニトロセルロースの合成 ●用意するもの ・硝酸 ・硫酸 ・水酸化ナトリウム ・脱脂綿 ・水、氷 ・洗面器 ・300mlビーカー ・蓋になるもの ・メスシリンダー ●注意事項 ・使用する器具はしっかりと乾燥させてから使用してください。水滴が残ってい ますと、硫酸と水が反応して水が沸騰し周囲に硫酸をまきちらすことになりかね ません。 ・硝酸や硫酸は目分量で計らずにメスシリンダーを使って計ってください。 ・こぼさないでください。こぼした場合は薄い水酸化ナトリウム水溶液で中和し てください。また、手などについたときは焦らずに大量の水道水で洗い流してく ださい。 ・引火性の物質を扱うため、火気のない場所で合成してください。また、換気性 をよくしておいてください。 ●手順 1:各薬品材料を計量します。濃硝酸は50ml、濃硫酸は100ml別々のビーカーに用 意しますが、濃硫酸は乾燥した別のメスシリンダーで計量するようにしてくださ い。 2:硝酸と硫酸を混ぜ合わせて混酸を作ります。300mlビーカーに濃硝酸を50ml入 れ、これに100mlの濃硫酸を少しずつかき混ぜながら加えます。ここで注意するこ とは、濃硝酸に濃硫酸を加えるのであって、濃硫酸に濃硝酸を加えてはいけませ ん。また、発熱するのでビーカーを、氷水をはった洗面器につけながら行ってく ださい。 3:できあがった混酸を室温近くまで下がるまで冷却してください。混酸の温度が 上がると、反応させる脱脂綿が溶けてしまいます。比熱が大きいので時間がかか るようです。 4:別のビーカーに脱脂綿10gを計って入れておきます。できるだけ底のほうに入 れて置きます。 5:脱脂綿の入ったビーカーを氷浴につけて、混酸を少しずつ加えてください。脱 脂綿に水分が残っていると発熱するので注意してください。 6:ビーカーに蓋をして24時間以上放置してください。最低でも1時間は混酸に浸 けるようにしてください。1日、2日置いても大丈夫です。蓋には注意書きを書き、 安全な所に氷浴のまま放置してください。氷はいずれ融けますが、もう温度は上 昇しませんのでそのままで結構ですが、他人が触らないよう保管場所には注意し てください。 7:十分に放置したら脱脂綿を取り出し、水中でしっかり洗浄してください。この 時混酸が多く残っていると危険ですので、ビーカーから取り出す時十分にしごい ておいてください。また、一度に取り出さず少しずつ取り出すようにしてくださ い。 8:取り出した脱脂綿を流水で十分洗浄してください。十分洗ったら、手でもんで 完全に酸を取り除きます。 9:流水で洗ったあとは手で良く絞って、適当な大きさにしてプラスチックビーカ ーに移し、紙をかぶせて乾燥させてください。ニトロセルロースは80度以上にな ると燃える危険性があり危険ですので、決してドライヤーなどで乾燥させないで ください。  以上でニトロセルロースの合成は完了です。見た目は脱脂綿と全くかわらない ので、少量をピンセットでとり燃やして見ましょう。成功していればススもなく 一瞬で燃え尽きるはずです(※2)。  また、材料となる脱脂綿は純粋パルプのティッシュペーパーでも代用が可能で す。 (※2)ススがたくさん出た場合はニトロ化がまだあまり進んでいなかったと考え られます。混酸につける時間を多くしてみてください。また、燃やした時に硝酸 くさかった場合は水洗い不足です。 ■0x05.) ニトログリセリン  ニトログリセリンは無機のオキソ酸である硝酸とグリセリンのエステルです。 非常に不安定で、少しでも温度が高いと振っただけで爆発します。  ニトログリセリンは分解すると、二酸化炭素と窒素と少量の酸素になり、危険 なガスなどを発生しない点、爆発力が比較的大きい点、材料が安価で容易に製造 できる点など非常に利点が多く有用な火薬です。かの有名なアルフレッド・ノー ベルの発明もニトログリセリンを利用したダイナマイトの製造でした。  アルフレッド・ノーベルはニトログリセリンを確実に爆発させるために雷管( ※3)を発明しました。  次にノーベルは爆発しやすいニトログリセリンを珪藻土に染み込ませて粘土状 にして安定させることで単なる衝撃や加熱による意図しない爆発を防ぐことがで きることを発見しました。  この2つの発見を組み合わせることで爆発しやすいニトログリセリンを安定させ、 なおかつ意図したときに爆発させることに成功しました。  さらに、珪藻土による固体化と同様の効果は、ニトログリセリンを同様の爆薬 であるニトロセルロースと混合してゼラチン状にコロイド化させたものでも得ら れることを発見し、さらに強力かつ安全に扱える爆発物の開発に成功しました。  1866年ノーベルはこれを製品化し、ダイナマイトと名づけ、巨万の富を得まし た。  また、ニトログリセリンは狭心症の特効薬(舌下錠)として使われているようで す。作用自体はよく解かっていないようですが、すぐに粘膜から吸収され、血管 を拡張する事で血圧を下げているようです。 (※3)一気に衝撃を与えることで安定した火薬を爆発させる誘爆装置です。ちな みに、たとえ爆弾を作ってもこれだけは自作してはいけないと言われています。 ■0x06.) ニトログリセリンの合成 ●用意するもの ・硝酸 ・硫酸 ・水酸化ナトリウム ・グリセリン ・水、氷 ・大きめのビーカー ・試験管 ・メスシリンダー ・ロート ・ろ紙 ●注意事項 ・注意事項については「■0x05.) ニトロセルロースの合成」を参照してください。 ●手順 1:氷をビーカーに入れ水をすこし加えておきます。 2:濃硫酸3mlと濃硝酸1mlを試験管に入れて良く混合し混酸を作ります。そして、 ステップ1のビーカーに入れて冷却しますが、確実に冷やしておかないと爆発する ので注意してください。 3:確実に冷やしたらスポイトなどでグリセリン1ccを少しずつ加えて攪拌しよく 冷やします。 4:グリセリンをすべて加えたら、白濁するまで軽く振っては冷却を繰り返します。 5:冷水をいれたビーカーにこれを注ぐと、底に油状の物が出てきます。 6:ロートにろ紙をセットしてから少量の冷水で濡らします。 7:反応物をろ過し、少量の冷水で洗浄してください。  これでニトログリセリンの合成ができました。非常に簡単ですが、しっかり冷 やしておかないと爆発しますので気を抜かないでください。  また、場合によっては長い時間を置かなければしっかりニトロ化が進まないこ ともあるようですが、危険ですので放置してどこかに行かないようにしてくださ い。ニトロセルロースとは違い、非常に爆発しやすいので放置している間に他人 が触って爆発してしまうことがあるかもしれません。  ニトロセルロースと同じように極少量をピンセットなどで取り、火をつけてみ ることで成功したかどうかを確認しますが、このとき取るニトログリセリンは本 当に少量にしてください。また、大きな音が出るようですので注意してください。 ■0x07.) 材料の入手  材料の入手には前回の黒色火薬の作り方でも紹介したように試薬屋(※4)を利 用します。詳細については、Wizard Bible vol.19の「黒色火薬の作り方」を参照 してください。  今回入手しなければならない硝酸(※5)、硫酸(※6)は非常に危険なもので すので、身分証明書と印鑑が必要になります。また、それ相応の知識やしっかり とした理由、態度などがなっていないと販売してくれない可能性も高いです。硝 酸と硫酸とグリセリン(※7)を一緒に注文すると高確率で売ってくれないと思わ れます。ここでは、ニトロセルロースの合成実験をすると正直に話して注文する のが無難でしょう。  水酸化ナトリウムも同じように危険ものですが、酸の中和に使用するため入手 しておいたほうが良いでしょう。  よくネットで硫酸の入手方法として車などのバッテリー液を煮詰めるという方 法が紹介されていることがありますが、これは非常に危険ですので止めたほうが いいです。さらに、バッテリー液は希硫酸の他に様々な物質が混ざっていて純度 があまりにも低すぎますし、硫酸は水をよく吸収するために煮詰めただけでは純 度98.3%以上のものは得られません。  できるだけ純粋な物質が求められますので、よほどの理由がない限りは試薬屋 で購入することをオススメします。  最後に材料入手時の注意点、学校や工場から勝手に持ってきてはいけません。 (※4)試薬屋とは、人体に使わない薬品を取り扱っている薬品店です。多くの場 合は病院向け医療用品・薬剤の販売等の副業として試薬屋をやっています。 (※5)硝酸:化学式HNO(3)。無色透明の腐食性の強い有毒な液体で、光により分 解して二酸化窒素を生成する。しめった空気中で白煙を生じる。濃硝酸は強い酸 性で金・白金を除くほとんどの金属を酸化して溶かす。 (※6)硫酸:無機酸の一種。化学式H(2)SO(4)。無色で粘り気のある重い液体で、 硝酸に次いで酸性が強い。水を吸収しやすく、有機物からも水の組成と同じ割合 で酸素と水素を奪いとり、炭素を遊離させる。 (※7)グリセリンは薬局でも売っている可能性はありますが、純度に疑問はあり ます。また、グリセリンは浣腸薬としても有名です。 ■0x08.) さいごに  ごく簡単に無煙火薬の作り方を解説してみましたが、どうでしたか? 結構簡 単そうに見えますね。ですが、実際はかなり不安定な化合物ですので(特にニト ログリセリン)適当な準備で合成しようとしないようにお願いします。  これらの無煙火薬の知識は災害時に大きな手助けになると思います。比較的簡 単に手に入る材料で大きなエネルギーを生み出す火薬は様々な危機を回避するの に役立つでしょう。  このレポートの内容が災害時に少しでも役に立てば幸いです。 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第5章: Linuxアクセスコントロールクイックリフェレンス --- 著者:Taka John Brunkhorst x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x01.) はじめに  今回はLinuxアクセスコントロールについて書いてみました。  始めはチュートリアルとして書き始めましたがどうも書きたいことが決まって いるのに言葉が出てこないようなのでクイックリフェレンスということにしてみ ました。  なお、+6777などUNIXと違うとこがあったような記憶がするのでUNIXは含めませ んでしたが、ほとんどの場合は共通するはずです。 ■0x02.) UNIXライクパーミッション <シンボル>  Linuxアクセスコントロール(UNIXライクパーミッション)は4通りの表示方法 があります。  まずひとつはシンボルです。このシンボルでのパーミッション表示は非常にわ かりやすい仕組みになっています。例えば、「s-trwxrw-r--」なら、「s-t」(S pecial bits)、「rwx」(User)、「rw-」(Group)、「r--」(Other)と分け ることができます。つまり、シンボルは4つのセクションに分かれているのです。 ■0x03.) スペシャルモード  スペシャルモード(Special bitsの部分)はファイル、ディレクトリに対して 特別な操作を必要とする場合に使用します。左から順に、SUID、SGID、Stickyシ ンボルとなっています。 ・SUID(Set User ID)  SUIDはファイルのオーナーの権限でプログラムを実行する場合に使われます。 例えばプログラムのオーナーがrootで実行者がfooであるとします。通常ですとf ooの権限で実行されますがSUIDがセットされているとrootの権限で実行できます。 SUIDを使用するとオーナーのパスワードを渡さずにオーナーの権限で実行できる のでlprとなどで使用されています。  シンボルは「s」です。 ・SGID(Set Group ID)  SGIDはSUIDと似ています。SGIDがセットされているファイルに対してはそのフ ァイルのグループ権限で実行できます。またSGIDはディレクトリにも使用できま す。この場合そのディレクトリ下に作成されたファイルすべてにそのディレクト リのグループ権限が与えられます。例えば/var/user/fooのディレクトリがSGID moinとしtouch /var/user/foo/omgした場合omgはmoinのグループに所属します。  シンボルは「s」です。 ・Sticky  Stickyは元々プログラムの起動を短縮するために実行可能プログラムに適用さ れプログラム終了後、プログラムのイメージをメモリーに保存するために使用さ れていました。現在これはバーチャルメモリーの発展により不必要になりました。 Stickyが有効されたファイル、ディレクトリは編集のみ許可され、改名削除はフ ァイルオーナー、ディレクトリオーナー又はroot以外できません。  シンボルは「t」です。 ■0x04.) 使用方法  SUID,SGID,Stickyは普段User,Group,OtherのExecutable(x)の位置に置かれま す。  例えばその他のユーザー(other[o])にSticky(T)を適用する場合は「$ chm od o+T file1」と入力し、シンボルで「rwxrw-rwt」という風になります。  他にもいくつか例を示してみます。 ○GroupにSGID  dir1に作成されたファイルは誰が作成しようが関係なくgrpに所属する。 ----- $ chmod g+s dir1 $ ls -l dir1 drwxrwsr-- 0 usr grp 0 dir1 ----- ○OtherにSUID  exec1がusrの権限で実行される。 ----- $ whoami usr2 $ chmod o+s exec1 $ ls -l exec1 rwxrwxr-s 0 usr grp 0 exec1 ----- ○GroupにSticky  grpに所属しているユーザーはfile1を編集できるが削除や改名はできない。 ----- $ chmod g+t file1 $ ls -l file1 rwxrwTr-- 0 usr grp 0 file1 ----- ■0x05.) User,Group,Other ・User:ファイルの所有者、作成者 ・Group:ファイルを所有しているグループ ・Other:その他のユーザー +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | パーミッション | シンボル | ファイルへの権限 | ディレクトリへの権限 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Read | r | ファイルを読む権限 | ディレクトリの内容を表示 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Write | w | ファイルを編集 | ファイルを作成削除 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Exucute | x | ファイルを実行 | ファイルの読み書き +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ■0x06.) バイナリ  Special,User,Group,Otherパーミッションはバイナリで表示することができま す。  「001」「111」「110」「100」というバイナリの場合、Special,User,Group,O therとなります。1が有効というわけですから、シンボルでは「s-T rwx rw- r--」 となり、「rwx rw- r-T」となります。 ■0x07.) Octal(8進数)  例えばバイナリが「111」の場合、先頭から「4」「2」「1」となります。  「000 111 101 100」のバイナリの場合、 ・000 = 0+0+0 = 0 ・111 = 4+2+1 = 7 ・101 = 4+0+1 = 5 ・100 = 4+0+0 = 4  つまりOctalで「0754」になります。0は略して、「754」と表記できます。 ■0x08.) バイナリ,シンボル,Octal変換例 ----------- Symbol: --- rwx rwx rwx binary: 000 111 111 111 Octal: 0(0+0+0=) 7(4+2+1) 7(4+2+1) 7(4+2+1) = 0777 = 777 ----------- Symbol: rwx rws rwT binary: 011 111 111 111 Octal: 3(2+1) 7(4+2+1) 7(4+2+1) 7(4+2+1)= 3777 ----------- Symbol: rws r-s r-x binary: 110 111 101 101 Octal: 6(4+2) 7(4+2+1) 5(4+1) 5(4+1) = 6755 ■0x09.) Umask  umaskはシステムのデフォルトパーミッション設定を表示、変更するときに使い ます。  現在のumask設定を表示するにはumaskコマンドを使います。 ----- $ umask 0022 -----  この場合、新しく作成されたすべてのファイルのパーミッションは644(=666 -22)、ディレクトリのパーミッションは755(=777-22)になります。  もうひとつ例を出しておきます。例えば、umaskが0027のときは、 ○ファイルの場合 ・640(=666-27) マイナスは0とする。 ・シンボル:rw- r-- --- ○ディレクトリの場合 ・パーミッション:750(=777-27) ・シンボル:rwx r-x --- ■0x02.) あとがき  どうでしたか?  クイックリフェレンスどころかただの表になってしまったような気がします。 ところどころ抜けてるところもあるでしょうが許してください。次回はもしかし たらmanページの書き方、もしかしたらgdb(GNU DeBugger)を使ったBoF、または レギュラーエクスプレションチュートリアルを書くかもしれません。 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第6章: パケットフィルタリング 〜アプリケーション篇〜 --- 著者:Kenji Aiko x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x01.) はじめに  セキュリティが声高に叫ばれている現在、アンチウイルスソフトやFirewallは、 もはや無くてはならない存在になってしまいました。というわけで、今回はパケ ットフィルタリングについてやってみようと思います。一般的な商用のFirewall などは、デバイスドライバ(フィルタドライバ)を使い、パケットフィルタリン グを行っていますが、このテキストでは、アプリケーションレベルでそれをやっ てみることにします。ちなみに、デバイスドライバを利用する方法を知りたい方 は、来月私が書く予定である「パケットフィルタリング 〜デバイスドライバ篇 〜」を読んでください。あくまで予定ですけどね(^^;。  私が使用する環境は「WindowsXP + VC++.NET」ですが、Windows2000以降ならば、 問題ないでしょう。 ■0x02.) パケットフィルタリングとは  パケットフィルタリングとは、ルータやファイヤーウォールが持っている機能 のひとつで、送られてきたパケットを検査して通過させるかどうか判断する機能 です。パケットのヘッダにはプロトコルや送信元アドレス、送信先アドレスやポ ート番号などの情報が含まれており、これを参照して通過するかどうかを決定し ます。そして、通過できなかったパケットは送信元に通知されたり、破棄された りします。どのような方針に基づいて判断するかは、そのネットワークの管理者 が任意に設定することになり、現在では、最も一般的かつ簡便なセキュリティ技 術として知られています。最近のルータは大半が持っている機能ですが、よく知 られているだけに破る手段も多く、他の技術と併用することが肝要です。 (IT用語辞書e-wordより) ■0x03.) すべてのパケットを破棄  まずはMSDNのパケットフィルタリングリファレンスを読破してください。 ・Packet Filtering Reference http://msdn.microsoft.com/library/default.asp?url=/library/en-us/rras/rras/packet_filtering_reference.asp  あっ、やっぱり読破はしないでください。読破してしまったら、このテキスト 読まなくても理解できてしまうので(笑)。なので、流し読みしてください。  それで、どうやらパケットフィルタリング関連のAPIを利用すると、パケット通 過の可否をアプリケーション側で決められるようです。というわけで、早速利用 したプログラムを作成します。 ----- ex1.cpp(http://ruffnex.oc.to/kenji/text/fire_a/ex1.cpp) #include #include #include #include #pragma comment(lib, "iphlpapi.lib") int main(void) { BYTE localAddr[4] = { 192,168,4,2 }; INTERFACE_HANDLE hFilterIf; DWORD dwRet = PfCreateInterface( NULL, PF_ACTION_DROP, PF_ACTION_DROP, FALSE, TRUE, &hFilterIf); if(dwRet != NO_ERROR){ fprintf(stderr, "PfCreateInterface failed"); return -1; } printf("Start Filtering"); dwRet = PfBindInterfaceToIPAddress(hFilterIf, PF_IPV4, localAddr); if(dwRet != NO_ERROR){ fprintf(stderr, "PfBindInterfaceToIPAddress failed"); return -1; } _getch(); PfUnBindInterface(hFilterIf); PfDeleteInterface(hFilterIf); return 0; } -----  最初に定義されているlocalAddr配列には自分マシンのIPアドレスを指定してく ださい。私の環境ではIPアドレスが「192.168.4.2」でした。最初にPfCreateInt erface関数を使って新しいフィルタインターフェースを生成します。PfCreateIn terfaceは以下のように定義されています。 ----- PfCreateInterface関数 DWORD PfCreateInterface( DWORD dwName, PFFORWARD_ACTION inAction, PFFORWARD_ACTION outAction, BOOL bUseLog, BOOL bMustBeUnique, INTERFACE_HANDLE* ppInterface ); -----  dwNameには、インターフェースの識別子を指定しますが、ここをNULL(0)にす ると、適当な識別子を決定してくれますので、NULLで問題ありません。inAction とoutActionはそれぞれ受信するパケットと送信するパケットの扱いを決めます。 inAction PF_ACTION_DROP → 受信するパケットを破棄する PF_ACTION_FORWARD → 受信するパケットを破棄しない outAction PF_ACTION_DROP → 送信するパケットを破棄する PF_ACTION_FORWARD → 送信するパケットを破棄しない  bUseLogはログを使用するかどうかでしょうか? 実は私も良く分かりません(^^;。 bMustBeUniqueは、インターフェースを共有するか否かを決めます。TRUEならば共 有しません。そして最後のppInterfaceにインターフェースハンドルを指定します。 この関数が成功すると、以後ppInterfaceに渡したものがインターフェースハンド ルとして使用されます。  PfCreateInterfaceを使ってインターフェースを生成した場合は、PfDeleteInt erfaceを呼び出してインターフェースを削除しなければなりません。ex1.cppでは、 一番最後に呼び出しています。  次のPfBindInterfaceToIPAddress関数は以下のように定義されています。 ----- PfBindInterfaceToIPAddress関数 DWORD PfBindInterfaceToIPAddress( INTERFACE_HANDLE pInterface, PFADDRESSTYPE pfatType, PBYTE IPAddress ); -----  pInterfaceはPfCreateInterface関数に渡したインターフェースハンドルです。 pfatTypeはIPのバージョンを指定します。 PF_IPV4 → IP version 4(現在のデフォルト) PF_IPV6 → IP version 6(10年後のデフォルト?)  IPAddressは自分のマシンのIPアドレスを指定します。  PfBindInterfaceToIPAddressを使用したら、その後、PfUnBindInterfaceを使っ てバインドを解除しなければなりません。ex1.cppでは、最後にそれを行っていま す。  ではex1.cppをコンパイルしてください。そして、実行する前に、まず他のサー バーへpingを打ってください。 ----- コマンドプロンプト C:\kenji>ping yahoo.co.jp Pinging yahoo.co.jp [203.141.35.113] with 32 bytes of data: Reply from 203.141.35.113: bytes=32 time=19ms TTL=242 Reply from 203.141.35.113: bytes=32 time=19ms TTL=242 Reply from 203.141.35.113: bytes=32 time=19ms TTL=242 Reply from 203.141.35.113: bytes=32 time=19ms TTL=242 Ping statistics for 203.141.35.113: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 19ms, Maximum = 19ms, Average = 19ms C:\kenji> -----  ちゃんと、pingが通っていることが確認できます。では、次にex1.cppをコンパ イルしてできたex1.exeの実行中にpingを打ってください。ex1.exeは_getchのと ころでキー入力を求めて処理が止まるので、そのままの状態でpingを打ちます。 ----- ex1.exe実行中 Start Filtering ----- ----- コマンドプロンプト C:\kenji>ping yahoo.co.jp Pinging yahoo.co.jp [203.141.35.113] with 32 bytes of data: Request timed out. Request timed out. Request timed out. Request timed out. Ping statistics for 203.141.35.113: Packets: Sent = 4, Received = 0, Lost = 4 (100% loss), C:\kenji> -----  今度はpingがyahoo.co.jpへ届きませんでした。pingの他にも、ブラウザでお好 みのサイトへアクセスするなどなど、いろいろと試してみてください。おそらく すべて失敗するはずです。すべてのネットワークパケットを遮断しているため、 ex1.exe実行中は、ネットワークを経由したどんなもアクセスも禁止されます。「 yahoo.co.jp」をIPアドレスに変換するためにDNSサーバに問い合わせるかもしれ ませんが、その時点でパケット送信が失敗する可能性もあります。とにかくping は成功しないことでしょう。 ■0x04.) パケットフィルタリング  ex1.exeがすべてのパケットを遮断したのは、PfCreateInterface関数の引数in ActionとoutActionにPF_ACTION_DROPを指定していたからです。つまり、逆にPF_ ACTION_FORWARDを指定していたら、すべてのパケットを通過させていました。ま ずはそれを頭に置いておいてください。 ----- PfAddFiltersToInterface関数 DWORD PfAddFiltersToInterface( INTERFACE_HANDLE ih, // インターフェースハンドル DWORD cInFilters, // 受信フィルタ数 PPF_FILTER_DESCRIPTOR pfiltIn, // 受信フィルタ DWORD cOutFilters, // 送信フィルタ数 PPF_FILTER_DESCRIPTOR pfiltOut, // 送信フィルタ PFILTER_HANDLE pfHandle // フィルタハンドルの配列を格納する領域 // 通常はNULLで構わない ); -----  PfAddFiltersToInterface関数は、指定されたインタフェースに指定されたフィ ルタを加えます。この時にフィルタがどう働くのか、それはPfCreateInterface関 数に指定したinActionとoutActionによって変わります。  inActionとoutActionにパケットの破棄(PF_ACTION_DROP)を指定していたらな ら、PfAddFiltersToInterface関数を使って追加されたフィルタは、パケット通過 の条件となります。逆に、パケットの通過(PF_ACTION_FORWARD)を指定していた らなら、PfAddFiltersToInterface関数を使って追加されたフィルタは、パケット 破棄の条件となります。  つまり、ex1.exeにPfAddFiltersToInterface関数を使って新たにフィルタを加 えた場合、そのフィルタの条件にあったパケットは通過します。それを示したプ ログラムex2.cppを見てください。 ----- ex2.cpp(http://ruffnex.oc.to/kenji/text/fire_a/ex2.cpp) #include #include #include #include #define DIR_INPUT 1 #define DIR_OUTPUT 2 #pragma comment(lib, "iphlpapi.lib") int parseAddress(char *addrStr, BYTE *addr, BYTE *mask) { int ip[4], mk[4]; int num = sscanf(addrStr, "%d.%d.%d.%d/%d.%d.%d.%d", &ip[0], &ip[1], &ip[2], &ip[3], &mk[0], &mk[1], &mk[2], &mk[3]); if(num != 8) return -1; for(int i=0; i < 4; i++){ if(ip[i] < 0 || ip[i] > 255 || mk[i] < 0 || mk[i] > 255) return -1; addr[i] = ip[i], mask[i] = mk[i]; } return 0; } int addFilter(INTERFACE_HANDLE hIf, int flag, DWORD dwProtocol, char *localAddrStr, char *remoteAddrStr) { BYTE localAddrBin[4], remoteAddrBin[4]; BYTE localMaskBin[4], remoteMaskBin[4]; parseAddress(localAddrStr, localAddrBin, localMaskBin); parseAddress(remoteAddrStr, remoteAddrBin, remoteMaskBin); PF_FILTER_DESCRIPTOR filter; memset(&filter, 0, sizeof(filter)); filter.dwFilterFlags = FD_FLAGS_NOSYN; filter.dwRule = 0; filter.pfatType = PF_IPV4; filter.dwProtocol = dwProtocol; filter.fLateBound = 0; filter.wSrcPort = ((dwProtocol == FILTER_PROTO_ICMP) ? FILTER_ICMP_TYPE_ANY : FILTER_TCPUDP_PORT_ANY); filter.wDstPort = ((dwProtocol == FILTER_PROTO_ICMP) ? FILTER_ICMP_TYPE_ANY : FILTER_TCPUDP_PORT_ANY); filter.wSrcPortHighRange = filter.wSrcPort; filter.wDstPortHighRange = filter.wDstPort; DWORD dwRet; if(flag == DIR_INPUT){ filter.SrcAddr = remoteAddrBin, filter.SrcMask = remoteMaskBin; filter.DstAddr = localAddrBin, filter.DstMask = localMaskBin; dwRet = PfAddFiltersToInterface(hIf, 1, &filter, 0, NULL, NULL); }else{ filter.SrcAddr = localAddrBin, filter.SrcMask = localMaskBin; filter.DstAddr = remoteAddrBin, filter.DstMask = remoteMaskBin; dwRet = PfAddFiltersToInterface(hIf, 0, NULL, 1, &filter, NULL); } if(dwRet != NO_ERROR){ printf("addFilter: PfAddFiltersToInterface failed"); return -1; } return 0; } int main(void) { BYTE localAddr[4] = { 192,168,4,2 }; INTERFACE_HANDLE hFilterIf; DWORD dwRet = PfCreateInterface( NULL, PF_ACTION_DROP, PF_ACTION_DROP, FALSE, TRUE, &hFilterIf); if(dwRet != NO_ERROR){ fprintf(stderr, "PfCreateInterface failed"); return -1; } addFilter(hFilterIf, DIR_OUTPUT, FILTER_PROTO_ICMP, "192.168.4.2/255.255.255.255", "210.198.12.224/255.255.255.255"); addFilter(hFilterIf, DIR_INPUT, FILTER_PROTO_ICMP, "192.168.4.2/255.255.255.255", "210.198.12.224/255.255.255.255"); printf("Start Filtering"); dwRet = PfBindInterfaceToIPAddress(hFilterIf, PF_IPV4, localAddr); if(dwRet != NO_ERROR){ fprintf(stderr, "PfBindInterfaceToIPAddress failed"); return -1; } _getch(); PfUnBindInterface(hFilterIf); PfDeleteInterface(hFilterIf); return 0; } -----  ex2.cppで追加しているフィルタは、ICMPで「192.168.4.2」から「210.198.12 .224」へ送信されるパケットと「210.198.12.224」から「192.168.4.2」へ送信さ れるパケットの2つです。これらの条件に当てはまるパケットは破棄されずに、正 常にネットワークを通過することになります。ちなみに「210.198.12.224」は「 ruffnex.oc.to」のIPアドレスです。  では、このプログラムを実行してください。そしてコマンドプロンプトから「 ping 210.198.12.224」と入力してください。「ping ruffnex.oc.to」とすると、 名前解決のためにDNSサーバに問い合わせる可能性があるので、必ずIPアドレスを 指定してください。 ----- コマンドプロンプト C:\kenji>ping 210.198.12.224 Pinging 210.198.12.224 with 32 bytes of data: Reply from 210.198.12.224: bytes=32 time=20ms TTL=242 Reply from 210.198.12.224: bytes=32 time=21ms TTL=242 Reply from 210.198.12.224: bytes=32 time=20ms TTL=242 Reply from 210.198.12.224: bytes=32 time=20ms TTL=242 Ping statistics for 210.198.12.224: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 20ms, Maximum = 21ms, Average = 20ms C:\kenji> -----  正常にパケットは通過します。しかし、その他のパケットはすべて破棄されま す。デフォルトの設定がパケット破棄(PF_ACTION_DROP)であり、その状態でPf AddFiltersToInterfaceにてフィルタの設定をしたので、フィルタの条件と一致し たパケットは通過することになるわけです。そして、逆に、デフォルトの設定を パケット通過(PF_ACTION_FORWARD)にしておいた場合、フィルタの条件と一致し たパケットは破棄されることになります。  このパケットフィルタリングのテクニックを利用すると、例えば自分のコンピ ュータにインターネット利用の制限をかけることが可能になります。次のプログ ラムをみてください。 ・ex3.cpp http://ruffnex.oc.to/kenji/text/fire_a/ex3.cpp  このプログラムはex2.cppに多少の改良を加えたものです。このプログラムは、 コンピュータが行う、ポート「20番から25番」と「81番から65535番」へのアクセ スをすべて禁止します。つまり、FTPやSMTPやPOP3といったプロトコルが使用でき なくなります。よく高校や大学などの教育機関に置いてあるパソコンには、学生 が変なことをしないように制限がかけてある場合がありますが、このようなツー ルを作成することによって容易にそれが実現できます。また、フィルタを強化す れば、簡易的なFirewallといったものも作成することができると思います。 ■0x05.) さいごに  さて、いかがだったでしょうか。アプリケーションレベルでもパケットフィル タリングが可能なんて少しビックリですが、パケットの内容を解析できないので、 結局、本格的にパケットフィルタリングを行うためには、ドライバを組む必要が ありそうです。実はこの内容は、ネット上でドライバでのパケットフィルタリン グを調べている最中に分かったものでして、本当はドライバでのパケットフィル タリングを書こうとしていたのですが、どうせなので、こっちも書くことにしま した。来月は「パケットフィルタリング 〜デバイスドライバ篇〜」と題してお 送りする予定ですが、予定は未定なので期待しないで待っててください(^^;。さ て、最後になりましたが、ここまで読んでくれて本当にありがとうございます。  では、また会う日まで... ■0x06.) 参考サイト ・Packet Filtering in .NET http://www.codeproject.com/managedcpp/packetfilteringnet.asp x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第7章: 個人情報保護法 〜 試験直前対策編 〜 --- 著者:IPUSIRON x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x01.) はじめに  皆さんは個人情報保護法についてどう思っているでしょうか? 正直聞いたこ とはあるけど中身はよく知らないという人もいるのではないでしょうか。私とし ても企業に勤めているわけではないので、全然興味がありませんでした。しかし、 資格取得を考えているなら、そうもいっていられません。今年から施行された個 人情報保護法が試験問題に出題されると考えるのが自然だからです。例えば、セ キュリティアドミニストレータ試験(午後問題に出ると勝手に予想)、個人情報 保護士認定(今年10月からスタート。この資格は個人情報保護法そのものに関す る試験)、セキュリティ検定(10月で第3回目。個人情報保護士認定を主宰すると ころを同じなので、似たような問題が使いまわされる可能性が大)、テクニカル エンジニア・セキュリティ(来年4月からスタート)などの資格がそうです。  私の場合、10月に3つのセキュリティ関係の資格が待ち受けており、そのために 仕方なく個人情報保護法について学びました。元々、セキュリティマネジメント やISO関係についてもあまり興味ありませんでしたが、それらについても調べまし た。こういった分野の問題は知らなければまったく解けませんが、逆に一旦基本 さえつかんでしまえば大体の問題が単純で簡単に解けてしまうようです。むしろ、 こういった問題を選択していけば、高得点を狙えるでしょう。意外に苦手な人が 多いようなので、ここで差をつけることができるはずです。  そういったことで、セキュリティ関係の資格の受験を考えている人は、一読し てみるとよいかもしれません。 ■0x02.) 個人情報保護法とは?  そもそも個人情報保護法とは何でしょうか。2005年4月から施行された法律で、 正式には「個人情報の保護に関する法律」と呼びます。国・地方公共団体はもち ろんのこと、その他の個人情報を取り扱う事業者が守るべき個人情報に関する義 務を定めています。この事業者とは小規模事業者を除く民間事業者全体を指しま す。ただ、現場で実際に個人情報を扱うのは従業員です。法律では事業者を対象 としていますが、従業員一人ひとりが守らなくてはなりません。つまり、会社勤 めや自営業をしているなら、個人情報保護法は他人事で済まされる問題ではない のです。  まず、この法律の目的は第1条に述べられています。 第1条:「この法律は、高度情報通信社会の進展に伴ない個人情報の利用が著しく 拡大していることにかんがみ、個人情報の適正な取扱いに関し、基本理念及び政 府による基本方針の作成その他の個人情報の保護に関する施策の基本となる事項 を定め、国及び地方公共団体の責務等を明らかにするとともに、個人情報を取り 扱う事業者の遵守すべき義務等を定めることにより、個人情報の有用性に配慮し つつ、個人の権利利益を保護することを目的とする」  ちょっと長すぎていまいち一読しただけではいまいち内容がわからないかと思 います。ポイントとなるのは、「個人情報の有用性に配慮しつつ、個人の権利利 益を保護することを目的とする」という部分です。個人情報をビジネスに活用す ることが発展する一方で、やりすぎによるその個人情報に対応する個人の権利の 侵害を防ぐことを目的としているわけです。つまり、どこからどこまでにおいて、 個人情報を活用してよいのかということを明確にしたわけです。この法律が成立 したのは2003年の5月です。その背景にあるのは、インターネットやコンピュータ の普及による個人情報を利用したビジネスの利用拡大があります。また、個人情 報が一旦流出してしまうと、それを完全に回収することは事実上不可能となりま す。さらに、インターネットの世界に流れてしまうと、流出先の範囲が大規模に なってしまい、しかも回収は不可能です。その深刻さは、WinMXやWinnyのネット ワークで「個人情報」で検索してしまうとわかります。例えば、集団レイプ事件 を起こした早稲田大学スーパーフリーに所属するメンバー表、エステTBCの容姿ラ ンクを含む個人情報、キンタマウイルス(Winnyで蔓延するウイルスの一種)に感 染することによって流出した個人のデスクトップ画像やマイドキュメント内のデ ータなどです。こうしたものが、すぐに見つかるはずです。 ■0x03.) 個人情報  ひとことで個人情報といっても、組織によって様々な定義を提唱しています。  個人情報保護法では、「生存する個人に関する情報であって、当該情報に含ま れる氏名、生年月日その他の記述等により特定の個人を識別できるもの」と2条1 項で述べられています。  ここで重要な点は「生存」と「識別」というキーワードです。  「生存」ということは、生きている個人を指します。これは当然と思うかもし れませんが、他の定義では死者の情報も個人情報に含めるとする場合もあります。 あくまで個人情報保護法では死者の情報は含めないということをしっかり覚えて おいてください。  次に、「識別」というキーワードですが、これは特定の個人が特定できるとい うことを指します。特定に繋がる情報として、氏名、住所、生年月日、電話番号 などがあります。これらは当然だとすぐにわかりますが、他には顔写真、映像、 音声なども含まれます。また、それだけでは特定の個人を識別できないような情 報であっても、他の情報と組み合わせれば容易に照合できる情報であれば、それ らも個人情報に含まれます。例えば、「tokyo_tarou@ruffnex.oc.to」というメー ルアドレスがあったとします。アットマークより前の「tokyo_tarou」という文字 列を見ると、「東京太郎」さんということが一発でわかってしまいます。という ことはこういったメールアドレスは明らかに個人情報です。それでは、「314159 2@ruffnex.oc.to」というメールアドレスはどうでしょうか。アットマークより前 の「3141592」という文字列から個人を特定することはできませんが、他の情報と してユーザーIDが「3141592」の人物の氏名は「東京太郎」であると対応付けされ たデータベースがあったとします。そうすると、「3141592@ruffnex.oc.to」=ユ ーザーID「3141592」=「東京太郎」と関連付けできてしまい、最終的に個人を特 定できてしまいます。つまり、こうした無作為な文字列を使ったメールアドレス であっても、場合によっては個人情報になってしまうのです。よって、一般には メールアドレスも個人情報として取り扱うのが普通となっています。 ■0x04.) 個人データと保有個人データ  前項で個人情報については理解できたと思います。個人情報保護法では、さら に個人情報の一形態として、個人データ、個人情報データベースと保有個人デー タというものを定義しています。  個人情報を検索しやすいように整理・分類された個人情報の集合を個人情報デ ータベースといいます。これはあくまで集合体のことで、この集合体に含まれる 要素を個人データといいます。例えば、名刺を五十音図に並べておけば、それは 立派な個人情報データベースであり、中身の情報は単なる個人情報から個人デー タへ格上げされるのです。  そして、保有個人データとは、6ヶ月以上保有する個人データのことです。保有 個人データは、開示、訂正、追加、利用停止などの対象となります。逆にいえば、 6ヶ月以内に処分する個人データなら、開示請求が来ても開示などするを法的に必 要はないということです。ただし、法的に必要ないからといってすべて拒否すれ ば、顧客からの信用は下がってしまいます。 ●集合と要素の概念で捉える  個人情報、個人情報データベース、個人データ、保有個人データという4つの概 念について紹介しました。これらは数学の集合論で登場する集合と要素の関係で 表すこともできます。数学が得意な人は読んでみてください。苦手な人は読んで も逆に混乱するだけだと思います。あくまで先ほど説明した日本語の定義を単に 数学を用いて表記しているだけに過ぎないので、自分の好みの理解の仕方でOKだ と思います。  まず、電子データや紙媒体の文書などありとあらゆる情報によって、世界は覆 われております。これを表現すると次のようになります。     とある電子データ∈(情報の集合)     とある紙媒体の文書∈(情報の集合)  ここで、氏名というデータがあったとする。これは上と同様に次のように情報 の集合の要素のひとつです。     とある氏名∈(情報の集合)  この「とある氏名」は個人を特定でき、さらに生存している人の情報であった とすると、個人情報のひとつといえます。なお、見づらいので、ここから「とあ る」という表記を省略します。     氏名∈(個人情報の集合体)  個人情報には氏名の他にも様々なものがあります。例えば、生年月日、電話番 号、住所などがそうです。よって、個人情報の集合体はこうした個人情報がすべ てあつまったものと同一になります。     (個人情報の集合体)={氏名,生年月日,電話番号,・・・}  ところで、個人情報の集合体を個人情報データベースと呼ぶことは説明しまし た。よって、書き直すと次のようになります。     (個人情報データベース)={氏名,生年月日,電話番号,・・・}  氏名、生年月日などといった具体的なものでなく、一般化させるために、個人 情報1、個人情報2といった言葉を使えば次のように書き換えられます。よくわか らなければ、「個人情報1=氏名」、「個人情報2=メールアドレス」などと考え てもらって結構です。     (個人情報データベース)={個人情報1,個人情報2,・・・}  これこそが個人情報データベースと個人情報の関係式です。  次に、個人データという言葉ですが、「個人情報データベースの要素」という 定義でした。つまり、個人情報と同一になります。     個人情報1=個人データ1     個人情報2=個人データ2  こんがらがってきてませんか? 様々な個人情報保護法の本を見ると個人情報 と個人データが混在しているのはこのためです。本当に紛らわしいですね。厳密 には個人情報データベースになりうる個人情報だけが、個人データとイコールに なると理解してください。  「データ」というとデータベースの構築しやすいイメージ、一方「情報」とい うと紙媒体もあるので、データベースの構築がしにくいイメージがあるでしょう。 名刺などの紙媒体ならインデックス化はできますが、大小異なる大きさの用紙に 書かれた情報はインデックス化しにくいでしょう。よって、個人情報を扱う側に とっては個人データの方がやりやすいわけです。  それでは先に進みましょう。最後の保有個人データですが、これは単に6ヶ月保 有する個人データという意味です。つまり、「個人データ1=保有個人データ1」 ということもありえれば、「個人データ2≠保有個人データ2」ということもあり えます。よって、個人データの集合(=個人情報データベース)の方が、保有個 人データの集合より大きいということがわかります。  (保有個人データの集合)⊂(個人情報データの集合) ●まとめ  最後に、簡単にまとめておきましょう。 個人情報→個人データ→個人情報データ  矢印の方向に従い、機密度が高くなっています。つまり、取扱いを注意すべき 内容となっているわけです。セキュリティ資格の問題文で戸惑ってしまわないよ うに、この3者をきちんとわけて考えることができるようにしておきましょう。 ■0x05.) 個人情報とプライバシー情報の違い  個人情報とプライバシー情報はまったく別の概念です。  プライバシー情報とは、次の条件をすべてみたすものを指します。 ・個人の私生活上の情報 ・まだ社会一般の人が知らない情報 ・一般人なら公開を望まない内容の情報  個人情報の定義とまったく異なることが明らかです。個人情報は、「生存」と 「識別」がポイントであって、私生活上の情報かどうかは関係ありません。そし て、事実かどうかも関係ありません。  一般にビジネスにおいて個人データを使う場合は、個人情報とプライバシー情 報の両面の性格を持つことが多いので、個人情報保護法の義務だけでなく、民事 法上の問題ともあわせて考える必要があります。 ■0x06.) 個人情報取扱事業者  個人情報取扱事業者とは、法第2条第3項で「個人情報データベース等を事業の 用に供している者をいう」と定義されています。「事業」という言葉が出ていま すが、これはデータを何度も利用するという意味であって、別に営利目的かどう かは関係ありません。つまり、非営利であっても個人情報取扱事業者に含まれる ということです。  ただし、「その取り扱う個人情報の量及び利用方法からみて個人の権利利益を 害するおそれが少ないものとして政令を定める者」は個人情報取扱事業者から除 外されます。ここでいう量とは、具体的に5,000件と決められています。もっと厳 密にいえば、6ヶ月間以上保有している個人データが5,000件を超えていれば、個 人情報取扱事業者とされてしまうわけです。会社や団体であった場合、それに属 する個人が保有する個人データもカウントされます。  ちなみに、電話帳をそのまま加工せずに使用する場合、電話帳に掲載されてい る個人データはカウントしません。しかしながら、電話した結果をデータとして 残した場合、それはある種のデータベースとして成りうるので、個人データとし てカウントされてしまいます。  個人情報取扱事業者に該当すると、個人情報保護法の義務を課せられます。 ■0x07.) 個人情報保護法による義務  個人情報事業者は、保有個人データに関してどのような目的で利用するのかを 本人に知らせる「利用目的の通知」、本人の求めに応じて行う「開示」「訂正」 「利用停止」などを行わなければなりません。 ●1:3つの取得義務 ○1-1:目的特定 <取得するための目的をきちんと説明しているかどうか>  個人情報保護法では、利用目的の範囲を超えた個人情報の取扱いを禁じていま す。「誰が」「どんな事業のため」「どう利用する」の3つの視点を、できる限り 利用目的を明確にすることが重要です。 よい例:「ご記入された氏名、住所、電話番号は、名簿として販売することがあ ります」 悪い例:「マーケティング活動に用いるため」  悪い例は、何をいっているかあいまいでまったくわかりません。それに比べて よい例は、具体的な利用目的が提示されており、個人情報を提供する側も安心で きます。こうして利用目的を明確にして始めて、個人情報を集めることができる わけです。 ○1-2:適正取得 <取得方法が適正かどうか>  利用目的を偽って個人情報を取得してはいけません。申請書や契約書を使って 情報を取得するときは、本文中に利用目的(直前に解説した1-1)を記載して、可 能なら本人に説明します。  また、子供から本人や家族の個人情報を聞き出すことは違法です。子供は判断 能力が乏しいから、このように決まっています。これは日本だけの流れではなく、 世界中でも子供から情報を聞き出すのを禁止していることが多いです。 ○1-3:通知・公表の準備 <トラブルを回避するための準備>  個人情報を取得する際は、利用目的を事前に手紙やインターネットで通知また は公表しなければなりません。 ●2:4つの利用義務 ○2-1:目的内利用 <目的の範囲を超えてはいけない>  勝手に1-1で提示した目的以外の使い方をするのは禁じられています。もし後で 目的外の使い方を希望する場合は、本人にあらためて同意を得る必要があります。 ○2-2:安全管理・監督 <個人データの漏洩を防ぐためにセキュリティを高める>  個人データは4つの安全管理対策を施さなければなりません。 ・組織的安全管理措置 ・人的安全管理措置 ・物理的安全管理措置 ・技術的安全管理措置  また、個人データを委託先に提供する場合は、上記の4つの安全管理対策を満た しているかどうかチェックし、定期的に監督する責任があります。 ○2-3:正確性の確保 <個人データの更新>  個人データは時間とともに風化してしまう情報があります。生年月日などは変 化しませんが、氏名は結婚時に苗字が変わる可能性があります。また、職業など もそうでしょう。  よって、個人データの内容をなるべく正確にするために、定期的に最新のデー タに更新するように努める義務があります。 ○2-4:第三者提供の制限 <勝手に情報を漏らしてはならない>  個人データを第三者に提供する際には、取得時に本人の同意が必要です。とは いえ絶対にそうとは限りません。例外もあるのです。その例外とは、次の2つのケ ースです。 ・DMの発送などの個人データの取扱いを委託した場合 ・合併などの事業の継承がなされた場合  この2つは特別なので、試験に出る可能性もあります。しっかり覚えておきまし ょう。 ●3:窓口設置 <開示・訂正の対応>  保有する個人データの内容に関して、「開示」「訂正」「利用停止」(「消去 依頼」)を本人から受け付けることができるように、窓口を設置します。この本 人の求めに応じて行う3つの事柄を総称して「開示等の求め」と呼ばれます。 1:会社は顧客からの「開示等の求め」に対応できる仕組みを作っておかなければ なりません。もし「開示等の求め」があった場合は、まず申請書に記載してもら います。手続きに用いる用紙は、一般に「開示申請書」「変更等申請書」「利用 停止等申請書」の3つがあります。顧客サービスの観点から考えると、「開示等の 求め」を行う本人が簡単に入手できるように、PDFデータをホームページに用意し ておいたり、郵送やFAXでも配布したりといったことを考えなければなりません。 2:申し出の受け付けと同時に本人確認の手続きを行います。それらが、開示のた めの要件を満たしているかをチェックし、本人への回答となります。事業者によ っては、手数料の徴収、対象となる保有個人データを特定するための書類などの 提出を本人に求めます。訂正や利用停止要求に対しては手数料は請求できません。 手数料の金額は顧客の負担と実際のコストのバランスで決定します。あくまで経 費の実費だけ請求できるのであって、それに人件費や利益を乗せることはできま せん。具体的には100〜1,000円程度、現金ではなく切手、振込みではなく郵送で 対応している個人情報取扱事業者が多いようです。この手数料の徴収には、嫌が らせ目的の「開示等の求め」の抑止効果もあります。  本人確認は重要です。ここが甘いと、なりすましによって情報漏洩のきっかけ となります。こうした事態を防ぐためにも、本人確認や代理人確認をしっかり確 立しておきます。 ============================================================================= 来所(本人) |運転免許証、健康保険証、写真付き住基カード、パスポート、 |年金手帳、外国人登録証明書、印鑑証明書と実印 ----------------------------------------------------------------------------- 来所(代理人) |本人と代理人の運転免許証など(他は本人の来所と同じ) |弁護士の場合は登録番号、代理を示す旨の委任状 ----------------------------------------------------------------------------- オンライン(本人) |IDとパスワード ----------------------------------------------------------------------------- 郵送・FAX(本人) |運転免許証などのコピー、住民票の写しなど ----------------------------------------------------------------------------- 電話(本人) |一定の登録情報(生年月日など)、コールバック =============================================================================  こうした「開示等の求め」の手続き方法は、個人情報取扱事業者側で決定する ことができます。具体的な方法がわかるように、ホームページで明確に示してお くのが望ましいでしょう。  しかし、「開示等の求め」の例外も経済産業分野ガイドラインで定められてい ます。 ・明示すると本人や第三者の生命・身体、財産などに被害を及ぼすおそれがある 場合 ・個人情報取扱事業者の権利や正当な利益を害するおそれがある場合 ・国に機関や地方高調団体が法令の定める義務を行う際、協力する必要があり、 利用目的を明らかにすることが事務の遂行に支障を及ぼすおそれがある場合 ・取得状況から利用目的が明らかであると認められた場合  特に、4番目の自明の場合が重要です。出前業者や宅配業者が、商品配送のため に送付書に記載してもらう場合は、基本的に利用目的の明示は不要です。しかし、 商品配送だけに利用する場合であっても、利用目的を通知・公表しておくのが無 難といえます。 3:利用停止・消去依頼に関しては、次の3つのいずれにも個人データを保有する 側(個人情報取扱事業者)が違反していなければ、受け入れなくてもOKです(も ちろん受け入れてもよい)。 ・利用目的違反(本人の同意を得ずに、利用目的の範囲を超えて個人情報を利用 した場合) ・取得違反(偽りや不正な手段によって個人情報を取得した場合) ・第三者提供違反(本人の同意を得ずに、個人情報を第三者に提供した場合)  いずれも、きちんとした運用の仕方をしていればひっかからない条件ばかりで す。つまり、悪い使い方をしていなければ利用停止・消去依頼を受け付けなくて もよいということになります。 ●まとめ ○個人情報(2条1項) ・15条(利用目的の特定) ・16条(利用目的による制限) ・17条(適正な取得) ・18条(取得に際しての利用目的の通知等) ・19条(データ内容の正確性の確保) ○個人データ(2条4項) ・19条(データ内容の正確性の確保) ・20条(安全管理措置) ・21条(従業者の監督) ・22条(委託先の監督) ・23条(第三者提供の制限) ○保有個人データ(2条5項) ・24条(保有個人データに関する事項の公表等) ・25条(開示) ・26条(訂正等) ・27条(利用停止等)  ここで25〜27条に着目してください。この3つは「開示等の求め」にあたります。 よって、保有個人データの場合は、「開示等の求め」に対応するために、窓口設 置義務があるわけです。逆にいえば、個人情報や個人データなら、「開示等の求 め」の義務はないわけです。 ■0x08.) プライバシーマーク  プライバシーマーク(Pマーク)は、個人情報の取扱いを適切に行っている民間 事業者に対して認定されるマーク(ロゴ)のことです。JIPDEC(財団法人日本情 報処理開発協会)が策定しました。個人情報保護のガイドラインであるJIS Q 15 001に準拠しています。このマークを取得している事業者であれば、個人情報保護 体制が整っていると顧客にとって判断できるわけです。しかし、取得前は個人情 報保護に敏感になっていましたが、取得後逆に安心しきってしまう事業者もあり ます。そのため、顧客としては事業者がプライバシーマークの取得後もきちんと 個人情報後に関して運用・監査しているかを見極める必要があります。 URL:http://privacymark.jp/ ■0x09.) 個人情報取扱事業者に対する罰則  個人情報保護法には、6ヶ月以下の懲役刑を始め、30万円以下の罰金刑、10万円 以下の科料などが規定されています。  社長やCPO(チーフプライバシーオフィサー)などの担当役員、マネージャーな どの行為者は6ヶ月以下の懲役または30万円以下の罰金に処せられ、法人そのもの は30万円以下の罰金に処せられます。  また、個人情報保護法は、事業者を規制するものなので、一般の従業員がこの 法律で罰せられることは通常ありません。しかし、プライバシーの侵害といった 他の法律で法的責任を追及される可能性はあります。  そして、グループ企業であっても、別組織である以上は、個人データを本人の 同意なしに使いまわすことができません。これは第三者提供にあたるからです。  もし、グループ企業と共同利用して、個人データの漏洩が発生した場合、親会 社が子会社の責任をとらざるをえない場合があります。  ここで重要なことをいい忘れました。  実は個人情報漏洩事件を起こしたら、例外なくすべての企業が罰則を受けるわ けではないのです。まず始めに担当省庁の大臣が勧告を出します。韓国を受け入 れなければ、次に命令を出します。この命令に従わなかった場合に、ようやく刑 罰が執行されるのです。  また、十分な安全管理対策を取っていて、その状態で情報が漏れても罰則を受 けません。つまり、組織的安全対策、人的安全管理、物理的セキュリティ、情報 セキュリティの4つ(0x07の2-2)をある一定のレベル以上で運営していればよい ことになります。 ■0x0A.) 情報漏洩の発覚  情報漏洩が発覚したら何をしなければならないのか、その手順の例を次に示し ます。 1:これ以上の情報漏洩を防ぐために、情報システムの外部・内部アクセスをすべ てシャットアウトします。そのためには、全システムの運用を緊急停止します。 2:加害者が社内のAさんというところまで判明していたら、逃げないように捕ま えたいところですが、そうはいきません。現行犯でなければ我々一般人は逮捕で きないのです。  加害者が特定されていないとき、タイミングよく(悪く?)金銭の要求などの 恐喝を受けた場合、そのやり取りを録音して、顧問弁護士と対策を練ります。「 恐喝をしてきた人物=情報漏洩に関与した人物」の可能性が考えられるからです。 3:個人情報保護責任者を中心に緊急会議を招集します。 4:監督官庁の主務大臣に電話やFAXで事件の報告を行います。 5:警察に被害届けを出し、加害者がわかっていれば、身柄を拘束してもらい逮捕 してもらいます。それと共に、告訴・告発を行います。恐喝があった場合は、警 察に任せます。 6:専用の問合せ窓口を即座に開設して、被害者からの苦情・問合せに備えます。 窓口として、Webページに専用問い合わせ用の電話番号やメールアドレスを公開し ます。 7:広報部と連携して緊急記者会見・広報発表を行い、被害者に対して二次被害の 恐れがあることを公表します。その後、電話、電報、速達を利用して、被害者一 人一人に事件を通知して、二次被害の防止に全力を上げます。 8:情報漏洩個所を特定し、セキュリティ強化を行います。 9:漏洩した個人情報をできる限り回収するように努めます。 10:全社員を招集し、事故発生状況を通知します。 11:その後の事故状況については、随時被害者に報告します。 12:各部署で再発防止のためのディスカッションを行い、組織体制の見直し・意 識の引き締めを行います。 13:主務大臣の指導に従い、勧告や命令などの行政処分を受けます。 14:被害者から損害賠償請求または訴訟を起こされた場合には、真摯に対応して いきます。なお、見舞金の支払いや金券の支給は、損害賠償金とまったく関係が ないので注意してください。 ■0x0B.) 実例で判断する ●ケース:基本的な事柄 ・5,000件以上の個人情報を保有している企業はすべて個人情報保護法に乗っ取る 必要があるか? ○分析  5,000件以上の個人情報を保有しているというのは最初の前提であって、次の前 提もあります。それは事業として利用していることです。この2つの前提に合致し ていなければ個人情報取扱事業者ではなく、つまり個人情報保護法の対象外とい うことになります。ただし、対象外であっても、個人情報の漏洩によって損害賠 償請求はされる可能性があります。 ●ケース:個人情報の境目 ・電話番号は個人情報か? ・役職は個人情報か? ・アカウントIDは個人情報か? ・ブラックリストは個人情報か? ・メモ書きは個人情報か? ・住所だけでも個人情報か? ・市販の人名録は個人情報か? ・サイトで自発的に公開している情報は個人情報か? ・暗号化された個人情報は、個人情報保護法の対象か? ・匿名アンケートは個人情報か? ○分析  固定電話、携帯電話、IP電話などの電話番号は、いずれも個人情報になります。  役職のみでは個人情報にはなりませんが、氏名と結びつけば個人情報になりま す。  顧客IDや社員ID、アカウントIDがたとえ乱数であっても、他の情報と簡単に照 合することによって特定の個人が識別できれば、個人情報にあたります。  メモ書きなどのささいなものであっても、特定の個人が識別できれば個人情報 です。ただし、個人の趣味やプライベートで利用しているのであれば、企業の個 人情報にはあたりません。あくまで業務に利用しているデータを企業の個人情報 として扱うわけです。  個人情報の定義を確認すればわかりますが、顧客の良質・悪質はまったく関係 ありません。つまり、ブラックリストも個人情報に該当します。  住所は基本的に特定の自今を識別できないため個人情報にあたりません。しか し、他の情報と簡単に照合して個人が識別される可能性が高いです。つまり、住 所も個人情報のように取り扱うほうが無難といえます。これは電話番号について も同様にいえます。  体系的に整理されていたり、容易に検索できるようになっていれば、個人デー タとなります。  個人情報であるかどうかは、公にされているかどうかとはまったく関係ありま せん。サイトで自発的に公開されている情報、電話帳や新聞に載っている情報で っても個人情報になります。  復号化関数と復号鍵(復号パスワード)があれば、暗号化した個人情報であっ ても簡単に復号化できてしまうので法律の適用を受けます。  匿名アンケートの中には個人を特定するものがありません(それが匿名アンケ ートそのものなんですが)。よって、これだけでは個人情報ではありません。 ●ケース:小規模な会社の場合 ・一般の個人向けではなく、法人相手に商売をしている ・取引先は数百社 ○分析  取引先は数百社であっても、その他に会社の中には紙の書類やデータベースは たくさん存在します。ある程度の規模の会社なら、通常は5,000件を超えます。例 えば、従業員とその家族の名簿、面接を受けた人の履歴書、法人顧客リスト(氏 名入り)、契約書・見積書(代表者名入り)、社員が各々持っている名刺ホルダ ー、業界団体名簿など。こうしたものをすべて合計すれば、簡単に5,000件を超え るのではないでしょうか。さらにこうした情報をコンピュータでデータベース管 理していれば、個人情報データベースとなり会社は個人情報取扱事業者に該当し ます。よって、小規模だからといって安心はできません。 ●ケース:電話帳と地図の利用 ・電話帳と地図を使って営業を行う ○分析  電話帳や地図などの加工されていない情報は個人情報にカウントされません。 他にはカーナビのデータなどもそうです。よって、これらの情報を使って、営業 の電話をかけても問題ありません。個人情報保護取扱事業者ではないので、利用 目的の通知も必要ありません。  しかし、営業の電話を結果を別の紙に記録したり、電話帳のデータを基に別の データベースを作成してしまうと、それらは個人情報データベースに該当します。 そして、それが5,000件を超えれば、個人情報保護取扱事業者になってしまいます。 このとき、利用目的を本人に通知または公表しないままDMを送信してしまえば、 明らかに個人情報保護法に違反となります(法18条)。 ●ケース:個人情報保護法前後 ・個人情報保護法施行以前に名簿屋から個人情報を入手した ○分析  個人情報保護法施行後に使用するためには、法律の条件を満たす必要がありま す。その条件とは、第三者に提供する目的(この例なら、名簿屋→我が社)であ らかじめ本人の同意を取って作成されたかどうかという点です。また、この名簿 自体が違法の可能性も否定できません。違法な名簿とわかって利用するのは、完 全に違法行為にあたります。法17条にそれが記載されています。  どうしてもこの名簿を使用したければ、本人に利用目的を通知または公表する 必要があります(法18条1項)。つまり、DMを出すなら、名簿に掲載されている人 全員に通知するか、容易にわかるように公表しなければならないわけです。  しかし、違法かどうかわからない名簿を使うこと事態は問題があります。こう した怪しい名簿には手を出さない、もし手を出した後ならすぐに処分することが 賢明です。 ●ケース:教育機関 ・2,500名の在校生を持つ私立大学は個人情報取扱事業者になるか? ○分析  法2条1項により、生存する個人に関する情報であって、特定の個人を識別でき るものなら、すべて個人情報に該当します。大学なら、入試の資料請求者、志願 者(願書など)、在校生のデータ(学生簿、学生証データ、成績原簿、健康診断 のデータなど)、保護者(保証人契約書、奨学金申請書など)、卒業生(卒業者 名簿、成績データ)、教員・職員のデータなどがあります。他にも地元企業や取 引先、進学先の大学院、入学元の高校・予備校のデータなどもあるかもしれませ ん。これらをあわせると、2,500名の在校生を持つ規模の学校なら、簡単に5,000 件は突破するはずです。しかも、成績・学歴など外部に漏れては大変なことにな ってしまう情報(センシティブ情報という)が存在します。  よって、学校では企業と同様に、リスクアセスメント(リスク評価)に基づき 個人情報保護について取り組まなければなりません。  法50条1項3号で「大学などの学術研究機関が学術研究目的で個人情報を使用す る場合は、個人情報取扱事業者の義務等を定めた規定の適用が除外される」と述 べています。ただし、これは大学自体が個人情報取扱事業者にならないというこ とを意味しているわけではありません。あくまで研究目的というところが重要で あり、大学は研究以外の目的で個人情報データベースを構築していますので、大 学は個人情報取扱事業者に含まれます。 ●ケース:データベース ・5,000件より少ないデータベースが数種類ある ○分析  データベースが分割されてあったとしても、それを合計してカウントされます。 つまり、合計数が5,000件を超えれば、個人情報取扱事業者になります。ただし、 重複している人のデータは差し引いて計算します。 ●ケース:労働組合 ・労働組合と会社は別の個人情報取扱事業者になるか? ○分析  労働組合であっても、会社と別組織であるので、別の個人情報取扱事業者にな ります。他には、厚生年金組合、健康保険組合も同様です。 ●ケース:部署間取引 ・部署間で個人情報を共有してよいか? ○分析  同一企業内であれば個人情報を部署間で共有しても第三者取引にはならないの で、本人同意は不要です。しかし、部署が違うということは仕事内容が異なると いうことなので、個人情報の利用目的も違ってきます。よって、共有することに よって、目的外利用が起こるようではなりません。 ●ケース:住民基本台帳 ・住民基本台帳を元にDMリストを作成する ○分析  地方自治体の条例で禁じられている場合もありますが、原則として違法にはあ たりません。しかし、DMを受け取る消費者の意識を考えれば、本人の求めによっ て個人情報の第三者提供を中止するオプトアウト制度を利用するなどの自主的措 置を併用するのがよいでしょう。 ●ケース:M&A ・買収した会社の個人情報は使えるか ○分析  M&Aなどで他の個人情報取扱事業者から会社や事業を継承して、個人情報を利用 する場合、改めて本人の同意を取る必要がありません。こうした場合は、譲渡前 の利用目的の範囲内に限り、個人情報を利用することができます。 ●ケース:オプトアウト ・オプトアウト制度を定めれば必ずしも安心か ○分析  オプトアウトとは、本人の求めによって、個人情報の第三者への提供を中止す ることです。このオプトアウト制度を提供していれば、安心だと思われがちです が、そうではありません。きちんと様々な状況を想定して提供しなければなりま せん。  本人にとって不利益な情報については、オプトアウトを利用しないほうがよい のです。例えば、破産者の情報などがそうです。破産者の個人情報がオプトアウ トされてしまうと、金融機関同士で個人情報を融通し、可視倒れの危険を回避で きなくなってしまいます。  社内の雇用管理情報の場合についても、問題になる可能性があります。ある人 を関連企業に出向させるため、出向先企業に個人情報を提供するようなケースで す。その人が出向したくないがためにオプトアウトを求めれば、出向先企業に個 人情報が提供できなくなってしまいます。こうした事態を避けるために、厚生労 働省の「雇用管理指針解説」では、「出向先・転籍先の候補となりうる提供先の 範囲を、ホームページ等で明記することが望まれる」としています。また、従業 員の入社時などに、グループ企業で個人情報を包括同意を得る方法を採用してい る企業もあります。 ●ケース:個人情報の廃棄 ・個人情報の含まれた書類や磁器データを廃棄する ○分析  まず廃棄する前に本当に今廃棄してよいものかどうかを判断する必要がありま す。定められた保管期間内に廃棄すると、その法令に違反することになってしま うことがあります。  次に、廃棄すべき書類・データを決定したら、第三者にそれらのデータを奪わ れないように完全に消去する必要があります。書類であれば、シュレッダーなど で裁断したり、信頼できる契約業者に委託して溶解・焼却します。HDD(PC丸ごと も含む)やCD-ROM、FDなどのデータなら、データ抹消ソフトで完全にデータを消 去します。単にフォーマットしただけでは、復元ソフトで復元されてしまうので 注意が必要です。PCのリース契約に関しては、契約時にあらかじめデータの消去 について取り決めておきましょう。  そして、個人情報が含まれるゴミは施錠できるゴミ箱に投入させるのが理想で す。会社によっては、地球環境の目的のために、不要な紙を捨てるリサイクル箱 を設置していることがありますが、これはセキュリティの観点からはちょっと問 題があります。侵入者や産業スパイによって、リサイクル箱から資料を持ち出さ れる可能性があるからです。 ●ケース:メール送信の注意 ・同報メールの送信時にCC・BCCどちらを使うか ○分析  CCを利用して同報メールを送信すると、送信先のアドレスのすべてが各受信者 にわかってしまいます。つまり、個人情報が漏れてしまっているわけです。よっ て、同報メールの送信時はBCCを利用するようにしましょう。今後CCメールは使わ れなくなっていくと思ってかまいません。 ●ケース:開示 ・故人の情報の開示の求めをされたら ・警察から開示の求めをされたら ・弁護士から開示の求めをされたら ○分析  個人情報保護法が個人情報と定義しているのは、生存する個人を識別できる情 報です。よって、故人の情報は、個人情報保護法で扱いません。しかし、故人の 情報であっても、生存する遺族などの個人情報に該当するケースも考えられます。 また、関係者の利害の衝突と繋がる可能性もあります。そのため、求めの背景を 考慮した対応が求められます。医療の場合は、亡くなった患者の遺族から開示を 求められる旨が、官庁のガイドラインで定められています。  警察からの開示要求の場合、捜査令状があれば開示します。捜査令状がない場 合は、本人に知らせることで警察の審査に支障が出ると判断した場合にのみ、本 人の同意を得ずに開示します。  弁護士からの開示要求の場合は、本人の同意がなければ開示してはいけません。 ●ケース:利用目的の特定 ・電話帳やインターネットから個人情報を取得する際、利用目的を特定する方法 は? ・本人から直接個人情報を取得する場合には、利用目的を特定する方法は? ○分析  利用目的を特定しなければならないが、わざわざ本人に電話やFAX、メールで利 用目的を通知する必要はありません。会社のWebサイトで通知するだけで大丈夫で す。  申請書・契約書、懸賞の応募、アンケートなど本人から直接個人情報を取得す る場合には、あらかじめ利用目的を文中に記載しておいて明示しなければならな い。インターネットを使った事前公表や電話での事後通知ではいけません。 ●ケース:従業員名簿 ・従業員名簿を社内で配ってよいか? ○分析  従業員名簿は業務を遂行する上で必要不可欠なものなので、安全管理をしっか り行っていれば、本人の同意を得ずに配布しても法律違反にはなりません。しか しながら、社員の自宅の住所や電話番号、携帯電話番号などの記載された名簿は 業務遂行には関係がないので、本人の同意が必要になります。 ●ケース:Cookie ・通販サイトでCookieを利用してよいか? ○分析  Cookieを利用する場合は、その利用目的をあらかじめWebサイトに公表する必要 があります。クライアントPCからCookieデータを取得することは、個人情報を取 得していることと変わりません。よって、利用目的を通知または公表しなければ ならないわけです。 ■0x0C.) 第1回・個人情報保護士認定試験のレポート  10月2日に個人情報保護士認定試験を受けてきたので、そのレポートで締めくく りたいと思います。  受付開始時間の9:10より前に着きましたが、普通に受け付けしてました。アマ 無線4級の受験生(当日試験)は9割男性でしたが、個人情報保護士認定では4割近 くは女性いたような気がします。ほぼ半分ですね。また年齢層も20台〜60台以上 (見た目で判断)と幅が広かったです。  さて問題の試験内容ですが、100問の500点満点(1問5点)。個人情報保護法か ら40問、その他のセキュリティ(ガイドラインや基礎セキュリティ知識)から60 問。時間は120分。  合格ラインは80%以上なので、合計400点以上です。セキュアドが70%に比べると、 80%はきついような感じがします。いくら問題がセキュアドより簡単だからといっ て、80%がボーダーでは、100問中20問までしか間違えることができないというこ とでプレッシャーを感じまくりでした。  実は公式サイトに出発直前にたまたまアクセスしたら模擬試験が公開されてい るのに始めて気付いて、愕然としてました・・・。QCのまとめやる時間あったら、模 擬試験完璧に1回は通して解くことができたのに・・・。まあ、過ぎたことは仕方あ りません。気を取り直して、電車での移動中に『最終チェック! 「個人情報保護」 必修Q&Aハンドブック』の巻末の個人情報保護法のところを暗記してました。とい うのも、この試験自体がこの個人情報保護法を基に作られているわけです。そこ で、悪あがきは止めて、一番根幹となる各種条文を把握していればよいだろうと 開き直ったのです。  これが役に立ったのかわかりませんが、試験の手ごたえはまあまあでした。70 %がボーダーならほぼ確実に受かったと自信を持っていますが、80%だとちょっと 弱気になってしまいます。実際、2択までは絞り込めて最後のひとつがわからない (どっちもわからないのではなく、どっちも答えのように思えるような)問題が 数問ありました。  試験の難易度よりもっと気になったのが、途中退出できないことです。つまり、 時間内にすべての問題に解答してもうやることがなくなっても、早めに教室の外 に出ることができないのです。私は75分ぐらいで全部解けてしまったので、残り 時間の45分が非常に辛かったです。せめて終了時間30分前には退出可能にして欲 しいところです。なぜこのような制度になっているのかというと、おそらく答案 用紙の回収が関係してくるのかもしれません。最後に答案用紙と席の番号が書い てある紙を封筒に入れて提出するという、変わった(混乱しやすい)回収方法で した。  後、10月の試験で残っているのは、セキュアドとセキュリティ検定の2つです。 IPAの情報処理技術者試験を受験する人は多いと思いますが、お互いに残り2週間 がんばりましょう。 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第8章:お知らせ --- x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ○Wizard Bible(http://akademeia.info/wizardbible/)では随時、執筆ライタ ーを募集しています。  扱う内容のテーマは広義での「under ground」です。例えば、ハッキングから サリンガスの合成法などと幅広い内容を考えています。また、各種、特殊な職業 や趣味を持った方のレクチャーなども含まれます。  一回きりでも構いません。また、必ず、毎回連載する義務もありませんのでで きる範囲で構いません。気軽に声をかけてください。もちろん一回書いたことが ある人も気軽に声をかけてください(全く気にしていない性格なので)。 ○Kenji AikoさんがQ&Aを作ってくれました。初めて参加する人でもわかりやすく 書かれていますので、参考にしてください。 http://akademeia.info/wizardbible/wbQandA.html ○支援者、参加希望者用のスレッドを立てました。 http://ruffnex.oc.to/ipusiron/cgi/forum/patio.cgi?mode=view&no=17 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ---- 第9章:著者プロフィール --- x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■PSY ●Job:IT関係、作家 ●Web:http://psy.ktplan.ne.jp/seven.htm ●Mail:psy@m4.ktplan.ne.jp ●Team(Group):none ●Comment:  初めて参加させていただきました。  過去のメールを遡って調べるのがめちゃめちゃ大変でした。SPAM対策の実効性 を確認しようとすると、むしろ労力が増える罠。  これ書いてる最中Anonymousという名前でメールが来てリアルにちょっと焦りま した。  ハッカー小説書いてます。ハッカーにも楽しめる小説を目指してます。上記サ イトで立ち読みできるのでぜひ読んでみてください。  最近のマイブームは暗号。次回作は暗号+バイオネタ(+ハック)で行く予定 ですのでこちらもよろしく。 ■Narusase ●Job: Student ●Web: (裏)雑学の博物館(http://k-o-m.hp.infoseek.co.jp/) ●Mail: narusase@mcn.ne.jp ●Team(Group): N/A ●Comment:  こんにちわ、Narusase(ナルサス)です。前回も原稿を落としました(汗  今回はハニーポットの起動方法&設定の話(前編)でした。次回は後編という ことで落とさないように頑張りたいと思います。  最近、将来のこととか、簿記とか、株とか、ファンドとか、会計学とか、税金 とか、年金とか色々と経済関係のことに興味がでてきました。そんなわけで、最 近はそっち系のものばかり気になって、調べ出すと止まらなくなります。  ま、そのあとで時間が〜とか、締め切りが〜とかいいながらのたうちまわるん ですけどね(汗  サイトの方はまあ、ヘタレな文章と、未熟な技術、ヘボいプログラムを紹介す るサイトということで、暇があったらあら探しでもしてみてください。誤植とか ミスとかはBBSにでも書いてくだされば、こっそり修正しときます(笑 ■Will ●Job:Student ●Web:http://will.wbjapan.com/ ●Mail:will_net@hotmail.co.jp ●Team(Group): Anti-WMAC ●Comment: 最近はめちゃくちゃダラダラしています。  解析はあんまりしてませんし、プログラミングも同様にしてません。  まぁ何れやる気が出てくるでしょう。多分w ■Defolos ●Job:Student ●Web:http://scel.fc2web.com/ ●Mail:pan1124@luck.ocn.ne.jp ●Team(Group):none ●Comment:  おはようございました、Defolosです。ピッキングとナイフメーキングとナイフ ファイティングの訓練(最近できてません)、PCが趣味のごく普通の学生です。  今回WizardBibleへの参加は9回目となります。レギュラー目指して次回も頑張 りたいと思います(`・ω・´)。 ■Taka John Brunkhorst ●Job: Training Corporate Aviation Pilot ●Web: http://www.antiwmac.com/ ●Mail: contact[at]antiwmac[dot]com ●Team(Group): Anti-WMAC,ECC,XH,SecGate ●Comment:  あらまっく。古いニュースですがPhrack終わっちゃいましたね。62,63のLoopb ackは特におもろかったですね。一番印象的だったのは49-14です。この番号は皆 様の記憶に残っていると思います。/bin/sh BoF & SUIDのやつは大変良かったで す。次期のPhrack楽しみにしてます。 ■Kenji Aiko ●Job: Student ●Web: http://ruffnex.oc.to/kenji/ ●Mail: kenji@ruffnex.oc.to ●Team(Group): N/A ●Comment:  今回はギリギリの投稿になってしまいました。IPUSIRONさん、遅れて申し訳あ りませんでした。これを反省材料にして、これからは来月のネタも早めに書いて おくことにします。 ■IPUSIRON ●Job:テクニカルライター ●Web:http://akademeia.info/ ●Mail:ipusiron@ruffnex.oc.to ●Team(Group): ruffnex,backsection ●Comment:  資格の話題が出ると必ず実績や実技の話が出ますが、今の時代は資格・実績の 両方とも持たなければなりません。資格ばかり持っていても現場で使い物になり ませんし、実績ばかりあっても顧客にとって実力の比較要素がないので、どちら にしても不安材料になります。  仕事に絡めなくても、自己啓発や自分の知識の体系化・復習といった意味でも、 資格は価値があると思っています。  「取れる間にとっておけ」というのが正直なところです。特に学生の人は・・・。