[PREVIOUS CHAPTER]
[NEXT CHAPTER]
2 Mail Traffic Information
fmlã¯ãƒ¡ãƒ¼ãƒ«ãƒˆãƒ©ãƒ•ィックã®ç›£è¦–ã‚’ã—ã€ãƒãƒ¼ã‚¹ãƒˆçŠ¶æ…‹ã«ãªã£ãŸã‚‰ãƒ¡ãƒ¼ãƒ«ã®æ‹’å¦
ã‚’ã™ã‚‹ãªã©ã®å‡¦ç†ã‚’ã—ã¾ã™ã€‚当然ã•ã¾ã–ã¾ãªãƒˆãƒ¬ãƒ¼ãƒ‰ã‚ªãƒ•ãŒã‚りã¾ã™ã€‚デフォー
ルトã¯ã€Œä½¿ã‚ãªã„ã€çŠ¶æ…‹ã«ãªã£ã¦ã„ã¾ã™ã€‚ã—ã‹ã—ã“ã®æ©Ÿèƒ½ã‚’ONã«ã—ã¦ãŠãã“ã¨
を推奨ã—ã¦ã„ã¾ã™ã€‚
2.1 How to
ã¦ã£ã¨ã‚Šã°ã‚„ã„カスタマイズを最åˆã«ã„ã£ã¦ãŠãã¨
$MTI_BURST_SOFT_LIMIT
$MTI_BURST_HARD_LIMIT
ã®æ•°å—ã‚’å°ã•ãã™ã‚‹ã¨ã€å°‘ãªã„æ•°ã®ãƒ¡ãƒ¼ãƒ«ã§ã‚‚爆弾ã¨ã¿ãªã™ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚
ãƒ‡ãƒ•ã‚©ãƒ¼ãƒ«ãƒˆã®æ•°å—㯠1 程度ã§ã“ã®æ™‚ã¯å数通程度集ä¸ã—ã¦ãƒ¡ãƒ¼ãƒ«ãŒãã‚‹ã‹
å¦ã‹ç¨‹åº¦ãŒç›®å®‰ã«ãªã£ã¦ã„ã¾ã™ã€‚
2.2 Traffic Monitor
トラフィックã®ãƒ¢ãƒ‹ã‚¿ãƒ¼ã¯(å¦è¡“的興味ã¯åˆ¥ã¨ã—ã¦:)特ã«å¿…è¦ã ã¨ã¯æ€ã„ã¾ã›
ん。ãŒã€ãƒˆãƒ©ãƒ•ィックをモニタã™ã‚‹ã“ã¨ã§ãƒ¡ãƒ¼ãƒ«çˆ†å¼¾(mail bombing)ã®è‡ªå‹•検
出ã¸ã®å¿œç”¨ãªã©ãŒè€ƒãˆã‚‰ã‚Œã‚‹ã¨æ€ã„ã¾ã™ã€‚ã•らãªã‚‹å¿œç”¨ã¨ã—ã¦ãƒ¡ãƒ¼ãƒ«ã®ãƒ«ãƒ¼ãƒ—
ãªã©ã‚‚検出ã§ãã‚‹ã§ã—ょã†ã€‚
Bombing ãƒã‚§ãƒƒã‚¯ã®ç¬¬ä¸€æ©ã¯ç›´è¦³çš„ã«è€ƒãˆã‚‹ã¨ã€Œãƒˆãƒ©ãƒ•ィックãŒä¸€æ°—ã«å¤§ãã
ãªã‚‹æ™‚ã‚’æ‰ãˆã‚‹ã“ã¨ã€ã§ã™ã€‚ã—ã‹ã—ã“ã®è«–ç†ã§ã¯UUCPやダイアルアップIPãªã©
ã§æºœã£ãŸãƒ¡ãƒ¼ãƒ«ã‚’ä¸€æ°—ã«æŽƒã出ã™å¿…è¦ã®ã‚ã‚‹ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‹ã‚‰å‡ºã¦ãã‚‹å ´åˆã‚„ã€
ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¨ãƒ©ãƒ¼ã®ãŸã‚ã«æºœã£ãŸãƒ¡ãƒ¼ãƒ«ãŒä¸€æ°—ã«æ¥ã‚‹å ´åˆãªã©ã‚‚一気ã«ãƒ¡ãƒ¼
ãƒ«ãŒæ¥ã‚‹ãŸã‚ã€æ£ã—ã„メールãªã®ã‹ãれã¨ã‚‚メール爆弾ãªã®ã‹åŒºåˆ¥ãŒã¤ã‹ãªã„
ãªã©ã®å•題ãŒã‚りã¾ã™ã€‚ã§ã‚‚ãれã¯ã‚る程度ã¯ã—ょã†ãŒãªã„ã®ã§ã€UUCPã‚„ãƒãƒƒ
トワークエラーãªã©ã‚‚å¼•ã£æŽ›ã‘ã¦ã—ã¾ã†å¯èƒ½æ€§ã‚’覚悟ã®ä¸Šã§ä½¿ã†å¿…è¦ãŒã‚りã¾
ã™ã€‚
ã„ã¥ã‚Œã®å ´åˆã§ã‚‚「æ„図的ãªã‚¢ã‚¿ãƒƒã‚¯ã‚’自動検出ã§ãã‚‹ã‹ï¼Ÿã€ã¯ã©ã®ç¨‹åº¦
fake ã•れãŸãƒ¡ãƒ¼ãƒ«ãŒ FML ã«ã¤ã£ã“ã¾ã‚Œã‚‹ã‹ã«ä¾å˜ã—ã¾ã™ã€‚ã“れã¯SMTPã«èªè¨¼
ã®èƒ½åŠ›ãŒãªã„ã‹ã‚‰ã§ã€IP Spoofing ã‚‚å¯èƒ½ã§ã‚れ㰠fml.pl ãŒèµ·å‹•ã•ã‚ŒãŸæ™‚刻
以外ã¯å…¨ã¦ fake ã‚‚ç†è«–上有り得ã¾ã™ã€‚
2.3 Mail Traffic Information
MTI (Mail Traffic Information) ã¯FML内蔵ã®ãƒ¡ãƒ¼ãƒ«ãƒˆãƒ©ãƒ•ィックモニタシス
テムã§ã™ã€‚MTI㯠From: Return-Path: Sender: ãªã©ã® address ã‚„ãƒ›ã‚¹ãƒˆæƒ…å ±
ã‚’ KEY ã«ã—ã¦ãƒ¡ãƒ¼ãƒ«ãŒFMLã‚’èµ·å‹•ã—ãŸæ™‚é–“ã‚„ã‚るホストã®é€šéŽæ™‚é–“ã‚’ cache
ã—ã¾ã™ã€‚ã“ã®æƒ…å ±ã‚’ç”¨ã„㦠MAIL BOMB ATTACK ã®ç›£è¦–ãŒã§ãã‚‹ã¯ãšã§ã™ãŒã€å‰
è¿°ã®ç†ç”±ã«ã‚ˆã‚Šã€ã†ã¾ã„評価関数を探ã™ã®ãŒéžå¸¸ã«å¤§å¤‰ã§ã™ã€‚
2.4 メール爆弾 (MAIL BOMBING) 判定評価関数
注æ„: 以下表記ã§ããªã„ã®ã§ TeX を一部織り混ãœã¦æ›¸ã。
ãƒ¡ãƒ¼ãƒ«ã¯æ™‚é–“è»¸ã«æ²¿ã£ã¦ fml.pl ã‚’èµ·å‹•ã™ã‚‹ã€‚ã“ã®æ™‚系列ã«ã¤ã„ã¦è€ƒãˆã‚‹ã€‚
メール (m_i) ãŒé€ã‚‰ã‚Œã¦ãã¦FMLã‚’èµ·å‹•ã—ãŸæ™‚é–“ã‚’ t_i ã¨ã—ã€ãã®ãƒ¡ãƒ¼ãƒ«ã®
ヘッダ㮠Date: ã‚’ d_i ã¨ã™ã‚‹ã€‚ã“ã“ã§ i ã¯å˜ãªã‚‹ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã§FMLã‚’èµ·å‹•
ã—ãŸé †ç•ª(æ£ç¢ºã«ã¯FMLã‚’èµ·å‹•ã—ã¦ã•らã«ãƒãƒƒã‚¯ãŒã¯ãšã‚Œå®Ÿéš›ã«å‡¦ç†ã•れãŸé †ç•ª
ã«ãªã‚‹ãŒ)ã¨ã—よã†ã€‚
MTI ã§ã¯ cache ã¨ã—㦠ãれãžã‚Œã®ãƒ¡ãƒ¼ãƒ«ã® t_i 㨠d_i を対ã«ã—ã¦ã‚ャッシュ
ã—ã¦ã„る。m_i 㯠From: Sender: ãªã©ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’ KEY ã«ã—ã¦ã‚ャシュã—ã¦
ã„る。ãªãŠä¸€å®šæ™‚é–“($MTI_EXPIRE_UNIT)経éŽå¾Œ t_i ã®æƒ…å ±ã¯ã‚ャッシュã‹ã‚‰
æ¨ã¦ã‚‰ã‚Œã‚‹ã€‚
MTIã®ãƒ‡ãƒ•ォールトã®è©•価関数ã§ã¯
Σ 1 / | t_i - t_j + ε |
ã®å€¤ã‚’評価ã™ã‚‹ã€‚ã“ã“㧠ε ã¯ç™ºæ•£ã‚’防ããŸã‚ã®ã‚‚ã®ã§ã‚る。t_i - t_j ã¯
FMLã‚’èµ·å‹•ã—ãŸæ™‚é–“å·®ã ã‹ã‚‰ã€å¤šãã®ãƒ¡ãƒ¼ãƒ«ãŒé€ã‚Šä»˜ã‘られ連続ã—ã¦èµ·å‹•ã—ãŸ
å ´åˆã«ã¯å°ã•ãªå€¤ã‚’ã¨ã‚‹ã€‚ã“れを逆数ã«ã—ã¦å’Œã‚’å–ã‚‹ã®ã§FMLを連続ã—ã¦èµ·å‹•
ã—ãŸå ´åˆã¯å¤§ãã„値をã¨ã‚‹ã“ã¨ã«ãªã‚‹ã€‚ã“ã®å€¤ãŒã‚る閾値(threshold)ã‚’è¶Šãˆ
る㨠BOMBING ã ã¨ã¿ãªã™ã€‚
ã“ã® threshold ã«ã¯ 0.2 ãªã©ã®å€¤ã‚’è¨å®šã™ã‚‹ã€‚ã“ã®æ•°å—ã®é¸ã³æ–¹ã¯ã‹ãªã‚Šå¾®
妙ã§ã¯ã£ãりã¨ã—ãŸæ–¹é‡ã¯ä½œã‚Œãªã„。例ãˆã°
ã¨è¦‹ç©ã‚‚る㨠M = 10, N = 5 ã§ã ã„ãŸã„ N/M 〜 0.2 ã¨ãªã‚‹ã€‚ã¤ã¾ã‚Š 0.2 ã¯
10秒程度ã®çŸã„é–“éš”ã§æ¥ã‚‹ãƒ¡ãƒ¼ãƒ«ãŒ5é€šé€£ç¶šã§æ¥ãŸã‚‰ãƒ¡ãƒ¼ãƒ«çˆ†å¼¾ã‹å¦ã‹ã®åˆ¤å®š
ã®é–¾å€¤ã¨ã¿ãªã›ã‚‹ã€‚
ã“ã®è«–ç†ã®æ˜Žã‚‰ã‹ãªå•題点㯠途ä¸ã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã®ã‚¨ãƒ©ãƒ¼ã‚„UUCPã€DIPãªã©å¸¸
ã«æŽ¥ç¶šã•れã¦ã„ãªã„よã†ãªãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‹ã‚‰ãƒ¡ãƒ¼ãƒ«ãŒé€ã‚‰ã‚Œã‚‹å ´åˆã§ã€ã“ã®å ´
åˆã¯ queue ã«æºœã£ãŸãƒ¡ãƒ¼ãƒ«ãŒä¸€æ°—ã«é€ã‚‰ã‚Œã¦ãã‚‹ã“ã¨ãŒã‚ã‚Šå¾—ã‚‹ã€‚ä¸Šã®æ¡ä»¶
ã ã‘ã§ã¯ãれも BOMBING ã ã¨ã¿ãªã•れã¦ã—ã¾ã†ã€‚
ãã®ãŸã‚メールヘッダ㮠Date: フィールドã®å€¤ d_i を用ã„ã¦åŒæ§˜ãªåˆ¤å®šã‚’下
ã™ã“ã¨ã‚’考ãˆã‚‹ã€‚ã¤ã¾ã‚Š
E{d} = Σ 1 / | d_i - d_j + ε |
を考ãˆã‚‹ã“ã¨ã«ã—よã†ã€‚
普通ã«ãƒ¡ãƒ¼ãƒ«ã‚’書ã„㦠queue ã«æºœã‚一気ã«é€ã‚Šå‡ºã™å ´åˆã‚’考ãˆã‚‹ã¨ Date: ã¯
ã‹ãªã‚Šé£›ã³é£›ã³ã®å€¤ã‚’ã¨ã‚‹ã ã‚ã†ã€‚ãã®ãŸã‚ E{t} ã¯å€¤ãŒå¤§ããã¦ã‚‚ E{d} ã®
値ã¯å¤§ããã¯ãªã‚‰ãªã„ã¯ãšã§ã‚る。当然ãれãŒã†ã¾ã判定ã•れるよã†ãª
threshold ã‚’ã†ã¾ãé¸ã‚“ã§ãŠãå¿…è¦ãŒã‚る。
E{d} ã§ã‚‚ã€ä¾‹ãˆã°ã ã•ã„MUAãŒã‚ã£ã¦åŒã˜ Date: åŒã˜ Message-Id ã§è¤‡æ•°ãƒ¡ãƒ¼
ルを出ã—ã¦ã—ã¾ã†ã¨ã™ã‚‹ã¨ã€ã“ã®æ™‚㯠d_i - d_j 〜 0ã€E{d} >> 1 ã«ãªã£ã¦
ã—ã¾ã„一瞬ã§ãƒ¡ãƒ¼ãƒ«çˆ†å¼¾ã ã¨åˆ¤å®šã—ã¦ã—ã¾ã†ã ã‚ã†ã€‚ãã®ãŸã‚実際ã®ã‚³ãƒ¼ãƒ‰ã§
ã¯ç™ºæ•£ã‚’防ããŸã‚㮠ε ã‚’å°Žå…¥ã™ã‚‹ã®ã§ã¯ãªã
Σ 1 / ( | d_i - d_j | < 3 ? 3 : | d_i - d_j | )
ã®ã‚ˆã†ã«å’Œã‚’å–ã£ã¦ã„る。
2.5 評価関数
1 soft limit
メールを出ã™å¤§å…ƒã§ä¸€è¾ºã«å‡ºã™æ™‚㯠E{d} ã®æ–¹ãŒä¸€èˆ¬ã«å¤§ãã„
E{d} < E{t} ã¯ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¨ãƒ©ãƒ¼ã‚„UUCPã®å¯èƒ½æ€§ãŒã‚ã‚‹
2 hard limit
æ¡ä»¶ 1 㯠Date: ㌠fake ã•れã¦ã„れã°å½¹ã«ç«‹ãŸãªã„。
ãã®ãŸã‚ E{d} E{t} ã©ã¡ã‚‰ã‹ãŒã‚ã‚‹ threshold ã‚’è¶ŠãˆãŸã‚‰
ãã‚Œä»¥å¤–ã®æ¡ä»¶ã‚’å•ã‚ãš bomb ã¨ã¿ãªã™ã€‚
3 ">" (greater than)
">" (greater than) ã¯ã‚る誤差ã®ç¯„囲㧠greater than
ã§ã‚ã‚‹ã¹ãã ã‚ã†
2.6 MTIã®è¨å®šå¤‰æ•°
$USE_MTI
MTI 機能を ON ã«ã™ã‚‹ã€‚ã“れを enable ã—ãªã„ã¨ä»¥ä¸‹ã®æ©Ÿèƒ½ã¯å…¨ã¦ä½œå‹•ã—ãªã„。
$USE_MTI_TEST (ベータテストã®é–“ã ã‘å˜åœ¨)
BOMBING ã¨åˆ¤å®šã—ãŸå ´åˆã«å¼¾ãã‹å¦ã‹ï¼ŸÎ²ãƒ†ã‚¹ãƒˆã®é–“ã¯ã“ã®å¤‰æ•°ã‚’ã„れãªã„ã¨
å¼¾ã‹ãšã«MTIã®åˆ¤æ–ãŒãƒã‚°ã«æ®‹ã£ã¦ã„ãã ã‘ã§ã™ã€‚ベータテストãŒçµ‚ã£ãŸã‚‰ã“
ã®å¤‰æ•°ã¯ãªããªã‚Šã€è‡ªå‹•çš„ã«å¼¾ãよã†ã«å¤‰æ›´ã•れã¾ã™ã€‚
$MTI_BURST_SOFT_LIMIT
$MTI_BURST_HARD_LIMIT
デフォールトã®è©•価関数ã®ãƒ‘ラメータ(上述)
$MTI_BURST_MINIMUM
和をå–る時㫠$MTI_BURST_MINIMUM 以下ã®å€¤ã¯ $MTI_BURST_MINIMUM ã¸ç¹°ã‚Šä¸Š
ã’。デフォールトã¯3 (3ç§’)。
$MTI_COST_EVAL_FUNCTION
自分ã§ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚ºã—ãŸè©•価関数を呼ã³å‡ºã™ãªã‚‰ã“ã®å¤‰æ•°ã«é–¢æ•°åをセットã™
る。
$MTI_COST_EVAL_HOOK
HOOK
2.7 ãƒˆãƒ©ãƒ•ã‚£ãƒƒã‚¯ã®æœ€å¤§å€¤
MTIã®ãŠã¾ã‘ã®æ©Ÿèƒ½ã¨ã—ã¦è©•価関数を Σ 1 ã¨å–ã‚‹ã¨å˜ç´”ã«å˜ä½æ™‚間辺りã®è¨˜
事数ã«ãªã‚‹ã€‚ã“れを評価ã—ã€ã‚ã‚‹LIMITã‚’è¶ŠãˆãŸã‚‰ reject ã™ã‚‹ã€‚
å˜ä½æ™‚間㯠$MTI_EXPIRE_UNIT (default 3600 sec.) ã§ã‚る。
$MTI_DISTRIBUTE_TRAFFIC_MAX
時間ã‚ãŸã‚Šã®æŠ•ç¨¿æ•°ã®æœ€å¤§å€¤ã€‚
$MTI_COMMAND_TRAFFIC_MAX
時間ã‚ãŸã‚Šã®ã‚³ãƒžãƒ³ãƒ‰ãƒ¡ãƒ¼ãƒ«æ•°ã®æœ€å¤§å€¤ã€‚ãれãžã‚Œã«ã¤ã„ã¦ç‹¬ç«‹ã«è¨å®šã§ãる。
2.8 ãã®ä»–
$MTI_EXPIRE_UNIT
cache life time.
$MTI_APPEND_TO_REJECT_ADDR_LIST
bomber ã¨åˆ¤å®šã•れãŸã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’ $REJECT_ADDR_LIST ($DIR/spamlist) ã«ã‚‚åŠ
ãˆã‚‹ã‹ï¼Ÿå¦ã‹ã€‚デフォールト㯠NO 。ã¨ã„ã†ã®ã¯å¿…ãšã—ã‚‚ From: ã®ã‚¢ãƒ‰ãƒ¬ã‚¹
ã§ã¯ãªã„ã®ã§ $REJECT_ADDR_LIST ã«å…¥ã‚Œã‚‹ã“ã¨ã«æ„味ãŒã‚ã‚‹ã‹ã©ã†ã‹ã¯ä¸æ˜Ž
ã®ãŸã‚。
2.9 ファイルãªã©
$MTI_DB
$MTI_HI_DB
$MTI_DIST_DB
$MTI_HI_DIST_DB
$MTI_HI_COMMAND_DB
$MTI_COMMAND_DB
cache files.
$MTI_MAIL_FROM_HINT_LIST
$DIR/mti_mailfrom.hint ã¨ã„ã†ãƒ•ァイルã«MTIã®ãƒã‚°ã‚’ヒントã¨ã—ã¦æ®‹ã™ã€‚ã“
れをã©ã†ä½¿ã†ã‹ã¯ã¾ãŸåˆ¥ã®å•題。例ãˆã°ã“れを sendmail ã« check_mail ã®ãƒ‡ãƒ¼
ã‚¿ã¨ã—ã¦æ¸¡ã™ãªã©ã®å¿œç”¨ãŒè€ƒãˆã‚‰ã‚Œã‚‹ã€‚
2.10 カスタマイズ関数ã¨ãƒãƒƒã‚·ãƒ¥ãƒ‡ãƒ¼ã‚¿
ベータテストãªã®ã§ã€å¾Œã§ä»•様ãŒå¤‰ã‚ã‚‹ã‹ã‚‚ã—れãªã²:)
$fp = $MTI_COST_EVAL_FUNCTION || 'MTISimpleBomberP';
&$fp(*e, *MTI, *HI, *addrinfo, *hostinfo);
%Envelope Envelope
%MTI ã‚¢ãƒ‰ãƒ¬ã‚¹ã¨æ™‚刻
%HI ãƒ›ã‚¹ãƒˆã¨æ™‚刻
%addrinfo æ¥ãŸãƒ¡ãƒ¼ãƒ«ã®ãƒ˜ãƒƒãƒ€ã‹ã‚‰è§£æžã—㟠address
%hostinfo Received: ã‹ã‚‰å‰²ã‚Šå‡ºã—ãŸãƒ›ã‚¹ãƒˆã®é€šéŽæ™‚é–“
ã§ã‚‚評価関数ã§ä½¿ã£ã¦ãªã„;D
2.11 perl 5 tie
$MTI_TIE_TYPE
$MTI_TIE_TYPE ã« DB_File ãªã©ã‚’定義ã™ã‚‹ã¨ perl 5 ã® tie
を使ã£ãŸ hash ã¸ã®ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã‚’行ãªã†ã€‚
perl 4 ã§ã¯ä½¿ãˆãªã„(当りå‰:-)
使ãˆã‚‹å¼•æ•°ã¯OSã«ä¾å˜ã™ã‚‹ã€‚å„自マニュアルをå‚考ã«ã—ã¦ãã ã•ã„
e.g. DB_File, NDBM_File, ...
2.12 è¦å‘Šã® negative cache
1時間ã«ï¼‘度ã—ã‹è¦å‘Šãƒ¡ãƒ¼ãƒ«ã‚’管ç†è€…ã«é€šçŸ¥ã—ãªã„。mail bombã®ãれãžã‚Œã®
メールã«å¯¾ã—ãれãžã‚Œè¦å‘Šãƒ¡ãƒ¼ãƒ«ã‚’出ã™ã¨è‡ªåˆ†ã§è‡ªåˆ†ã«çˆ†æ’ƒã—ã¦ã—ã¾ã†ã“ã¨ã«
ãªã£ã¦ã—ã¾ã†ã€‚
2.13 DB type
$MTI_TIE_TYPE
$MTI_TIE_TYPE ã« DB_File ãªã©ã‚’定義ã™ã‚‹ã¨ perl 5 ã® tie を使ã£ãŸ hash
ã¸ã®ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã‚’行ãªã†ã€‚perl 4 ã§ã¯ä½¿ãˆãªã„(当りå‰:-) 使ãˆã‚‹å¼•æ•°ã¯
OSã«ä¾å˜ã™ã‚‹ã€‚å„自マニュアルをå‚考ã«e.g. DB_File, NDBM_File, ...
[PREVIOUS CHAPTER]
[NEXT CHAPTER]