作者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/cn.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