Secure Software Design (D487)

Master D487: Secure Software Design with Ulosca
Prepare smarter with 200+ real exam-style questions and expert explanations crafted for D487 success.
- Covers secure coding principles, threat modeling, authentication, SDLC, and vulnerability mitigation
- Practice questions that mirror real test content
- Clear, step-by-step rationales to reinforce secure design concepts
- Unlimited access for just $30/month — effective, affordable, and flexible
Trusted by top tech students, Ulosca helps you learn faster and pass with confidence.
Start today at Ulosca because secure software starts with secure knowledge.
Rated 4.8/5 from over 1000+ reviews
- Unlimited Exact Practice Test Questions
- Trusted By 200 Million Students and Professors
What’s Included:
- Unlock 36 + Actual Exam Questions and Answers for Secure Software Design (D487) on monthly basis
- Well-structured questions covering all topics, accompanied by organized images.
- Learn from mistakes with detailed answer explanations.
- Easy To understand explanations for all students.

Free Secure Software Design (D487) Questions
Which privacy impact statement requirement type defines processes to keep personal information updated and accurate
-
Data integrity requirements
-
Collection of personal information requirements
-
Access requirements
-
Personal information retention requirements
Explanation
Correct Answer:
a) Data integrity requirements
Explanation:
Data integrity requirements define the processes necessary to ensure that personal information remains accurate, complete, and up to date. These requirements are critical for maintaining the quality and accuracy of personal data over time.
Why other options are wrong:
b) Collection of personal information requirements: These pertain to how personal information is gathered and consented to but not how it should be kept updated.
c) Access requirements: These focus on who can access the personal information and under what circumstances, not on its accuracy.
d) Personal information retention requirements: These pertain to how long personal information should be kept, not on ensuring it is accurate or up to date.
What is an advantage of using the Agile development methodology
-
Customer satisfaction is improved through rapid and continuous delivery of useful software.
-
Each stage is clearly defined, making it easier to assign clear roles to teams and departments who feed into the project.
-
The overall plan fits very neatly into a Gantt chart so a project manager can easily view the project timeline.
-
There is much less predictability throughout the project regarding deliverables.
Explanation
Correct Answer:
a) Customer satisfaction is improved through rapid and continuous delivery of useful software.
Explanation:
One of the key advantages of the Agile methodology is its focus on delivering small, incremental pieces of functional software quickly and consistently. This approach helps to meet customer needs more effectively and increases their satisfaction through continuous delivery of useful software.
Why other options are wrong:
b) Agile is iterative and flexible, and its stages are not rigidly defined. It focuses more on collaboration than clearly defined stages.
c) Agile does not fit neatly into traditional project management tools like Gantt charts. It focuses on flexibility and adaptability, rather than a fixed timeline.
d) While Agile embraces change, it does not imply a lack of predictability in deliverables. It aims for predictable, incremental delivery through sprints, making it more predictable than some other methods.
Which secure coding best practice ensures sensitive information is not disclosed in any responses to users, authorized or unauthorized
-
Error handling and logging
-
Authentication and password management
-
Input validation
-
System configuration
Explanation
Correct Answer:
a) Error handling and logging
Explanation:
Error handling and logging are crucial to ensure sensitive information is not exposed in error messages or logs. Developers should avoid displaying stack traces, database details, or other internal information in error messages shown to users. These details could potentially be exploited by attackers. Instead, generic error messages should be provided, and detailed information should be logged securely for internal purposes.
Why other options are wrong:
b) Authentication and password management: While critical for securing user identities, this practice primarily focuses on controlling access, not on preventing the disclosure of sensitive information in responses.
c) Input validation: Input validation helps to prevent injection attacks and other malicious inputs, but it doesn’t specifically address the risk of disclosing sensitive information in error messages.
d) System configuration: Proper configuration of the system (e.g., disabling directory listing) is important for security, but it doesn't directly prevent sensitive information from being disclosed in responses to users.
What is the privacy impact rating of an application that stores personally identifiable information, monitors users with ongoing transfers of anonymous data, and changes settings for the user
-
P1 high privacy risk
-
P2 moderate privacy risk
-
P3 low privacy risk
-
P4 no privacy risk
Explanation
Correct Answer:
a) P1 high privacy risk
Explanation:
The application stores personally identifiable information (PII), which is inherently high-risk in terms of privacy. Additionally, ongoing transfers of data (even if anonymized) and the ability to change user settings further increase the potential for misuse or exposure of sensitive data. Therefore, this application is categorized with a high privacy risk.
Why other options are wrong:
b) P2 moderate privacy risk: While the app does deal with PII and has ongoing data transfers, the presence of settings changes makes it a higher risk than moderate.
c) P3 low privacy risk: Storing PII and monitoring users increases privacy risks beyond what would be classified as low.
d) P4 no privacy risk: Storing PII and transferring data, even anonymously, involves significant privacy risks, so it cannot be classified as having no privacy risk.
Which security assessment deliverable defines measures that will be periodically reported to management
-
Metrics template
-
Product risk profile
-
SDL project outline
-
Threat profile
Explanation
Correct Answer:
a) Metrics template
Explanation:
A metrics template defines the specific measures, key performance indicators (KPIs), and metrics that will be periodically reported to management. This deliverable ensures that the progress and effectiveness of security initiatives are tracked and communicated over time.
Why other options are wrong:
b) Product risk profile: This provides a snapshot of risks associated with a specific product, but it doesn't typically outline periodic reporting measures for management.
c) SDL project outline: This outlines the stages of the Secure Development Lifecycle (SDL), but it doesn't specifically define periodic measures for management.
d) Threat profile: This assesses and categorizes threats, but doesn't define reporting measures for management.
Which category classifies identified threats that have some defenses in place and exposes the application to limited exploits
-
Unmitigated threats
-
Fully mitigated threat
-
Threat profile
-
Partially mitigated threat
Explanation
Correct Answer:
d) Partially mitigated threat
Explanation:
A partially mitigated threat has some defenses in place, but these defenses do not completely eliminate the risk. This leaves the application exposed to limited exploits, though not fully vulnerable.
Why other options are wrong:
a) Unmitigated threats: These threats have no defenses in place, leaving the application fully exposed to exploitation.
b) Fully mitigated threat: This refers to threats that are fully defended against, eliminating the possibility of exploitation.
c) Threat profile: This term refers to a broader categorization of threats and does not directly describe the status of mitigations or exposure.
Which secure coding best practice says to use a single application-level authorization component that will lock down the application if it cannot
-
Session management
-
Data protection
-
Access control
-
Communication security
Explanation
Correct Answer:
c) Access control
Explanation:
Access control involves implementing a centralized authorization mechanism that restricts access to resources based on user roles and permissions. If the application cannot authenticate or authorize a user properly, access should be locked down to prevent unauthorized access.
Why other options are wrong:
a) Session management: Session management ensures that user sessions are securely created, maintained, and terminated but does not specifically address the application-level authorization process.
b) Data protection: Data protection focuses on safeguarding sensitive data, such as encryption or ensuring data confidentiality, integrity, and availability, rather than access control or authorization.
d) Communication security: Communication security ensures that data transmitted between systems is protected (e.g., through encryption), but it doesn't involve locking down the application based on authorization failures.
A security architect is creating a data flow diagram and draws an arrow between two circles. What does the arrow represent
-
External entity
-
Process
-
Data flow
-
Data store
Explanation
Correct Answer:
c) Data flow
Explanation:
In a data flow diagram (DFD), an arrow represents the flow of data between processes, data stores, or external entities. The arrow shows how data moves or is transmitted from one part of the system to another. In this case, the two circles typically represent processes, and the arrow indicates the direction of data flow between them.
Why other options are wrong:
a) External entity: External entities are usually represented as rectangles or squares in a DFD, not by arrows.
b) Process: A process is typically represented by a circle or oval, but the arrow itself indicates data movement rather than the process itself.
d) Data store: Data stores are usually represented as open-ended rectangles or parallel lines in a DFD, not by arrows.
Which secure software design principle states that it is always safer to require agreement of more than one entity to make changes
-
Psychological acceptability
-
Separation of privileges
-
Total mediation
-
Least privilege
Explanation
Correct Answer:
b) Separation of privileges
Explanation:
The principle of separation of privileges states that it is safer to require the approval or action of more than one entity before making changes, particularly when sensitive operations are involved. This is a security measure to ensure that no single individual or component has too much control or can make changes without oversight.
Why other options are wrong:
a) Psychological acceptability: This principle is about designing security measures that are user-friendly and understandable. It does not involve requiring agreement from multiple entities to make changes.
c) Total mediation: This principle ensures that every access to resources is checked and validated, but it does not focus on requiring multiple entities for decision-making or changes.
d) Least privilege: This principle grants users only the permissions necessary for their tasks, but it does not imply that multiple entities must agree to make changes.
Developers have finished coding, and changes have been peer reviewed. Features have been deployed to a pre-production environment so that analysts may verify that the product is working as expected. Which phase of the software development Life Cycle (SDLC) is being described
-
Testing
-
Requirements
-
Deployment
-
Design
Explanation
Correct Answer:
a) Testing
Explanation:
In the Testing phase, the product is deployed to a pre-production or testing environment where analysts and quality assurance teams verify that the features are working as expected, ensuring the product meets the specified requirements.
Why other options are wrong:
b) Requirements: The requirements phase is about gathering and defining the needs for the system, not about testing functionality.
c) Deployment: Deployment refers to the final release of the software to the production environment, which occurs after testing.
d) Design: The design phase involves creating the system architecture and design plans before any coding or testing happens.
How to Order
Select Your Exam
Click on your desired exam to open its dedicated page with resources like practice questions, flashcards, and study guides.Choose what to focus on, Your selected exam is saved for quick access Once you log in.
Subscribe
Hit the Subscribe button on the platform. With your subscription, you will enjoy unlimited access to all practice questions and resources for a full 1-month period. After the month has elapsed, you can choose to resubscribe to continue benefiting from our comprehensive exam preparation tools and resources.
Pay and unlock the practice Questions
Once your payment is processed, you’ll immediately unlock access to all practice questions tailored to your selected exam for 1 month .
D487 Secure Software Design – Comprehensive Study Notes
1. Introduction to Secure Software Design
Secure software design focuses on developing applications that are resistant to security threats, reducing vulnerabilities, and ensuring confidentiality, integrity, and availability (CIA).
Key Principles
-
Least Privilege – Users and systems should only have the permissions they need.
-
Defense in Depth – Multiple layers of security prevent attacks even if one control fails.
-
Fail Securely – Applications should handle errors without exposing sensitive data.
- Security by Design – Security considerations should be integrated from the start.
Example:
A banking app follows least privilege by allowing tellers to view account balances but not approve large transactions, which is reserved for managers.
2. Secure Software Development Lifecycle (SDLC)
Security must be incorporated throughout the software development process.
Phases of Secure SDLC
-
Requirements Gathering – Identify security needs early (e.g., encryption for sensitive data).
-
Design Phase – Use secure coding frameworks and threat modeling.
-
Implementation – Follow secure coding best practices to prevent vulnerabilities.
-
Testing – Perform security testing (penetration testing, static analysis).
-
Deployment – Ensure secure configurations (e.g., disabling unnecessary ports).
- Maintenance – Regularly update software to patch vulnerabilities.
Example:
A healthcare app includes HIPAA compliance as a security requirement in the Requirements Gathering phase to ensure patient data privacy.
3. Common Software Vulnerabilities and Mitigation Strategies
Secure software design requires understanding common vulnerabilities and how to prevent them.
3.1 SQL Injection
Vulnerability: Attackers inject malicious SQL queries to manipulate databases.
Mitigation: Use prepared statements and parameterized queries instead of string concatenation.
Example (Unsafe Code):
"SELECT * FROM users WHERE username = '" + userInput + "';"
Secure Code:
"SELECT * FROM users WHERE username = ?"
3.2 Cross-Site Scripting (XSS)
Vulnerability: Attackers inject scripts into web pages, affecting users.
Mitigation: Use output encoding and Content Security Policy (CSP).
Example:
Unsafe: <script>alert("Hacked!")</script>
Secure: <script>alert("Hacked!")</script>
3.3 Cross-Site Request Forgery (CSRF)
Vulnerability: Attackers trick users into executing unwanted actions.
Mitigation: Use CSRF tokens and SameSite cookies.
Example:
A malicious website forces a logged-in user to transfer money without consent.
Secure approach:
- Include CSRF tokens in forms to verify requests are legitimate.
3.4 Buffer Overflow
Vulnerability: Writing data beyond allocated memory space can cause system crashes or allow code execution.
Mitigation: Use bounds checking and safe memory functions.
Example (Unsafe C Code):
char name[10];
gets(name); // No bounds checking
Secure Code:
char name[10];
fgets(name, sizeof(name), stdin);
4. Threat Modeling in Secure Design
Threat modeling is the process of identifying security threats and mitigating them before implementation.
4.1 STRIDE Threat Model
Developed by Microsoft, STRIDE helps categorize threats:
- Spoofing – Impersonation attacks (e.g., fake login pages).
- Tampering – Unauthorized modification of data (e.g., altering bank transactions).
- Repudiation – Denying actions taken (e.g., deleting logs).
- Information Disclosure – Leaking sensitive data (e.g., unencrypted passwords).
- Denial of Service (DoS) – Overloading services to make them unavailable.
- Elevation of Privilege – Gaining unauthorized access (e.g., exploiting weak permissions).
Example:
A shopping website mitigates spoofing by using multi-factor authentication (MFA) and SSL certificates.
5. Secure Coding Best Practices
Following secure coding standards ensures applications remain resilient against attacks.
5.1 Input Validation
-
Always validate user input to prevent SQL Injection, XSS, and Buffer Overflows.
- Use whitelisting rather than blacklisting.
Example:
if not age.isdigit():
print("Invalid input")
5.2 Secure Authentication and Authorization
-
Use hashed passwords (e.g., bcrypt, Argon2).
- Implement role-based access control (RBAC).
- Enforce multi-factor authentication (MFA).
Example:
5.3 Secure Data Storage
-
Encrypt sensitive data at rest and in transit.
- Never store plaintext passwords; always hash them.
Example:
Unsafe:
INSERT INTO users (username, password) VALUES ('john', 'password123');
Secure (Hashing with bcrypt):
hashed_pw = bcrypt.hashpw(password.encode(), bcrypt.gensalt())
6. Secure Software Testing
Testing ensures vulnerabilities are identified and fixed before deployment.
6.1 Static Analysis
Analyzing source code without executing it to detect security flaws.
Example: Using tools like SonarQube to detect SQL Injection vulnerabilities.
6.2 Dynamic Analysis
Running the application and monitoring its behavior for vulnerabilities.
Example: Using OWASP ZAP to scan for web application vulnerabilities.
6.3 Penetration Testing
Simulating real-world attacks to uncover security flaws.
Example: Ethical hackers test a banking app for authentication bypass weaknesses.
7. Secure Deployment and Maintenance
Ensuring security continues after the software is deployed.
7.1 Secure Configurations
-
Disable default accounts and unnecessary services.
- Use firewalls to restrict unauthorized access.
7.2 Regular Updates and Patch Management
-
Apply security patches to fix vulnerabilities.
- Monitor CVE databases for new threats.
Example:
A hospital software system updates its security settings regularly to comply with HIPAA regulations.
8. Compliance and Legal Considerations
Secure software must adhere to industry regulations and legal requirements.
8.1 Key Compliance Standards
-
GDPR – Protects user privacy in the EU.
-
HIPAA – Secures patient data in healthcare.
- PCI-DSS – Ensures safe credit card transactions.
Frequently Asked Question
The course focuses on secure coding principles, software vulnerabilities, authentication mechanisms, cryptography, and best practices for designing secure applications.
Secure software design helps prevent cyber threats such as SQL Injection, Cross-Site Scripting (XSS), authentication bypasses, and data breaches, ensuring application security and compliance with industry standards.
The course covers vulnerabilities like SQL Injection, XSS, Cross-Site Request Forgery (CSRF), insecure authentication, weak cryptography, and improper error handling.
Using prepared statements and parameterized queries is the most effective method to prevent SQL Injection, as it ensures user input is treated strictly as data, not executable code.
XSS occurs when an attacker injects malicious scripts into web pages viewed by users. It can be prevented by sanitizing and encoding user input, using a Content Security Policy (CSP), and avoiding innerHTML in JavaScript.
MFA requires users to verify their identity using multiple factors (e.g., password + one-time code). It significantly enhances security by preventing unauthorized access, even if a password is compromised.
Authentication verifies a user’s identity (e.g., username and password). Authorization determines what actions or data a user is allowed to access after authentication.