特權提升

特權提升(英語:Privilege escalation)是指利用操作系統應用軟件中的程序錯誤、設計缺陷或配置疏忽來取得對應用程序或用戶來說受保護資源的高級訪問權限。其結果是,應用程序可以取得比應用程序開發者系統管理員預期的更高的特權英語Privilege (computing),從而可以執行授權的動作。

一個描繪特權提升的圖表。箭頭代表一個rootkit訪問內核的路徑。小門表示正常的特權提升,用戶必須證實為管理員才能穿越它。

背景

大多數計算機系統的設計是面向着多個用戶。特權英語Privilege (computing)表示用戶被允許執行的操作。常見的特權包括查看、編輯或修改系統文件。

特權提升表示用戶設法得到本不應該有的權限。這些權限可能用於刪除文件、查看私人信息或者安裝非法程序(如計算機病毒惡意軟件)等,也可能用來解除製造商或管理員的某些特殊限制。它的發生通常是因為系統存在一個允許繞過安全措施的程序錯誤,或者利用了設計上的缺陷。特權提升有兩種形式:

  • 垂直特權提升,是通常所指的特權提升(privilege elevation),其中較低特權的用戶或應用程序將能訪問為較高特權用戶或應用程序保留的功能或內容(例如,網上銀行用戶訪問到網站管理功能,或者繞過密碼認證措施)
  • 水平特權提升,指普通用戶訪問到本應不能訪問的為其他普通用戶保留的功能或內容(例如網上銀行用戶A訪問了用戶B的網上銀行賬戶)

垂直特權提升

 
x86保護模式下的特權環

當用戶或進程取得比管理員或系統開發者預期的更高訪問級別時,這種特權提升則已發生,這可能以執行內核級操作表現。

例子

在某些範例中,高特權應用程序假定它只是提供與接口規範匹配的輸入,並且不會驗證輸入。然後,攻擊者可以利用這一假設,使未經授權的代碼以應用程序的特權運行:

  • 有些Windows服務是配置為在Local System用戶帳戶下運行。諸如緩衝區溢出等隱患可能被用來執行特權提升,從而在本地系統級別執行任意代碼。除此之外,如果模擬用戶時的錯誤處理不正確(例如,用戶引入一個惡意的錯誤處理程序),採用較低用戶特權的系統服務也可能被提升用戶特權。
  • 在部分舊版Microsoft Windows操作系統中,All Users的屏幕保護程序在Local System帳戶下運行——任何帳戶都可以替換文件系統中或註冊表中的當前屏幕保護程序的執行檔,從而提升特權。
  • 在特定版本的Linux內核中,可以編寫一個將當前目錄設置為/etc/cron.d的程序,然後設法使當前應用被另一個進程kill並產生一個核心轉儲。核心轉儲文件被放置到程序的當前目錄,即/etc/cron.d,然後cron將會視它為一個文本文件並按它的指示運行程序。因為該文件的內容可能受到攻擊者的控制,因而攻擊者將能以root特權執行任意程序。
  • 跨區域腳本英語Cross Zone Scripting是一種特權提升攻擊,其中網站擊破了網頁瀏覽器的安全模型,從而可以在客戶端的計算機上運行惡意代碼。
  • 還有一種情況是,應用程序可能使用其他高特權服務,並對客戶端操控這些服務的用法有着不正確的假設。如果應用程序使用未經檢查的輸入作為執行的一部分,則它可能出現代碼注入問題,從而執行用戶提供的命令行shell命令。攻擊者因而可以使用應用程序的權限運行系統命令。
  • 德州儀器計算器(特別是TI-85TI-82)最初被設計為僅解釋以TI-BASIC的方言編寫的程序。但是,在用戶發現可利用漏洞允許在計算器硬件上執行Z-80代碼後,TI發布了編程數據以支持第三方開發。(此做法並未延伸到基於ARM架構TI-Nspire英語TI-Nspire,在使用Ndless英語TI-Nspire series#Ndless的越獄方法被發現後,此做法仍被德州儀器積極打擊。)
  • 部分iPhone版本允許未授權的用戶在已鎖定時訪問手機。[1]

越獄

越獄jailbreak)是用於在類UNIX操作系統中擊破chrootjail[2]的限制或繞過數字版權管理(DRM)的行為或工具。在前一種情況下,它允許用戶查看管理員計劃給應用程序或用戶使用的文件系統部分之外的文件。在DRM情況下,這將允許用戶在具有DRM的設備上運行任意代碼,以及突破類似chroot的限制。該術語起源於iPhone/iOS越獄社區,並也被用於PlayStation Portable破解的術語。這些設備已一再遭到越獄從而為執行任意代碼,供應商的更新則在封堵這些越獄途徑。

