Internet Explorer体系结构(14)

  

2. 徽章

徽章是位于地址栏组合框与地址栏导航控件之间的一个按钮。它用于向用户通知URL的安全状态(见图1-22)。

图1-22  不安全网站徽章

在单击徽章时,将出现一个弹出窗口,提供更多信息及上下文。图标、标题和弹出内容的颜色与内容都是变化的,具体取决于所传递消息的类型和紧急程度。IE的SSL、扩展验证SSL、国际性域名(IDN)欺骗保护,以及反钓鱼功能都共用这一信息构造。IE没有公开用于创建徽章或与徽章进行交互的API。

2. 整页通知

IE的安全体系结构为特定的安全性警告显示整页通知。例如,如果存在证书问题或者已知一个网页是恶意内容源,IE将会禁止显示该网页。图1-23显示了一个整页通知,当IE遇到一个过期或无效SSL证书时将会显示该通知。

图1-23  对一个存在问题的安全性证书显示整页通知

3.  保护模式和UAC对话框

在IE内运行的应用程序和扩展需要受保护模式和UAC约束条件的限制,它们是通过完整性控制和UIPI施加的。如果有对象尝试提升保护模式之外的进程、尝试拖放到保护模式之外,或者尝试执行任何其他危及沙盒完整性的操作,IE将会通过“保护模式”对话框征求用户的同意。如果应用程序尝试提升到高完整性(包括IE的高完整性级别代理),也会触发UAC提示。图1-24给出了使用中的保护模式和UAC对话框。

图1-24  Fiddler的“保护模式”对话框和ScriptX的UAC提示

除非关闭UAC系统,否则UAC提示对所有应用程序都是强制的,而“保护模式”对话框则是可以避免的:将进程名注册到Silent Elevation列表中即可。应用程序安装程序可以将进程名添加到IE的提升列表中(这是因为在首次安装该应用程序时,用户做出了信任决定)。

4. 状态栏入口点

IE使用一部分状态栏向用户传送一些安全信息,这些信息不会阻止其浏览器会话,也不需要马上执行操作。安全区域总是显示在状态栏中,保护模式的状态也是如此。除此之外,诸如“弹出窗口阻止程序”、InPrivate和“P3P cookie实现”等功能都使用状态栏向用户通知它们的操作。

1.7.2  应用程序完整性和浏览器防御

浏览器本身面临着受到攻击的风险,这些攻击利用缓冲区溢出、堆栈溢出,最终采用代码注入来危害浏览器与系统的完整性。IE针对这些场景实现了大量缓解措施,降低整体风险和攻击的影响。

1. 保护模式和区域

在本章前面讨论了保护模式与区域,以及它们在整个浏览器模型中的角色。从体系结构之外的角度来看,这些功能主要用于保护应用程序的安全性和数据的完整性。保护模式将不受信任的内容放在沙盒中,在Internet数据与用户配置文件数据之间设置一道明确的隔离带。区域与保护模式相结合,为不同的内容源提供经过精心设计的不同安全设置。

2. DEP/NX和ASLR

DEP/NX(“数据执行保护”和“不执行”)是应用程序的一个编译器选项,对于被标记为不可执行的内存部分中的数据,不予以执行任何操作。ASLR(地址空间布局随机化)强制一个进程的地址空间内容是随机的。随机化有助于防止攻击者猜测地址空间中特定命令或结构的位置,从而阻止执行或注入尝试。这样,诸如缓冲区溢出和堆损坏等常见安全漏洞都变得难以攻击。

所有IE的二进制文件在编译时都默认启用了ASLR;加载项应当设置/DYNAMICBASE链接器选项,以便为其二进制文件启用这一保护。在XP SP3,Vista SP1+,Win2K8,Windows 7和Win2K8R2等系统中,IE都默认选择了DEP/NX。因为DEP/NX是一个进程范围内的设置,所以位于该IE进程空间内的所有扩展在默认情况下都启用了DEP/NX保护。独立的可执行文件在编译时应当使用/NXCOMPAT链接器选项。

读书导航