CLASP Best Practices

Institute awareness programs
Essential security concepts and techniques may be foreign to your organization’s software developers and others involved in application development and deployment. So it is imperative at the outset to educate everyone involved. It is critical that project managers — as the driving force behind most application development or upgrade projects — consider security to be an important project goal, both through training and accountability. Awareness programs can be readily implemented, using external expert resources, as appropriate, and deliver a high return by helping to ensure that other activities promoting secure software will be implemented effectively.

Perform application assessments
While it’s true that you cannot test security into an application, application testing and assessments should still be a central component of your overall security strategy. Assessments — particularly automated tests — can find security problems not detected during code or implementation reviews, find security risks introduced by the operational environment, and act as a defense-in-depth mechanism by catching failures in design, specification or implementation. Test and assessment functions are typically owned by a test analyst or by the QA organization but can span the entire life cycle.

Capture security requirements
Ensure that security requirements have the same level of “citizenship” as all other “must haves.” It’s easy for application architects and project managers to focus on functionality when defining requirements, since they support the greater purpose of the application to deliver value to the organization. Security considerations can easily go by the wayside. So it is crucial that security requirements be an explicit part of any application development effort. Among the factors to be considered:
 * An understanding of how applications will be used, and how they might be misused or attacked.
 * The assets (data and services) that the application will access or provide, and what level of protection is appropriate given your organization’s appetite for risk, regulations you are subject to, and the potential impact on your reputation should an application be exploited.
 * The architecture of the application and probable attack vectors.
 * Potential compensating controls, and their cost and effectiveness.

Implement secure development practices
Defined security activities, artifacts, guidelines and continuous reinforcement should become part of your organization’s overall culture.

Build vulnerability remediation procedures
It is especially important in the context of application updates and enhancements to define which steps will be taken to identify, assess, prioritize and remediate vulnerabilities.

Define and monitor metrics
You cannot manage what you cannot measure. Unfortunately, implementing an effective metrics monitoring effort can be a difficult undertaking. Despite this, metrics are an essential element of your overall application security effort. They are crucial in assessing the current security posture of your organization, help focus attention on the most critical vulnerabilities, and reveal how well — or poorly — your investments in improved security are performing.

Publish operational security guidelines
Security does not end when an application is completed and deployed in a production environment. Making the most out of existing network and operational security investments requires that you inform and educate those tasked with monitoring and managing the security of running systems with advice and guidance on the security requirements your application demands, and how best to make use of the capabilities you’ve built into your application.