27.01.2014 Views

NIST 800-44 Version 2 Guidelines on Securing Public Web Servers

NIST 800-44 Version 2 Guidelines on Securing Public Web Servers

NIST 800-44 Version 2 Guidelines on Securing Public Web Servers

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

GUIDELINES ON SECURING PUBLIC WEB SERVERS<br />

In theory, c<strong>on</strong>fining a scripting language to the boundaries of a <strong>Web</strong> browser should provide a relatively<br />

secure envir<strong>on</strong>ment. In practice, this has not been the case. Many attacks against browsers stem from the<br />

use of a scripting language in combinati<strong>on</strong> with exploitati<strong>on</strong> of a security vulnerability. The sources of<br />

most problems have been twofold: the prevalence of implementati<strong>on</strong> flaws in the executi<strong>on</strong> envir<strong>on</strong>ment<br />

and the close binding of the browser to other functi<strong>on</strong>ality, such as an e-mail client. Past exploits include<br />

sending a user’s URL history list to a remote site and using the mail address of the user to forge e-mails<br />

[<str<strong>on</strong>g>NIST</str<strong>on</strong>g>01]. Client-side JavaScript can also be read and analyzed by an attacker to identify possible<br />

vulnerabilities in the <strong>Web</strong> server.<br />

Adobe Flash is a browser plug-in for major <strong>Web</strong> browsers that provides support for improved animati<strong>on</strong><br />

and interactivity. Although plug-ins such as Flash allow browsers to support new types of c<strong>on</strong>tent, they<br />

are not active c<strong>on</strong>tent in and of themselves, but simply an active-c<strong>on</strong>tent-enabling technology. The Flash<br />

plug-in allows browsers to support vector and raster graphics, streaming audio and video, and<br />

Acti<strong>on</strong>Script, a programming language similar to JavaScript used to c<strong>on</strong>trol Flash animati<strong>on</strong>s. Several<br />

versi<strong>on</strong>s of Flash c<strong>on</strong>tain security flaws that allow remote code executi<strong>on</strong>, requiring users to apply<br />

patches to the plug-in.<br />

Adobe Shockwave is a browser plug-in similar to Adobe Flash but more robust. Shockwave provides a<br />

faster rendering engine and supports hardware-accelerated three-dimensi<strong>on</strong>al graphics, layered graphics,<br />

and network protocols. While Flash is widely used for <strong>Web</strong> animati<strong>on</strong>s and movies, Shockwave is<br />

comm<strong>on</strong>ly used for games. As with Flash, several versi<strong>on</strong>s of Shockwave c<strong>on</strong>tain security flaws that<br />

allow remote code executi<strong>on</strong>, requiring users to apply patches to the plug-in.<br />

AJAX is a collecti<strong>on</strong> of technologies that allows <strong>Web</strong> developers to improve the resp<strong>on</strong>se times between<br />

<strong>Web</strong> pages. JavaScript code communicates with the <strong>Web</strong> server and dynamically modifies the c<strong>on</strong>tents<br />

of the <strong>Web</strong> browser’s page without relying <strong>on</strong> the <strong>Web</strong> server to send a resp<strong>on</strong>se with the XML markup<br />

for the entire page. Instead, <strong>on</strong>ly the required porti<strong>on</strong> of the affected XML data is transmitted. AJAX<br />

allows <strong>Web</strong> c<strong>on</strong>tent to behave more like traditi<strong>on</strong>al applicati<strong>on</strong>s, while potentially reducing the load <strong>on</strong><br />

the <strong>Web</strong> server. However, a number of security c<strong>on</strong>cerns exist with AJAX:<br />

AJAX creates a larger attack surface than traditi<strong>on</strong>al <strong>Web</strong> applicati<strong>on</strong>s by increasing the number of<br />

points where a client interacts with the applicati<strong>on</strong>.<br />

AJAX may reveal details of internal functi<strong>on</strong>s within the <strong>Web</strong> applicati<strong>on</strong>.<br />

Some AJAX endpoints may not require authenticati<strong>on</strong> and instead rely <strong>on</strong> the current state of the<br />

applicati<strong>on</strong> [SPID06].<br />

Visual Basic Script (VBScript) is a programming language developed by Microsoft for creating scripts<br />

that can be embedded in <strong>Web</strong> pages for viewing with the Internet Explorer browser. However, other<br />

browsers do not necessarily support VBScript. Like JavaScript, VBScript is an interpreted language that<br />

can process client-side scripts. VBScript, which is a subset of the Microsoft Visual Basic programming<br />

language, works with Microsoft ActiveX c<strong>on</strong>trols. The language is similar to JavaScript and poses<br />

similar risks.<br />

ActiveX is a set of technologies from Microsoft that provide tools for linking desktop applicati<strong>on</strong>s to the<br />

<strong>Web</strong>. ActiveX c<strong>on</strong>trols are reusable comp<strong>on</strong>ent program objects that can be attached to e-mail or<br />

downloaded from a <strong>Web</strong> site. ActiveX c<strong>on</strong>trols also come preinstalled <strong>on</strong> Windows platforms. <strong>Web</strong><br />

pages invoke ActiveX c<strong>on</strong>trols using a scripting language or with an HTML OBJECT tag. ActiveX<br />

c<strong>on</strong>trols are compiled program objects, making them difficult to read and reverse engineer.<br />

6-11

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!