- A
Input validation to reject long inputs
Why wrong: Input validation can help but is not sufficient; many overflows occur via other means.
- B
Address Space Layout Randomization (ASLR)
ASLR randomizes memory addresses, making it harder to predict target addresses.
- C
Code obfuscation
Why wrong: Obfuscation does not prevent buffer overflows.
- D
Non-executable stack (NX bit)
NX bit marks stack as non-executable, preventing code execution.
- E
Stack canaries
Why wrong: Stack canaries detect overflow but do not prevent it.
Quick Answer
The answer is non-executable stack (NX bit) and Address Space Layout Randomization (ASLR). The NX bit marks memory regions, like the stack, as non-executable, so even if an attacker injects shellcode into a buffer, the CPU refuses to run it, directly blocking the execution phase of a buffer overflow. ASLR complements this by randomizing the base addresses of the heap, stack, and executable modules, making it nearly impossible for an attacker to predict where to redirect execution flow, as fixed address references become useless. On the SSCP exam, this pairing tests your understanding of defense-in-depth for memory corruption attacks; a common trap is thinking that input validation alone suffices, but these two controls specifically target the exploitation mechanism. Remember the mnemonic “ASLR scrambles, NX blocks” to recall that one randomizes addresses while the other denies execution.
SSCP Systems and Application Security Practice Question
This SSCP practice question tests your understanding of systems and application security. Read the scenario carefully and evaluate each option against the stated constraints before committing to an answer. After answering, compare your reasoning against the explanation and wrong-answer breakdown below. Once you have made your selection, read the full explanation to reinforce the concept and understand why each distractor is designed to mislead on exam day.
Which TWO of the following are effective controls to prevent buffer overflow attacks? (Choose two.)
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
Address Space Layout Randomization (ASLR)
Address Space Layout Randomization (ASLR) is a memory protection technique that randomizes the base addresses of executable modules, heap, and stack regions. This makes it significantly harder for an attacker to predict the memory addresses needed to inject and execute shellcode, thereby mitigating many buffer overflow exploits that rely on fixed address references.
Key principle: Answer the scenario, not the keyword: identify the specific constraint before choosing the most familiar-sounding option.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Input validation to reject long inputs
Why it's wrong here
Input validation can help but is not sufficient; many overflows occur via other means.
- ✓
Address Space Layout Randomization (ASLR)
Why this is correct
ASLR randomizes memory addresses, making it harder to predict target addresses.
Related concept
Read the scenario before looking for a memorised answer.
- ✗
Code obfuscation
Why it's wrong here
Obfuscation does not prevent buffer overflows.
- ✓
Non-executable stack (NX bit)
Why this is correct
NX bit marks stack as non-executable, preventing code execution.
Related concept
Read the scenario before looking for a memorised answer.
- ✗
Stack canaries
Why it's wrong here
Stack canaries detect overflow but do not prevent it.
Common exam traps
Common exam trap: answer the scenario, not the keyword
ISC2 often tests the misconception that input validation alone is sufficient to prevent buffer overflows, or that stack canaries are a primary control rather than a detection mechanism, leading candidates to select them instead of the memory protection controls ASLR and NX bit.
Detailed technical explanation
How to think about this question
ASLR works by randomizing the base address of the stack, heap, and shared libraries at process startup, so an attacker cannot rely on hardcoded addresses for return-oriented programming (ROP) gadgets. The non-executable stack (NX bit) marks memory pages as non-executable, preventing code execution in the stack region; however, it can be bypassed by return-to-libc or ROP attacks if ASLR is not also enabled. In modern systems, these two controls are often used together as part of a defense-in-depth strategy against memory corruption exploits.
KKey Concepts to Remember
- Read the scenario before looking for a memorised answer.
- Find the constraint that changes the correct option.
- Eliminate answers that are true in general but not in this case.
TExam Day Tips
- Watch for words such as best, first, most likely and least administrative effort.
- Review why wrong options are wrong, not only why the correct option is correct.
Key takeaway
Answer the scenario, not the keyword: identify the specific constraint before choosing the most familiar-sounding option.
Real-world example
How this comes up in practice
A security team runs a vulnerability scan on a web application and discovers an unpatched SQL injection flaw. The team prioritises remediation by CVSS score — critical flaws are patched within 24 hours, high within 7 days. Questions like this test whether you understand vulnerability management processes, scanning tools, and remediation prioritisation.
What to study next
Got this wrong? Here's your next step.
Identify which exam domain this question belongs to, review the core concept, then practise similar questions from the same domain.
- →
Systems and Application Security — study guide chapter
Learn the concepts, then practise the questions
- →
Systems and Application Security practice questions
Targeted practice on this topic area only
- →
All SSCP questions
504 questions across all exam domains
- →
Systems Security Certified Practitioner SSCP study guide
Full concept coverage aligned to exam objectives
- →
SSCP practice test guide
How to use practice tests most effectively before exam day
Related practice questions
Related SSCP practice-question pages
Use these pages to review the topic behind this question. This is how one missed question becomes focused revision.
Risk Identification, Monitoring and Analysis practice questions
Practise SSCP questions linked to Risk Identification, Monitoring and Analysis.
Network and Communications Security practice questions
Practise SSCP questions linked to Network and Communications Security.
Systems and Application Security practice questions
Practise SSCP questions linked to Systems and Application Security.
Security Operations and Administration practice questions
Practise SSCP questions linked to Security Operations and Administration.
Incident Response and Recovery practice questions
Practise SSCP questions linked to Incident Response and Recovery.
Access Controls practice questions
Practise SSCP questions linked to Access Controls.
Cryptography practice questions
Practise SSCP questions linked to Cryptography.
SSCP fundamentals practice questions
Practise SSCP questions linked to SSCP fundamentals.
SSCP scenario practice questions
Practise SSCP questions linked to SSCP scenario.
SSCP troubleshooting practice questions
Practise SSCP questions linked to SSCP troubleshooting.
Practice this exam
Start a free SSCP practice session
Short sessions build daily habit. Longer sessions build exam-day stamina. Try a timed session to simulate real conditions.
FAQ
Questions learners often ask
What does this SSCP question test?
Systems and Application Security — This question tests Systems and Application Security — Read the scenario before looking for a memorised answer..
What is the correct answer to this question?
The correct answer is: Address Space Layout Randomization (ASLR) — Address Space Layout Randomization (ASLR) is a memory protection technique that randomizes the base addresses of executable modules, heap, and stack regions. This makes it significantly harder for an attacker to predict the memory addresses needed to inject and execute shellcode, thereby mitigating many buffer overflow exploits that rely on fixed address references.
What should I do if I get this SSCP question wrong?
Identify which exam domain this question belongs to, review the core concept, then practise similar questions from the same domain.
What is the key concept behind this question?
Read the scenario before looking for a memorised answer.
About these practice questions
Courseiva creates original exam-style practice questions with explanations and wrong-answer analysis. It does not publish real exam questions, exam dumps, or protected exam content. Learn why practice questions differ from exam dumps →
Same concept, more angles
2 more ways this is tested on SSCP
These questions test the same concept from different angles. Work through them to make sure you can recognise it however the exam phrases it.
Variation 1. Which TWO of the following are effective measures to prevent buffer overflow attacks in software development?
hard- A.Validate all input to ensure it meets length constraints
- ✓ B.Implement stack canaries
- C.Obfuscate the code to make exploitation harder
- D.Enable Address Space Layout Randomization (ASLR)
- ✓ E.Use functions that perform bounds checking (e.g., strncpy instead of strcpy)
Why B: Options B and D are correct. Option B (using bounds-checking functions) like strncpy instead of strcpy prevents overflows. Option D (stack canaries) detect buffer overflows before they overwrite return addresses. Option A (ASLR) randomizes memory addresses but does not prevent overflow; it makes exploitation harder. Option C (input validation) helps but is not specific to buffer overflow; E (code obfuscation) does not prevent the vulnerability.
Variation 2. Which TWO of the following are effective measures to prevent buffer overflow attacks in a custom-developed application?
easy- ✓ A.Input validation
- B.Using unpatched third-party libraries
- C.Running the application with least privilege
- D.Disabling ASLR
- ✓ E.Stack canaries
Why A: Input validation helps ensure data fits within buffer limits, and stack canaries detect and prevent stack-based buffer overflows. Using unpatched libraries increases vulnerability; disabling ASLR makes exploitation easier; running with least privilege limits damage but does not prevent the overflow itself.
Last reviewed: Jun 30, 2026
This SSCP practice question is part of Courseiva's free ISC2 certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the SSCP exam.
Question Discussion
Share a tip, memory trick, or ask about the reasoning behind this question. Do not post real exam questions, leaked content, braindumps, or copyrighted exam material. Comments are moderated and may be removed without notice.
Sign in to join the discussion.