------ 文章開始 ------

 作者  ccbruce (今、 僕)                           看板  AntiVirus 
 標題  [閒聊] 從系統軟體開發的角度來看防毒                                    
 時間  Sun Dec 26 02:35:01 2010                                               
───────────────────────────────────────

先自我介紹一下。我本身是在筆電的系統廠的高工。主要業務就是寫客戶要求的Win32下執
行的應用程式,如果各位手中有Toshiba或Dell的筆電,那很可能你就有用到我寫的程式
(只要你那電腦是我們公司代工的話)。我們寫的程式千奇百怪,範圍涵蓋真實模式及保
護模式(驅動程式跟一般應用程式)。功能則是從修改CMOS到與EC和BIOS打交道都有,高
階點的如DirectX、DirectShow或網路程式也都寫過。

那麼,根據這些經驗跟以前在學校學到的計算機相關理論,我是如何防毒呢?我並不是那
麼強調非得要灌防毒軟體不可,甚至有的時候防毒軟體會對我們的工作造成影響。而且我
也對防毒軟體帶來的效能瓶頸感到厭惡。我一直認為,有正確的觀念比灌了什麼防毒軟體
都來得重要,只要遵守良好的紀律,自然能與有害軟體絕緣(我在這裡用的是有害軟體,
Malware這個字眼,它涵蓋了病毒,Virus、蠕蟲,Worm與木馬,Troj/Backdoor這三個概
念)。對不遵守紀律的人來說,防毒軟體只是一張門神的像而已。事實上,有害軟體更像
是吸血鬼,吸血鬼不受到邀請的話,是進不了人家家門的。

1、不安裝無法信任的軟體
 「不安裝來路不明或盜版軟體」這句話就好像「在路上看到可疑的包裹要送派出所」這
 樣的騙小孩子的話一樣令人發噱。事實上不是所有來路不明的軟體都不值得信賴,而是
 不要信任沒經過確實檢驗的軟體。在大多時候我都會這樣做:使用VMWare、VirtualBox
 不要信任沒經過確實檢驗的軟體。在大多時候我都會這樣做:使用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)
uziel:看 process 與監視網路 port 可以用 Process Explorer 與     12/26 09:25
uziel:TcpView 這兩個軟體,資訊較詳盡                            12/26 09:26
falconer:推一下!很實用的資訊!只是有時候是知易行難啊!            12/26 09:56
falconer:特別是家裡有正在學電腦的老人家...                      12/26 09:58
miamodo:推. 正常軟件的訊息搜集行為難防.                         12/26 10:11
fantasyj:推,但通常一般只看對外上傳是否有異常,很難注意每個程序   12/26 12:45
adcdle1988:推,很實用的資訊                                     12/26 14:09
y3k:很久以前我也是有這種"我習慣好我最強"的想法 但是看多之後覺   12/26 14:16
y3k:得方便也是值得考量的一件事情 對一般不重視的人還是推防毒好   12/26 14:18
y3k:隨便一間公司找一個跑腿小弟和工程師 兩者的習慣就差很多 而且  12/26 14:19
y3k:對錯實在難講                                                12/26 14:20
asadfish:防毒我覺得還是必要,單純防止自己“無意識習慣不好”     12/26 22:23
asadfish:因為有時候精神狀況不好,真的會造成奇怪的行為…         12/26 22:23
fish0112:推~                                                    12/27 10:53
srx080578:很強大 推                                             12/27 16:31
dooraemoon:推 可惜我對資安的了解還太淺 所以還是要用防毒XD       12/27 18:21
Wengboyu:靠北…全部大於1024 囧                                  12/27 21:01
doom3:Xuetr在對岸好像很紅 這邊好像沒人用過                      12/27 23:46
doom3:就一個工具可以做你寫的一堆事                              12/27 23:47
Wengboyu:但說穿了你還是裝了個不知道誰做的軟體  而你相信它..     12/28 12:52
xvid:這種文章很像email到處散播的垃圾信                          12/28 23:34
balanceCIH:對樓上而言,這是垃圾信 那到時候中毒時 不要哭著來找    12/29 02:47
balanceCIH:救兵                                                 12/29 02:47
xvid:不好意思 我沒中過毒 不用當高工 這些概念也早就有了          12/29 14:36
xvid:只覺得前兩段只是在毫洨 你慢慢哭                            12/29 14:38
cress0128:我不知道xvid在噓啥= =                                 12/30 16:41
junorn:其實就很簡單的能力到哪防護就做到哪就這樣而已沒很複雜啦   12/30 18:00
linhomeyeu:請問文中哪裡有提到一定要當高工才有這些觀念?          12/31 11:32
linhomeyeu:xvid哪隻眼睛看到的?                                  12/31 11:33
linhomeyeu:你不需要看可以不用推文 你推成這樣只是顯示你品德而已  12/31 11:33
linhomeyeu:文中提醒他人防毒觀念的好意被你說成這樣 也是無奈      12/31 11:34
crow0801:很多用VISTA/7的人都愛把UAC關掉或直接administrator登入  12/31 23:34
crow0801:這樣根本是把微軟對於系統安全的機制給閹掉               12/31 23:35


------ 文章結尾 ------

[複製網址] [開新視窗] [加到我的最愛] [檢舉短網址] [QR條碼]



服務條款 - 完全手冊 - 加入會員(免費) - 聯絡偶們 -

© PPT.cc