Just another Ruby porter,

〜2003年9月中旬〜


<Prev(,) | Next(.)> | Recent(/)>> | RDF

2003-09-11 (Thu)

[Linux] uClibc 0.9.21

更新。 -g問題は相変わらず。


2003-09-12 (Fri)

[Ruby] ruby-bugs, ruby-bugs-ja

最新のSpamAssassin 2.55を使うようにした。

[Mail] MH

spamをprocmailでMH形式で保存しているので、久し振りにscanしてみた。 これだけで、spamかどうか判断できるので結構便利だ。誤判断したときも

% bogofilter -Sn <$(mhpath +spam last)
% sa-learn --ham --file $(mhpath +spam last)
% sa-learn --rebuild

てなことをしてみたり。

% grep 'X-Bogosity: Yes' $(mhpath +spam last:100)

して何も出てこなくなったら、SpamAssassinを外してBogofilterだけにしよう。

[HTML] mailto

以前どこかで読んだmailtoを16進で表記する方法を思い出した。 今更効果があるとも思えないが、この日記も@を&#x40;にしてみる。 過去のは面倒なのでそのまま。


2003-09-13 (Sat)

[Linux] dietlibc 0.23

更新。

[Cygwin] Available for testing: gcc-3.3.1-1 and gcc-mingw-20030911-1

一応Rubyで試す。問題ないようだ。


2003-09-14 (Sun)

[Cygwin] Updated: cygwin-1.5.4-1

早くも1.5.4だ。

[Mail] procmail

procmail -vしてみると

procmail v3.11pre7 1997/04/28 written and created by Stephen R. van den Berg
                                                        <srb@cuci.nl>
<後略>

とやけに古い。3.22に上げとこう。


2003-09-15 (Mon)

[Mail] cmail2mbox.rb

いつのまにかwordlist.dbが25MB近くになりちょっと遅くなってきたので、 作り直してみる。SpamAssassinと組み合わせてるのは実は会社だけで、 家の遅いマシンではbogofilterだけにしてる。 適当にネット上にあるspamを食わせてみたんだけど、 あまり適当すぎてどうもうちに来るspamと合わないような気がする。 というわけで、cmailのフォルダをmboxに変換しよう。 cmailにはcmail-c2mという関数があるけど、手で実行するのもなんだし、 Lispはよくわからないし、Rubyで簡単に使い捨てスクリプトを。

#! /usr/local/bin/ruby
CMAIL_SEPERATOR = "\C-_\C-L\n"
gets(CMAIL_SEPERATOR)
while message = gets(CMAIL_SEPERATOR)
  print message.chomp(CMAIL_SEPERATOR), "\n"
end

実に簡単だ。これで、

% cmail2mbox.rb ~/cmail/**/*.030[789]~*spam* | bogofilter -nv -M
% cmail2mbox.rb ~/cmail/**/spam.030[789] | bogofilter -sv -M

という感じでここ3ヶ月ほどのメールを学習させる。 これでwordlist.dbが2MBほど。bogotuneを実行してみると

Recommended cache size is 3 Mbytes.

らしいので、-k 3も追加。現在の~/.procmailrc。

MAILDIR=$HOME/Mail/
PATH=/bin:/usr/bin:/usr/local/bin
LOGFILE=$HOME/procmail.log

### SPAM

:0 HB:
* ? bogofilter -k 3 -u -l -v 1>&2
spam/.

-vの結果もprocmail.logへ出すために1>&2を入れてる。

[Mail] cmail2mh.rb

ついでにMH形式に変換するスクリプトも作った

#! /usr/local/bin/ruby
CMAIL_SEPERATOR = "\C-_\C-L\n"
gets(CMAIL_SEPERATOR)
i = 1
while message = gets(CMAIL_SEPERATOR)
  open(i.to_s, "w") do |fh| fh.print message.chomp(CMAIL_SEPERATOR), "\n" end
  i += 1
end

これを使い今月のruby-talkをMH形式に変換。

