L-Core Stubborn 作業記録
Version 1.8 / 2026-11-11
1. 目的
隔離基準18点に届かなかった迷惑メールを解析し、
誤検知を避けながらL-Coreの検出性能を改善する。
2. 基本方針
- 隔離基準:18点
- Rspamd reject:35点
- 受信当時のスコアを重視する
- 疑わしいだけの営業メールは原則通過
- 日本語フィッシングを優先解析
- Bayes学習は明示的な判断後に実施
- 検体移動は確認後に実施
- 原則として1ステップずつ検証する
3. 解析済みの主な検体
| 分類 | 結果 |
| Unicode文字偽装 | 5通検出・処理済み |
| アイフル偽装 | 専用Lua V1.2で検出 |
| XServer更新偽装 | 3通・専用Lua V1.0 |
| XServer期限切れ偽装 | 3通・専用Lua V1.0 |
| Amazon偽装 | 2通・処理済み |
| 松井証券パスキー偽装 | 2通・処理済み |
| 正常メール候補 | 2通・Bayes学習なし |
4. MyJCB偽装の解析
3通とも受信時スコアは15点台で隔離を回避。
HTML内にゼロサイズのspanを挿入し、
ブランド名の英字を分断していた。
各検体で18個の文字分断を確認。
5. HTML Zero Font Sensor
- Lua:lc_html_zero_font.lua V1.2
- Symbol:DAZOO_HTML_ZERO_FONT_OBFUSCATION
- 現在の加点:+3.1(V1.2で有効化済み)
- MyJCB検体3通すべてで検出成功
- 正常メール候補2通では発火なし
- 加点+3.1:2026-11-11実装・検証済み
6. 誤検知検証
広範な正常メール検証には、
spam_testのminus4系検体を使用する。
Stubbornフォルダーは低スコアSPAM解析用であり、
HAMの誤検知検証用ではない。
minus4の対象フォルダーと実際の件数は、
検証開始前に確認する。
7. 現在の進捗
- Stubborn残件数:2026-11-11確認時15通
- HTML Zero Font Sensor V1.2導入済み
- MyJCB偽装3通:検出・処理済み
- HAM候補2通:誤検出なし
- minus4による広範な誤検知検証:未実施
8. 次の作業
- minus4系検体の対象ディレクトリを確認
- HTML Zero Font Sensorの誤検知を検証
- 加点+3.1の妥当性を判断
- MyJCB検体の処理を完了
- 残りの日本語フィッシングを優先解析
9. 作業上の注意
- Rspamd reload後は10秒間隔で最大3回確認
- シェル出力の先頭見出しのみ緑色太字
- Bash変数名GROUPSは使用禁止
- 指定外の検体ディレクトリを走査しない
- 設定変更前にlsattrでimmutable属性を確認し、必要時のみ解除、作業後に復元・確認する
- この記録は確定事項と未確認事項を区別して更新する
Stubborn誤検知検証:minus4運用基準
現在の検証対象(2026-11-11)
/var/vmail/dazoo.ne.jp/spam_test/Maildir/.minus4.processed.2026-10-31/cur/
確認件数:14,901通(2026-11-11時点)
次回の切替候補
/var/vmail/dazoo.ne.jp/spam_test/Maildir/.minus4.processed.2026-11-10/cur/
確認件数:13,356通(2026-11-11時点)
11月10日分は整理途中の可能性があり、件数が増える場合がある。
運用ルール
- 原則、直近の整理済みminus4検体を使用する。
- 保存周期は約10日間隔(10日・20日・月末)。
- 新しいフォルダーが存在しても、整理完了前なら旧版を使用する。
- 切替時には実在・件数・整理完了状況を確認する。
- 件数は確認時点の値であり、固定値ではない。
- 指定外のMaildirはユーザーの許可なく走査しない。
HTML Zero Font Sensor V1.2 完了記録
更新日:2026-11-11
- Lua:lc_html_zero_font.lua V1.2
- Symbol:DAZOO_HTML_ZERO_FONT_OBFUSCATION
- 発火条件:英字間のゼロサイズspan分断が2回以上
- スコア:+3.1
- MyJCB偽装3通すべてで発火確認
- 3通ともfragmented=18、total=18
- Rspamd設定検証・reload成功
誤検知検証
- 対象:minus4.processed.2026-10-31
- 検体数:14,901通
- Zero-font含有:2,606通
- Python一次抽出による文字分断候補:5通
- 候補5通をRspamdで検証:発火0通
- 正常メール候補2通:発火0通
- 全14,901通のRspamd再検査は未実施
MyJCB再検査結果
- 1通目:47.83点、reject
- 2通目:61.93点、reject
- 3通目:38.73点、reject
- センサー単体の加点:+3.10
- 変更前後の総スコア差:+5.60(要確認)
次の作業
- 総スコア差+5.60の内訳を確認
- MyJCB検体3通は専用処理済みフォルダーへ移動完了
- 残りの日本語フィッシング検体を解析
10. 検体の保存先とL-Core設定管理
検体の保存先
基準ディレクトリ:
/var/vmail/dazoo.ne.jp/spam/Maildir/
| 用途 | 保存先(基準ディレクトリからの相対パス) |
| 未処理・解析対象 | .spam_samples.stubborn/cur/ |
| Unicode偽装 | .spam_samples.unicode.processed/cur/ |
| アイフル偽装 | .spam_samples.aiful.processed/cur/ |
| XServer更新偽装 | .spam_samples.xserver_renewal.processed/cur/ |
| XServer期限切れ偽装 | .spam_samples.xserver_expiration.processed/cur/ |
| Amazon S3偽装 | .spam_samples.amazon_s3.processed/cur/ |
| 松井証券偽装 | .spam_samples.matsui_passkey.processed/cur/ |
| MyJCB偽装 | .spam_samples.myjcb.processed/cur/ |
| HAM候補 | .spam_samples.ham_candidates/cur/ |
| Apple支払い方法偽装 | .spam_samples.apple_payment.processed/cur/ |
上記の分類別フォルダーは2026-11-11に存在確認済み。
検体の移動は解析と検証の完了後、ユーザーの確認を得て行う。
Luaの読み込み構造
/etc/rspamd/local.d/rspamd.lua
|
+-- dofile('/etc/rspamd/local.d/lc_*.lua')
|
+-- Luaによる検出処理
+-- register_symbol()によるシンボル登録
スコア管理の絶対規則
- すべてのスコアはgroups.confで一元管理する。
- Luaは検出処理とシンボル登録を担当する。
- Lua内で独自に実効スコアを設定しない。
- Zero Font Sensor V1.2のLua側scoreは0.0。
- groups.conf側のDAZOO_HTML_ZERO_FONT_OBFUSCATIONはweight=3.1。
- 2026-11-11、移管後の実検体で+3.10を確認済み。
immutable属性の管理
- 変更前にlsattrでファイル属性を確認する。
- バックアップを作成する。
- i属性がある場合のみchattr -iで一時解除する。
- 編集後に構文とRspamd設定を検証する。
- 必要なi属性をchattr +iで復元する。
- lsattrで復元結果を確認する。
- reload後、10秒間隔で最大3回、実検体で検証する。
現在の進捗
- MyJCB偽装3通:検出・処理済み。
- 保存先:.spam_samples.myjcb.processed/cur/
- Stubborn残件数:15通。
- 次の優先解析対象:残り15通の未処理検体。
11. American Express偽装解析完了
- 件名:【アメリカン・エキスプレス】約1分で完了!二段階認証設定で8,888ポイント進呈
- 受信時スコア:17.29点(隔離基準18点未満)
- 再検査スコア:55.90点、reject
- 偽装送信者名:A?ericanExpre??
- Unicode:U+1D0DおよびU+A731
- 検出:DAZOO_BRAND_UNICODE_SPOOF +12.10
- 検出:DAZOO_LOCK_URIBL_FULLHOST_ONLY +8.60
- 検出:BAYES_SPAM +10.10
- 偽装ログインURL:QQs7Mb.tulaoban.net/1407L
- 既存のUnicodeブランド偽装検出が有効。新ルール不要。
- 検体1通を.spam_samples.amex.processed/cur/へ移動完了。
- 移動後のStubborn残件数:22通。
12. Apple支払い方法偽装5通の解析完了
- 件名:お支払い方法の問題
- 送信元表示:Apple <no_reply@email.apple.com>
- 受信時スコア:17.39?17.40点(隔離基準18点未満)。
- 再検査:5通すべて49.69点、reject。
- 共通URL:apple-jp.rftclouds.com/account
- ログイン誘導先:5種類の.cnドメインの/Login。
- DAZOO_URIBL_BAD:各検体で+8.10。
- DAZOO_SUBJECT_SCAM_PATTERN:+2.10。
- BAYES_SPAM:+10.10。
- 既存ルールで全通reject。新規ルール不要。
- 5通を.spam_samples.apple_payment.processed/cur/へ移動完了。
- 移動後のStubborn残件数:17通。
13. 松井証券取引制限偽装と検体保存方針
- 件名:[至急]11/10 松井証券お取引制限について
- 送信元:noreply@tiw30.matsui-bg.cfd
- 不審URL:shzunchuang.com
- 受信時のRspamd判定ヘッダーなし。reload中の到着は可能性であり未確定。
- 再検査:52.80点、reject。
- DAZOO_RBL_BAD:+14.10。
- DAZOO_URIBL_BAD:+8.10。
- BAYES_SPAM:+10.10。
- 新規ルール追加不要。
- 検体を.spam_samples.processed/cur/へ移動完了。
- 移動後のStubborn残件数:16通。
解析済み検体の保存方針
- 未解析SPAM:.spam_samples.stubborn/cur/
- 解析済みSPAM:.spam_samples.processed/cur/(今後の共通保存先)
- HAM候補:.spam_samples.ham_candidates/cur/(別管理)
- 既存の分類別processedフォルダーは当面維持する。
- 今後は検体の種類ごとに新しい保存フォルダーを作らない。
14. Vpass逆順ブランド偽装の解析完了
- 件名:今月分のお支払い金額が確定しまし?た
- 送信者表示名にU+202E、U+202C、U+FEFFを使用。
- 逆順ブランド偽装:ssapV。
- 不審URL:shjtbjz888.com
- 受信時スコア:不明(判定ヘッダーなし)。
- 再検査:68.40点、reject。
- DAZOO_LOCK_BIDI_PHISHING:+15.10。
- DAZOO_BODY_UNICODE_CF_EXCESS:+12.10。
- DAZOO_FROM_BIDI_SPOOF:+6.10。
- 既存Bidi対策で検出。新規ルール不要。
- 検体を.spam_samples.processed/cur/へ移動完了。
- 移動後のStubborn残件数:15通。