迷惑メールのことをSPAMと書いてはいけない。spamだ。

知っている人は知っている、知らない人は知らない。どうでもいいといえばどうでもいい。 そんなお話をひとつ。

前回書いた 主人がオオアリクイに殺されて1年が過ぎました。 の件だが、ちょっとした短編小説やら、オオアリクイ被害遺族に、ネットで支援の輪なんていうニュースも飛び出すくらい大人気のようだ。(笑)

ところで、日本語で言ういわゆる迷惑メールのことを英語圏では「spam」と書く。でも実はSPAMとは米国のとある食品会社が製造している肉の缶詰のことである。 以下、RE: SPAM: SPAM and the Internetの内容の一部の要約&意訳。

頼みもしない宣伝の電子メール = Unsolicited Commercial Email = UCE = のことを最近はspamって言うみたいだね。これはモンティパイソン(注:日本で言うドリフターズみたいなコメディアンチーム)の番組でやっていた、バイキングの一団が「spam、spam、spam。。。」って段々大きな声で歌うにつれて周りの会話がまったく聞こえなくなるという寸劇のひとつが今のインターネットのspamの状況とあまりにも似ていることに由来しているんだ。
UCEのことをspamって小文字で書くぶんには特になんとも思わないけど、「SPAM」って大文字では書かないで欲しいな。だってそれは1937年から我が社で使われている製品名であり商標だから。

主人がオオアリクイに殺されて1年が過ぎました。

POPFileという迷惑メール自動識別ソフトとメーラーの自動振り分けを組み合わせて使っているので、ここ1年は迷惑メールにいちいち悩まされることはまったく無くなった。 だがそれでも迷惑メール扱いされたくないメールが迷惑メールに勝手に分類されてしまうことがたまーーーーーーーにあるため(いまんとこ誤認識率0.5%)、「spam」と名づけたフォルダの中をときどき思い出したように眺めてチェックする。

で、以下のメールの題名を一目見て不覚にもウケてしまった。

Subject: 主人がオオアリクイに殺されて1年が過ぎました。
From: 久光 <*****@yahoo.co.jp>

いきなりのメール失礼します。
久光***、29歳の未亡人です。
お互いのニーズに合致しそうだと思い、連絡してみました。

自分のことを少し語ります。
昨年の夏、わけあって主人を亡くしました。
自分は…主人のことを…死ぬまで何も理解していなかったのが
とても悔やまれます。
主人はシンガポールに頻繁に旅行に向っていたのですが、
それは遊びの為の旅行ではなかったのです。
収入を得るために、私に内緒であんな危険な出稼ぎをしていたなんて。

一年が経過して、ようやく主人の死から立ち直ってきました。
ですが、お恥ずかしい話ですが、毎日の孤独な夜に、
身体の火照りが止まらな (以下省略)

オオアリクイ
200607arikui.jpg

see also:
メールの題名とFromは既に戦場

ワーキングプアの人たちと中国のタクシー運転手

なんとなく同意。↓

気になったのが、ワーキングプアとして取り上げられた人たちの、誰も、本屋や図書館に通って情報収集したり、ノートとペンで考えを練ったり、自分が見落としているチャンスがないか検証し直したり、作戦や計画を立てたり作戦を見直したり修正したり改良したり、トライ&エラーしたりする映像が出てきていなかったことだ。
漫然とハードワークし続けるのは努力なんかじゃない より

これを読んで、この記事を思い出した↓

・・・・・このメッセージを日本人幹部に伝えるために、あるエピソードを交えたメールをそれぞれの日本人幹部に送った。2006年3月ごろ中国で話題になり多くのメディアで記事になった「スーパータクシー運転手」の話題だ。この話題は日本ではあまり知られていないので、今回のコラムで読者にも紹介したい。その運転手は、「上海大衆タクシー」に勤めている。事の発端はこのタクシーに乗ったマイクロソフト中国の幹部が書いたブログだった。その内容を紹介する。
経営感覚が鋭い上海のタクシー運転手が話題に - 莫 邦富の中国ビジネス指南 (nikkeibp.jp 2006/6)
ワーキングプアな人たちでもできる作戦とかトライアンドエラーとかはこういうことを指す。

と、そんなことをこんなとこで書いたところで当事者には伝わらないわけだが。

