第一個三年已經渡過,就讓我用無論如何不能留級的心情繼續吧~

2010年7月6日 星期二

關於本站Tongji.js被小紅傘AVS誤判為惡意程式的說明

最近有熱心網友提醒我,瀏覽一天一杯酒之笑C.C.的時候,會被安裝的防毒軟體警示說,本網頁含有惡意內容。經過網友武陵人的資訊提供,確認是一支名為tongji.js的javascript被小紅傘(AVS)判定為惡意程式,所以跳出警告,並且隔離。

我在此說明一下tongji.js這支程式在本網站是如何被使用的,以及我個人對於其安全性的擔保。

JavaScript是一個極為常見的client side的腳本程式,主要的目的在於提供網頁上動態的互動功能;由於是client side的關係,這表示必須先下載至用戶端,並經由瀏覽器解讀才能被正確地執行。JavaScript的功能十分的豐富而且多樣,並且擁有跨平台的支援度,因此十分受到Web Developer的歡迎;但是其安全性,也是頗受詬病。

就像許多這個世界上的許多事情一樣,同樣的東西落在好人手裡就是創造世界和平的工具,但是落在壞人手裡,就是可以幹出殺人越貨的傢伙。所以這個世界上有很多好人用JavaScript做好事;但是也有很多壞人用JavaScript在做壞事。

那我這先說明,tongji.js這一支程式,做的其實是好事。

各位聽過Yahoo!奇摩的站長工具吧!?(沒有也沒關係,至少你們現在知道了)這是一個用來幫助站長瞭解來到你網站瀏覽的人數、目的地、來源的一個流量統計工具。

沒錯!就跟Google Analytics一樣。

他運作的方式就是產生一段原始碼,讓你嵌在頁面中;而這段原始碼其實就是一個帶有你的網站的unique id的Javascript程式連結,也就是說,這個javascript程式其實不是存在你的網站上,而是存放在Yahoo!奇摩的某一台機器上。當今天有用戶來你的網站瀏覽時,對方的瀏覽器會載入這一支javascript,並且被瀏覽器執行(當然你也可以設定不執行);透過這樣一個讀取、執行的動作,站長工具就可以從中得知今天有一個用戶,從特定的IP位址,用特定的瀏覽器、OS,讀取了你的網頁。

他還可以知道用戶是從什麼地方來的,在你的網站停留了多久、瀏覽了哪些網頁等等資訊....但是他不知道的是,用戶離開之後,他去了哪裡。因為一旦用戶離開這個網站,這個JavaScript就不再產生作用了。

所以,tongji.js是一支好人的程式,是站長主動安裝的,不是壞人。

雖然作為一個瀏覽者也許會覺得,我的隱私是不是救被你看光了?但是,站長工具的報表本身無法用來追蹤特定的用戶的特定行為。例如說,某A是透過搜尋網站搜尋免費性愛來到你的網站,然後某A又去了某些頁面讀取了某些文章等等...這一連串的動作,在站長工具的報表中是連結不起來的。也就是說,在站長工具中,我可以知道某A是透過哪個搜尋引擎連結來的,但是我並無法知道某A後來又去了哪些網頁,或是某A在我的網站停留了多久。

所有的報表資訊都是分開的,無法用來做針對性的資料蒐集。

也許,你會想問我,我怎麼對站長工具這麼瞭解啊?

那是因為...我就是站長工具的PM啊!我就是站長工具的PM啊!我就是站長工具的PM啊!我就是站長工具的PM啊!

解釋完了站長工具,接下來就解釋為何站長工具的javascript會被防毒軟體誤判了。

有很多人說,防毒軟體其實本身就是個最大的流氓軟體,這句話其實不能說不對,因為目前大部分防毒軟體運作的方式,確實都還蠻流氓的,請允許我解釋一下為何說防毒軟體流氓。

先不論防毒軟體如何攔截過濾透過網路來到電腦上的病毒或木馬,目前絕大多數的防毒軟體都依賴所謂的finger print技術來偵測或判定特定的軟體或程式碼是否為惡意的。

finger print說穿了就是一種採樣後標記特徵的技術,也就是說今天防毒軟體公司夠過人工篩選得知某個新出現的惡意javascript或程式,然後進行分析,篩選出其中明顯的特徵,編寫成定義檔,然後發送到各用戶端。一旦,只要有任何程式或原始碼符合所定義的特徵,就會判定為此為惡意程式。

但是,這個世界上的壞人就會一直努力尋找防毒軟體的漏洞,繼續不斷利用各種方式來騙過防毒軟體的篩選邏輯;所以,可以想像的是,模仿正規的、無害的、安全的、並且廣為使用的程式碼,來偽裝,並且隱含惡意的程式碼,是一個可以騙過特徵分析不完備的防毒軟體的方式,一定是一個熱門的方案。

