[閒聊] 從系統軟體開發的角度來看防毒

看板AntiVirus (防毒)作者 (今、そこに いる僕)時間15年前 (2010/12/26 02:35), 編輯推噓16(17117)
留言35則, 20人參與, 最新討論串1/1
先自我介紹一下。我本身是在筆電的系統廠的高工。主要業務就是寫客戶要求的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
看 process 與監視網路 port 可以用 Process Explorer 與
12/26 09:25, 1F

12/26 09:26, , 2F
TcpView 這兩個軟體,資訊較詳盡
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
推 可惜我對資安的了解還太淺 所以還是要用防毒XD
12/27 18:21, 16F

12/27 21:01, , 17F
靠北…全部大於1024 囧
12/27 21:01, 17F

12/27 23:46, , 18F
Xuetr在對岸好像很紅 這邊好像沒人用過
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
這種文章很像email到處散播的垃圾信
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
我不知道xvid在噓啥= =
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
xvid哪隻眼睛看到的?
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
很多用VISTA/7的人都愛把UAC關掉或直接administrator登入
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
請問要怎麼只禁止中國網站跑script跟flash呢?
03/28 10:09, 35F
文章代碼(AID): #1D5ZbPBF (AntiVirus)
文章代碼(AID): #1D5ZbPBF (AntiVirus)