See also:
ワンボックスのタクシー (2005/5)

楽天、サイバーエージェント株を売却、の件についてメモ

楽天、サイバーエージェント株を大量売却(CNET Japan 2006/7) という話だが、この株っていつ買ったのかというと2001年12月の楽天がサイバーエージェントに資本参加 「楽天市場」の広告開放を視野に(ITPro 2001/12)ということで、5年前の話。

サイバーエージェントの株価の推移を過去半年スパンで見ると

というわけで、順調に下がり気味。(最近はどの株もそうだけど)

しかし過去5年スパンで見ると

という感じで2001年の購入価格からすればまだ十分利益になる範囲。

ところで楽天の台所事情はというと

 業務提携交渉を続けているTBSと楽天が、交渉期限の7月末以降も話し合いを継続する見通しになった。期限は8月末まで延長される。提携の前提とされる、楽天が保有するTBS株の取り扱いについて意見の隔たりが大きいため。株式相場の低迷でTBS株が大きく値下がりしたことも、交渉の障害になっている。
TBS・楽天の提携交渉、8月末まで期限延長(日経 2006/7)
という感じで、銀行から借金して「配当利益で金利はまかなえるから大丈夫」といいつつTBS株を買い占めてみたもののにっちもさっちもいかないままでいまや含み損が220億。何に使ったんですかその金はという話。 とうとう2006年3月には増資して資金調達。 そんなことしたら需給バランスくずれて株価下がって自分の首絞めるに決まってるところを楽天をとりまくいろんな方々がどうにかして買い支えていたが、それも公募増資後1ヶ月まで。5月以降はさすがにささえ切れずに下落。もう同じ手は打てない。

そんなこんなで、とりあえず切っても影響ないところから切ってしまおうか今ならまだ売却益も得られるしということで今回のサイバーエージェント株売却。

だからどうだってことではなくてこれは単なるメモである。

see also:
デジャブ?→楽天とTBSとAOLとタイムワーナーと (2005/10)

メールアドレスが漏洩してると決めつける迷惑な人々

以下は、とあるサイトの運営に携わる知人から小耳にはさんだ話である。

ある日、そのサイトの問い合わせ用窓口にこんな連絡が届いた。

「おたくのサイトでユーザー登録したとたんに、きれいな女性の売春を紹介するお誘いが急に増えて、うれしい悲鳴です。ま、直ちにユーザー登録の削除とメールアドレスの削除もしてください。」
(※ニュアンスを変えない程度に文章を変えてあります)
ちなみにこのユーザーは40代の男性だったそうだ。 こういうタイプの人相手だと、こちらが悪くない旨を説明したり迷惑メールが届くカラクリを説明したりする気力もうせるものらしい。気持ちはわかる。ユーザー削除処理だけしてほっといたそうだ。

実は筆者はちょっと前にも居酒屋で似たような会話を聞いた。 「メールアドレス漏れてるに決まってるんだよな」「そうそう」みたいな話をオジサン二人がしていた。

なにしろ個人情報の漏えいがどうのこうのというニュースが珍しくない昨今だ。 先入観に満ち満ちたこの40代男性ユーザーや居酒屋のオジサン二人組の言い分ももわからないでもない。

だがあえて言おう。迷惑メールを送る人間こそ最も迷惑であるという根本はさておき、

メールアドレスが漏洩してると決めつける人々も、まじめにやってるサイトにとって迷惑な存在だ

郵送でのダイレクトメールと違って、電子メールによる迷惑メールを送るにはどっかからか漏れたメールアドレスのリストなんて必要ない

よくある苗字を3個思い浮かべよう、yamada、sato、suzuki、、、 そして名前も思い浮かべよう。takeshi、hiroshi、keiko、mayumi、、、 そしてドメイン名を浮かべよう、@yahoo.co.jp、 それらをつなげよう。yamadatakeshi@yahoo.co.jp、yamadahiroshi@yahoo.co.jp、、、たったこれだけで9個のメールアドレスのリストのできあがりだ。 苗字と名前をそれぞれ100種類ずつ掛け合わせれば1万個のメールアドレスが作れる。名前と苗字の順序を入れ替えれば倍で2万個だ。yamadataroじゃなくてyamada-taroみたいに間にハイフンをいれることも多いだろう。それも含めればさらに倍で4万個だ。Yahooメールだと、Yahoo IDを取得するときにyamadataroが取得済みだと「yamadataro2006なんて空いてますけどいかが?」とおすすめしてくれる。ということは、さっきつくった4万個のアドレスそれぞれに1900~2100あたりの数字をくっつければもう数百万個のメールアドレスのリストの完成である。

