Morgan State University Secure Software Design Discussion Using the table as a guide, conduct research on the general principles in order to expand the exi

Morgan State University Secure Software Design Discussion Using the table as a guide, conduct research on the general principles in order to expand the existing
information with more specific examples and practices. You need to dig deep to understand beyond the
surface to the point where you can provide specific implementation details where possible.
Provide discussion on 3 of the “General Principles” and 5 out of the 14 “Key Practices”
benefits/examples. You should expand upon what is in the table. (i.e. don’t use examples from table
verbatim). Pick an assortment of Key Practices at least 1 from each General Principle. Your report
should be well-organized and provide references for all resources used.
Deliverable
You should create a word or PDF document with your report on secure software design guiding
principles. The document should be well-written and include references for all sources you used
support your work. Project: Secure Software Design
Overview
This assignment will allow you to demonstrate your understanding of guiding principles in secure
software design.
Assignment Details
Secure Software Design Principles are found in the Architecture and Design Pocket guide that was part
of this week’s readings. In this document, table 1 provides guidance for enhancing the development Life
Cycle to Produce Secure Software.
Using the table as a guide, conduct research on the general principles in order to expand the existing
information with more specific examples and practices. You need to dig deep to understand beyond the
surface to the point where you can provide specific implementation details where possible.
Provide discussion on 3 of the “General Principles” and 5 out of the 14 “Key Practices”
benefits/examples. You should expand upon what is in the table. (i.e. don’t use examples from table
verbatim). Pick an assortment of Key Practices at least 1 from each General Principle. Your report
should be well-organized and provide references for all resources used.
Deliverable
You should create a word or PDF document with your report on secure software design guiding
principles. The document should be well-written and include references for all sources you used
support your work. Be sure to include your name, date and course number on the document in the title
page. Page numbers should be included on each page of the document.
Grading Rubric
Attribute
Meets
Does not meet
Secure Design
80 points
Expands the existing design
information with more specific
examples and practices.
0 points
Does not expand the existing design
information with more specific
examples and practices.
Provides specific implementation
details.
Does not provide specific
implementation details.
Discusses 3 of the general design
principle and provides benefits and
expanded examples on 5 key
practices.
20 points
Document contains minimal
spelling and grammar errors.
Does not discuss 3 of the general
design principle or provide benefits
and expanded examples on 5 key
practices.
0 points
Document contains multiple
spelling and grammar errors.
Documentation
Document includes page numbers.
Document does not include page
numbers.
1
References included using APA
style.
Title page includes Name, date
and course number.
References were not included.
Title page missing or did not
include name, date and course
number.
2
Architecture and Design Considerations
for Secure Software
SoftwareAssurancePocket Guide Series:
Development, VolumeV
Version2.0, May 18, 2012
Software Assurance (SwA) Pocket Guide Resources
This is a resource for ‘getting started’ in selecting and adopting relevant practices for delivering secure software. As part of the
Software Assurance (SwA) Pocket Guide series, this resource is offered as informative use only; it is not intended as directive or
comprehensive. Rather it references and summarizes material in the source documents that provide detailed information. When
referencing any part of this document, please provide proper attribution and reference the source documents, when applicable.
This volume of the SwA Pocket Guide series focuses on the practices and knowledge required to establish the architecture and
high-level design for secure software during the Software Development Life Cycle (SDLC). It addresses design aspects such as
threat modeling, misuse/abuse cases, and secure design patterns. The pocket guide covers design aspects of specific
technologies such as mobile applications, databases, embedded systems, and web applications. It addresses formal methods
and architectural design, principles for the design of secure software, and criteria for design review and verification. It describes
key architecture and design practices for mitigating exploitable software weaknesses. Questions are offered for managers, in
development and procurement, to aid in understanding whether the software development team has performed requisite
practices to ensure the architecture and design sufficiently contributes toward the development of secure software.
At the back of this pocket guide are references, limitation statements, and a listing of topics addressed in the SwA Pocket Guide
series. All SwA Pocket Guides and SwA-related documents are freely available for download via the SwA Community
Resources and Information Clearinghouse at https://buildsecurityin.us-cert.gov/swa .
Acknowledgements
The SwA Forum and Working Groups function as a stakeholder mega-community that welcomes additional participation in
advancing software security and refining SwA-related information resources that are offered free for public use. Input to all SwA
resources is encouraged. Please contact Software.Assurance@dhs.gov for comments and inquiries. For the most up to date
pocket guides, check the website at https://buildsecurityin.us-cert.gov/swa/.
The SwA Forum is a multi-disciplinary community composed of members of the government, industry, and academia. Meeting
quarterly in SwA Forum and Working Groups, the community focuses on incorporating SwA considerations in acquisition and
development processes relative to potential risk exposures that could be introduced by software and the software supply chain.
1
Software Assurance Pocket Guide Series:
Development, Volume V – Version 2.0, May 18, 2012
Participants in the SwA Forum’s Processes & Practices Working Group collaborated with the Technology& Tools Working Group
in developing the material used in this pocket guide with a goal of raising awareness on how to incorporate SwA throughout the
Software Development Life Cycle (SDLC).
Information contained in this pocket guide comes primarily from the documents listed in the Resource boxes that appear
throughout this pocket guide.
Special thanks to the Department of Homeland Security (DHS) National Cyber Security Division’s Software Assurance team,
Robert Seacord, and Dan Cornell; who provided much of the support to enable the successful completion of this guide and
related SwA documents.
Resources
»
“Software Security Assurance: A State-of-the-Art Report”(SOAR), Goertzel, Karen Mercedes, et al.,
Information Assurance Technology Analysis Center (IATAC) of the DTIC. 31 July 2007.
.
»
“Guide to the Software Engineering Body of Knowledge (SWEBOK).” IEEE Computer Society, 2004.
.
»
“Microsoft Security Development Lifecycle (SDL) – Process Guidance.” Microsoft Developer Network
(MSDN), .
»
“The Ten Best Practices for Secure Software Development”, Mano Paul, (ISC)2,
.
Architecture and Design Considerations for Secure Software
2
Overview
The Guide to the Software Engineering Body of Knowledge (SWEBOK) defines the design phase as both “the process of
defining the architecture, components, interfaces, and other characteristics of a system or component” and “the result of [that]
process.” The software design phase is the software engineering life cycle activity where software requirements are analyzed in
order to produce a description of the software’s internal structure, which will be served as the basis for the software’s
implementation.
The software design phase consists of the architectural design and detailed design activities in the Software Development Life
Cycle (SDLC). In the Waterfall model, these activities follow the software requirements analysis phase and precedes the
implementation phase. However, the concepts presented in this pocket guide can be applied regardless of the development
methodology employed. In any event, the practices and recommendations should be tailored to the realities of how the software
is built.
Table of Contents
BASIC CONCEPTS …………………………………………………………………………………………………………………………………. 4
MODELING FROM THE ATTACKER’S PERSPECTIVE …………………………………………………………………………………….. 5
DESIGN PRINCIPLES FOR SECURE SOFTWARE …………………………………………………………………………………………… 9
SECURE DESIGN PATTERNS …………………………………………………………………………………………………………………. 13
ARCHITECTURAL-LEVEL PATTERNS ……………………………………………………………………………………………………………………14
DESIGN-LEVEL PATTERNS ……………………………………………………………………………………………………………………………..15
SECURE ARCHITECTURE AND DESIGN OF WEB APPLICATIONS…………………………………………………………………… 17
SECURING THE WEB APPLICATION …………………………………………………………………………………………………………………..17
PROPER SERVER CONFIGURATIONS ………………………………………………………………………………………………………………….18
SECURE SESSION MANAGEMENT …………………………………………………………………………………………………………………….18
TRANSPORT LAYER PROTECTION ……………………………………………………………………………………………………………………..19
SECURING THE PASSWORD PROCESS ………………………………………………………………………………………………………………..20
PREVENTING CONTENT INJECTION …………………………………………………………………………………………………………………..20
EMBEDDED SYSTEMS SECURITY …………………………………………………………………………………………………………… 22
SECURE EMBEDDED DESIGN ………………………………………………………………………………………………………………………….22
MULTIPLE INDEPENDENT LEVELS OF SECURITY/SAFETY (MILS) …………………………………………………………………………………23
DATABASE SECURITY………………………………………………………………………………………………………………………….. 24
MOBILE APPLICATIONS ………………………………………………………………………………………………………………………. 25
MOBILE RISKS…………………………………………………………………………………………………………………………………………..26
FORMAL METHODS AND ARCHITECTURAL DESIGN …………………………………………………………………………………. 28
DESIGN REVIEW AND VERIFICATION …………………………………………………………………………………………………….. 30
KEY ARCHITECTURE AND DESIGN PRACTICES FOR MITIGATING EXPLOITABLE SOFTWARE WEAKNESSES …………. 31
QUESTIONS TO ASK DEVELOPERS…………………………………………………………………………………………………………. 33
CONCLUSION ……………………………………………………………………………………………………………………………………. 34
3
Software Assurance Pocket Guide Series:
Development, Volume V – Version 2.0, May 18, 2012
Basic Concepts
Software architectural design, also
known as top-level design, describes the
software’s structure, organization, and
components. The architectural design
allocates requirements to components
identified in the design phase. Architecture
describes components at an abstract level,
leaving their implementation details
unspecified. Some components may be
modeled, prototyped, or elaborated at
lower levels of abstraction. Top-level
design activities include the design of
interfaces among components in the
architecture and can also include database
design. Artifacts produced during the
architectural design phase can include:
Figure 1 – Architecture Design With Assurance Activities
»
Models, prototypes, simulations,
and their related documentation;
»
Preliminary user’s manual;
»
Preliminary test requirements;
»
Documentation of feasibility; and
»
Documentation of the traceability
of requirements to the architecture design.
Software detailed design consists of describing each component sufficiently to allow for its implementation. Detailed design
activities define data structures, algorithms, and control information for each component in a software system. The State-of-theArt Report (SOAR) Figure 1 (modified for this guide) illustrates the architectural and detailed design phases as they would be
implemented for a standard software life cycle depicted in IEEE Standard 1074-2006 with security assurance activities and
artifacts included. Figure 1 can be modified to represent non-Waterfall software life cycles accordingly.
Each input depicted should include specific attention to security goals. To decrease the number of design vulnerabilities, special
attention should be devoted to security issues captured during threat modeling, requirements analyses, and early architecture
phases. In general, a design vulnerability is a flaw in a software system’s architecture, specification, or high-level or low-level
design that results from a fundamental mistake or oversight in the design phase. These types of flaws often occur because of
incorrect assumptions made about the run-time environment or risk exposure that the system will encounter during deployment.
In his article “Lessons Learned from Five Years of Building More Secure Software,” Michael Howard makes the point that many
software security vulnerabilities are not coding issues but design issues. When one is exclusively focused on finding security
issues in code, one risks missing out on entire classes of vulnerabilities. Some security issues, not syntactic or code related
(such as business logic flaws), cannot be detected in code and need to be identified by performing threat models and abuse case
modeling during the design stage of the SDLC.
The best time to influence a project’s security design is early in its life cycle. Functional specifications may need to describe
security features or privacy features that are directly exposed to users, such as requiring user authentication to access specific
data or user consent before use of a high privacy-risk feature. Design specifications should describe how to implement these
features and how to implement all functionality as secure features. Secure features are defined as features with functionality that
are well engineered with respect to security, such as rigorously validating all data before processing it or using of robust
cryptographic APIs. It is important to consider security issues carefully and early when you design features and to avoid
attempts to add security and privacy near the end of a project’s development.
Architecture and Design Considerations for Secure Software
4
Enterprise architecture (EA) and enterprise security is not directly addressed in this pocket guide. However, the perspective
is valuable in that it permits organizations to invest in security solutions that protect the entire enterprise, while allocating costs
and controls where they are most needed as determined by the enterprise. For example, the Federal Enterprise Architecture
Security and Privacy Profile provides a publicly accessible perspective on the role of security across the enterprise. Security and
privacy architecture reference models promote enterprise-wide interoperability and help standardize and consolidate security and
privacy capabilities. Layering security and privacy over organization performance objectives, business processes, servicecomponents, technologies, and data helps ensure that each aspect of the business receives appropriate security and privacy
attention. Establishing a common methodology requires “the coordinated efforts of business leaders and functional domain
experts, including security, privacy, enterprise architecture, and capital planning.” EA encourages the incorporation of diverse
stakeholders, “such as representatives of the acquisitions, contracts, and legal departments.” Inclusion of security in the process
of business transformation will promote effective and economical security solutions that are appropriate to the risk appetite of the
business units.
Resources
»
“Software Security Assurance: A State-of-the-Art Report” (SOAR). Goertzel, Karen Mercedes, et al.,
Information Assurance Technology Analysis Center (IATAC) of the DTIC, 31 July 2007.
.
»
“IEEE Standard for Developing a Software Project Life Cycle Process.” IEEE Computer Society,
.
»
“Lessons Learned from Five Years of Building More Secure Software”, Michael Howard, Microsoft
Developer Network (MSDN), November 2007. .
»
“Federal Enterprise Architecture Security and Privacy Profile.” Federal Enterprise Architecture of the
United States Government (FEA), September 2010. .
Modeling From the Attacker’s Perspective
Unified Markup Language (UML), developed by the Object Management Group (OMG), is a widely-used specification for
modeling software. UML provides the ability to describe the software architecture using various types of diagrams. UML
diagrams describe application states, information flow, components interaction, and more. UML is quite complex, so explaining it
in depth is beyond the scope of this pocket guide. Nevertheless, brief descriptions of some of the diagrams available in UML are
provided. For additional information, visit the UML resource page or consult one of the multiple books available on the subject.
Use case diagrams describe an application in action. The emphasis is on what a system does rather than how. Use cases can
be represented either in text or graphics, and there is no restriction on what the use case diagrams should include or look like.
A Class diagram gives an overview of a system by showing its classes (i.e., basic concepts which each comprise a defined
state and attendant behavior) and the relationships among them. It lays out how an application is modeled, how classes interact
with each other, and the relationships between modules for an Object-Oriented design.
A Component diagram describes the relationship of system components (software modules) and depicts the component
interfaces. Examples of components include data bases, web applications, etc.
Other modeling diagrams include:
5
»
Object diagrams,
»
Sequence diagrams,
Software Assurance Pocket Guide Series:
Development, Volume V – Version 2.0, May 18, 2012
»
Collaboration diagrams,
»
Statechart diagrams,
»
Activity diagrams, and
»
Deployment diagrams.
Some people in the SwA community feel that UML does not allow for the capture of security properties and does not include a
model for use or abuse cases. Successful techniques for this purpose include threat modeling, data flow diagrams, abuse cases,
and attack trees.
Misuse/Abuse Cases – Misuse cases are similar to UML use cases, except that they are meant to detail common attempted
abuses of the system. Like use cases, misuse cases require understanding the services that are present in the syst…
Purchase answer to see full
attachment

