[閒聊] 從系統軟體開發的角度來看防毒
先自我介紹一下。我本身是在筆電的系統廠的高工。主要業務就是寫客戶要求的Win32下執
行的應用程式,如果各位手中有Toshiba或Dell的筆電,那很可能你就有用到我寫的程式
(只要你那電腦是我們公司代工的話)。我們寫的程式千奇百怪,範圍涵蓋真實模式及保
護模式(驅動程式跟一般應用程式)。功能則是從修改CMOS到與EC和BIOS打交道都有,高
階點的如DirectX、DirectShow或網路程式也都寫過。
那麼,根據這些經驗跟以前在學校學到的計算機相關理論,我是如何防毒呢?我並不是那
麼強調非得要灌防毒軟體不可,甚至有的時候防毒軟體會對我們的工作造成影響。而且我
也對防毒軟體帶來的效能瓶頸感到厭惡。我一直認為,有正確的觀念比灌了什麼防毒軟體
都來得重要,只要遵守良好的紀律,自然能與有害軟體絕緣(我在這裡用的是有害軟體,
Malware這個字眼,它涵蓋了病毒,Virus、蠕蟲,Worm與木馬,Troj/Backdoor這三個概
念)。對不遵守紀律的人來說,防毒軟體只是一張門神的像而已。事實上,有害軟體更像
是吸血鬼,吸血鬼不受到邀請的話,是進不了人家家門的。
1、不安裝無法信任的軟體
「不安裝來路不明或盜版軟體」這句話就好像「在路上看到可疑的包裹要送派出所」這
樣的騙小孩子的話一樣令人發噱。事實上不是所有來路不明的軟體都不值得信賴,而是
不要信任沒經過確實檢驗的軟體。在大多時候我都會這樣做:使用VMWare、VirtualBox
或Virtual PC來建立一個沙箱(Sandbox)、把想要測試的軟體放進去看看,萬一它有奇
怪的行為或是會傳輸任何敏感資料的行為的話,那就別在自己的工作機上使用。這種測
試不是只有一次,也可以是永久的,例如中國的程式,我就不會在工作機上灌。如QQ、
PPS,這時候我就非常推薦VirtualBox了,它有個無縫模式,可以把VM裡的應用程式的畫
面投影到桌面上來用,非常的人性化。另外,在安裝程式時,一定千萬要記得看EULA(
End User License Agreement,終端使用者授權合約)通常一個正式的程式都會把它要
做些什麼事寫在EULA裡頭,尤其是大公司更會這樣做。之前有個很有名的事件,日本有
個傢伙把H-Game的ISM竄改,將ISM的Loader換成自己寫的,安裝時會先要求使用者打自
己的資料,再掃描硬碟所有資料,接著抓下桌面,把這些資訊傳到網路上給人家看。要
砍掉還要給那傢伙錢。有一位校長就中標了,硬碟裡有疑似兒童色情的東西。台灣也有
不少鄉民中標,我有稍微抓下來跑跑看,發現它的EULA就有寫,因為這東西在上法院時
有用的,所以注意一下比較好。
2、有敏感行為的執行檔要注意它有沒有數位簽章
先定義一下何謂敏感行為。根據UAC的建議文件,凡是會Hook鍵盤滑鼠(熱鍵程式)、
查詢或操作系統的資訊(如WMI)、與其它程式互動(如移動視窗)、增刪改查
Registry和使用者目錄的程式都算。這些東西在執行前請先右鍵看它的數位簽章,如果
沒有或怪怪的,就小心點。附帶一提,UAC在處理這些東西雖然很煩,但是也真的是有
不少幫助,尤其是在需要Elevation(提升權限)的程式上,它處理得相當好。現在我
們系統廠發的程式,由於萬惡的WHQL(真的是萬惡,送一次要好幾百塊美金),基本上
都很能信賴。(有跑過DTM就知)
3、防火牆雖不是萬能,但不開就萬萬不能
比起Linux的IPFilter,微軟的防火牆不是那麼好用,功能也不多。但是開著確實可以保
平安。若是對預設防火牆不信任,也可以依賴其它牌子的。只是對我來說,預設的就已
足夠。附帶一提,在WinXP SP2以前有個漏洞,網路子系統會因為一個RPC整個癱瘓,連
防火牆一起倒霉的窘境已經在WinVista/7上補起來了。
4、定期換密碼,沒事注意一下行程跟埠的使用情形
換密碼的好處大家都知道,就不講了。但是行程的檢查是有撇步的,檢查的好是可以及
早避掉一些窘境。大家都知道按CTRL-SHIFT-ESC或taskmgr.exe可看到行程,但是要如何
分辨是好是壞呢?首先記得列出所有帳號的所有行程,一個一個看。先排序說明,沒說
明或說明看起來很蟞腳的,就按右鍵找出它的位置,位置很怪的(如C:\xxx)砍、名字
很怪的(如scvhost.exe,正常是svchost.exe)砍,沒簽章的砍,沒發佈公司的砍。有
些東西是掛SYSTEM帳號的服務或是由svchost.exe所載入(通常是DLL)砍不掉,就進安
全模式砍。對於一些尚未病入膏肓的機器來說,這招還蠻好用的。有時候有些程式會透
過DLL Injection(DLL注入)的手段來「隱身」,讓taskmgr看不到,這時候就記得用
tasklist.exe(它是Console程式)來看,因為DLL Injection對DOS子系統無效。基本上
Windows下的所有功能都有相對應的Console程式,我們所用的都是Windows Shell的一部
份而已。它們大部份都有對應的兄弟,就像一面鏡子一樣。接著,是埠的使用情況。會
看埠的使用情況的話,就可以掌握電腦的門戶了。打這個指令即可:
netstat -ano |find /I "listening"
結果就會是這樣:
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 2852
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 748
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 2852
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:3260 0.0.0.0:0 LISTENING 2136
TCP 0.0.0.0:3261 0.0.0.0:0 LISTENING 2136
TCP 0.0.0.0:5357 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:48023 0.0.0.0:0 LISTENING 2852
TCP 0.0.0.0:49152 0.0.0.0:0 LISTENING 460
TCP 0.0.0.0:49153 0.0.0.0:0 LISTENING 876
TCP 0.0.0.0:49154 0.0.0.0:0 LISTENING 940
TCP 0.0.0.0:49156 0.0.0.0:0 LISTENING 512
TCP 0.0.0.0:49157 0.0.0.0:0 LISTENING 496
TCP 192.168.1.11:139 0.0.0.0:0 LISTENING 4
TCP 192.168.56.1:139 0.0.0.0:0 LISTENING 4
TCP [::]:135 [::]:0 LISTENING 748
TCP [::]:445 [::]:0 LISTENING 4
TCP [::]:5357 [::]:0 LISTENING 4
TCP [::]:49152 [::]:0 LISTENING 460
TCP [::]:49153 [::]:0 LISTENING 876
TCP [::]:49154 [::]:0 LISTENING 940
TCP [::]:49156 [::]:0 LISTENING 512
TCP [::]:49157 [::]:0 LISTENING 496
通常少於1024的port都是正規伺服器,要是自己明明沒開卻出現了,那就找出PID跟這
列表一致的行程把它砍了。大於1024的更是要注意,比如說聽3260和3261的傢伙,它的
PID是2136,於是我就用taskmgr找出它來,發現它是svchost.exe,代表它是個服務,
再列出命令列,發現是imgsvc這個服務,原來它是WIA服務,是正常的。注意有一種Port
一般程式不會去碰,叫做精英埠(Elite port)號碼是31337,有看到有程式在用這Port
就先砍再說,不過現在這規矩也不準了就是。
5、大陸網站能不上就別上
嗯,因為真的很危險。不管是政治上還是網路上。根據自己的經驗,中國網站十有八九
都會跑怪Script或是Flash,Flash是很危險的東西,也操機器。所以先捨IE,改用FF,
接著禁止中國網站跑Script及Flash就會比較安全。
6、定期更新,記得顯示副檔名
這個就不用再講了。
以上是我的作法,有什麼問題再來討論吧~
--
裸になって
何が悪い?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.57.76
※ 編輯: ccbruce 來自: 122.116.57.76 (12/26 02:37)
推
12/26 09:25, , 1F
12/26 09:25, 1F
→
12/26 09:26, , 2F
12/26 09:26, 2F
推
12/26 09:56, , 3F
12/26 09:56, 3F
→
12/26 09:58, , 4F
12/26 09:58, 4F
推
12/26 10:11, , 5F
12/26 10:11, 5F
推
12/26 12:45, , 6F
12/26 12:45, 6F
推
12/26 14:09, , 7F
12/26 14:09, 7F
→
12/26 14:16, , 8F
12/26 14:16, 8F
→
12/26 14:18, , 9F
12/26 14:18, 9F
→
12/26 14:19, , 10F
12/26 14:19, 10F
→
12/26 14:20, , 11F
12/26 14:20, 11F
推
12/26 22:23, , 12F
12/26 22:23, 12F
→
12/26 22:23, , 13F
12/26 22:23, 13F
推
12/27 10:53, , 14F
12/27 10:53, 14F
推
12/27 16:31, , 15F
12/27 16:31, 15F
推
12/27 18:21, , 16F
12/27 18:21, 16F
推
12/27 21:01, , 17F
12/27 21:01, 17F
推
12/27 23:46, , 18F
12/27 23:46, 18F
→
12/27 23:47, , 19F
12/27 23:47, 19F
→
12/28 12:52, , 20F
12/28 12:52, 20F
噓
12/28 23:34, , 21F
12/28 23:34, 21F
推
12/29 02:47, , 22F
12/29 02:47, 22F
→
12/29 02:47, , 23F
12/29 02:47, 23F
→
12/29 14:36, , 24F
12/29 14:36, 24F
→
12/29 14:38, , 25F
12/29 14:38, 25F
推
12/30 16:41, , 26F
12/30 16:41, 26F
推
12/30 18:00, , 27F
12/30 18:00, 27F
推
12/31 11:32, , 28F
12/31 11:32, 28F
→
12/31 11:33, , 29F
12/31 11:33, 29F
→
12/31 11:33, , 30F
12/31 11:33, 30F
→
12/31 11:34, , 31F
12/31 11:34, 31F
推
12/31 23:34, , 32F
12/31 23:34, 32F
→
12/31 23:35, , 33F
12/31 23:35, 33F
→
02/13 13:53, , 34F
02/13 13:53, 34F
推
03/28 10:09, , 35F
03/28 10:09, 35F
AntiVirus 近期熱門文章
PTT數位生活區 即時熱門文章