サルでも思いつきそうな方法だ。 実際、ネズミ講やアダルト系の迷惑メールの手法なんてもう何年もまえからそのパターンだ。 最近の例では

問題となった迷惑メールは、7月22日から断続的に1日平均2回程度、2時間から3時間にわたって海外から@niftyのメールアドレス宛に発信され、8月4日までにその数は数千万通に達した。迷惑メールが発信される時間帯にはメールサーバーに通常の数倍の負荷がかかったほか、その99%以上が架空のアドレス宛だったため、サーバーに大量のメールが滞留してしまうことになった。宛先不明のメールは発信元に返送する設定だったが、発信元自体も宛先不明のため、再び@niftyにメールが返送されてくる悪循環を招いていた。
@nifty、大量迷惑メールの発信元からは受信を拒否する措置(2004/8)
なんてこともあった。 「その99%以上が架空のアドレス宛だった」のはなんでって、上記のような方法でやってるのだから当然である。 そのメールアドレスが存在するかどうかは二の次で総当り式にメールアドレスを作り出して送っているのだから。

  • Yahoo!メール - 迷惑メール対策より
    辞書攻撃
    これは、迷惑メールの送信者たちが「辞書」にある単語や名前を組み合わせ、数字なども混在させるといった処理を加えて、メールアドレスとして存在しそうなあらゆる組み合わせを順番に試すというものです。例えば、kenji1@example.com, kenji2@example.com, kenji3@example.comというように組み合わせて送信します。 迷惑メール送信者たちは通常、多くの顧客を持つ大手eメールプロバイダに向けて送信します。
  • なぜ迷惑メールが届くの? | お知らせ | NTTドコモ より
    迷惑メール送信業者は、インターネットを通じて大量に適当なアドレスへ送信することによりアドレスを探しています。
  • 6. Q&A|利用者による迷惑メール対策|迷惑メール対策|迷惑メール相談センター (財)日本データ通信協会
    Q5. 迷惑メールが届くけど、どうして実在する私のメールアドレスが分かってしまうのでしょうか?

    A. 迷惑メールの送信者は、英数字等をランダムに組み替えたメールアドレスを作成して、大量のメールを自動送信し、送信に成功したアドレスのみ抽出して名簿化しているものと考えられます。その中にお客様がご利用のメールアドレスが含まれていた可能性があります。
    他にも、インターネット上の掲示板等に掲載されているメールアドレスを収集したり、無料のメールマガジンや懸賞サイトと称してメールアドレスを入手する手口もありますので、不用意にメールアドレスを入力しないようにご注意ください。
  • 携帯電話等に着信する迷惑メールに対する自衛策について 2006/4 総務省
    迷惑メール送信業者がランダムにアドレスを作成して送信する場合、単純なアドレス(名前や生年月日をそのまま用いたものなど)だと迷惑メールが届きやすいと考えられます。
  • 迷惑メール対策@nifty 基礎知識 より
    何故迷惑メールが届くの?
    迷惑メール送信者は何万というメールアドレスリストをメール送信ソフトに登録して無差別に大量送信しています。その際、実在しているアドレスかどうかは問題にしていません。そのうちの数%の人が反応してくれればいいと考えているのです。

    どうやってアドレスを入手するの?
    1.実在していそうなアドレスを作成する
    名前や一般的に知られている単語を組み合わせたり、決められた規則でアルファベットを変更したり、数字を付加、削除したりすることで実際に存在していそうなメールアドレスを作りだしているのです。

つい先日も、筆者の所有するとあるメールアドレスに次のような海外スパムが届いた。(一部伏字)

