Windows10和Spartan瀏覽器 產品與技術特性簡介
目錄
0x00 Windows10產品新特性
1、自動選擇預設桌面 2、開始選單迴歸 3、Metro應用視窗化 4、虛擬桌面 5、智慧分屏 6、全域性搜尋 7、其它產品新特性 8、Windows10產品新特性總結
0x01 Windows10內建特性和安全特性
1、In-place升級 2、Stay Current保持最新 3、UPAO (User Protection Always On) 4、Secure ETW Channel(安全ETW通道) 5、Lockdown Mode和虛擬化安全 6、AMSI (Antimalware Scan Interface) 7、WinRE Offline掃描
0x02 微軟為什麼要開發新瀏覽器
0x03 Spartan產品特性
1、取代IE 2、網頁標註 3、閱讀模式 4、全新的EDGE渲染引擎 5、網路模型 6、號稱將支援新的擴充套件
0x04 Spartan安全特性
1、框架程式也執行在了AppContainer完整性許可權 2、渲染程式(tabs)預設執行在EPM下 3、IE下的Toolbars、BHO等瀏覽器擴充套件都不再支援 4、ActiveX控制元件受到更加嚴格的限制,許可權極低 5、禁用vbscript,減少攻擊利用手段,安全性更高 6、更完善的堆保護 7、CFG預設開啟 8、沙箱
0x05 參考文件
0x00 Windows10產品新特性
1、自動選擇預設桌面
Windows10在啟動時會對使用者的硬體裝置進行判斷,對於PC進入的是經典操作介面(如下圖所示),而智慧裝置(支援觸屏)則進入支援觸屏手勢的開始螢幕。
Windows8的開始螢幕(metro UI)一直被詬病,傳統的PC使用者顯然不買賬,對於辦公使用者來說無疑更喜歡傳統桌面,而對於普通使用者來說可能對於這個新桌面不知所措。也許windows8和8.1就類似Vista一樣是一個實驗版本,微軟終於明白應該怎麼做。贏得使用者口碑才是最重要的。
2、開始選單迴歸
開始選單從Windows8,8.1到Windows10經歷了幾次大的演變,最開始竟然把開始選單整沒了,到了8.1的時候搞了一個半吊子開始選單,點開之後竟然跳轉到metroUI,使用者顯然不買賬,幾十年的使用習慣,沒有革命性的變化,是不太可能改變的。Windows10裡面微軟終於妥協了,乖乖把開始選單放出來了,雖然結合了一些metroUI的特點,但是和Windows7相比在使用上已經沒有大的區別了。
3、Metro應用視窗化
在Windows10裡面,Metro應用預設以視窗化方式執行,視窗可以最大化,最小化,和普通的視窗程式在操作體驗上其實已經很一致了。有些metro應用還提供了全屏功能。 如下面就是“著名”的Spartan瀏覽器的視窗介面。
而下面這款天氣metro應用則提供了全屏功能。
4、虛擬桌面
Windows10的工作列上面新增一個“任務檢視”按鈕(可以用快捷鍵Win+Tab直接調出,其實在Window7上面,這個快捷鍵也可以調出一個3D的任務選擇介面出來,大家可以試試),點選後可檢視當前桌面正在執行的程式,在右下角有一個新建桌面的+,可以新建出新的桌面(最多9個),同時在底部區可以快捷的新增、切換、關閉虛擬桌面。虛擬桌面本身不是什麼新的技術,有些小軟體就可以做到,只能說是對桌面作業系統的一個完善吧。好處就是當一個桌面太繁雜的時候,使用者可以在一個新的桌面去做一些新的任務,或者把不同性質的事情放在不同的桌面,提高工作效率,有點類似多顯示器體驗。
5、智慧分屏
整個螢幕可以分成4個螢幕來使用,實際上就是把幾個任務放到顯示器的4個角來分別處理,如果顯示器不夠大,建議就不要使用了,估計只有那些超大螢幕的使用者比較感興趣吧。操作方法,透過把不同的視窗拖拽到桌面的四個角來分屏放置。
6、全域性搜尋
工作列上新增了搜尋功能,點選後會開啟一個小的搜尋視窗。預設先搜尋本機程式,然後再搜尋網際網路內容,也會給出相應的搜尋建議,相當智慧。
7、其它產品新特性
通知中心:後續應該會做成類似於Android和IOS的通知欄。
語音助手Cortana:補齊和競爭對手的差異,平板上面應該更廣泛。
SpartanBrowser:全新的瀏覽器,後面會詳細介紹。
8、Windows10產品新特性總結
明顯開始照顧傳統使用者的感受。
PC端和終端的體驗開始大一統。
設計上更加趨於扁平化。
0x01 Windows10內建特性和安全特性
1、In-place升級
為使Windows能夠方便地升級到Windows10,微軟對Windows7、8和8.1的使用者提供了保留軟體、配置和資料的In-place升級方式。它透過Windows Update實現系統升級,類似IOS和Android的系統升級方式。
第三方軟體要提前佈局的是,開發出相容Windows10的版本,提示升級或自動升級到使用者的當前系統,避免系統升級後無法使用。對於防毒軟體,因為有驅動等可以造成新系統Crash的模組,需要額外滿足一些要求。
2、Stay Current保持最新
微軟希望儘可能多的使用者保持Windows10系統最新,解決當前系統和瀏覽器碎片化問題,但同時也給企業使用者控制更新策略的能力。
Win7及之前的作業系統聚焦於生產力,較少關注使用者是否使用最新特性;而Win8、8.1則聚焦於普通使用者的裝置,尤其是移動裝置,對桌面版的效率方面帶來負面效應,如Metro開始選單。
Win10在二者之間做了平衡,並定期持續更新。系統更新主要有兩類:
(1) 每月的Patch Tuesday - 安全和可靠性相關的補丁
(2) 定期的Rollup – 新特性、內建軟體更新。
3、UPAO (User Protection Always On)
Windows8以上的使用者都安裝有安全軟體,但並不是所有的使用者的安全軟體都處於保護狀態。微軟有過一份統計資料表明,收費安全軟體處於非保護狀態的比例更大。
根據另外一份根據統計資料,處於安全軟體保護狀態的使用者惡意軟體中招率明顯低於不處於安全軟體保護狀態的使用者。
因此在Windows10中,引入一個新流程,希望保證使用者一直處於AV保護狀態。主要用了兩個方法,一個是通知提示,一個是過期自動啟用Windows Defender。
其中的通知比以前版本做了很大的最佳化,安全軟體過期前5天,系統會通知使用者即將過期,引導更新,最後一天的通知是模態的。過期後3天通知使用者已過期,引導更新,最後一天的通知也是模態的。
過期當天,Windows Defender會自動啟用,同時禁用原安全軟體。使用者更新原安全軟體或安裝一個新的安全軟體之後,Windows Defender才會失效(相容性考慮)。
4、Secure ETW Channel(安全ETW通道)
安全軟體為實現某些防護功能,常會Hook核心,來監視系統裡程式的各種行為。這種Hook方式容易產生相容性問題,會對系統核心穩定性造成負面影響。遇到核心更新,可能需要相應更新才能使功能繼續生效。
安全ETW通道,是Windows10的一個新安全特性,可擴充套件,可提供程式行為的實時資料。安全軟體的受保護程式,不需核心層Hook就可以監聽核心、安全、Win32事件。
5、Lockdown Mode和虛擬化安全
為了安全和管理,裝置可配置為僅允許受信軟體執行的模式。特別適用於財經、政府等安全要求高的行業,這個模式會在企業版和教育版SKU中提供。
啟用Lockdown模式,需要虛擬化特性支援Virtual Secure Mode(VT-d)、UEFI 2.4及更新的版本支援安全啟動、開啟UEFI安全啟動選項並禁止使用者修改。
基於虛擬化的KMCI(Kernel Mode Code Integrity),為防止一些核心Exploits,Hypervisor層可以執行簽名校驗檢查。Page只有在透過了校驗後才會被標記為可執行,動態分配的程式碼被阻止。
6、AMSI (Antimalware Scan Interface)
新增Win32 API,支援軟體整合已安裝的安全軟體掃描能力。當前支援對檔案、記憶體、流、URL、IP的檢查。
新增Provider介面IAntimalwareProvider提供安全相關服務。
7、WinRE Offline掃描
核心rootkit難以在受感染的系統內清除,當前的Offline掃描工具使用比較複雜。因此WSC給第三方AV提供了WinRE執行環境做掃描、清除。
優點是Offline清除Rootkit較容易,不再需要安全軟體自己建立Offline環境和使用所需的裝置(如CD、USB)。主要要求有,掃描模組需要WHQL簽名,相容WinRE環境,放置在WSC可讀取位置等。
0x02 微軟為什麼要開發新瀏覽器
IE的一些不好評價,尤其是安全性上的評價,已經直接在影響業界對微軟技術能力的評價,很多軟體公司甚至不願意開發與IE相容的軟體。事實上,由於IE瀏覽器在網頁響應速度、抵擋駭客或病毒攻擊、對最新技術的相容度、人性化瀏覽設定等方面一直存在缺陷,使得近年來軟體業圍繞瀏覽器的爭奪戰愈演愈烈。谷歌、火狐、360等中外軟體企業都開發出了自己的瀏覽器,並各自吸引了一批使用者,導致IE的市場份額持續下滑。
新的Spartan瀏覽器主打輕快安全特點,剛好對應IE的重慢不安全等不良因素,微軟計劃憑藉Spartan扭轉在瀏覽器市場的地位,同時塑造更好的企業形象。
全球瀏覽器市場份額一覽(時間點:2014年11月)。
統計方法不同導致市場份額有較大差異,但是不變的是IE的市場份額在持續下滑。
Spartan在這場角力中將扮演繼續沉淪還是逆襲的角色,讓我們拭目以待。
0x03 Spartan產品特性
1、取代IE
取代IE這是肯定的,正式版本將取代IE11的位置,被固定在工作列。
2、網頁標註
Spartan支援網頁標註,並且可以與其它Spartan使用者分享。這是要給瀏覽器帶上社交屬性了,但不得不說這是一種很好的分享途徑。
標註的結果可以存放在本地,也可以放到oneNote,前提是你安裝了oneNote(Windows預設整合),擁有這一個功能之後,你可以和別人分享你的標註結果。
3、閱讀模式
用過Chrome的擴充套件“印象筆記”的應該很熟悉這一應用,簡直就是逆天。開啟閱讀模式之後,瀏覽器透過摘要演算法提取當前頁面的正文內容之後,覆蓋原頁面新起一個視窗進行瀏覽,廣告,雜亂的資訊都沒了,只剩下乾淨的正文,大家可以透過下面的圖片對比體驗一下。
開啟閱讀模式之後。
4、全新的edge渲染引擎
拋棄IE的相容性包袱,跑得更加輕快,對網頁新特性支援得也更好,估計能更好的吸引Web開發者。另外值得稱道的是Edge引擎的介面(包括EdgeHtml.dll渲染引擎和Chakra.dll JS引擎)完全和IE的引擎一致(MsHtml.dll和jscript*.dll),因此實際上IE是可以直接使用Edge引擎的,實際上也確實可以的,目前Windows10上面的IE11是透過實驗功能提供的。在IE位址列輸入about:flags,然後將Enable Experimental Web Platform Features功能設定為已啟用,然後應用更改(要禁用設定為Disabled即可)。即上演替代大法,IE的渲染引擎就完全被Edge替代了。
從這裡也可以看出國內其它的IE核心瀏覽器(譬如QQ瀏覽器)要使用Edge引擎也是輕而易舉的。
5、網路模型
網路模型上沿用了IE11的最新架構,效率極高,IE11的成功給了Spartan很多借鑑。
HTTP請求使用了完成埠模型,並用系統高效執行緒池最佳化資料收發,每次收資料時,預收1K資料,合理控制收包數量。對HTTP Response也進行了解析最佳化,只認為第一個回包是HTTP頭,其它都是資料,顯然這是一個策略上合理改變,同時也提升瞭解析效率。
6、號稱將支援新的擴充套件
截至發文前Spartan瀏覽器還不支援擴充套件和外掛(現在還是Project Spartan呢)。微軟之前曾經號稱Spartan要相容Chrome的擴充套件,如果微軟真的能相容一部分Chrome的擴充套件,已經很不錯了。Chrome的擴充套件已經被證明是易開發,易使用的,而且不像Native外掛飽受漏洞的困擾。
0x04 Spartan安全特性
對於IE11已經啟用的安全特性,Spartan也是繼續延續的,希望能甩掉IE的不安全帽子,每月的補丁日都來個IE累積安全更新,一年還來一兩次IE緊急更新也是醉了。 下面我們瞭解下這些新的安全特性。
1、框架程式也執行在了AppContainer完整性許可權
完整性許可權並不是一個新東西。從已有一些瀏覽器的架構來說,框架程式一般都是Medium許可權,Spartan的做法是再次從系統層面降低了框架程式的許可權,框架程式執行在AppContainer完整性許可權的好處是整個瀏覽器訪問系統資源更加受限。在進行沙箱突破時也會更加困難,在突破Chrome的沙箱時,一種思路就是利用Chrome的框架程式和渲染程式的IPC通訊來進行突破,因為Chrome的框架程式的許可權還是Medium,許可權相對AppContainer來說高了幾個等級。
2、渲染程式(tabs)預設執行在EPM下
IE11一般情況下需要啟動EPM(增強保護模式)才能讓渲染程式執行在AppContainer許可權(進沙箱),預設進入顯然更加安全。
3、IE下的Toolbars、BHO等瀏覽器擴充套件都不再支援
減少攻擊平面,安全性更高。BHO等Native外掛本身可能沒有什麼漏洞,但是BHO使用的一些技術手段,譬如常用的detours等庫,因為本身有一些實現上的缺陷,導致漏洞利用變得容易,譬如detours修改了PE頭的可執行屬性,跳板程式碼放置在記憶體中的固定位置等等,直接不支援這些外掛,可能對外掛作者是一個打擊,但是對安全性來說顯然是更高的,不用再去考慮這些不可控的東西。
4、ActiveX控制元件受到更加嚴格的限制,許可權極低
ActiveX控制元件的泛濫嚴重影響著IE的安全,雖然一些ActiveX控制元件的漏洞嚴格來說不屬於瀏覽器的漏洞,但是嚴重影響著IE的口碑,看來Spartan是要在這塊下很手了。
5、禁用vbscript,減少攻擊利用手段,安全性更高
利用vbscript來繞過nozzle已經是比較成熟的技術,直接禁用vbscript則是從源頭上堵死了這種利用手段。2014年有一個神一般的漏洞被曝光,CVE-2014-6332,這個漏洞通殺IE3.0~IE11,破壞性可見一斑,這個漏洞本身並不是vbscript的漏洞,但是它利用vbscript的一些語言上的特性,關閉了vbscript的SafeMode模式(傳說中的開啟上帝模式),然後直接獲得系統許可權,不用繞什麼DEP,ASLR了,也不用佈置什麼精巧的shellcode,在IE裡面想幹啥就幹啥。
6、更完善的堆保護
在微軟沒有啟用記憶體保護機制之前,物件和字串都是從程式堆中分配的,對於UAF漏洞利用來說,一個物件被釋放後,可以分配同樣大小的字串,佔住之前物件的記憶體,由於字串可以隨意修改,因此可以修改物件的虛表,在這個物件再次被使用時,將會呼叫到我們修改後的虛表函式,實現漏洞利用。之後微軟啟用了隔離堆,物件在隔離堆中分配,字串在程式堆中分配,這樣使得物件被釋放後,不能用字串來佔坑修改。緩解UAF漏洞利用。
斯巴達中新增加了一種記憶體保護堆機制(MemProtectHeap),由chakra.dll自己管理記憶體分配,不再使用系統的堆機制。首先呼叫VirtualAlloc分配一大片記憶體,每次從中取一頁,從0開始依次分配。物件釋放時,只是簡單標記一下,並且清0。只有當一頁中所有物件被釋放時,這個頁才被釋放。這種管理機制的特點是記憶體申請非常快,並且難以佔坑,因為需要釋放一頁中所有的物件,並且要重新申請到這一頁。缺點也是顯而易見的,它的記憶體消耗很大,堆噴很方便,並且沒有隨機性。
7、CFG預設開啟
CFG(控制流保護),是對CFI(控制流完整性)的一個實用性實現。完全實現CFI需要在jmp、call 一個暫存器(或者使用暫存器間接定址)的時候,改寫目的地址內容,目的地址有時必須透過動態獲得,且改寫的開銷又很大,這些都給CFI的實際應用造成了一定的困難。但CFG使用一種相對比較巧妙的方法,降低了記憶體消耗和對系統的影響。
微軟在最新的作業系統Windows10當中,對基於執行流防護的實際應用中採用了CFG技術。它是一種編譯器和作業系統相結合的防護手段,目的在於防止不可信的間接呼叫。對基於虛表進行攻擊的利用手段可以有效防禦。
漏洞攻擊過程中,常見的利用手法是透過溢位覆蓋或者直接篡改某個暫存器的值,篡改間接呼叫的地址,進而控制了程式的執行流程。CFG透過在編譯和連結期間,記錄下所有的間接呼叫資訊,並把他們記錄在最終的可執行檔案中,並且在所有的間接呼叫之前插入額外的校驗,當間接呼叫的地址被篡改時,會觸發一個異常,作業系統介入處理。
8、沙箱
沙箱的發展歷史經歷了幾個階段,最開始的基於Hook的沙箱應該是最原始的應用,這種沙箱與系統容易產生相容性問題,維護不方便,基本上系統更新一次(甚至打一個補丁),就可能要更改實現,否則就有可能導致相容問題。
後來Chrome的沙箱沒有使用Hook的機制,而是儘量利用藉助系統的一些安全機制,透過控制許可權的方式來保護自己。這種沙箱機制已經在駭客大賽中被證明最難攻破,Spartan瀏覽器顯然借鑑了這一做法,而且做得更徹底,連框架程式也被包含在了整個安全體系裡面,透過利用系統安全機制,降低瀏覽器的程式許可權,限制它訪問資源的許可權,達到防攻擊的目的。
當然Spartan上面應用的安全特性遠遠不止上面這些,還有很多已經在IE11裡面實現,Spartan直接就沿用過來了,這裡就不再做過多解讀,有興趣的童鞋可以去看看隔離堆(反heapspay),記憶體延遲釋放(反UAF攻擊)等等安全知識。
電腦管家的網頁防火牆已經第一時間對Spartan瀏覽器進行安全支援,管家使用者可以安全瀏覽上網。
0x05 參考文件
(1] http://www.mydrivers.com/
(2] http://www.cnbeta.com/articles/381555.htm
(3] Living on the edge – our next step in helping the web just work ttp://blogs.msdn.com/b/ie/archive/2014/11/11/living-on-the-edge-our-next-step-in-interoperability.aspx
(4] Project Spartan and the Windows 10 January Preview Build http://blogs.msdn.com/b/ie/archive/2015/01/22/project-spartan-and-the-windows-10-january-preview-build.aspx
(5] http://www.199it.com/archives/261940.html
(6] 有關IE VB神洞CVE-2014-6332 http://blog.vulnhunt.com/index.php/2014/11/18/about_cve-2014-6332/
(7] 斯巴達瀏覽器 http://baike.baidu.com/item/%E6%96%AF%E5%B7%B4%E8%BE%BE%E6%B5%8F%E8%A7%88%E5%99%A8
相關文章
- 專訪 · 夸克瀏覽器技術團隊:極簡產品背後的技術美學2017-11-13瀏覽器
- oracle glodendate產品的公司簡介和特性2010-01-23Oracle
- 微軟能否憑Spartan瀏覽器扭轉局面?2015-03-31微軟瀏覽器
- IE團隊有問必答談 Spartan 瀏覽器2015-04-03瀏覽器
- 前端優化:瀏覽器快取技術介紹2018-09-08前端優化瀏覽器快取
- 瀏覽器的渲染原理簡介2017-06-01瀏覽器
- 瀏覽器與伺服器通訊技術——jsonp2019-05-23瀏覽器伺服器JSON
- 跨瀏覽器外掛技術2013-05-20瀏覽器
- 瀏覽器端繪圖技術SVG VML Canvas WebGL介紹2015-04-30瀏覽器繪圖SVGCanvasWeb
- RPA技術原理與RPA產品形態簡述2020-04-16
- 瀏覽器與伺服器通訊技術——跨域資源共享2019-05-22瀏覽器伺服器跨域
- 瀏覽器核心的種類簡單介紹2017-04-06瀏覽器
- [技術] CDM技術分析和產品選擇建議2018-04-02
- 瀏覽器核心介紹2020-12-09瀏覽器
- web3 產品介紹:metamask 錢包 使用最多的瀏覽器外掛錢包2023-04-20Web瀏覽器
- Web技術與PDM產品資料管理2019-01-09Web
- 瀏覽器渲染頁面過程簡單介紹2017-04-14瀏覽器
- 雙核心瀏覽器核心切換控制技術2018-06-19瀏覽器
- 瀏覽器特性檢測框架:MODERNIZR2010-03-27瀏覽器框架
- WebKit 瀏覽器內幕之 瀏覽器特性/網頁渲染過程2018-03-01WebKit瀏覽器網頁
- React與Redux整合技術簡介2018-05-17ReactRedux
- Hadoop家族產品學習線路圖和簡單產品介紹2017-03-02Hadoop
- 瀏覽器渲染簡述2019-03-04瀏覽器
- 主要門戶產品簡介2018-11-08
- vmware技術及產品2015-03-27
- 學習產品快報04 | CSDN瀏覽器助手:新增筆記功能2022-04-22瀏覽器筆記
- 瀏覽器fuzz框架介紹2020-08-19瀏覽器框架
- 通訊系統之TDM技術和FDM技術簡介2023-12-15
- 微軟介紹Edge瀏覽器新特性,支援筆記同步DROP等2023-04-26微軟瀏覽器筆記
- Edge瀏覽器的前世今生 史上最全Edge瀏覽器介紹2018-06-08瀏覽器
- 產品資料管理(PDM)技術與應用2019-01-18
- 【技術乾貨】瀏覽器工作原理和常見WEB攻擊(上)2016-06-21瀏覽器Web
- javascript for in語句瀏覽器相容問題簡單介紹2017-04-06JavaScript瀏覽器
- getBoundingClientRect()瀏覽器相容問題簡單介紹2017-04-06GCclient瀏覽器
- js獲取瀏覽器相關資訊簡單介紹2017-04-12JS瀏覽器
- 微信如何直接跳轉外部瀏覽器技術揭秘2019-09-19瀏覽器
- 客戶端(瀏覽器端)資料儲存技術概覽2017-03-09客戶端瀏覽器
- Chrome 瀏覽器 131 版本新特性2024-11-20Chrome瀏覽器