偵測 .procmailrc 標頭中隨機網域的垃圾郵件

偵測 .procmailrc 標頭中隨機網域的垃圾郵件

來自知名組織的垃圾郵件銷售大量仿冒品,從無人機到 Roomba,使用 、 和 字段中的From:隨機Message-ID:Reply-To:一切都不同,甚至沒有共同的尾隨xyz.com
(非垃圾郵件往往共享至少Message-ID:和 的網域Reply-To:。)

~/.procmailrc 中的配方可以偵測此類垃圾郵件,然後將其轉送到垃圾郵件資料夾嗎?

  • 喜歡帶有命名捕獲組的正規表示式嗎?

  • 關於用「A」或「a」連結動作的事情嗎?

  • 依照其線上說明頁的建議遞歸呼叫 procmail?

  • 將郵件的標頭傳遞給用具有更好的字串處理能力的語言編寫的腳本的「過濾器」?


例如:namebrandwigs.com、mysuburbankitchen.com、aliyun.com。

From [email protected]  Wed Mar 17 09:27:54 2021
Return-Path: <[email protected]>
X-Original-To: ---
Delivered-To: ---
Received: from mysuburbankitchen.com (unknown [5.253.84.113])
        by --- (Postfix) with ESMTP id 332025E236
        for <--->; Wed, 17 Mar 2021 09:27:53 -0500 (CDT)
To: ---
Subject: drone with new features
Message-ID: <[email protected]>
Date: Wed, 17 Mar 2021 08:13:03 +0100
From: "Jake Allen" <[email protected]>
Reply-To: [email protected]
MIME-Version: 1.0
X-Mailer-Sent-By: 1
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Status: RO

<html>
<head>
</head>
<body>
<span style="display: block; text-align: left;"><span style="display:
block; text-align: left;">Hi,<br /><br /><span>Hope all is well.</span><br
/>We are contacting you today to let you know that we have got the
following new drone, ready to ship to worldwide customers.<span><span><br
/><br /></span></span></span></span><span style="display: block;
text-align: left;"><span style="display: block; text-align:
left;"></span></span><span style="display: block; text-align: left;"><span
style="display: block; text-align: left;"><span style="display: block;
text-align: left;"></span></span></span><span style="display: block;
text-align: left;">Explore new places and amp up your videography skills
with the our F9 4K HD camera drone.
...

其他範例,格式類似,但訊息正文缺少可標記文字:

  • 來自momentumwatch.com/musicalley.com的皮革按摩椅
  • 來自 mtndewkid.com / myhondafitev.com / Constructiongear.com 的 Roomba
  • 來自hairrehablondon.com/hairocean.com/hotmail.com的視訊投影儀

答案1

這是一個 Procmail 食譜,它實現了我的內容思考你可能會問。

它用得分這是一個有點晦澀但偶爾有用的功能。簡而言之,如果存在From:帶有域名的標頭(一如既往),我們分配 1 分,然後如果Reply-To:Message-Id:標頭在@.

:0:
*    1^0 ^From:.*@\/[^@<>   ]+
* $ -1^0 ^Message-Id:.*@$\MATCH\>
* $ -1^0 ^Reply-To:.*@$\MATCH\>
suspicious

我預測這會有相當高的誤報率,但如果您收到大量帶有這種特定模式的垃圾郵件,也許它可以為您提供價值,特別是如果您可以將其與白名單結合起來。

我仍然建議您suspicious定期檢查該資料夾,並將任何誤報返回到您的常規收件匣。

這是使用您提供的範例運行的演示,但交付/dev/null僅用於演示。

bash$ procmail -m VERBOSE=yes /tmp/procmailrc </tmp/sample 
procmail: [16] Fri Mar 19 09:06:29 2021
procmail: Rcfile: "/tmp/procmailrc"
procmail: Assigning "MAILDIR=/home/tripleee"
procmail: Assigning "MATCH="
procmail: Matched "namebrandwigs.com"
procmail: Score:       1       1 "^From:.*@\/[^@<>  ]+"
procmail: Score:       0       1 "^Message-Id:.*@()namebrandwigs\.com\>"
procmail: Score:       0       1 "^Reply-To:.*@()namebrandwigs\.com\>"
procmail: Assigning "LASTFOLDER=/dev/null"
procmail: Opening "/dev/null"
 Subject: drone with new features
  Folder: /dev/null                            1373

一個具體的複雜性是,這不允許子域命中;允許寄件者並不是太難,但相反的情況要棘手得多,因為在一般情況下您無法真正知道網域是(例如在和TLD 中)還是(例如在等TLD)甚至更長(視情況而定,例如日本的某些縣等)。Message-id: <[email protected]>From: real name <[email protected]>From: sender <[email protected]>labels.here.com.frmany.labels.here.co.uk.com.auk12.place.name.us

更詳細地說,為第一個配方行上的第一個命中1^0分配1分數,並且為其他命中分配不附加分數。令牌\/從匹配的字串中捕獲其後面的字串,即@標頭中最後一個符號之後的所有內容。然後在以下配方行中使用該MATCH變數來引用此捕獲的字串;此語法$\MATCH產生與文字字串相符的正規表示式轉義模式。隨後的配方有一個$標誌告訴 Procmail 將任何變數(即$MATCH)插入配方條件中,還有一個-1^0評分指令,用於在第一次命中條件時減去 1,如果再次匹配則不執行任何操作。

手冊頁解釋了所有這些結構,但可能相當密集;或許還可以看到Procmail 快速參考它更加密集,但也許也可以更快地閱讀和理解。

我將其作為單獨的答案發布,以免將此處的內容與我的其他答案混淆,該答案基本上試圖阻止您僅使用 Procmail 創建自己的垃圾郵件過濾器。

答案2

基於一些有限的例子,很難想出任何今天有效並且明天繼續有效的具體方法。如果你的實際的問題實際上是“如何防止來自 Procmail 的垃圾郵件”,明顯、簡單且有據可查的答案是“運行 SpamAssassin 等全譜垃圾郵件過濾器並檢查其結果”。即便如此,你的準確率可能永遠不會是 100%;但是 SpamAssassin 對於您只需配置並忘記的工具來說已經做得不錯了。它廣泛依賴外部服務,這些服務為垃圾郵件發送者使用的 IP 位址、URL 和其他網路資源提供動態信譽訊息,因此實際上在幕後進行了大量操作。

SpamAssassin wiki 上的UsedViaProcmail有更多說明。簡而言之,一旦您安裝並設定了 SpamAssassin,請嘗試類似的操作

:0fw
* < 512000
| spamassassin

:0:
* ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
almost-certainly-spam

:0:
* ^X-Spam-Status: Yes
probably-spam

:0:只有當您要傳遞到需要鎖定的郵箱(例如 mbox 文件,但絕對不是 Maildir 目錄;但根據您問題中的示例,您似乎在 mbox 上)時,第二個冒號才是正確的。如果您經常收到大量垃圾郵件,可以刪除大小條件* < 512000或調整數量。 SpamAssassin 標準 Procmail 樣板包含一個鎖定文件,該文件在您的個人系統上是不必要的,並且在共享主機上可能是可疑的,以及一些圍繞斷線的奇怪的貨物邪教巫毒,From我認為這些文件實際上從來都不是正確的。

如果您需要針對您提供的樣本的建議,請理解,即使是經過深入研究且絕對真實的事實,可以讓您滿懷信心地丟棄這些特定消息,相信不會出現誤報,但對於處理任何其他情況幾乎毫無用處。

相關內容