防衛規律:全ソースと論理の同期
本仕様書は、救出された全ての物理設定ファイルと、主の5行規律による解説をセットで公開するものである。これ一冊を以て、L-Coreの再構築を可能とする。
シンボル詳細仕様(5行規律)
DAZOO_WHITE_DOM_MAP-6.0
主が精錬した「信頼ドメイン・データベース」との照合規律。
Envelope From のドメインが white_domains.map に存在する場合に発動する。
既知の清廉なドメインを確実に識別し、SPF等の不備による誤検知を抑制。
複数サイトが同居するマルチドメイン環境下での救済措置の基盤となる。
6点の免除を執行し、防衛線の最前線を担う。
Envelope From のドメインが white_domains.map に存在する場合に発動する。
既知の清廉なドメインを確実に識別し、SPF等の不備による誤検知を抑制。
複数サイトが同居するマルチドメイン環境下での救済措置の基盤となる。
6点の免除を執行し、防衛線の最前線を担う。
DAZOO_COMP_SHARED_INFRA_ABUSE7.0
正規の共用インフラを悪用したスパムを、論理的な矛盾から見抜く規律。
AmazonやSendGrid経由であっても、内容が不浄なものを冷徹に峻別する。
「大手インフラだから安全」という盲信を排し、常に疑いを持つD-Specの精神。
インフラ識別シンボルと、本文スキャンの不整合を組み合わせた知能規律。
7.0 の加点を執行し、隠れ蓑としての共用インフラを無効化する。
AmazonやSendGrid経由であっても、内容が不浄なものを冷徹に峻別する。
「大手インフラだから安全」という盲信を排し、常に疑いを持つD-Specの精神。
インフラ識別シンボルと、本文スキャンの不整合を組み合わせた知能規律。
7.0 の加点を執行し、隠れ蓑としての共用インフラを無効化する。
FORCE_ACTION_DAZOO_LAYER2_GREYLIST0.0 (Action)
判定不能な通信に対し、物理的な「再送要求」という試練を課す規律。
スコアではなく force_action 規律により、強制的に一時拒否を執行する。
ボットには不可能な「正しい再送挙動」を確認し、正規サーバーのみを救済。
防衛網の最終フィルターとして、スキャナ攻撃を時間切れへと追い込む。
この規律の導入により、未知の送信元からの初回突破を100%防ぐ。
スコアではなく force_action 規律により、強制的に一時拒否を執行する。
ボットには不可能な「正しい再送挙動」を確認し、正規サーバーのみを救済。
防衛網の最終フィルターとして、スキャナ攻撃を時間切れへと追い込む。
この規律の導入により、未知の送信元からの初回突破を100%防ぐ。
RBL_BARRACUDA3.0 (Adjusted)
外部の Barracuda RBL を、D-Spec 規律に合わせて再精錬した設定。
標準のスコア設定をそのまま使わず、主の環境に合わせて影響度を調整。
単独での判定ではなく、他の DAZOO_RBL 系シンボルとの相乗効果を重視。
外部知見と独自規律のハイブリッド運用を象徴する、インポート・シンボル。
3.0 の調整加点を与え、防衛の「厚み」を外部リソースで補強する。
標準のスコア設定をそのまま使わず、主の環境に合わせて影響度を調整。
単独での判定ではなく、他の DAZOO_RBL 系シンボルとの相乗効果を重視。
外部知見と独自規律のハイブリッド運用を象徴する、インポート・シンボル。
3.0 の調整加点を与え、防衛の「厚み」を外部リソースで補強する。
3. 正典ソースコード全集(全5ファイル)
救出された全ての物理設定ファイル。これら一式を Rspamd へ配置することで規律が完成する。
local.d/groups.conf (配点とグループ化)
# L-Core: Single Source of Truth (V255.77 - All Symbols)
group "lcore_master" {
symbols {
"DAZOO_WHITE_DOM_MAP" { weight = -15.1; }
"DAZOO_RBL_GOOD" { weight = -20.0; }
"DAZOO_RBL_BAD" { weight = 14.0; }
"DAZOO_SENDGRID_INFRA" { weight = 2.1; }
# センサー点(0.1点可視化規律)
"DAZOO_SCAM_BODY_LUA" { weight = 0.1; }
"DAZOO_SUBJECT_HAS_INVISIBLE" { weight = 0.1; }
"DAZOO_FROM_HAS_INVISIBLE" { weight = 0.1; }
"DAZOO_BOSS_NAME" { weight = 0.1; }
"DAZOO_SUBJ_RANDOM_10" { weight = 0.1; }
"DAZOO_FROM_NAME_RANDOM" { weight = 0.1; }
"DAZOO_SUBJ_BUSINESS_NAME" { weight = 0.1; }
"DAZOO_FROM_NAME_AMAZON_REFINED" { weight = 0.1; }
# 歴史的規律スコア
"DAZOO_SPOOF_BRAND_NAME" { weight = 2.1; }
"DAZOO_SUBJECT_FRAUD_CONTEXT" { weight = 2.1; }
"DAZOO_SUBJECT_BUSINESS_CONTEXT" { weight = 1.1; }
# 執行規律(!BAYES_HAM ゲート)
"DAZOO_EXEC_LUA" { weight = 5.9; }
"DAZOO_EXEC_SPOOF_STRIKE" { weight = 8.0; }
"DAZOO_EXEC_AMAZON_SPOOF" { weight = 10.0; }
"DAZOO_COMP_BOSS_BEC_STRIKE" { weight = 12.0; }
"DAZOO_EXEC_RANDOM_INFRA" { weight = 15.0; }
"DAZOO_EXEC_BIZ_SPOOF" { weight = 4.9; }
# 防衛規律
"DAZOO_COMP_STEPPING_STONE_PROTECTION" { weight = 18.1; }
"DAZOO_COMP_HIGH_CONFIDENCE_STRIKE" { weight = 8.1; }
"DAZOO_JUNK_TLD" { weight = 7.5; }
"MIME_BASE64_TEXT_BOGUS" { weight = 3.1; }
"SPAM_FLAG" { weight = 0.0; }
}
}
group "statistics" { symbols { "BAYES_SPAM" { weight = 10.0; } "BAYES_HAM" { weight = -10.0; } } }
group "hfilter" { symbols { "HFILTER_HOSTNAME_UNKNOWN" { weight = 2.5; } } }
local.d/multimap.conf (IP/ドメイン外部マップ)
# L-Core: Unified Multimap Intelligence (V255.77 - Complete Recovery)
DAZOO_WHITE_DOM_MAP {
type = "header";
header = "from";
filter = "email:domain";
map = "/etc/postfix/rbl_sanctuary_hosts.txt";
}
DAZOO_SHARED_INFRA {
type = "header";
header = "from";
filter = "email:domain";
map = "/etc/postfix/shared_infra_domains.txt";
}
DAZOO_FROM_HAS_INVISIBLE {
type = "header";
header = "from";
map = ["/[\x{200b}-\x{200d}\x{feff}]/u"];
regexp = true;
}
DAZOO_FROM_NAME_AMAZON_REFINED {
type = "header";
header = "from";
filter = "name";
map = ["/[Aa].{0,3}[Mm].{0,3}[Aa].{0,3}[Zz].{0,3}[Oo].{0,3}[Nn]/i"];
regexp = true;
}
DAZOO_BOSS_NAME {
type = "header";
header = "from";
filter = "name";
map = ["/^(社長|代表|CEO|役員)/"];
regexp = true;
}
DAZOO_SUBJ_RANDOM_10 {
type = "header";
header = "subject";
map = ["/[a-zA-Z]{2}[0-9]{6}[a-zA-Z]{2}/"];
regexp = true;
}
DAZOO_SUBJ_BUSINESS_NAME {
type = "header";
header = "subject";
map = ["/株式会社/i", "/工業/i", "/建設/i", "/Luxury Watches/i"];
regexp = true;
}
DAZOO_FROM_NAME_RANDOM {
type = "header";
header = "from";
filter = "name";
map = ["/[a-z]{2}[0-9]{5}/i"];
regexp = true;
}
DAZOO_SPOOF_BRAND_NAME {
type = "header";
header = "from";
map = ["/Apple/i", "/アップル/i", "/PayPay/i", "/Hulu/i"];
regexp = true;
}
DAZOO_SUBJECT_FRAUD_CONTEXT {
type = "header";
header = "subject";
map = ["/ポイント/i", "/dポイント/i", "/進呈/i", "/凍結/i", "/ロック/i", "/ 異常/i"];
regexp = true;
}
DAZOO_SUBJECT_BUSINESS_CONTEXT {
type = "header";
header = "subject";
map = ["/ご購入/i", "/注文/i", "/請求/i", "/確認/i", "/Renewal/i", "/受付/i"];
regexp = true;
}
DAZOO_AMAZON_REAL_DOMAIN {
type = "header";
header = "from";
filter = "email:domain";
map = ["amazon.co.jp", "amazon.com", "amazon.jp"];
}
DAZOO_SENDGRID_INFRA {
type = "header";
header = "X-SG-EID";
map = ["/./"];
regexp = true;
}
DAZOO_JUNK_TLD {
type = "header";
header = "from";
filter = "email:domain";
map = "/etc/rspamd/local.d/scam_tlds.map";
regexp = true;
}
local.d/composites.conf (複合判定規律)
# L-Core: Unified Composite Intelligence (V255.77)
# 聖域踏み台防衛(ホワイトドメイン 且つ Bayes SPAM)
DAZOO_COMP_STEPPING_STONE_PROTECTION {
expression = "DAZOO_WHITE_DOM_MAP & BAYES_SPAM";
policy = "leave";
}
# 自信満点ルール(物理的証拠がある時のみ執行)
DAZOO_COMP_HIGH_CONFIDENCE_STRIKE {
expression = "BAYES_SPAM & HFILTER_HOSTNAME_UNKNOWN & (DAZOO_JUNK_TLD | DAZOO_SUBJECT_HAS_INVISIBLE | DAZOO_FROM_HAS_INVISIBLE)";
policy = "leave";
}
# 執行ゲート(!BAYES_HAM 且つ !WHITE)
DAZOO_EXEC_LUA {
expression = "DAZOO_SCAM_BODY_LUA & !BAYES_HAM & !DAZOO_WHITE_DOM_MAP";
policy = "leave";
}
DAZOO_EXEC_SPOOF_STRIKE {
expression = "(DAZOO_JUNK_TLD | DAZOO_SUBJECT_HAS_INVISIBLE | DAZOO_FROM_HAS_INVISIBLE) & !BAYES_HAM & !DAZOO_WHITE_DOM_MAP";
policy = "leave";
}
DAZOO_EXEC_AMAZON_SPOOF {
expression = "DAZOO_FROM_NAME_AMAZON_REFINED & !DAZOO_AMAZON_REAL_DOMAIN & !BAYES_HAM & !DAZOO_WHITE_DOM_MAP";
policy = "leave";
}
DAZOO_COMP_BOSS_BEC_STRIKE {
expression = "DAZOO_BOSS_NAME & DAZOO_SCAM_BODY_LUA & !BAYES_HAM & !DAZOO_WHITE_DOM_MAP";
policy = "leave";
}
DAZOO_EXEC_RANDOM_INFRA {
expression = "DAZOO_SENDGRID_INFRA & (DAZOO_SUBJ_RANDOM_10 | DAZOO_FROM_NAME_RANDOM) & !BAYES_HAM & !DAZOO_WHITE_DOM_MAP";
policy = "leave";
}
DAZOO_EXEC_BIZ_SPOOF {
expression = "DAZOO_SUBJ_BUSINESS_NAME & !BAYES_HAM & !DAZOO_WHITE_DOM_MAP";
policy = "leave";
}
rspamd.local.lua (独自論理ゲートLUA)
-- L-Core: Unified Lua Intelligence (V255.72)
rspamd_config:register_symbol({
name = 'DAZOO_SCAM_BODY_LUA',
callback = function(task)
local tp = task:get_text_parts() or {}
local full_text = ""
for _, p in ipairs(tp) do full_text = full_text .. (p:get_content() or "") end
local n = tostring(full_text):lower():gsub("[%s%p%c%z]", "")
local keywords = {
'lineグループ','qrコード','作成してください','返信してください','会社にいるの',
'本人確認','ご利用確認','amazon','saison','vpass','mercari','投資','副業',
'rolex','luxury','watches','supercopy','スーパーコピー','donating','foundation','supportneeded'
}
for _, kw in ipairs(keywords) do
if n:find(kw) then return true end
end
return false
end,
})
rspamd_config:register_symbol({
name = 'DAZOO_SUBJECT_HAS_INVISIBLE',
callback = function(task)
local sbj = task:get_subject() or ""
if sbj:find('\226\128\139') or sbj:find('\226\128\140') or sbj:find('\226\128\141') then return true end
return false
end,
})
symbols_backup.txt (全シンボル証跡)
"DAZOO_COMP_KILL_FALSE_HAM" "DAZOO_ORIGIN_SHARED" "DAZOO_RBL_BAD" "DAZOO_RBL_GOOD" "DAZOO_RBL_MATCH" "DAZOO_SCAM_BODY_LUA" "DAZOO_SYSTEM_AUTHORS" "DAZOO_SYSTEM_RECIPIENT" "DAZOO_WHITE_DOM_MAP" "DAZOO_WHITE_RETURN_PATH" "RBL_BARRACUDA" DAZOO_COMP_AMAZON_SPOOF DAZOO_COMP_BAYES_UNKNOWN_SYNERGY DAZOO_COMP_KILL_FALSE_HAM DAZOO_COMP_SHARED_INFRA_ABUSE DAZOO_ORIGIN_SHARED DAZOO_SYSTEM_AUTHORS DAZOO_WHITE_DOM_MAP DAZOO_WHITE_RETURN_PATH FORCE_ACTION_DAZOO_LAYER2_GREYLIST