Subject:  Notification for claim/Congratulation
From:     ***@***.com
To:       "kxp@*****.net" kxp@*****.net
Cc:       kx-@*****.net, kx4@*****.net, kyd@*****.net, kyo@*****.net, kyz@*****.net, 
 ky8@*****.net, kzh@*****.net, kzq@*****.net, kzz@*****.net, 
 kz8@*****.net, k-i@*****.net, k_p@*****.net, k.b@*****.net, 
 k.m@*****.net, k.w@*****.net, k1b@*****.net, k14@*****.net, 
 k2i@*****.net, k2v@*****.net

FLASH FORTUNE LOTTERY

JULY 12TH 2006

YOU ARE THE WINNER OF THE 

COMPUTER PROMOTIONAL DRAW 
(訳:おめでとうございます!
 あなたはコンピュータロトくじに当選しました!)
このスパマーはもっと手抜きだ。 aからz、0から9、ハイフンと.(ピリオド)、これら26+10+2=38種類の文字を完全にアトランダムに3つ組み合わせ、ドメインだけすべて同じにして送信していることがわかる。とりあえず最初だけ「k」に固定したのか、それとも最初のアルファベットの種類ごとに分けて送信しているのか。とにかく上のCcにならんでいるアドレスのひとつがたまたま筆者のものと一致しただけだ。ためしにCcにあるほかのアドレスのうちの3、4個にメールを送信してみたが、思ったとおりすべてUser unknown(ユーザー不明)のエラーで帰ってきた。

迷惑メールの津波に悲鳴を上げるメールサーバとその管理者。どうせおまえが俺のメールアドレスを漏らしたんだろと決めつけておカド違いなクレームをあげ、居酒屋で仲間に悪いうわさを広めるユーザー。そのクレームにいちいち本気で対応していられないWebサイト管理者。それらすべてをあざ笑うかのように、というよりまったくおかまいなしに、迷惑メールをばら撒くスパマー。 不毛なすれ違いはこれからも続く。

see also:
スパムの標的にされやすいメールアドレス体系(2004/9)
コリャ英和!と東芝DVDレコーダが87%を占める日本のオープンProxy(スラッシュドット ジャパン 2006/5)
国内open proxyの現状

ゲームのやりすぎに注意

以下はインターネットウォッチ上の「ガンホー社員、「ラグナロクオンライン」の不正アクセスで逮捕」という記事の抜粋だが

それでありながら、現行法では「不正アクセス禁止法違反」(1年以下の懲役又は50万円以下の罰金)という軽微な罪にしか問うことができず、仮想通貨の無断複製およびRMT業者に売り渡すことによるゲーム内経済の破壊行為について、まったく罪に問えないのはやはりおかしい。現実世界で言い換えれば、造幣局の職員が刷りたての1万円札の束を、マネーロンダリング業者に売り渡し、ドルを受け取っているのと変わらない。誰がどう見ても重罪であり、ここにも大きな課題が眠っている。これを機に、ガンホーのコンプアライアンスがしっかり整備され、かつ機能することはもちろんだが、根幹の法整備が整うことにも期待したい。
なんか力はいってるようだが、この記事を書いた記者さんは単にゲームのやりすぎなんじゃないだろうかと思ってしまった筆者の感覚はヘンなのだろうか。

apacheのログに好きな情報を出す方法(PHP編)

結論:PHPのapache_note関数とhttpd.confの設定の小細工を組み合わせれば、Apacheのログになんでも出せる。 (たしかperlでもmod_perl使うと似たような仕組みがあったはず)

ログは重要だ。日々の動作の統計の基礎データだし、トラブったときの手がかりでもある。 しかしログは面倒だ。ログを記録するということはログを管理するということだから。 ログファイルが無駄に肥大化しない程度に適度に選んだ情報を出さなければならないし、 それでも肥大化したら圧縮するなり移動するなり削除するなりしなければならないし、そのタイミングも考えなければならない。 情報セキュリティを気にする必要が大きい場合は、 暗号化保存なんて面倒なことも考えなければならないこともある。

ところで、Webシステムではたいていの場合はほっといてもいろんなソフトがログを吐く。 apacheのログ、tomcatのログ、postfixのログ、etcetc。 もしもこれらのログが通常出力する内容では都合が悪い、不足だ、という場合には、 オリジナルなログ出力システムを構築して、出力されたログを別途管理しなければならない。

それは面倒だと言う場合には、今すでに出力されていて管理もされているログに相乗りすればいい。 というアイデアはいかがだろう。

