Attack surface
The attack surface of a software environment is the code within a computer system that can be run by unauthenticated users. This includes, but is not limited to: user input fields, protocols, interfaces, and services. OSSTMM 3 Defines Attack Surface as "The lack of specific separations and functional controls that exist for that vector". One approach to improving information security is to reduce the attack surface of a system or software. By turning off unnecessary functionality, there are fewer security risks. All code has a nonzero probability of containing vulnerabilities. By having less code available to unauthenticated users, there will tend to be fewer failures. Although attack surface reduction helps prevent security failures, it does not mitigate the amount of damage an attacker could inflict once a vulnerability is found.
Contents |
[edit] Measurement
Jon Pincus of Microsoft and Jeanette Wing of Carnegie Mellon University recommend measuring the attack surface of a product during development. By measuring and managing the size of the attack surface, a software product can be made more secure.
[edit] Reduction
The basic strategies of attack surface reduction are to reduce the amount of code running, reduce entry points available to untrusted users, and eliminate services requested by relatively few users.
[edit] See also
[edit] References
- "Security Tips: Minimizing the Code You Expose to Untrusted Users". msdn.microsoft.com. http://msdn.microsoft.com/en-us/magazine/cc163882.aspx. Retrieved 2009-09-03.
- "Attack Surface Measurement and Attack Surface Reduction". www.cs.cmu.edu. http://www.cs.cmu.edu/~pratyus/as.html#introduction. Retrieved 2009-09-03.
[edit] External links
| This software engineering-related article is a stub. You can help Wikipedia by expanding it. |
| This security software article is a stub. You can help Wikipedia by expanding it. |