反制濫用 TANet News 系統之研究




陳昌盛、鄭中樑

國立交通大學電子計算機中心、國立交通大學校園網路策進會
新竹市大學路1001號
TEL:(03) 5712121 EXT.31721 52833
EMAIL:cschen@cc.NCTU.edu.tw clcheng@CCCA.NCTU.edu.tw




摘要

  網際網路的成長,帶動資訊的快速流通。一般的使用者 ,經由特定網路服務業者連上網路,然後透過 Internet News/BBS, 就可以很容易地做到,與網路上其他使用者,雙向交流的目地。 從好處來看,目前的 Internet News/BBS,對大多數的人而言, 是一個兼具方便與快速的雙向交流管道,而且也相當經濟,使用起來也很簡單。 不過,從另一方面來看,也正因為其方便、快速,且看來又經濟的特性, 似乎也沒有特別設防,於是許多有心人士,便抓住這些特性,任意四處張貼 與各討論區,主題不盡相符的文章,或者經常同一篇文章到處重覆張貼…等, 逐漸形成一些濫用 NetNews/BBS 系統的現象,造成許多使用者與管理者的困擾。 面對這樣的問題,實在有必要採取相關的因應措施。

   本文即在探討許多常見反制系統的運作原理, 嘗試比較各種方式的優缺點, 並且在臺灣學術網路上,建置數個實驗站,進行實地的操作測試。在歷經了超過 8個月的連續實驗,整體參與實驗的網站上,累積了許多本地網站相關的資料。 這一部份,除了支援本文的研究分析外,我們也已經將這一些資料,放到相關的網站上 ﹝http://news-peer.nctu.edu.tw﹞, 提供其他單位有興趣的網友作為參考。





1. USENET 系統簡介

  USENET[1] 是一個邏輯性的資訊傳遞網路,使用者遍及網際 網路 (Internet) 各個角落。目前早已成為如 E-mail、WWW、FTP 等一樣,相當普遍 的網路應用服務。在臺灣 USENET News 更與 Internet BBS 佈告欄討論功能相互結 合,成為最受歡迎的網路應用之一。也因此,有許多人便以網路論壇的中文名稱 來稱呼。不過對於習慣於 Internet 用語的人,還是經常直接使用 USENET News, 或者簡稱 News。另外在 Internet 上,還有一個幾乎同樣常用的名稱是 NetNews, 習慣上 USENET 和 NetNews 定義範圍稍為有一些不同,不過這塈畯抴N不加以區別, 而以 USENET 來做為代稱。USENET 的發展是由電子郵件系統 (E-mail) 衍生而來, 經過多年的發展,除了保留了 E-mail 所擁有的快捷便利,另外更增加了開放和討論 的風氣。如今也有了專屬的網路傳送協定 NNTP (NetworkNews Transfer Protocol)[2], 以及網路上成千上萬個 News server 網站相互合作,每天二十四小時地運作, 繼續不斷地為 Internet 各地的使用者,交換大量的訊息。

  大體上,USENET 從發展以來,就是一個自我約束規範的網路架構形態。 換句話說, 使用者在 USENET 上的行為並沒有明確和有效的規範加以限制,而是由許許多多的管理者 和使用者,在互信的基礎下,共同維持 USENET 的架構和運作。

  隨著網路的逐漸普及,有越來越多的不同階層的使用者進入 Internet, 除此之外,因為 USENET 與 E-mail的密切關係,有些網路瀏覽器,或 E-mail 相關的 應用程式,也加入了瀏覽 USENET 文章的功能,隨著使用人數的增加、和軟體的普及, 大眾對於 USENET 使用及接受的程度之高由此可窺見一端。因此,相關衍生的問題也 更值得我們重視。