前置きが長くなった。

たとえばindex.phpというPHPスクリプトに

<?php
$val = "hogehoge";
apache_note("originallog", $val);
?>
と書いて、apacheのhttpd.confのログフォーマット設定で
LogFormat "%h %l %u %t \"%r\" %>s %b %{originallog}n" common
のようにしておくと、index.phpにアクセスしたときにapacheログには次のように出力される
192.168.212.51 - - [20/Jul/2005:21:39:03 +0900] "GET /index.php HTTP/1.1" 200 735 hogehoge
この方法は、たとえば会員番号とパスワードで認証してクッキーでセッション管理しているという、 よくあるタイプの会員制のWebサイトを運用している場合に便利だ。 apacheのログに会員番号を記録させるようにすれば、会員ごとの動作履歴を追跡(トラッキング)できる。 利用動向の調査やユーザーからの問い合わせ対応の際に重宝するんじゃないだろうか。 ちなみにこれを実現しようとしてLogformatに %{Cookie}i と書いておいて、Cookieに会員番号を書き込んでおくと言う手法を取るサイトもあるようだが、セキュリティ上大変よろしくない。ブラウザ側に保存されているCookieはその気になれば簡単に書きかえることができてしまう。そんな信頼できないものをログにとっても意味ない。

なお、analogなどのWebサーバーログ解析ソフトでは、HTTPベーシック認証されているユーザーのユーザー名が記録されているログ=apacheでいうと %u =を解析することができる。 この%uにあたる部分に、そのサイト独自の認証で使っている会員番号などを上記の方法で埋め込んだログを吐かせれば、ログ解析ソフトのこうした機能をそのまま活用できるだろう。

通常では記録されない、POSTされたデータ自体をログに記録したいという場合も apache_note("originallog", var_export($_POST, true)); のような感じでできるんじゃないだろうか。ただし改行コードがあったらどうなるとかPOSTデータがでかかったらとかバイナリだったらどうなるとかは知らないので各自テストされたし。(なお、POSTデータの監視についてはmod_security導入という手もある)

apacheは複数のモジュールで構成されている。デフォルトで含まれるmod_log_configもそのひとつだ。 apacheにはモジュール間で情報をやりとりするためのnoteという共通記憶領域の概念がある。 mod_php4がnoteに書き込み、mod_log_configがnoteを読み込んでログを吐く、というカラクリである。

ということで、いろんな情報をapacheのログに吐かせることで、既存のapacheログの価値を向上させつつログ管理の手間を省くTIPSでした。

そういえば最近ログがらみの話が多い気がするが別にたまたまです。

see also:
apacheのログに出る時刻はバージョン1.3.xと2.xとで違う(2006/7)

意味がわからん → 欽ちゃんの野球チームが解散

吉本興業をクビになるのはいいとして、欽ちゃんの野球チームが解散になる理由がさっぱりわからない。 問題の芸人だけじゃなくてもうあと2,3人のチームメンバーが問題の飲み会に参加してたから? だったらそいつらをチームからクビにすればすむ話では?

高校球児がタバコ吸うと甲子園出場辞退とかいう話もよく聞くが、それもはっきりってまるで意味のわからない美学だ。

何が大切で何が本質なのかを見失ったまま右往左往するオトナも、まわりで訳知り顔ではやしたてるオトナも、とてつもなくこっけいであり、そして何よりも、迷惑である。

apacheのログに出る時刻はバージョン1.3.xと2.xとで違う

知っている人は知っているけど知らない人は知らない、ささいなTIPSではありますが。

たとえばApacheのアクセスログに
192.168.10.20 - - [31/Aug/2006:22:24:26 +0900] "GET /hoge.html HTTP/1.1" 200 1215
というログがあったとして、このログに記載されている時刻は 「ブラウザからのリクエストをApacheが受け取った時刻」なのか? それとも「Apacheがブラウザにレスポンスを返した時刻」なのか?

正解は次のとおり。

  • Apache1.3系統の場合:「全ての処理を終えてログを出力する時点の時刻≒Apacheがブラウザにレスポンスを返した時刻」
  • Apache2以降の場合:「ブラウザからのリクエストをApacheが受け取った時刻」
