·
- What is the Security Development Lifecycle ?
The Security Development Lifecycle (SDL) is a software development process that helps developers build more secure software and address security compliance requirements while reducing development cost.
YOU CAN READ SDLC in ->http://www.bitsa.in/2013/11/it2042-information-security-security.html
Training Phase
·
SDL Practice #1: Core Security Training
·
This practice is a prerequisite for implementing the SDL.
Foundational concepts for building better software include secure design,
threat modeling, secure coding, security testing, and best practices
surrounding privacy.
·
Requirements Phase
o
SDL Practice #2: Establish Security and Privacy Requirements
o
Defining and integrating security and privacy requirements early
helps make it easier to identify key milestones and deliverables and minimize
disruptions to plans and schedules.
o
SDL Practice #3: Create Quality Gates/Bug Bars
o
Defining minimum acceptable levels of security and privacy
quality at the start helps a team understand risks associated with security
issues, identify and fix security bugs during development, and apply the
standards throughout the entire project.
o
SDL Practice #4: Perform Security and Privacy Risk Assessments
o
Examining software design based on costs and regulatory
requirements helps a team identify which portions of a project will require
threat modeling and security design reviews before release and determine the
Privacy Impact Rating of a feature, product, or service.
Design Phase
o
SDL Practice #5: Establish Design Requirements
o
Considering security and privacy concerns early helps minimize
the risk of schedule disruptions and reduce a project's expense.
o
SDL Practice #6: Attack Surface Analysis/Reduction
o
Reducing the opportunities for attackers to exploit a potential
weak spot or vulnerability requires thoroughly analyzing overall attack surface
and includes disabling or restricting access to system services, applying the
principle of least privilege, and employing layered defenses wherever possible.
o
SDL Practice #7: Use Threat Modeling
o
Applying a structured approach to threat scenarios during design
helps a team more effectively and less expensively identify security
vulnerabilities, determine risks from those threats, and establish appropriate
mitigations.
o Implementation
Phase
§
SDL Practice #8: Use Approved Tools
§
Publishing a list of approved tools and associated security
checks (such as compiler/linker options and warnings) helps automate and
enforce security practices easily at a low cost. Keeping the list regularly
updated means the latest tool versions are used and allows inclusion of new
security analysis functionality and protections.
§
SDL Practice #9: Deprecate Unsafe Functions
§
Analyzing all project functions and APIs and banning those
determined to be unsafe helps reduce potential security bugs with very little
engineering cost. Specific actions include using header files, newer compilers,
or code scanning tools to check code for functions on the banned list, and then
replacing them with safer alternatives.
§
SDL Practice #10: Perform Static Analysis
§
Analyzing the source code prior to compile provides a scalable
method of security code review and helps ensure that secure coding policies are
being followed.
§ Verification
Phase
§
SDL Practice #11: Perform Dynamic Analysis
§
Performing run-time verification checks software functionality
using tools that monitor application behavior for memory corruption, user
privilege issues, and other critical security problems.
§
SDL Practice #12: Fuzz Testing
§
Inducing program failure by deliberately introducing malformed
or random data to an application helps reveal potential security issues prior
to release while requiring modest resource investment.
§
SDL Practice #13: Attack Surface Review
§
Reviewing attack surface measurement upon code completion helps
ensure that any design or implementation changes to an application or system
have been taken into account, and that any new attack vectors created as a
result of the changes have been reviewed and mitigated including threat models.
§ Release
Phase
§
SDL Practice #14: Create an Incident Response Plan
§
Preparing an Incident Response Plan is crucial for helping to
address new threats that can emerge over time. It includes identifying
appropriate security emergency contacts and establishing security servicing
plans for code inherited from other groups within the organization and for
licensed third-party code.
§
SDL Practice #15: Conduct Final Security Review
§
Deliberately reviewing all security activities that were
performed helps ensure software release readiness. The Final Security Review
(FSR) usually includes examining threat models, tools outputs, and performance
against the quality gates and bug bars defined during the Requirements Phase.
§
SDL Practice #16: Certify Release and Archive
§
Certifying software prior to a release helps ensure security and
privacy requirements were met. Archiving all pertinent data is essential for
performing post-release servicing tasks and helps lower the long-term costs
associated with sustained software engineering.
§ Response
Phase
§
SDL Practice #17: Execute Incident Response Plan
§
Being able to implement the Incident Response Plan instituted in
the Release phase is essential to helping protect customers from software
security or privacy vulnerabilities that emerge.
§
No comments:
Post a Comment