2. 反制網路濫用 (USENET SPAM) 的行為

  早期 USENET 的主要使用者多為學術研究單位,對於使用 USENET 多半都有一定的 默契與規範。但是,近幾來,網路在商業上的應用,造成大量的商業用戶和行為出 現在 USENET 上,大量的純粹廣告,空洞無內容等等的垃圾資訊,也開始在網路上流 竄,這樣的情形並非台灣獨有,而是 Internet 共同面臨的問題,在國外已有人討 論這樣的問題[3]。根據目前觀察,整個 USENET 流量中,大約 40% 是 Spam, 40% 則是對應的 control message, 剩下的 20% 才是真正我們所需要的有用的資訊!

  以往對於這種情形,通常是由管理者送出 cancel message 來刪除這樣的文章, 隨著網路流量的成長,這樣的方法已不再適合於現在的情況。因此,採取更新更有 效的反制方法是我們的主要研究方向,除此之外,我們也利用 log analysis 的相關技術, 對 USENET 的流量和結構特性做一觀察和分析,除了用於檢驗反制成效外, 也可提供相關數據資料做為 USENET 管理者日後之技術參考資料。

  根據相關資料統計,去年﹝1997﹞USENET 上的總流量大約在 5Tbytes~15Tbytes 之間,而對於一台收納全部討論區﹝full feed﹞的 news server 而言, 其一天總流量約為 10Gbytes,按照其所收之討論區不同和網路頻寬,此數字會有不同。

  根據 www.twnic.net﹝http://power2.nsysu.edu.tw/ipdomain/DNS/History.html﹞上,server hosts 數目的統計,到 1998/8/1 日, 臺灣的 News server host 數目已經超過 570 臺。 另外﹐ 去年 [1997] 四月的記錄, 整體 TANet 對 Internet 的流量,第一名是 WWW,約佔 45%,第二名是 News 約佔 29% (據了解,大約從 1998 年起,TANet 往 Internet,WWW 流量往上攀升到大約 60%) 。目前,臺灣學術網路近來因受限於頻寬不敷使用,以目前兩條 T1 對美國的網路, 實際上傳進國內的 USENET News 的量,每天大約在 350MB - 700MB 之間, 離整個 Internet 流傳的量還相差很遠[4]。此外,我們並針對以臺灣地區為主 多數使用繁體中文的 tw.* 討論區的流量做過分析與統計 [5],tw.* 討論群組, 一天總流量大約在 20M bytes─30M bytes,一天的文章篇數大約為二萬篇,與其 他主要討論區 ﹝alt.*,news.*,rec.*……etc﹞比較,多半排名前五以內。

  由以上統計數字看來,USENET 一天所產生的流量,在網路應用上是扮演了 舉足輕重的地位,而 tw.* 的中文討論區﹝也可說是全世界最大之中文討論區﹞ 也是不可忽略的,因此,反制 USENET 之濫用,可說是當務之急。

圖一、所有討論區文章篇數統計圖 圖二、tw.bbs.* 討論區文章篇數統計圖



圖三、所有討論區文章總流量統計圖 圖四、tw.bbs.* 討論區文章總流量統計圖

以上是在 1998/09/14 於 spring.edu.tw 所做的統計資料。



2.1 USENET SPAM 的常見分類

  一般說來,對於 USENET 上那些被視為垃圾資訊的文章, 我們通常稱呼它們為 Spam;更具體的說法就是 ,同一使用者經由同一 server 主機,在很短的時間內 大量地送出內容幾乎完全相同的文章。 基本上,如果從廣義的角度來看, 這堜珨〞 Spam,指得是下列幾類情形:

  1. 違反善良風俗


  2. 違反學術網路設立宗旨


  3. 浪費網路頻寬

  從技術層面來對 Spam 加以分析,則可以規納出以下幾種類別;

  1. binary post

  2. multipost﹝多次重貼﹞

  3. crosspost﹝交叉張貼﹞

  4. 其它不適當之文章