Don't use plagiarized sources. Get Your Custom Essay on
Morgan State University Secure Software Design Discussion Using the table as a guide, conduct research on the general principles in order to expand the exi
Just from $13/Page
Order Essay
Homework On Time
Calculate the Price of your PAPER Now
Pages (550 words)
Approximate price: -

Why Choose Us

Top quality papers

We always make sure that writers follow all your instructions precisely. You can choose your academic level: high school, college/university or professional, and we will assign a writer who has a respective degree.

Professional academic writers

We have hired a team of professional writers experienced in academic and business writing. Most of them are native speakers and PhD holders able to take care of any assignment you need help with.

Free revisions

If you feel that we missed something, send the order for a free revision. You will have 10 days to send the order for revision after you receive the final paper. You can either do it on your own after signing in to your personal account or by contacting our support.

On-time delivery

All papers are always delivered on time. In case we need more time to master your paper, we may contact you regarding the deadline extension. In case you cannot provide us with more time, a 100% refund is guaranteed.

Original & confidential

We use several checkers to make sure that all papers you receive are plagiarism-free. Our editors carefully go through all in-text citations. We also promise full confidentiality in all our services.

24/7 Customer Support

Our support agents are available 24 hours a day 7 days a week and committed to providing you with the best customer experience. Get in touch whenever you need any assistance.

Try it now!

Calculate the price of your order

Total price:
$0.00

How it works?

Follow these simple steps to get your paper done

Place your order

Fill in the order form and provide all details of your assignment.

Proceed with the payment

Choose the payment system that suits you most.

Receive the final file

Once your paper is ready, we will email it to you.

Our Services

No need to work on your paper at night. Sleep tight, we will cover your back. We offer all kinds of writing services.

Essays

Essay Writing Service

You are welcome to choose your academic level and the type of your paper. Our academic experts will gladly help you with essays, case studies, research papers and other assignments.

Admissions

Admission help & business writing

You can be positive that we will be here 24/7 to help you get accepted to the Master’s program at the TOP-universities or help you get a well-paid position.

Reviews

Editing your paper

Our academic writers and editors will help you submit a well-structured and organized paper just on time. We will ensure that your final paper is of the highest quality and absolutely free of mistakes.

Reviews

Revising your paper

Our academic writers and editors will help you with unlimited number of revisions in case you need any customization of your academic papers