Question 292 of 504
Systems and Application SecuritymediumMultiple SelectObjective-mapped

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.)

Question 1mediummulti select
Full question →

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.

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.

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 →

How Courseiva writes practice questions · Editorial policy

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

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.

Loading comments…

Sign in to join the discussion.

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.