作者mayuyu ((・ω・)ノ)
看板AntiVirus
標題[心得] Sandboxie和防勒索
時間Sun Feb 5 12:18:47 2017
Sandboxie可以防止勒索病毒破壞真實系統。
免費試用版比正式版少二個功能
1. 同時只能運行一個沙盤
例如 建立 Line_ID1/Line_ID2 二個沙盤,
同時只能運行其中一個Line,不能多開。
替代方法
只是要多開的話,改建立多個Windows使用者帳戶,
以"Run As..."工具,用不同使用者身份開啟運行。
2. 不能指定「程式/資料夾」強制從沙盤中開啟
例如:手動從沙盤中啟動Chrome瀏覽器,
而Line則放在沙盤外運行,
此時點擊Line裡面朋友傳送的連結,
會在沙盤外重新啟動一個獨立的chrome.exe視窗開啟連結,
而不會自動進入沙盤,在沙盤裡的Chrome開新分頁。
正式版可以指定chrome.exe強制從沙盤中開啟,
所以即使在沙盤外點擊連結,只要chrome.exe啟動,
就會自動進入指定的沙盤。
替代方法
修改Chrome快捷,將路徑改為
"C:\Program Files\Sandboxie\Start.exe"
/box:指定開啟的沙盤例如Default /nosbiectrl /hide_window
"chrome.exe的路徑"
這樣點擊這個捷徑就會自動從Default沙盤中開啟Chrome。
把Line也放入同樣的Default沙盤中運行,
這樣點擊Line的連結就會在沙盤裡的Chrome開啟。
不過我們不可能將系統上所有會用到Chrome的程式都放入沙盤裡執行,
所以正式版的自動強制入沙的功能還是比較方便。
和防毒軟體的相容性
BitDefender 2017 & WIN10
看起來一切正常
Kaspersky 2017 & WIN10
官方宣稱2017有相容SBIE,
實測Firefox和Chrome可以入沙,其他看起來也都正常,
但是從沙盤中開啟IE和Edge會無法關機,必須reset重啟系統,
所以不要用沙盤開IE和Edge,改用其他瀏覽器。
強化沙盤的限制和一些相容性設定
1. 限制程式啟動
http://i.imgur.com/dt6THiI.png
例如Chrome沙盤中只允許chrome.exe可以啟動運行。
只允許chrome.exe啟動的話,有時候需要運行其他程式時,
SBIE就會彈出應用程式被限制無法啟動的訊息。
例如在Chrome瀏覽器中開啟資料夾瀏覽要上傳的檔案,
顯示縮圖預覽時會彈出無法啟動dllhost.exe的訊息。
此時在彈出的訊息上按隱藏,
以後就不會再彈出這個應用程式被限制啟動的訊息,
或者在訊息上雙擊,以後就會自動放行dllhost.exe。
2. 限制程式連網
http://i.imgur.com/XQCOMaV.png
例如Chrome沙盤中只允許chrome.exe可以連網
3. 降低更多權限
http://i.imgur.com/9cRIUup.png
取消更多Chrome的權限的話有些服務就無法執行。
例如Chrome會使用在背景上傳資料的BITS服務,
勾取這個選項的話SBIE會彈出BITS服務無法啟動的錯誤訊息。
同樣如果不想看到這個錯誤訊息,在訊息上按隱藏就好,
或者雙擊放行這個權限。
4. 強制chrome.exe從這個沙盤中開啟
http://i.imgur.com/FhISFBF.png
則沙盤外無論誰啟動chrome.exe,都會自動強制在這個沙盤中開啟。
這個功能是最重要的功能,只有正式版能用。
5. 指定資料夾下的程式或檔案一律強制在沙盤中開啟
http://i.imgur.com/tUeGHs3.png
例如可以設定「光碟機/USB隨身碟」所在的磁碟機為強制資料夾,
這樣當光碟片或USB插入時,autorun執行的程式會自動進入沙盤運行。
這個功能只有正式版能用。
6. 應用程式停止
http://i.imgur.com/iplCsff.png
http://i.imgur.com/bLlF9Sg.png
見圖裡面的說明。
例如Chrome沙盤裡,chrome.exe結束運行後,
自動結束沙盤裡其他開啟的程式。
7. 直接存取檔案或資料夾
http://i.imgur.com/481ZdA6.png
為了方便,
讓沙盤內的chrome.exe可以直接存取Chrome使用者設定檔,
和下載資料夾,將資料直接寫進真實系統。
8. 應用程式相容性
有些程式如果在沙盤中啟動使用起來不太方便,
所以開放讓沙盤內的程式可以直接和沙盤外的這些程式溝通,
而不用在沙盤中重複啟動這些軟體。
例子一:Chrome沙盤和Firefox沙盤都會用到下載管理員,
例如 Internet Download Manager (IDM) 來幫助檔案下載。
在這二個沙盤中重複創建IDM下載器不太有意義又浪費系統資源,
不如讓沙盤內的程式可以直接存取系統上、沙盤外的IDM下載器,
讓IDM在沙盤外運行,下載的東西也直接放在沙盤外。
相容的方法:SBIE有內建IDM的相容性範本,
在應用程式相容性設定中直接啟用IDM的範本即可。
http://i.imgur.com/i0Vje5V.png
http://i.imgur.com/MKzDMFX.png
例子二:Chrome沙盤和Firefox沙盤都會用到輸入法,
有些輸入法必須在在沙盤中重複創建程序才能使用,
或者是能使用但功能不正常。
例如新自然輸入法,當在沙盤中使用自然輸入法的時候,
Chrome沙盤和Firefox沙盤都會創建一個新的GoImeServer10.exe,
而不會使用系統上沙盤外已經啟動的GoImeServer10.exe,
變成系統上會有三個重複的GoImeServer10.exe,
而且使用者輸入的慣用辭典也會保存在三個不同的位置。
http://i.imgur.com/KfxAdxp.png
圖中是Firefox沙盤的情況,
背景色橄欖色的程序是Firefox沙盤中的程序,
firefox.exe所創建的子程序都會在這個沙盤裡,
可以看到沙盤中的程序完整性級別都是Untrusted,
當firefox.exe要使用自然輸入法的時候,
因為不能和沙盤外的GoImeServer10.exe通訊,
所以會在沙盤中重新創建一個GoImeServer10.exe程序來使用。
相容的方法:開啟 沙盒主控台->資源存取監視器,
http://i.imgur.com/aKSANSq.png
在沙盤中啟動瀏覽器,切換到自然輸入法,
觀察資源存取監視器中,顯示被阻擋不能直接訪問的資源,
在 沙盤設定->資源存取 設定中,
讓沙盤直接存取這些被阻擋的資源。
例如要直接存取自然輸入法
在 資源存取->IPC存取->直接存取 中新增
\RPC Control\*****@GOImeServer10Endpoint*
http://i.imgur.com/bVaigOc.png
例如要直接存取PIME輸入法
在 資源存取->檔案存取->完全存取 中新增
\Device\NamedPipe\*****\PIME\Launcher
這樣沙盤內的程式就可以直接和沙盤外的輸入法溝通,
而不用在沙盤中重複創建新的程序了。
http://i.imgur.com/TC7S0V9.png
可以看到圖裡面firefox.exe不會再創建GoImeServer10.exe,
而會直接使用沙盤外,完整性級別為Medium的GoImeServer10.exe。
常用的程式可以寫成local的相容性範本,
直接套用到所有的沙盤設定。
http://i.imgur.com/RiTmIRZ.png
例如Google的日文輸入法
[Template_GoogleJapaneseIME]
Tmpl.Title=Google Japanese Input Method (IME)
Tmpl.Class=Desktop
Tmpl.Url=
http://www.google.com/intl/ja/ime/
Tmpl.Scan=Desktop
Tmpl.Scan=s
Tmpl.ScanService=GoogleIMEJaCacheService
OpenPipePath=\Device\NamedPipe\googlejapaneseinput.*
LingerProcess=GoogleIMEJaTool.exe
LingerProcess=GoogleIMEJaRenderer.exe
如果我們遇到程式在沙盤中無法正常運行,
也可以透過觀察資源存取監視器來排除問題。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.219.36.46
※ 文章網址: https://webptt.com/m.aspx?n=bbs/AntiVirus/M.1486268330.A.2C8.html
1F:推 liumang: 讚讚!! 感謝大大提供的教學 我卡在輸入法那邊超久了 02/05 14:55
早上沒有寫完,現在補一下。
有時候我們自訂的應用程式相容性要套用到很多個沙盤,
一個一個沙盤新增加入規則很麻煩,
這時可以把要放行的規則寫成本地(Local)的範本,
其他沙盤要加入這個規則,只要在 應用程式->本地 裡面點擊啟用就可以了,
會比較方便。
譬如說把上面新自然輸入法(Ver10)的規則寫成範本
[Template_Local_GoingIME]
Tmpl.Title=Going IME
OpenIpcPath=\RPC Control\*****@GOImeServer10Endpoint*
Tmpl.Class=Local
或者是迅雷下載的規則
(直接調用沙盤外的迅雷下載,不要在沙盤內再創建新的)
[Template_Local_Xunlei]
Tmpl.Title=Xunlei Thunder Download Manager
OpenIpcPath=*\BaseNamedObjects\ThunderAgent*
OpenWinClass=TfrmCmdCenter
Tmpl.Class=Local
到 應用程式->本地->建立新項目 貼上寫好的範本,
然後雙擊或者新增啟用就可以了。
http://i.imgur.com/N49L8Xl.png
注意開放得越多,就提供越多逃逸的管道,
所以除非真的有必要,還是盡量讓程式開在沙盤裡,
就重複多開幾個其實也沒關係,也盡量不要將規則套用到所有沙盤上。
※ 編輯: mayuyu (61.219.36.86), 02/05/2017 16:09:24
因為很重要所以要再重複講一次:
不要使用3.xx版和3.xx版以前的Sandboxie,
當時的SBIE的沙盒設計是使用系統核心的過濾驅動,
是可以利用系統的漏洞而穿透。
要使用新版4.xx版以上的SBIE,
新版的沙盒是使用作業系統提供的新功能而設計的,
是目前最安全的沙盒設計,Metro APP/Chrome的沙盒也是採用同樣的設計原理。
而且最好更新到最新版,因為SBIE還是有繼續修補被發現的bug。
另外最好不要使用破解,"也許"會影響沙盒運作的穩定性。
新的沙盒設計:
1. 沙盤中的程序為匿名使用者群組,給的令牌對實機幾乎沒有權限
2. 用作業對象可以進一步限制程序,例如禁止設置全局鉤子,
禁止存取atoms table,防止AtomBombing攻擊
(
http://twcert.org.tw/twcert/newsdetail/2923 )
3. 沙盤中的程序使用隔離的桌面,無法跨桌面和使用者桌面的視窗通訊
4. 最後就是Vista以上引進的完整性級別控制,
SBIE沙盤中的程序都是匿名使用者,自然是最低的Untrusted。
其實上面的限制比完整性級別更嚴格,
像Comodo沙盤中的程序級別都還是和普通使用者一樣的Medium,
並沒有特別設為Low或者是Untrusted,還是能夠提供保護的效果。
創建沙盤程序的主程序稱為Broker,
它會給沙盤中的程序Target設置上面的限制,
同時設置使用者層的鉤子(SbieDll.dll)攔截Target呼叫的API,
因為Target本身沒有任何權限,
本來這些要求都會失敗導致程序崩潰停止運行,
是因為具有權限的Broker聽取了這些要求代為向系統轉發,
並且將執行的結果傳回給Target,
所以Target才能繼續維持正常的運作。
如Chrome的沙盒架構圖
http://i.imgur.com/lasYvIi.png
所以沒有了Broker,Target就變成廢物,
即使Target甩開了主人的鉤子,它還是待在隔離的空間內,
而且什麼事情也不能做,因為它是天生魯蛇。
Chrome的主程序是Medium級別,而外掛程序則是Low級別,
因為AppContainer很多WIN32 API都不能用,
寫成AppContainer太痛苦,
最後的網頁Renderer才是AppContainer/Untrusted,
所以你打開Chrome會看到不同程序分別使用三種不同級別。
http://i.imgur.com/pru4h96.png
最後
記得不要使用3.xx版的Sandboxie,
一定要用最新版!
※ 編輯: mayuyu (61.219.36.91), 02/05/2017 23:07:54
2F:推 Chiardy: 謝謝您的專業資訊! 02/07 19:49
3F:推 canandmap: 請教原po,如果是用嘸蝦米輸入法要如何設定相容性? 02/08 22:18
4F:推 kaoru7568: 感謝原PO,解決我很多觀念上的問題,自己硬吃官方文件 02/08 23:02
5F:→ kaoru7568: 還是有極限... 02/08 23:02
6F:→ mayuyu: 我沒有用過嘸蝦米 您可能要自己測試看看 02/11 17:38
7F:推 DINJIAPC: 你要不要先研究一下為何卡巴放棄開發沙盤2012年有內建 02/13 04:07
8F:→ DINJIAPC: 的呢 02/13 04:07
9F:推 canandmap: 感謝原po~有空再試試 02/13 16:46
10F:推 F16V: 我也想知道無蝦怎麼設定+1 02/17 10:09