All ISC2 exams
Free Certified Secure Software Lifecycle Professional (CSSLP) practice test: 30 questions with answers
30 original questions for Certified Secure Software Lifecycle Professional (CSSLP), drawn from every topic area. Answer each one to see whether you got it right and why. No sign-up.
- Free questions
- 30
- Full bank
- 112 questions
Certified Secure Software Lifecycle Professional (CSSLP) exam guide: topics, cost and format
All 30 Certified Secure Software Lifecycle Professional (CSSLP) questions with answers
The same questions as the test above, grouped by exam topic. Open any question to see the answer and explanation.
Secure Software Architecture and Design (4 questions)
Question 1
Which design principle limits the damage that a compromised component can cause to the rest of the system?
- AIsolation or compartmentalisation, which separates components so that a breach stays contained
- BMaximising shared state, which lets every component read and write the same global data at all times
- CHard-coding trust, which assumes that all internal components are always safe and need no checks at all
- DSingle point of entry, which routes all data through one unchecked module without any monitoring for activity
Show answer and explanationHide answer
Correct answer: AIsolation or compartmentalisation contains the damage from a compromised component. Shared global state, hard-coded trust and unchecked single entry points increase damage.
Question 2
What is the main benefit of a threat model during design?
- AIt replaces the architecture document, so that the design team does not need to write any design details
- BIt removes the need for code review, because the threat model already covers every line of the code
- CIt proves that the system has no vulnerabilities, so that it can be released without further testing at all
- DIt identifies likely threats early so that controls can be designed into the architecture
Show answer and explanationHide answer
Correct answer: DA threat model identifies threats early so controls can be designed in. It does not replace code review, prove the absence of vulnerabilities, or replace the architecture.
Question 3
Which control best protects sensitive data held in a database that is compromised by an attacker?
- AStoring the sensitive data in a log file that is printed for review by the team once every quarter
- BStoring the encryption key in the same table as the data it protects for easy retrieval by the application
- CLeaving the data unencrypted because the database is inside a private network and so cannot be attacked
- DEncryption of the sensitive fields with keys held separately from the database
Show answer and explanationHide answer
Correct answer: DEncrypting sensitive fields with keys held separately limits the value of a stolen database. Keys stored with the data or unencrypted data offer little protection.
Question 4
What does the principle of fail secure mean for a software component?
- AWhen a failure occurs, the component denies access or stops safely rather than leaving the system open
- BWhen a failure occurs, the component grants all users full administrative rights so that work is not interrupted
- CWhen a failure occurs, the component restarts without logging the event so that the users are not disturbed
- DWhen a failure occurs, the component sends the error message to every user on the network for awareness
Show answer and explanationHide answer
Correct answer: AFail secure means a failure denies access or stops safely. Granting rights, skipping logs and broadcasting errors all weaken security during failure.
Secure Software Implementation (4 questions)
Question 5
Which practice most directly prevents SQL injection in application code?
- ARemoving all special characters from every input field and then concatenating the cleaned text into the query
- BUsing parameterised queries or prepared statements instead of building SQL by joining strings with user input
- CStoring the database password in the query text so that the query can be run without any connection setup
- DDisabling error messages in the database so that attackers cannot see the structure of the query being run
Show answer and explanationHide answer
Correct answer: BParameterised queries keep user input separate from SQL, which directly prevents injection. Stripping characters is fragile, and the other options do not address the root cause.
Question 6
Why should developers avoid writing their own cryptographic algorithms?
- ABecause cryptographic code runs slowly on every platform and so is always replaced by a faster algorithm
- BBecause well-tested, standard libraries are far less likely to contain subtle flaws than custom designs
- CBecause the law forbids any developer from writing code that uses cryptography in any product at all
- DBecause standard algorithms can only be used on hardware that the developer has purchased from the vendor
Show answer and explanationHide answer
Correct answer: BStandard, reviewed libraries are far less likely to contain subtle flaws than custom cryptography. The other statements are not accurate reasons.
Question 7
Which coding practice reduces the risk of buffer overflow in C programs?
- ARemoving all bounds checks from the code so that the compiler can optimise each copy for speed in the release
- BUsing the gets function, which reads input without a limit and so gives the programmer full control of the buffer
- CAllocating a very large buffer for every input so that no input can ever exceed its size in practice
- DUsing bounded functions that check the size of the destination buffer before copying data into it
Show answer and explanationHide answer
Correct answer: DBounded functions that check destination size prevent overflow. The gets function is unsafe and removing checks or only enlarging buffers does not remove the risk.
Question 8
What is the main purpose of secure code review?
- ATo make the code look more elegant for the reviewers, without a particular focus on finding security defects
- BTo find security defects in source code before it is built and released into production
- CTo count the lines of code so that the team can estimate the cost of maintaining the software in future years
- DTo assign the code to a new developer who will then take full ownership of the module for all future changes
Show answer and explanationHide answer
Correct answer: BSecure code review finds security defects before release. Elegance, line counts and ownership changes are not its main purpose.
Secure Software Concepts (4 questions)
Question 9
Which principle states that a system should grant each user only the access needed to perform their task?
- ASecurity through obscurity, which hides the design of a system so that attackers cannot easily find its flaws
- BDefense in depth, which layers several controls so that one failure does not expose the whole system
- CSeparation of duties, which divides a critical task among several people to reduce the chance of fraud
- DLeast privilege, which limits each account to the minimum rights required for its role
Show answer and explanationHide answer
Correct answer: DLeast privilege limits each account to the minimum rights its role requires. Defense in depth, separation of duties and security through obscurity are other principles with different aims.
Question 10
What does the confidentiality property of information security protect against?
- ALoss of access to systems when they are needed by authorised users for their business work
- BUnauthorised changes to data, which may make it inaccurate or untrustworthy for its users
- CUnauthorised disclosure of information to parties who should not be able to read it
- DDenial of the origin of a transaction, so that the sender cannot later be identified in a dispute
Show answer and explanationHide answer
Correct answer: CConfidentiality guards against unauthorised disclosure. Changes to data describe integrity, loss of access describes availability, and denial of origin describes non-repudiation.
Question 11
Which term describes a weakness in software that an attacker could exploit to cause harm?
- AA countermeasure, which is a control that the team adds to reduce the risk to the software system
- BA threat actor, which is the person or group that carries out an attack against the software system
- CA vulnerability, which is a weakness that a threat can exploit to cause harm to the system
- DA compliance audit, which is a formal review of the controls that the organisation has in place
Show answer and explanationHide answer
Correct answer: CA vulnerability is the weakness itself. A threat actor is the attacker, a countermeasure is a control, and an audit is a review process.
Question 12
Which concept best describes the risk remaining after controls have been applied to a software system?
- AAccepted risk, which is the risk that the organisation has decided to ignore for the whole life of the product
- BInherent risk, which is the risk that exists before any controls are applied to the software at all
- CTransferred risk, which is the risk moved to an insurer or a third party through a contract or policy
- DResidual risk, which is the risk that remains after the controls have been applied to the system
Show answer and explanationHide answer
Correct answer: DResidual risk is what remains after controls. Inherent risk is before controls, transferred risk moves to others, and accepted risk is a decision to keep a risk, which may or may not be residual.
Secure Software Testing (4 questions)
Question 13
Which testing approach examines the internal structure and code of an application?
- AWhite-box testing, which uses knowledge of the source code and design to test the internal logic
- BBlack-box testing, which uses only the external behaviour of the application with no knowledge of its internals
- CPenetration testing against live production systems with no prior notice to the operations team at any time
- DUser acceptance testing, which checks whether the business users are satisfied with the features in the release
Show answer and explanationHide answer
Correct answer: AWhite-box testing uses internal knowledge. Black-box testing uses external behaviour only, and penetration and acceptance testing have different focuses.
Question 14
Which TWO results are typical of fuzz testing for security? (Choose two.)
- ACrashes or hangs caused by malformed or random inputs that an attacker could also trigger
- BMemory errors such as overflows that show where input handling needs bounds checks
- CA layout comparison of the user interface against the design file on standard devices
- DA measurement of how many users can sign in at the same time during a normal working day
- EA confirmation that the documentation matches the features in the release notes
Show answer and explanationHide answer
Correct answer: A, BFuzz testing reveals crashes and memory errors from malformed input that attackers could also trigger. Layout, load and documentation checks are different activities.
Question 15
Which TWO are valid results of a dynamic application security test? (Choose two.)
- AIdentification of injection flaws found by sending crafted inputs to a running application
- BA list of the source file line numbers that contain a specific misspelled variable in the code base
- CConfirmation that a deployed web server is correctly configured against the latest hardening standard
- DA count of the developers who have committed code to the repository during the past month of work
- EA report showing the total number of user accounts in the production directory of the company
Show answer and explanationHide answer
Correct answer: A, CDynamic testing of a running application finds injection flaws and can confirm configuration issues. Line lists, commit counts and account totals are not dynamic test results.
Question 16
Which test verifies that a security control blocks an unauthorised action as designed?
- AA usability test that asks users to complete a simple task and records how long the task takes them
- BA security test case that attempts the unauthorised action and checks that it is denied
- CA performance test that measures the number of requests per second the server can handle under peak load
- DA localisation test that checks the spelling of the user interface labels in each supported language
Show answer and explanationHide answer
Correct answer: BA security test case attempts the unauthorised action and checks it is denied. Usability, performance and localisation tests measure different qualities.
Secure Software Requirements (4 questions)
Question 17
Which type of requirement describes what the software must do to stay secure?
- AA performance target, such as a page load time below two seconds for a standard request by a user
- BA security functional requirement, such as requiring authentication before access to a sensitive function
- CA usability goal, such as making the interface easy to learn by a first-time user without any training
- DA cost estimate, such as the budget allocated to the development team for the whole of the next year
Show answer and explanationHide answer
Correct answer: BSecurity functional requirements state required secure behaviour. Performance, usability and cost statements are not security requirements.
Question 18
Why should security requirements be traceable to threats and to design elements?
- ASo that the developers can ignore any requirement that does not appear in the initial project plan
- BSo that the requirements document can be made longer, which makes the project appear more thorough to managers
- CSo that each requirement can be shown to address a real risk and verified in the final product
- DSo that the requirements can be sold separately to customers who want only the security features
Show answer and explanationHide answer
Correct answer: CTraceability shows each requirement addresses a real risk and can be verified. Length, ignoring requirements and separate sales are not reasons for traceability.
Question 19
Which technique helps identify security requirements by thinking about how a system could be misused?
- AUser stories with acceptance criteria, which describe the features that users expect the system to deliver each sprint
- BUse cases alone, which describe only the normal interactions that a legitimate user has with the system
- CAbuse cases, which describe how an attacker might misuse a feature and what the system must prevent
- DBurndown charts, which track the remaining work in the project so that the team can plan its effort
Show answer and explanationHide answer
Correct answer: CAbuse cases describe misuse and the protections needed. Normal use cases, user stories and burndown charts do not focus on misuse.
Question 20
What is a common source of security requirements for a web application that handles personal data?
- AApplicable laws and regulations, such as data protection rules that restrict how personal data is handled
- BThe developer's personal preference for colours and fonts in the user interface of the application
- CThe number of pages on the website, which determines how many security controls the team must add
- DThe length of the project timeline, which sets the number of authentication methods that the system needs
Show answer and explanationHide answer
Correct answer: ALaws and regulations are a standard source of security requirements for personal data. Colour preferences, page counts and timelines do not define security needs.
Secure Software Lifecycle Management (4 questions)
Question 21
Which activity is most appropriate in the planning phase of a secure software lifecycle?
- ADefining security roles, responsibilities and the security activities required for each release
- BWriting the production code for the main features so that the team can measure its progress early
- CDeploying the application to the live environment to see how users respond to its basic features
- DDeleting the old test data so that the team can start fresh with a clean environment for the next phase
Show answer and explanationHide answer
Correct answer: APlanning should define security roles and the activities each release needs. Coding, deployment and data deletion belong to later or unrelated activities.
Question 22
What is the purpose of a secure development lifecycle model such as a maturity model?
- ATo guarantee that every software product built by the organisation will be free of all vulnerabilities
- BTo provide a structured way to assess and improve the security practices a software organisation uses
- CTo replace the need for security testing by moving all security activity into the planning documents
- DTo set the price that customers must pay for the security features included in each product release
Show answer and explanationHide answer
Correct answer: BA maturity model provides a structured way to assess and improve practices. No model guarantees zero vulnerabilities, and models do not replace testing or set prices.
Question 23
Which role is usually responsible for making the final decision to accept a software release risk?
- AThe junior developer who wrote the code, since they know the implementation best of anyone on the team
- BThe business owner or risk owner, who accepts the residual risk on behalf of the organisation
- CThe external penetration tester, who performs the test but has no authority over the business decisions
- DThe end user of the software, who must agree in writing before any security change is approved in the project
Show answer and explanationHide answer
Correct answer: BThe business or risk owner accepts residual risk for the organisation. Developers, external testers and end users do not hold that decision.
Question 24
Which artefact records the security decisions, risks and controls for a system throughout its life?
- AThe release notes for the first version only, which list the features but not the risks or controls
- BA marketing brochure, which describes the features of the product for prospective customers and partners
- CA threat model and risk register, which are kept current as the software changes over time
- DThe user manual, which explains how to operate the software but not its security design or decisions
Show answer and explanationHide answer
Correct answer: CA threat model and risk register record security decisions and risks across the lifecycle. Brochures, first-release notes and user manuals do not serve that role.
Secure Software Deployment, Operations, Maintenance (3 questions)
Question 25
Which practice keeps a deployed application secure after it goes into operation?
- ADisabling logging in production, since logs take up storage and are rarely read by the operations team at all
- BLeaving the system unchanged for ever once it is released, so that no new risk is introduced by any update
- CApplying security patches promptly and monitoring the system for signs of compromise
- DGranting all developers permanent administrative access to production so that they can fix any problem at once
Show answer and explanationHide answer
Correct answer: CPrompt patching and monitoring keep a deployed system secure. Never changing it, disabling logs and permanent broad access all weaken operations.
Question 26
What is the purpose of a configuration baseline in secure operations?
- ATo define an approved secure configuration against which deployed systems are compared for drift
- BTo list the colours and logos that the operations team uses on its internal documents and dashboards
- CTo set the number of users allowed to sign in at the same time to the production environment each day
- DTo record the names of the vendors that supply the hardware for the data centre across the whole company
Show answer and explanationHide answer
Correct answer: AA configuration baseline is an approved secure state that deployed systems are checked against for drift. Colours, user limits and vendor lists are unrelated.
Question 27
Which step is most important before deploying a security patch to production?
- ADeploying the patch to every production server at the same moment, so that no server is left unprotected
- BTesting the patch in a representative non-production environment to check for regressions
- CSkipping the change record, so that the patch can be applied faster during the working day in the office
- DApplying the patch only after the vulnerability has been publicly exploited, so that the fix is clearly needed
Show answer and explanationHide answer
Correct answer: BTesting in a representative environment checks for regressions before production. Simultaneous rollout, skipping change records and waiting for exploitation all add risk.
Secure Software Supply Chain (3 questions)
Question 28
What does a software bill of materials (SBOM) list?
- AThe names of the employees who wrote each file in the code base, so that credit can be assigned in reports
- BThe price of each software licence that the company has paid to its suppliers for the current financial year
- CThe components and dependencies that make up a software product, with their versions and sources
- DThe hardware on which the software is installed in each data centre in every country the company serves
Show answer and explanationHide answer
Correct answer: CAn SBOM lists the components, versions and sources of a product. Licence prices, authors and hardware locations are not in an SBOM.
Question 29
Which practice helps verify that a third-party package has not been tampered with before use?
- ARenaming the package file to a shorter name so that the build system treats it as a trusted internal file
- BInstalling it directly from an unknown file share that the developer received by email from a colleague
- CChecking its cryptographic signature or hash against a value published by the trusted source
- DRunning the package installation with administrator rights so that it cannot be blocked by any security check
Show answer and explanationHide answer
Correct answer: CVerifying a signature or hash against a trusted source detects tampering. Unknown shares, renaming and elevated installs do not verify anything.
Question 30
Which risk is described by a dependency confusion attack on a software build?
- AThe team forgets to update the documentation for an internal library after a change to its interface
- BA developer deliberately removes the license file from a library so that the build can no longer be audited
- CThe build server runs out of disk space while downloading libraries, which causes the release to be delayed
- DA public package with a name matching an internal package is pulled into the build instead of the internal one
Show answer and explanationHide answer
Correct answer: DDependency confusion occurs when a public package with an internal name is pulled in by mistake. Licence removal, disk space and documentation lapses are different issues.