0% found this document useful (0 votes)
5 views3 pages

Secure Software Design Chapter 1 Notes

Uploaded by

b2ntegami
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views3 pages

Secure Software Design Chapter 1 Notes

Uploaded by

b2ntegami
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Secure Software Design Chapter 1 Notes

Chapter 1 introduces why software security is the most critical challenge in modern information security.
It argues that security must be built into software from the very beginning — not added as an
afterthought — and lays out five core topics that frame the rest of the book.

Describe the importance and need for software security

Understand the role of security within the SDLC

Distinguish between quality and security attributes in code

Describe the fundamental goals of the SDL (Security Development Lifecycle)

Apply threat modeling and application risk analysis processes

Section 1.1 The importance of software security

Over 70% of business security vulnerabilities originate in software applications, not network
infrastructure. Insecure code drives the majority of hacking, cybercrime, and nation-state cyber attacks.
The costs to fix vulnerabilities skyrocket the later they are found: fixing a flaw post-release can cost 50–
200× more than fixing it during development. Industries from energy to banking to healthcare all depend
on software, making insecure code a threat to critical infrastructure and human safety.

Problems from insecure code include: interruptions to current product cycles, delayed releases,
vulnerability scope creep across web/SaaS/cloud products, legal liability, reputation damage, and
regulatory penalties. The solution is a structured Security Development Lifecycle (SDL) built into the
development process.

Section 1.2 Software security vs. application security

Software security = building security into the software during development through an SDL integrated in
the SDLC.

Application security = protecting software and the systems it runs on after release (firewalls, anti-virus,
patches). This is a compensating control, not a root fix.

The history: early software (UNIX, TCP/IP) had no security design. Post-Windows and the Web, attacks
grew in sophistication. "Add-on" security tools emerged but didn't address how code was written. The
real shift came in the 2000s when Microsoft and others began integrating SDL practices. Microsoft made
SDL mandatory in 2004. SDL goals: (1) reduce the number of security vulnerabilities and privacy issues;
(2) reduce the severity of those that remain.

Key SDL tools: static analysis (uses "Taint Analysis" to find unsanitized inputs) and threat modeling.
Static analysis cannot catch design flaws, bad cryptographic choices, authentication/authorization
confusion, or hardcoded passwords — human expertise is essential.

Section 1.3 Quality vs. secure code

Secure code ≠ quality code, and quality code ≠ secure code — but you cannot have one without the
other.
Quality is measured by ease of use, reusability, and maintainability — not by confidentiality or integrity.

Security is not subjective: sensitive data is either exposed or it is not. A highly secure but non-functional
app ships nothing; a highly functional but insecure app exposes everything.

The three primary goals of any secure software development process are: quality, security, and
maintainability. Quality and security teams should ideally be part of the same organization and
collaborate throughout development.

Section 1.4 The three most important SDL security goals: C.I.A.

As defined in 44 U.S.C. § 3542, the three pillars of information security are:

Confidentiality Preserving authorized restrictions on information access and disclosure; protecting


personal privacy and proprietary information. Supported by authorization (correct role/privilege) and
authentication (verifying identity).

Integrity Guarding against improper modification or destruction of information; ensuring non-


repudiation and authenticity. Data must remain unchanged by unauthorized parties from entry point
through database and back. Supported by encryption, digital signatures, and public keys.

Availability Ensuring timely and reliable access to and use of information. Refers to the percentage of
time a system is accessible during scheduled operating hours, excluding planned downtime.

Together, C.I.A. provides information security. Failure in any one degrades product reputation and leads
to loss of sales and customer trust.

Section 1.5 Threat modeling and attack surface validation

Threat modeling is the most time-consuming, misunderstood, and difficult part of the SDL. It requires
the software security architect — someone who can think like an adversary.

The core idea: understand potential security threats, determine risk, and establish mitigations (What is
the threat? How bad is it? How can it be fixed?). When performed early in the project, it catches design
issues before code is committed, saving significant cost.

A threat (per DACS 2008) is any actor, agent, circumstance, or event with potential to cause harm.
Threats can be unintentional, intentional non-malicious, or malicious; only malicious threats are realized
as attacks.

Distinction: an attack is the action against the targeted software; an exploit is the mechanism (technique
or malicious code) by which the attack is carried out.

The attack surface = all entry and exit points accessible to an attacker. Code restricted to local admin
access has a smaller attack surface than code exposed to remote anonymous users. The attack surface is
defined early in the SDL and remeasured throughout. Tools (port scanners, code analysis tools) assist,
but human expertise is still required.

Summary
Software is only as secure as the best practices used to build it. Security must be integral from day one —
not bolted on afterward. Fixing vulnerabilities post-release is far more costly, reputationally damaging,
and legally risky than building security in. The book's model: a pragmatic, experience-based SDL best-
practices framework that balances business reality with security rigor, applicable to Waterfall,
Agile/Scrum, or blended methodologies.

You might also like