注:ログまわりの設定や実装になんか小細工している場合は除く

これはApacheのリリースノートなど見ていても不思議と書いていない。 しかしマニュアルを見比べるとなんとなくわかる。

1.3のマニュアル [10/Oct/2000:13:55:36 -0700] (%t)
The time that the server finished processing the request
(訳:サーバーがリクエストの処理を終了した時刻)
2.0のマニュアル %...t Time the request was received (standard english format)
(訳:リクエストを受けた時刻)

apacheのバージョンに関わらず、ログがファイルに書き込まれるタイミングは常に「そのリクエストに対するレスポンス処理を全て終了した時点」である。なぜなら、全てのレスポンス処理を終えなければわからない情報をログに出力する場合もあるから。ここで問題なのはログに記録されている時刻だ。静的なファイルの内容を返すだけならともかくWebアプリの場合には何か問題が発生したときその時刻が重要になるのだが、重い処理をするWebアプリだとリクエストを受けた時刻とレスポンスを返した時刻にはズレが発生してしまい、ログに記録されているのはそのどちらなのかを正確に把握しておかないと問題の原因や所在を見誤ってしまうことがあるので注意が必要である。

昔のapache-usersメーリングリストの投稿でもっと詳しい人が解説を残してくれている。

Apache 1.3.xのmod_log_configモジュールでは「ログを出力する時点の時刻」を出力していますが、Apache 2.0.xのmod_log_configモジュールは「リクエストを受け取った時点の時刻」を出力しています。このためApache 2.0.xの場合は大きなファイルのダウンロードや処理時間が長いプログラムを実行した場合など、リクエスト~レスポンス完了までの時間が長い場合にログの前後関係が崩れやすくなっています。

この変更の理由はトランザクションの処理中に何度もシステムコールを発行するオーバーヘッドを嫌うためなのか、「ログを出力した時刻」よりも「リクエストされた時刻」の方がアクセスログとして価値があるからかは知りません。
http://mm.apache.jp/pipermail/apache-users/2004-April/004080.html より抜粋)

ついでなので小山氏執筆の書籍など。
Apacheモジュール プログラミングガイド

中田の引退表明文を学校の授業で使うのに許可などいりません

またwebとはちょっと違う話になってしまうのだが。

以下のニュースを見て、教科書にのせる云々のことより、学校教諭からの問合せというくだりで「なんだかなぁ」な気分になってしまった。

中田氏の引退表明文については、前日から授業で使いたいという学校教諭からの問い合わせが所属事務所に寄せられている。この日も、茨城・牛久市内の中学校や兵庫・淡路島の小学校から依頼があり、前日と合わせて約20件に達した。
Yahoo!スポーツ - ニュース - 中田氏の引退表明文が教科書に
そりゃまあ、法律やマナーに気を使うのは社会人として当然のことだ。 がしかし、学校教育機関において著作物を複製して教育目的に使うことは著作権法上許されているということ、 つまり小中学校の先生がnakata.net上の例の引退表明文をプリントアウトして教室の人数分コピーして配って授業で教材に使うことくらいはなんの許諾など必要なく勝手にやってよろしいのである。 学校の先生ならそんなことくらい理解していて当然だと思うのだが、道端で拾った10円玉を交番に届ける小学一年生じゃあるまいし、いちいち事務所に電話したりして相手の手を無駄にわずらわせるありがた迷惑な教師は一部だけだと願いたい。

楽天がずるいとか言うならコンビニはもっとひどいんだよ

ちょっとWebとは話題がズレるけど。 ♪ホリエモンも楽天も村上ファンドもみんなみんなずるいんだ儲けすぎなんだ♪的な雰囲気な昨今ですが、 楽天と同様の小売業関連フランチャイズ(?)業界では古くからもっとひどいこともあるということは意外と知られていないらしいので紹介。

以上、情報紙「ストレイ・ドッグ」(山岡俊介取材メモ) 2005/9 より。

ちなみに山岡氏というのは、サラ金の武富士の武井会長が雇った探偵がこの人の事務所の電話に盗聴器をしかけて刑事告発されて武井会長と探偵の両方とも有罪判決になってあれだけ四六時中放送されていた武富士ダンサーズのテレビCMが一夜にして消え去るきっかけとなった件の人。