在這樣的邏輯下,對於某些篩選邏輯不很精確的防毒軟體而言,就會發生誤判的情形了。

以站長工具的javascript被AVS判定為惡意程式的這件事情來看,雖然站長工具已經沿用此程式高達兩年多的時間,實在沒有被誤判的理由;唯一可以解釋的方向就是,確實有壞人模仿站長工具的javascript的寫作方式,來試圖隱含惡意程式碼在其中,並且被AVS補抓到。

但是AVS的特徵篩選引擎並無法辨認正常的程式碼與惡意的程式碼的不同,以致於讓正常的站長工具程式碼一併被AVS誤判為惡意程式。

我覺得這就是這整件事情的核心原因

以上的說明是...非陰謀論的說法...那麼,陰謀論的說法是什麼呢......

那就是...防毒軟體如果不三不五時提醒你有中毒的風險,那麼你會覺得防毒軟體真的有用嗎?

這是一個很耐人尋味的問題

22 則留言:

  1. 我看你的網站,KIS 2010 從來沒叫過。
    小紅傘好像有時候會有誤判的狀況,因為有別的人提出他的小紅傘到某網頁會跳出警告,但別人的回報狀況是沒問題,包括KIS 2010。

    Kaspersky 也不是沒誤報過,不過使用幾年下來,有碰過幾次他對 google 的誤報~

    回覆刪除
  2. 呵呵!各家防毒軟體的巧妙各有不同,但是基本上萬本不離其宗,很多時候防毒軟體都是在誤報中學習,如何更精準的提供特徵定義。但是,對於軟體或網站開發者而言,防毒軟體的誤報簡直就跟流氓沒兩樣,明明沒殺人,卻還要自己去證明人不是我殺的......

    回覆刪除
  3. 冰人兄
    這裡私下提個不相干問題
    請問怎麼加入繼續閱讀的功能啊?
    我爬文了好久,還是搞不清楚!

    回覆刪除
  4. 武陵兄,這個問題其實Blogger官方已經推出便利的作法了,請參考這篇說明 http://www.google.com/support/blogger/bin/answer.py?hl=b5&answer=154172

    回覆刪除
  5. 補充一下,上面的說明提到的新版的文章編輯器的啟用說明在這裡 http://www.google.com/support/blogger/bin/answer.py?hl=b5&answer=156829

    回覆刪除
  6. 冰人兄
    可能小弟我太笨了
    依照您給的網址裏的說明去設定
    結果只把我的文章在我設定的點上咔掉
    並未出現繼續閱讀等字樣(連read more也沒)
    可以請你到我那裡看看嗎?

    回覆刪除
  7. 武陵兄,你可能要試著修改HTML原始碼:
    「注意:如果您使用第三方的自訂範本,必須加入一小段程式碼才能讓繼續閱讀標示正常運作。

    請先在 [版面配置 | 修改 HTML] 標籤中,按一下網頁頂端的 [下載完整範本] 連結,下載 XML 版本的範本,讓您之後有需要時可隨時上載。

    當您備份範本後,勾選 [展開小裝置範本] 核取方塊,然後在 HTML 中尋找以下這段程式碼......在建立繼續閱讀的那篇faq中的最下面

    回覆刪除
  8. 呵呵呵,終於搞定了!
    我忘了我的範本是第三方,所以看到要加程式碼那段,就直接給它忽略了,加上就好囉!
    這兩天有個煩惱,不知是我的顯卡(麗台7300GT,4歲)有問題還是LCD(聯強牌、7歲)問題,前陣子看到很漂亮的螢保程式,下載用了幾星期,結果前幾天開始,螢幕不定時會黑屏1-2秒,然後右下角工作列會出現「顯示卡驅動程式停止回應,並已經恢復」,這兩天更慘,桌面第一象限會不定位置出現色塊,螢幕上半不與下半部也會不定時出現橫跨螢幕的線條,在YT看影片,影片也會出現一條閃動的橫條紋。
    冰人兄,你看我是否該做個交叉測試?我在網路上爬文,更新驅動程式也沒用,我甚至把OS重灌(VISTA)也沒用。我想應該是顯卡問題佔多數吧?依您看呢?
    我是希望壞螢幕啦,這樣才可以換新的LCD,可惡的聯強牌,用7年都用不壞,害我到現在還在用15吋的。呵呵!

    回覆刪除
  9. 應該是顯卡出問題了換個顯卡吧!不知你的顯卡是AGP還是PCI-E介面的,若是AGP,我手邊還有一塊良好的7300GT,若是有需要跟我說一聲吧!

    回覆刪除
  10. 謝了冰人兄,我的是PCI-E介面呢!買塊新的好了。
    我昨天看了一下,因為我的主機板ASUS M2N-E算是舊板子(怕沒支援CUDA之類,沒去查有沒新BIOS),電源350W也不大,加上我平常不用繪圖,也不玩高階遊戲,最吃重的大概就是轉檔了。所以考慮的是:9800GT、GT240OC、GT250、5670等,價位大約在3000-4000之間的卡。不知冰人兄有無推薦的品牌與型號?

    回覆刪除
  11. 350W電源夠大了,你去看一下雜誌的評比測試,就算用超耗電的X4 965搭配中高階顯卡(HD5770),滿載時的平台功耗也頂多200W出頭多一點而已。

    至於顯卡,推微星的N9800GT-MD512-DDR3免插電省電版嘍!三千塊不到,而且擁有112個CUDA核心,比GT240更多,考慮考慮吧!

    回覆刪除
  12. 對啊!早上翻一下本月的電腦王,裡面也是寫說用中階顯卡就算滿載,整個平台也不太會超過300W,所以我的顧慮是多餘了!
    CUDA的部份,我還沒去華碩查,不過據說主機板也要支援是嗎?
    GTS250也是讓我心癢癢的。這兩天要決定囉,因為那條橫跨螢幕的黑線已非不定時出現,而是一直出現了!

    回覆刪除
  13. CUDA需要主機板支援這件事情,我查了一下,並沒有這方面的訊息耶~CUDA能否發揮作用最主要還是看應用程式是否支援。

    不過我還是覺得不玩遊戲實在不需要用上裝機卡規格以上的顯卡;雖說CUDA核心越多對轉檔也許有加分的作用(需軟體支援),但是以我而言,我還是蠻後悔買了GT240,就播放而言,沒有比780G的HD3200好。

    不如把金錢投資在CPU上,不知道武陵兄的CPU型號是多少,是否夠力?

    回覆刪除
  14. 嗯!看來9800GT也是參考重點。因為我玩的遊戲頂多也就是信長的野望或三國志,顯卡資源都吃得不重。
    我的CPU喔!很舊囉,AMD ATHLON64 X2 4400 2.4G,記憶體1GX2,可是目前沒壞,所以尚無換CPU的構想。
    CUDA需主機板支援,記得是在超頻者天堂爬來的,也不知對不對?

    回覆刪除
  15. 哈哈!
    結果買了LANTIC GTS250D3 512MB。
    原本還沒下決心,因為這兩天螢幕又感覺好好的,黑線色塊也不常出現,但今天去NOVA逛逛,結果還是敗了。

    回覆刪除
  16. 結果如何呢?換上顯卡後應該之前的問題就解決了吧?!沒解決不要怪我

    趕快用TMPEGEnc來轉檔 爽度應該加倍喔!

    回覆刪除
  17. 對啊!之前的問題都消失了,所以應該是顯卡掛了沒錯。
    轉檔軟體問題,我之前是用VideoStudio Pro X2,現在有弄到X3,據簡介該軟體也支援CUDA,我會先試試看爽度如何。至於冰人兄你說的TMPEGEnc,是要選用哪一套呢?到時再試試,爽度才有比較性。說不定也來弄個SONY新版的看看(我只有8.0c)
    還有,我用的VISTA是沒更新的旗艦版(NO SP1、SP2),會不會影響CUDA的運作?

    回覆刪除
  18. TMPGEnc是一個轉檔軟體,據說是要到4.6.2.266之後版本才開始支援cuda轉檔,若你沒有個別轉檔的需求也就不用在意啦!至於Sony Vegas Pro則是到最新的9.0e也還不支援cuda呵呵!!不用特別麻煩了。

    我目前也沒有看到cuda跟作業系統有什麼相依性的災情,最主要還是記得更新到最新的driver版本與軟體本身的支援度吧!

    回覆刪除
  19. TMPGEnc Xpress我有兩個版本,都在4.6.2.266之後。不過專拿來轉檔的部份,我之前都是用ProCoder3耶(不知它有無支援CUDA)。後來不常用了,因為我都把m2ts直接抓到VS X2做編輯,然後直接輸出成我要的檔,所以依步驟來說,好像用不到專門轉檔的軟體。不知冰人兄對此種專來轉檔的軟體有何其他的應用方式?

    既然Vegas沒支援,我就不用費心去找了。

    回覆刪除
  20. 關於用VS pro X3,昨天又編了一段約2分鐘的1280x720 30p的影片,結果輸出時也沒感覺比較快啊!不知是否還須另外設定,再去google爬爬看。

    回覆刪除