特權提升(英語: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).