11.07.2015 Views

syssec_red_book

syssec_red_book

syssec_red_book

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4.5. State of the Artparts of critical infrastructures, such as power grids and traffic control systems,perhaps causing severe damage and potentially mass casualties. Threatsagainst critical infrastructures are further discussed in Chapter 6.Smaller-scale hostile acts could also be facilitated by the prevalence ofsoftware-controlled devices and equipment. Implantable medical devices [206]and cars [123] are two prominent examples.4.5 State of the ArtAfter decades of research and engineering aimed at dependable and securecomputing [88] with the broader aim of minimizing the undesirable effectsof software bugs, and consequently the potential threats stemming from theexploitation of software vulnerabilities, there is a vast amount of literature onthe subject [137,170,215,258,315,340,382]. In this section we briefly summarizedifferent broad areas of techniques that contribute towards lowering the risk ofsoftware vulnerabilities, especially in terms of their potential to be successfullyexploited. A more focused discussion of solutions directed against memorycorruption vulnerabilities is provided in Chapter 9.5.Numerous techniques seek to provide a proactive defense against futurethreats by eliminating or minimizing certain classes of vulnerabilities, orpreventing the manifestation of certain exploitation methods. Broad areasinclude programming language security features, code analysis techniques,confinement mechanisms, and diversification. Besides best security practicesand defensive programming, software hardening techniques include: staticsource code analysis for finding and eliminating certain classes of programmingflaws [387]; augmenting programs with runtime protections using compilerextensions [117, 136, 306], static binary instrumentation [297, 321], dynamicbinary instrumentation [125,235,299,325], or library interposition [96]; softwarefault isolation and sandboxing [196, 238]; and control flow integrity [76].At the operating system level, many different techniques aim to hinderthe exploitation of software vulnerabilities, including non-executablepages [151, 311], ASLR and code diversification [102, 102, 132, 183, 279, 308, 310],and instruction-set randomization [233, 233]. As additional protections usuallyincur significant runtime overhead, CPUs are constantly enhanced withsecurity features that facilitate the implementation of more lightweight solutions[184, 194, 245].In the field of web services and cloud-based applications, enhancementsand improvements in numerous system aspects, from the browser to the server,aim to improve the security of online interactions. Indicatively, different areasof focus include fundamental design choices of the web platform [98], specificshortcomings of browser implementations [97, 257], cross-site scripting(XSS) [201, 223, 293, 336, 345, 371], and more subtle complexities of web appli-31

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

Saved successfully!

Ooh no, something went wrong!