% mkdir tmp; cd tmp
% cmai2mh.rb ~/cmail/ruby/ruby-talk.0309
% find . -type -f | xargs bogofilter -v -B |grep Yes
./361 X-Bogosity: Yes, tests=bogofilter, spamicity=0.999199, version=0.15.2
./743 X-Bogosity: Yes, tests=bogofilter, spamicity=1.000000, version=0.15.2

あれと思い調べてみると、たしかにspamだった。 手で振り分けていたころのメールだが、やはり人間がやるとミスがあるようだ。 もうおいらより賢い。

% refile -src +. 361 743 +spam
% bogofilter -Ns -B $(mhpath +spam last:2)

としとこう。

[Mail] bogofilterと日本語

nkf+kakasiを通さなくても適当に学習させればそれなりに検知してくれるようだが、 たぶんヘッダとか日本語じゃないところで判断してるのかもしれない。 韓国語だとか中国語もあるし、日本語だけに特化しても意味ないしな。 というか日本語のspamは圧倒的に少ないので、無視できるかも。 圧倒的に少なくなったのはruby-bugs, ruby-bugs-jaから来なくなったからか?

韓国語のspamをよく見ると適当に空白で区切られていた。なるほど。

[Mail] 未承諾広告

"未承諾広告"をbogofilterに食わせてみた。

% echo '未承諾広告' |nkf -j |bogofilter -vvv
X-Bogosity: Yes, tests=bogofilter, spamicity=0.994208, version=0.15.2
                                     n    pgood     pbad      fw     U
"Bz9-9p"                             1  0.000000  0.001425  0.994208 +
N_P_Q_S_s_x_md                       1  5.79e-03  9.94e-01  9.94e-01
                                        1.00e-02  4.15e-01  0.100
% echo 'Subject: 未承諾広告' |nkf -j |bogofilter -vvv
X-Bogosity: Yes, tests=bogofilter, spamicity=0.999270, version=0.15.2
                                     n    pgood     pbad      fw     U
"subj:Bz9-9p"                        8  0.000000  0.011396  0.999270 +
N_P_Q_S_s_x_md                       1  7.30e-04  9.99e-01  9.99e-01
                                        1.00e-02  4.15e-01  0.100

ちゃんとSubjectも見てるんだね。スコアが上がってる。

