11.07.2015 Views

Improving Web Application Security: Threats and - CGISecurity

Improving Web Application Security: Threats and - CGISecurity

Improving Web Application Security: Threats and - CGISecurity

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

10 Part I: Introduction to <strong>Threats</strong> <strong>and</strong> CountermeasuresTable 1.3: <strong>Application</strong> Vulnerability CategoriesCategoryInput ValidationDescriptionHow do you know that the input that your application receives is valid <strong>and</strong>safe? Input validation refers to how your application filters, scrubs, orrejects input before additional processing.AuthenticationAuthorizationConfigurationManagementSensitive DataSession ManagementCryptographyParameter ManipulationException ManagementAuditing <strong>and</strong> Logging“Who are you?” Authentication is the process where an entity proves theidentity of another entity, typically through credentials, such as a username <strong>and</strong> password.“What can you do?” Authorization is how your application provides accesscontrols for resources <strong>and</strong> operations.Who does your application run as? Which databases does it connect to?How is your application administered? How are these settings secured?Configuration management refers to how your application h<strong>and</strong>les theseoperational issues.Sensitive data refers to how your application h<strong>and</strong>les any data that mustbe protected either in memory, over the wire, or in persistent stores.A session refers to a series of related interactions between a user <strong>and</strong>your <strong>Web</strong> application. Session management refers to how your applicationh<strong>and</strong>les <strong>and</strong> protects these interactions.How are you keeping secrets, secret (confidentiality)? How are youtamperproofing your data or libraries (integrity)? How are you providingseeds for r<strong>and</strong>om values that must be cryptographically strong?Cryptography refers to how your application enforces confidentiality <strong>and</strong>integrity.Form fields, query string arguments, <strong>and</strong> cookie values are frequentlyused as parameters for your application. Parameter manipulation refersto both how your application safeguards tampering of these values <strong>and</strong>how your application processes input parameters.When a method call in your application fails, what does your applicationdo? How much do you reveal? Do you return friendly error information toend users? Do you pass valuable exception information back to thecaller? Does your application fail gracefully?Who did what <strong>and</strong> when? Auditing <strong>and</strong> logging refer to how yourapplication records security-related events.

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

Saved successfully!

Ooh no, something went wrong!