Flash Player Protected Mode for Firefox



1.  Protected mode的源起
為了避免Flash Player在執行時存取到敏感的資源,並防止攻擊者觸發一些bug傷害系統。故讓Flash Player在受限制的低授權(integrity)環境下運行,該系統先被實作於Adobe Reader X sandbox中。(http://blogs.adobe.com/asset/2010/10/inside-adobe-reader-protected-mode-part-1-design.html)
http://blogs.adobe.com/asset/files/2010/10/Sandbox-Diagrams3.png
可以使用一些process監控軟體,可以發現:http://blogs.adobe.com/asset/files/2012/06/three_processes.jpg
Flash player執行在Firefox時,會發現有三個process在運行。
  • “plugin-container.exe.”
    Firefox
    plugins接口,當Firefox運行plugins時會使用此獨立的process來執行。 
  • FlashPlayerPlugin – Medium IntegrityBroker process,用來當作sandbox版本的中間版本,sandbox可以在此broker process完整運行它的內容。此架構對於Broker process留有彈性,未來也能調整broker process功能上的限制。   
  • FlashPlayerPlugin – Low Integrity 
    針對需要被限制的功能就會將之隔絕,主要是運作Flash player engineWeb content的呈現。
2. 限制的方式
sandbox的功能被運行於Windows Vista/Windows 7作業系統。
  • Low integrity可以防止存取到寫入到使用者的profile或是registry(這些需要medium integrity權限)
  • Security Identifiers (SIDs)的條件設置更嚴格,關閉繼承於grouppermission
  • Job restrictionrestricting access to USER Handles and Administrator Access避免sandboxes干擾OS,限制只能存取到Parameters, Display Settings, Exit Windows and Desktop
3. 架構
 http://blogs.adobe.com/asset/files/2012/06/FlashPlayer_Sandbox_v2.jpg
OS broker at Medium integrity守護不被信任的sandbox與作業系統間的存取。Sandbox存取必須請求OS broker process的許可來存取敏感的資源檔。Sandbox包括了被定義允許和不允許的規範。此架構確保sandbox不會去直接存取OS而不事先透過broker。

Flash Player sandbox已經在IE, Chrome所實作過,目前在Firefoxsandbox即是Chrome sandbox再添加job limits on process。未來會持續改進,包括Chrome Pepper Flash Player Sandbox

4. 關閉方式
目前在Firefox有時會遇到Youtube影片或是一些Flash內容載入比較慢的問題,大致上都可以透過關閉Protected Mode方式做解決,關閉方式如下:
  • Windows 32bit: C:\Windows\System32\Macromed\Flash
  • Windows 64bit C:\Windows\SysWOW64\Macromed\Flash
mms.cfg加上ProtectedMode=0

Reference:

Comments

Popular posts from this blog

Drawing textured cube with Vulkan on Android

glTF loader for Android Vulkan

C++ unit testing & CI integration in GitHub (I/2)