% echo 'Subject: 未承諾広告' |nkf -j |od -tx1z       
0000000 53 75 62 6a 65 63 74 3a 20 1b 24 42 4c 24 3e 35  >Subject: .$BL$>5<
0000020 42 7a 39 2d 39 70 1b 28 42 0a                    >Bz9-9p.(B.<
0000032

なので、"諾広告"しか見てくれない。 でもそのおかげでうまい具合に"末承諾広告"もspamとみなされる。

% echo 'Subject: 末承諾広告' |nkf -j |bogofilter -vvv 
X-Bogosity: Yes, tests=bogofilter, spamicity=0.999270, version=0.15.2
                                     n    pgood     pbad      fw     U
"subj:BKv"                           0  0.000000  0.000000  0.415000 -
"subj:Bz9-9p"                        8  0.000000  0.011396  0.999270 +
N_P_Q_S_s_x_md                       1  7.30e-04  9.99e-01  9.99e-01
                                        1.00e-02  4.15e-01  0.100

[Mail] ~/.bogofilter.cf

man bogofilterしてみると~/.bogofilter.cfが使えるらしいので、 ~/.procmailrcに-k 3と書くのはやめて、~/.bogofilter.cfに

db_cachesize=3

と書くことにした。サンプルは/etc/bogofilter.cf.sampleにある。

[Mail][News] http://www.gmane.org/

GmaneにRuby関係のMLがどのくらいあるのか 検索してみると、英語のはほとんどあるようだ。 ruby-docはMoonWolfさんとこの archiveが稼働してないようなので、便利かもしれない。

この記事によると3月ぐらいから提供しているらしい。

[Linux] Dnsmasq 1.14

更新。


2003-09-16 (Tue)

[Mail] false positivesとfalse negatives

ham as spamがfalse positivesでspam as hamがfalse negatives(non-spamがham)。

[Mail] Yet Another antiVirus Recipe

procmailのレシピ。

-VIRLIST: EICAR-AV-TEST(test NOT virus), Iframe exploit, SirCam,
Nimda, Klez, Hybris, BadTransII, Tanatos(BugBear), MTX, Elkern,
Blebla, Navidad, MyParty, Magistr, Lentin(Yaha), Frethem, Gibe,
Mawanella, Generic, Funnypics, Happy, Opasoft(a,d), Scrambler,
PrettyPark, SysClock, Sobig(a,b,c,f,gen), Avron(Lirva Aliz,
CodeGreen.a, IISWorm, GOPWorm, LastWord, Heyya, Sharpei, Trood,
TrojanDownloader.Win32.Ultraset, Ganda, LovGate.f, NetThief,
LovGate.i, Mimail Apost, Blaster(Lovesan), P2P.VB.ai, Dumaru.a

素晴らしい。~/.procmailrcに

INCLUDERC=$HOME/.procmail/nkvir-rc

を追加しとこう。procmailのlogにはこんな感じで記録される。

---=== WORM-DUMARU 17/09/2003 01:28:21 ===---
From watanabe  Sun Sep  7 17:36:05 2003
 Subject: Use this patch immediately ! (PR#574)
  Folder: /home/watanabe/Mail/virus/virus-Dumaru                          13950
---=== WORM-SOBIG 17/09/2003 01:28:23 ===---
From watanabe  Mon Sep  8 16:46:05 2003
 Subject: Your details
  Folder: /home/watanabe/Mail/virus/virus-Sobig                          103359

procmailを試すときは

% procmail < virus-mail

のようにすればいい。


2003-09-17 (Wed)

[Linux] Dnsmasq 1.15

Changes: This is an emergency release which incorporates a facility to
undo Verisign's wildcard A-record in the .com and .net domains.

素早い対応だ。

[Linux] OpenSSH 3.7.1

3.7.1になってるけど、3.7はなにがあった?

[Ruby] news gateway

9/4あたりから止まっていたようで、どっと流れてきた。 あ、違う。Postedをよく見たら8/4だ。どういうこと?


2003-09-18 (Thu)

[Linux] procps 3.1.12

更新。

[Mail] 中国語と韓国語のspam

わざわざcharsetで教えてくれてるわけだし、bogofilterに食わせる必要はない。 というわけで~/.procmailrcに

:0 HB
* ^Content-Type:.*\/(GB2312|big5|ks_c_5601-1987)
{
    LOG="---=== ${MATCH} ${DATE} ===---${NL}"
    :0
    spam/.
}

を追加。logはこんな感じ。

---=== GB2312 Thu Sep 18 23:11:37 JST 2003 ===---
From watanabe  Mon Sep  8 13:08:09 2003
 Subject: Beijing Chinese Translation
  Folder: spam/755                                                        16848

2003-09-19 (Fri)

[Mail] Yet Another antiVirus Recipe 1.7.3

早速Swenに対応したようだ。 Swenはすでに70通ほど来ている。 しかし1通あたり140KB以上てのはSobigよりでかい。まいったな。


2003-09-20 (Sat)

[Virus] Swen

特徴としてはなぜかFROM, TO, SUBJECTと大文字になっている。 ただし、経由するサーバによってはFrom, To, Subjectのように書き換わっていることもある。 とはいうものの圧倒的に大文字が多い。 SUBJECTがない場合もある。 SUBJECTの内容は種類が多い。 New Network Security Updateといった意味ものが多い。 サイズは140KB以上。

Mime-Version: 1.0
Content-Type: multipart/mixed; boundary=

が必ずある。 もともとDateはついてないが、どこか途中のサーバがつけている。 と、POP3のLISTとTOPだけで判断できないか考えてみた。 あ、ヘッダだけbogofilterに食わせて傾向を見ればいいのか。

クローサー/夕陽天使/SO CLOSE

なぜMai KurakiのPerfect Crimeなのか? 茶髪は世界中で流行ってるらしい。 あ、少林サッカーのあの娘だったのか。 やっぱワイヤーアクションは面白い。


<Prev(,) | Next(.)> | Recent(/)>> | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!