特权提升

特权提升（）是指利用操作系统或应用软件中的程序错误、设计缺陷或配置疏忽来取得对应用程序或用户来说受保护资源的高级访问权限。其结果是，应用程序可以取得比应用程序开发者或系统管理员预期的更高的，从而可以执行授權的动作。

背景 
大多数计算机系统的设计是面向着多个用户。表示用户被允许执行的操作。常见的特权包括查看、编辑或修改系统文件。

特权提升表示用户设法得到本不应该有的权限。这些权限可能用于删除文件、查看私人信息或者安装非法程序（如计算机病毒或恶意软件）等，也可能用来解除制造商或管理员的某些特殊限制。它的发生通常是因为系统存在一个允许绕过安全措施的程序错误，或者利用了设计上的缺陷。特权提升有两种形式：
 垂直特权提升，是通常所指的特权提升（privilege elevation），其中较低特权的用户或应用程序将能访问为较高特权用户或应用程序保留的功能或内容（例如，网上银行用户访问到网站管理功能，或者绕过密码认证措施）
 水平特权提升，指普通用户访问到本应不能访问的为其他普通用户保留的功能或内容（例如网上银行用户A访问了用户B的网上银行账户）

垂直特权提升 

当用户或进程取得比管理员或系统开发者预期的更高访问级别时，这种特权提升则已发生，这可能以执行内核级操作表现。

例子 
在某些范例中，高特权应用程序假定它只是提供与接口规范匹配的输入，并且不会验证输入。然后，攻击者可以利用这一假设，使未经授权的代码以应用程序的特权运行：
 有些Windows服务是配置为在Local System用户帐户下运行。诸如缓冲区溢出等隐患可能被用来执行特权提升，从而在本地系统级别执行任意代码。除此之外，如果模拟用户时的错误处理不正确（例如，用户引入一个恶意的错误处理程序），采用较低用户特权的系统服务也可能被提升用户特权。
 在部分旧版Microsoft Windows操作系统中，All Users的屏幕保护程序在Local System帐户下运行——任何帐户都可以替换文件系统中或注册表中的当前屏幕保护程序的執行檔，从而提升特权。
 在特定版本的Linux内核中，可以编写一个将当前目录设置为/etc/cron.d的程序，然后设法使当前应用被另一个进程kill并产生一个核心转储。核心转储文件被放置到程序的当前目录，即/etc/cron.d，然后cron将会视它为一个文本文件并按它的指示运行程序。因为该文件的内容可能受到攻击者的控制，因而攻击者将能以root特权执行任意程序。
 是一种特权提升攻击，其中网站击破了网页浏览器的安全模型，从而可以在客户端的计算机上运行恶意代码。
 还有一种情况是，应用程序可能使用其他高特权服务，并对客户端操控这些服务的用法有着不正确的假设。如果应用程序使用未经检查的输入作为执行的一部分，则它可能出现代碼注入问题，从而执行用户提供的命令行或shell命令。攻击者因而可以使用应用程序的权限运行系统命令。 
 德州仪器计算器（特别是TI-85和TI-82）最初被设计为仅解释以TI-BASIC的方言编写的程序。但是，在用户发现可利用漏洞允许在计算器硬件上执行Z-80代码后，TI发布了编程数据以支持第三方开发。（此做法并未延伸到基于ARM架構的，在使用的越狱方法被发现后，此做法仍被德州仪器积极打击。）
 部分iPhone版本允许未授权的用户在已锁定时访问手机。

越狱 
越狱（jailbreak）是用于在类UNIX操作系统中击破chroot或jail的限制或绕过数字版权管理（DRM）的行为或工具。在前一种情况下，它允许用户查看管理员计划给应用程序或用户使用的文件系统部分之外的文件。在DRM情况下，这将允许用户在具有DRM的设备上运行任意代码，以及突破类似chroot的限制。该术语起源于iPhone/iOS越狱社区，并也被用于PlayStation Portable破解的术语。这些设备已一再遭到越狱从而为执行任意代码，供应商的更新则在封堵这些越狱途径。

iOS系统（包括iPhone、iPad和iPod touch）自发布以来都受到过越獄的尝试，并在随着每个固件更新而修正与跟进。iOS越狱工具包含选项来安装Cydia——一个第三方的App Store，作为查找和安装系统修改器和二进制文件的一种方式。为防止iOS越狱，苹果公司已对设备的啟動程式采用执行检查，从而禁止上传自定义内核，并防止将软件降级到较早的可越狱固件。在未受限制的越狱中，iBoot环境被更改为执行一个boot ROM漏洞，并允许提交对底层bootloader的补丁，或者hack内核以在SHSH检查后转交给越狱内核。

一种类似的越狱方法也存在于S60平台的智能手机，它涉及到在内存或已编辑固件（类似于PlayStation Portable的M33破解固件）中给已加载的特定ROM文件安装式补丁来规避对未签名代码的限制。诺基亚发布了更新以遏制未经授权的越狱，方式与苹果公司类似。

在游戏主机上，越狱经常用于执行。在2011年，索尼在律师事务所的协助下起诉了21岁的乔治·霍兹以及为PlayStation 3越狱的fail0verflow小组的成员（见、George Hotz和）。

缓解措施 
操作系统和用户可以使用以下策略降低特权提升的风险：
 数据执行保护
 位址空間配置隨機載入（使缓冲区溢出更难在内存中找到已知地址来执行特权指令）
 运行的应用程序采用最小权限原则（例如不使用管理员SID运行Internet Explorer）从而减少缓冲区溢出exploits滥用高级用户特权的可能性。
 要求核心模式的「程式碼簽章」（Code signing）。
 使用最新的杀毒软件
 打补丁
 使用防止缓冲区溢出的編譯器
 软件和固件的加密。
 使用具备强制访问控制的操作系统，例如SE Linux

水平特权提升 
当应用程序允许攻击者访问通常受到应用程序或用户保护的资源时，则发生了水平特权提升。其结果是，应用程序执行的操作与之相同，但使用或得到了与应用程序开发者或系统管理员预期不同的安全上下文；这是一种有限程度的特权提升（具体来说，未经授权地模仿了其他用户）。

例子 
这个问题经常发生在网络应用程序中。考虑下列例子：
 用户A可以在网上银行应用中访问自己的银行账户。
 用户B可以在同一个网上银行应用中访问自己的银行账户。
 当用户A通过某种恶意行为能访问用户B的银行账户时，则发生了此问题。
由于常见的Web应用程序弱点或漏洞，这种恶意活动经常出现。

可能导致此问题的潜在Web应用程序漏洞或情况包括：
 用户的HTTP Cookie中可预测的
 
 跨網站指令碼
 容易猜到的密碼
 盗取或劫持会话Cookie
 键盘监听

参见 
 防御性编程
 
 
 最小权限原则
 
 特权分离
 Root (Android)
 Rowhammer

参考资料 

保全漏洞
操作系统安全