3. 如何進行反制濫用 USENET

  事實上,處理這些問題採用的方法,可以大致分為兩種方式

  1. canceling - 發出 control message 刪除文章


  2. filtering - 主動過濾

  早期處理的方式多半是由 USENET 相關的管理者發出 control message 來刪除此 一特定的文章,並利用程式來判斷其是否為 Spam,不過,使用這類的處理方法有 以下的問題;

  1. 浪費網路頻寬

    依據 RFC 等相關資料,control message 與被刪除之文章 有一對一之對應關係,換句話說,要刪除一篇文章必有一篇對應之 control message, 同時,control message 必定是在 Spam 產生之後才得以發出,此時,Spam 多半已在網路 上被大多數的 news server 收取,因此,若從網路頻寬的角度來考量,Spam 與 control message 的流量近乎相等,對於網路頻寬的節省幫助並不是很大。


  2. 耗費主機資源

    正如上所述,依據其一對一之對應關係,即使 Spam 已被刪除, 不占用主機空間,但是刪除Spam所需之 control message 卻占用了主機的空間, 對於空間的減少並沒有很大的幫助,更重要的是,對目前的 news server 來看, 接收 control message 刪除文章是對於主機的效能提升是有負面影響的,增加了 硬碟的存取次數,也花費較多的處理時間。

  以往防制 Spam 的機制,多半是採用此種方法達成,對於 Spam 的防制也產生了一 定的成效,不過,隨著流量的增加,網路的使用習慣與行為也更為多樣化,傳統的 方法相較於現在,幾乎是不敷使用,採用更新更有效率的方法來防制 Spam 也是未來的 趨勢。





4. USENET Antispam - News filtering


4.1、News filtering 的運作原理

  本項研究所主要採用的方法,就是在 news server 安裝主動的過濾程式, 對文章相關資訊做一判別,並決定處理方式;採用此方式的優點可從 news server 之間連接的架構來討論。


圖五、安裝 filter 之 innd 工作流程圖

  基本上,USENET 的訊息均由 news server 互相連接並轉送﹝relay﹞ 以達到其目的, news server 主要可分為兩大功能,其一為轉送 USENET 上所有的訊息給其他的 news server,另一則是提供使用者閱讀擷取所需的訊息,因此,在 news server 上安裝 filter 將可發揮關鍵性的影響,可事先過濾出被視為 Spam 的文章, 這些文章就不再需要被傳遞給其他的 news server,也不會被儲存下來,簡單地說,就是

垃圾不落地!!

  目前常見的 news server 系統軟體[6],大部份均已開始提供此項功能, 管理者可以依照管理上的各種需求,規畫出 filter 所需要的 rule set, 而news server就依照這些rule set來判斷文章是否要被濾掉,事實上, 以目前各種 news server 發展的趨勢來看,所謂的 filter,通常是一種簡單的程式語言, 例如:perl、tcl 等等,管理者可以在一定的格式之下自定 filter 判斷的方式, 而 news server 將直接呼叫 filter 來判斷文章,至於使用 perl 程式的主要原因, 也是因為其撰寫方便,並且對於文字處理有著較強的能力,畢竟,目前 USENET 上的主 要文章文章內容仍然是以文字為主。

  以下我們以目前網路上相當普及的一個 filter 程式 cleanfeed [7], 搭配 News Server 系統軟體 INN [8] 來做為,介紹一 般 news filtering 程式﹐ 內部的設計與運作原理。


圖六、cleanfeed運作流程

  文章被 innd 接收後其相關的 header 與 body 資料就傳給 filter,filter 首先會依據前面所提的幾種規則建立對應的 key 並存入 hash table 中以做數量統計, 接下來,再以這些 key 與 hash table 中的資料比對,如果發現文章數量以超過上限, 就直接傳回給 innd,使其拒絕此篇文章,反之,則繼續進行其他檢查, 在完全通過 filter 的檢查前,若有任一檢查無法通過,則拒絕該篇文章, 若文章可以通過所有的檢查,則接下來交給 innd 處理與一般文章的處理方式完全相同。 ,大致上來說,filter 判斷文章的方式主要可以分 成以下兩大種:

  1. 以數量判斷
  2. 以特定字串判斷