iOS系統(包括iPhoneiPadiPod touch)自發布以來都受到過越獄的嘗試,並在隨着每個固件更新而修正與跟進。[3][4]iOS越獄工具包含選項來安裝Cydia——一個第三方的App Store,作為查找和安裝系統修改器和二進制文件的一種方式。為防止iOS越獄,蘋果公司已對設備的啟動程式採用SHSH blob英語SHSH blob執行檢查,從而禁止上傳自定義內核,並防止將軟件降級到較早的可越獄固件。在未受限制的越獄中,iBoot環境被更改為執行一個boot ROM漏洞,並允許提交對底層bootloader的補丁,或者hack內核以在SHSH檢查後轉交給越獄內核。

一種類似的越獄方法也存在於S60平台的智能手機,它涉及到在內存[5][6]或已編輯固件(類似於PlayStation Portable的M33破解固件)中給已加載的特定ROM文件安裝softmod英語softmod式補丁[7]來規避對未簽名代碼的限制。諾基亞發布了更新以遏制未經授權的越獄,方式與蘋果公司類似。

在遊戲主機上,越獄經常用於執行自製遊戲英語Homebrew (video games)。在2011年,索尼Kilpatrick Stockton英語Kilpatrick Stockton律師事務所的協助下起訴了21歲的喬治·霍茲以及為PlayStation 3越獄的fail0verflow小組的成員(見Sony Computer Entertainment America v.英語Sony Computer Entertainment America v. George HotzGeorge HotzPlayStation越獄英語PlayStation Jailbreak)。

緩解措施

操作系統和用戶可以使用以下策略降低特權提升的風險:

水平特權提升

當應用程序允許攻擊者訪問通常受到應用程序或用戶保護的資源時,則發生了水平特權提升。其結果是,應用程序執行的操作與之相同,但使用或得到了與應用程序開發者系統管理員預期不同的安全上下文;這是一種有限程度的特權提升(具體來說,未經授權地模仿了其他用戶)。

例子

這個問題經常發生在網絡應用程序中。考慮下列例子:

  • 用戶A可以在網上銀行應用中訪問自己的銀行賬戶。
  • 用戶B可以在同一個網上銀行應用中訪問自己的銀行賬戶。
  • 當用戶A通過某種惡意行為能訪問用戶B的銀行賬戶時,則發生了此問題。

由於常見的Web應用程序弱點或漏洞,這種惡意活動經常出現。

可能導致此問題的潛在Web應用程序漏洞或情況包括:

參見

參考資料

  1. ^ Taimur Asad. Apple Acknowledges iOS 4.1 Security Flaw. Will Fix it in November with iOS 4.2. RedmondPie. October 27, 2010 [2017-03-29]. (原始內容存檔於2013-04-17). 
  2. ^ Peikar, Cyrus. Security Warrior. O'Reilly Media. 2004-01-12: 304 [2014-08-19]. ISBN 9780596552398. (原始內容存檔於2016-12-02). 
  3. ^ James Quintana Pearce, Apple's Disagreement With Orange, IPhone Hackers, paidContent.org, 2007-09-27 [2011-11-25], (原始內容存檔於2012年7月29日) 
  4. ^ Reports: Next iPhone update will break third-party apps, bust unlocks頁面存檔備份,存於網際網路檔案館ComputerWorld on v1.1.3
  5. ^ Phat^Trance. Announcement: Forum down for maintaining. Feb 16, 2010 [August 30, 2016]. (原始內容存檔於2009年3月3日). Just wanted to let you guys know that the forum is down for maintaining. It will be back online in a day or so (i kinda messed up the config files and need to restore one day old backup, so i thought why not update the entire server platform) 
  6. ^ HelloOX 1.03: one step hack for Symbian S60 3rd ed. phones, and for Nokia 5800 XpressMusic too. [2017-03-29]. (原始內容存檔於2020-08-07). 
  7. ^ Bypass Symbian Signed & Install UnSigned SISX/J2ME Midlets on Nokia S60 v3 with Full System Permissions. [2017-03-29]. (原始內容存檔於2016-09-11). 
  8. ^ Microsoft Minimizes Threat of Buffer Overruns, Builds Trustworthy Applications. Microsoft. September 2005 [2008-08-04]. 
  9. ^ Smalley, Stephen. Laying a Secure Foundation for Mobile Devices (PDF). [7 March 2014]. (原始內容存檔 (PDF)於2017-08-28).