簡單談幾點綠壩的技術上的錯誤。如果不改進,我相信未來會造成巨大的損失。
1.不應該用木馬的方式來保護自己。
站在綠壩的觀點上,認為不能被孩子隨便卸載和殺掉,所以就要強力地保護自己。于是用了一系列只有病毒和木馬才會用的辦法。這是典型的方法錯誤。正確的方法應該是給孩子一個單獨的賬號,降低此賬號權限。然后綠壩以管理員身份運行。這樣就不用靠流氓手段保護自己。家長和成年人也可不受其干擾。眼前使用的辦法,其實也保護不了自己的安全和不被卸載。
2.緩沖區(qū)溢出的問題必須要重視。
到目前為止,密歇根大學提出的緩沖區(qū)溢出漏洞沒有被修正。而根據(jù)電腦報文章,用戶在正常使用中時而會導致瀏覽器崩潰。這大概也是溢出的跡象。在我進行的簡單研究中,覺得確實如密歇根大學報告所說“使用了較陳舊的編程方法”,系統(tǒng)中存在緩沖區(qū)溢出的機會大大增加。
簡單的反編譯就可以發(fā)現(xiàn),程序中大量數(shù)組和內存操作是不安全的,導致緩沖區(qū)溢出的機會很大。還有相當數(shù)量的硬編碼,把一些密碼之類的東西直接寫了進去。這些不良的編程習慣都會帶來安全問題
緩沖區(qū)溢出并非讓程序崩潰退出那么簡單,事實上,利用這種漏洞是可以完全控制一臺計算機的。歷史上幾次大的病毒傳播,比如nimda,比如紅色代碼,都是緩沖區(qū)溢出引起的。緩沖區(qū)溢出不僅困擾小公司,對微軟這種大公司也是巨大的安全威脅。
3.不加密的升級方式很危險。
綠壩的升級都是通過http的,并且頻繁調用gethostname來做dns解析。一方面,簡單的dns欺騙就可以讓系統(tǒng)安裝惡意代碼。另一方面,如果升級服務器被攻擊掉,也很有可能導致前不久的“暴風斷網”事故重演。而規(guī)模,恐怕還要大得多。
4.殺毒軟件怎么辦?
綠壩的很多行為,和木馬很相似,這些行為必然會被殺毒軟件和木馬清除軟件識別。如果工信部強令殺毒軟件把綠壩加入白名單,最終就等于在系統(tǒng)里面為病毒制造了一個保護傘。病毒和木馬可以通過附著在綠壩上面,躲避殺毒軟件的掃描。這也是嚴重的安全問題。
一般來說,大規(guī)模安裝的軟件要特別注意安全問題。最有效的辦法是降低自己的權限,那么就算出現(xiàn)問題也不至于影響太大。但是綠壩反而用不正當?shù)姆绞将@得了很高的權限。而高權限的軟件則要至少能保證自己的安全,綠壩顯然也做不到這點,綠壩調用各種dll并沒有做校驗,這都是非常容易被利用的。
一個具有高權限,又被普遍安裝的軟件,一定會吸引大量的攻擊,這個誘惑太大了。這在Windows一貫的歷史上都得到了驗證。而一個不嚴謹,具有高權限,又被廣泛安裝的軟件,一旦被攻擊,結果會怎么樣呢?歷史上沒有過先例。但我想,一定不是個好結果。
另外,在我研究的這部分(xnet2.exe,gn.exe,xdaemon.exe)中,我沒有發(fā)現(xiàn)往服務器發(fā)送用戶隱私的行為。但這不代表其他部分沒有。大正的引擎是和“綠壩”完全獨立的,只是通過exe進行了簡單調用,這部分也存在前面提到的問題,很容易被冒充或注入。在卸載方面,我看到了綠壩的卸載代碼,就軟件開發(fā)者來說,他們確實是想完全卸載,不留痕跡的。但是因為技術原因未必能做到。而且在某些其他程序干擾下,可能也不能順利完成卸載。這也造成了“不能卸載”的假象。
對未成年人的保護是必要的,蘋果操作系統(tǒng)甚至自帶了未成年人保護功能,這確實是應該的。但保護不能以危險的方式進行。如果工信部真的想解決未成年人保護問題,請將此軟件開源,以便保證其中立和完善。
計算機是完全開放的,互聯(lián)網也是。它們的體系和架構決定了這一特點,任何與這個特點相反的努力都是徒勞的,好像螳臂當車,阻擋歷史的車輪,必然是不可實現(xiàn)的。