4.2 News filtering 系統架構

  本研究採用 INN 為主要測試的對象,主要原因是目前大多數 的 news server 管理者 採用 INN 來架設 news server,同時 INN 的 filter 功能也從很早就 開始發展了。接下來, 我們就以 INN 做實例來說明 filter 實際運作的原理。INN 目前提供 perl hook 與 tcl hook, 簡單的說, 管理者可以利用這兩種語言製做 filter,而目前又以使用 perl 為較多數。事實上, 所謂的 filter,其實就是一個 script(perl or tcl),innd 收到文章後, 會將文章的 header 和 body 等相關資料傳給 filter,filter 再依據這些資料來判斷文 章是否為 Spam 並且拒收。

  所有的文章,在通過 innd 最初的檢查而被接受以後,就會交給 filter 去判斷, innd 會擷取文章的相關資料﹝header、body﹞,傳給 filter 處理,filter 便依照這 些資料來做出判斷並回應給 innd,innd 則依照 filter 的回應來決定此文章的的處理 方式,如果此文章通過 filter 的檢查,則與一般 innd 處理文章的方式相同,也就是 寫入硬碟,同時送給下游接收的 news server;如果此文章無法通過 filter 的檢查, 那麼,innd 不會將此文章寫入硬碟中,也不會傳送給下游的 news server,innd 對於 此種文章最後的處理方式就是直接釋放該文章在記憶體中所佔的位置,並留下相關的 記錄,換句話說,被過濾掉的文章將不會佔據儲存空間,也不會佔用網路流量。 此外,如圖五,雖然有安裝 filter,但事實上仍然會有小部份的 Spam 通過檢查, 這一小部份的文章,可以稱為理論容許值。

  被 filter 過濾出而被拒絕的文章其 Message-ID 也會被送進 innd 的 history database 中,如果同樣的文章被其他 news server 送進來時,不用經過 filter 再次處理就可以直 接拒絕,對於對應的 control message,filter 也能跟據 hash table 中的資料, 直接加以拒絕。



4.3 其它方法

  除了主動式過濾的方式之外,目前也有其他方法,其中一種是改良現有採用 control message 刪除文章的方式,稱之為 NoCeM [9],基本上,其主要精神還是以 事後刪除的方式為主。﹝請參考 http://www.cm.org/﹞





5. 實作系統的效能分析

  我們和國內幾個主要的 news 轉送網站合作,在底下幾個不同的 Usenet news server 上,加裝了這套 news filtering 系統,同時記錄與蒐集各系統,從 1998 年元月以 來,每日系統接收與轉送 news articles 的情況。有興趣者, 可自行參考底下各個系統的記錄。


圖七、國內 news server 對接關係圖

  其中,spring.edu.tw 是目前 TANet 上 USENET News 主 要的 backbone server 之一,也是 TANet 對國外 News feeding 的進出窗口,和 HiNet (serv.hinet.net),SEEDNet (feeder.seed.net.tw) 等 幾個 news 轉送系統,也都有連線。 news.edu.tw、news-peer.nctu.edu.tw 則分別為教育部電算中心與交通大學電算中心 的 news 轉送系統。 底下是 一個部份的 log 記錄的 sample。﹝記錄時間 1998/09/12 - 1998/09/13﹞

統計主機 統計時間收取文章篇數 收取文章總量
spring.edu.tw Sep 12 02:49 - Sep 13 02:49﹝1998﹞ 225199307.4 Mb

ReasonCount
EMP rejected (ph/l) 29407
EMP rejected (md5) 12166
Scoring filter 3343
Too many newsgroups 2256
Binary in non-binary group 1482
New EMP detected (md5) 382
Org/MID bot pattern 360
Excessive Supersedes - 209.180.249.235 304
UUencoded htm 149
UUencoded html 148
New EMP detected (ph/l) 121
Poison newsgroup 97
Angle-bracket bot 87
AtomicPost 43
EMP rejected (f/s/l) 41
Email Platinum 30
Spam - pictureview.com 30
Unwanted ihave message 30
Spam - www.xxx-young.com 25
2.0.x Bot 22
TOTAL: 48 50691

表一、cleanfeed 過濾文章結果統計

  由上表一中可以發現,大多數被過濾掉的文章主要是EMP rejected (ph/l) 與 EMP rejected (md5)這兩類,通常這類情形代表可能是同一使用者經由同一 server 主機, 短時間內大量地送出內容幾乎完全相同的文章。

  由於這幾個系統所連接的下游系統,彼此之間也多有所連接。因此, 對於 news filtering 的效果,不易取得精確的數字。因此, 我們也特別改寫了 filtering 程式的部份片段,將這一些 SPAM 的主要 header 片段,另 外 log 下來加以分析。另外,對於我們本土的 tw.* 這一部份,還好其中的 serv.hinet.net 和 netnews.hinet.net 為 單一的連接窗口。HiNet 為目前國內最大的商業 ISP,超過 50 萬人以上的撥接使 用戶,更是 tw.bbs.* 的大力參與 者。平均每天從 netnews.hinet.net 送出 2500-4000 封,主要是 tw.* 的 中文 articles。根據追蹤,大約有三分之一以 上,約 800-1300 封 articles 被攔下來,對於 ISP 無力管理使用戶濫發廣告行為, 這一部份也正是部份使用者,濫 張貼廣告到各個不同討論群組的明顯寫照。

  另一方面,將各實驗站所記錄之結果做一交叉比對及分析之後,我們也可以發現 由於現今 news server 通常都有多個文章接收來源,因此,要反制這許多類 SPAM 的散播,便需要各個相關的 news server 密切配合,才能發揮實際應有的功效。





6. 結論 - 未來發展與推廣

  本研究中選擇的主要測試對象主要為接收國內外主要之討論區, 或是與國外 news server 對接之 news server,這些 news server 的流量通常都相當大, 而且也有較多對接之主機,而大流量的測試環境可以明顯的發現 Spam 對整個系統環境的 影響,也可取得更多較為客觀的數據或樣本以供分析。

  整體來說,使用 news filtering,來防制 USENET Spam 有下列幾項優點:

  1. 節省網路頻寬
  2. 提升主機效率
  3. 安裝 filter 對主機效率之影響

Code regionTimePctInvokedMin(ms)Avg(ms)Max(ms)
article cancel00:00:00.011 0.0%3241 0.000 0.003 0.111
article control00:00:00.990 0.0%4382 0.000 0.226 2.769
article link00:00:00.000 0.0%0 0.000 0.000 0.000
article write00:00:58.849 0.1%141454 0.272 0.416 1.159
history grep00:00:00.000 0.0%0 0.000 0.000 0.000
history lookup00:06:31.850 0.5%793760 0.013 0.494 16.475
history sync00:00:45.115 0.1%28487 0.040 1.584 10.132
history write00:22:41.331 1.6%152458 1.592 8.929 75.924
idle22:43:03.917 95.8%764791 53.791 106.936 213.576
perl filter00:15:35.884 1.1%152426 4.234 6.140 6.845
site send00:03:28.102 0.2%425369 0.340 0.489 0.614
TOTAL: 23:42:36.90723:33:06.049 99.3%----

表二、INND各主要處理程序所需時間比較表

  大約今年第四季開始,TANet 對國外的 T3 接通之後,屆時 USENET 流通的量, 必大幅攀昇,對於 USENET SPAM 將帶來的影響,更必須仰賴大家小心加以因應。如果能將這套類似的 news filtering 系統推廣各單位的 News server 上,那麼對於整個 TANet,甚至整個臺灣的 USENET SPAM impact, 應該能減到最小的層面,讓將來整體網路效能,儘量惟持在一個合理的使用範圍。



參考文獻

  1. M. Horton; R. Adams; " Standard for Interchange of USENET Messages"; RFC 1036﹐December 1987


  2. Brian Kantor; Phil Lapsley; " Network News Transfer Protocol - A Proposed Standard for the Stream-Based Transmission of News" ; RFC 977﹐ February 1986


  3. 關於反制網路濫用,http://spam.abuse.net


  4. TANet 每日的 USENET News 流量統計,http://spring.edu.tw:11180/~news/


  5. 各討論區每日流量統計,http://news-peer.nctu.edu.tw


  6. 常見的 News Server Software

  7. 過濾程式 cleanfeed 的原始站, http://www.exit109.com/~jeremy/news/antispam.html


  8. 關於 INN 這套 News server software, http://www.isc.org/inn.html


  9. 關於 NoCeM 這套軟體,http://www.cm.org