CS419 Exam 2
Fall 2024
Paul Krzyzanowski
November 4, 2024
100 Points - 25 Questions - 4 Points each
For each statement, select the most appropriate answer.
- Hash pointers help in building tamper-evident data structures because a hash pointer contains:
(a) An encrypted hash of the referenced object.
(b) A hash of the referenced object.
(c) A value that causes the resulting hash of the current object to have specific properties.
(d) A hash of the pointer to ensure the pointer has not been modified. - What data structure cannot be created with hash pointers?
(a) Linked list.
(b) Circular list.
(c) Binary tree.
(d) All of these can be created. - Bitcoin provides anonymity by:
(a) Encrypting your identity with your private key.
(b) Hashing your identity.
(c) Using your public key as your identity.
(d) Storing transactions in an encrypted wallet that only you can access. - How does the difficulty target in a Bitcoin block header influence mining?
(a) It determines the maximum size of each block in bytes.
(b) It limits the number of transactions per block.
(c) It defines the maximum numeric value for the hash of the block header.
(d) It sets a limit on the number of miners allowed to mine simultaneously. - A key feature of Bitcoin's proof of work scheme is that:
(a) A system must prove that it used a given amount of CPU effort.
(b) Computation is far more difficult than verification.
(c) Multiple systems work cooperatively to mine cryptocurrency efficiently.
(d) Blocks can be added more quickly to the ledger as more machines join the Bitcoin network. - A capability list is:
(a) A slice of an access matrix representing all the access permissions of different subjects on an object.
(b) A complete access matrix implemented as a linked list.
(c) A slice of an access matrix representing a subject's permissions to access various objects.
(d) The set of possible access permissions that may be assigned to objects. - What is a conflict class in the Chinese Wall security model?
(a) The grouping of objects based on competitive or sensitive relationships.
(b) The set of discretionary access permissions that differ from mandatory access permissions for the same object.
(c) A set of access control rules defining user roles within a company's internal security model.
(d) The classification of users based on their security clearance levels. - The Bell-LaPadula model primarily focuses on:
(a) Confidentiality of data.
(b) Integrity of data.
(c) Availability of data.
(d) Authentication of users. - In the Bell-LaPadula model, the Star (*) Property enforces the rule that:
(a) Users cannot write to an object at a lower security level.
(b) Users can only read and write data at their security level.
(c) Users cannot read data from an object below their security level.
(d) Users cannot write to an object above their security level. - In RBAC, a role can be described as:
(a) A set of individual permissions to objects granted to a user.
(b) Restrictions placed on a user based on information they previously accessed.
(c) A temporary access level that overrides a user's normal access permissions.
(d) A group of access permissions associated with a particular job function. - What is the primary focus of the Biba Model?
(a) Enforcing confidentiality by restricting access to classified information.
(b) Preventing unauthorized users from gaining access to a network.
(c) Ensuring data integrity by preventing users from writing to a higher integrity level.
(d) Maximizing availability by ensuring all processes have access to system resources. - What is a typical use of fuzzing?
(a) To ensure all code paths are tested.
(b) To randomize pointers to ensure that they cannot be modified.
(c) To provide runtime detection of buffer overflows.
(d) To find parts of code where inputs are not being validated. - The standard C library gets function, which reads a line of input, is considered unsafe because:
(a) It does not validate the format of the input.
(b) It can allow users to execute arbitrary shell commands.
(c) It runs at a higher privilege level.
(d) It does not know the size of the array that will hold the data. - A key part of most code injection attacks is their ability to:
(a) Take advantage of parsing errors to get a program to treat an input string as a command.
(b) Replace parts of the program's code with code provided by the attacker.
(c) Replace the local data in a function with executable code.
(d) Overwrite the return address of a function. - A return-to-libc attack was designed to deal with:
(a) Stack canaries.
(b) NOP slides.
(c) Data Execution Prevention .
(d) Return Oriented Programming. - The purpose of stack canaries is to:
(a) Detect if it is likely that a return address has been modified.
(b) Keep any buffer overflow attack from overwriting local data.
(c) Protect buffer overflows from leaving the stack segment.
(d) Create a protected copy of the stack to guard against data corruption. - Address Space Layout Randomization (ASLR):
(a) Uses the memory management unit (MMU) to randomly change the virtual to physical memory mapping.
(b) Makes it difficult for an attacker to inject valid addresses in a code injection attack.
(c) Enables attackers to insert code into arbitrary regions of memory.
(d) Hides the location of the program's heap from attackers. - What is the purpose of privilege separation?
(a) To separate high- and low-privilege functions into distinct processes to reduce the risk of exploits.
(b) To separate users into distinct groups and define access policies for each group.
(c) To grant multiple root-level (administrative) access to a system.
(d) To assign each user a unique ID so that access can be managed on a per-user basis. - Command injection can best be avoided by:
(a) Using the principles of privilege separation.
(b) Sanitizing the input.
(c) Running the application in a sandbox.
(d) Ensuring that buffer overflows are not possible. - What is an attacker's goal in exploiting a path traversal vulnerability?
(a) To trigger a bug in the pathname parser that will result in the program crashing.
(b) To embed special characters that will result in parts of the name being treated as a shell command.
(c) To gain unauthorized access to files outside of the allowed directory subtree.
(d) To create a pathname so long that it overflows the allocated buffer. - Function interposition attacks involve:
(a) Loading dynamic libraries that implement replacement function calls.
(b) Generating user input that results in code injection.
(c) A buffer overflow that transfers control to existing code in the application.
(d) A heap overflow that overwrites the code in the running process. - Which technique can help mitigate TOCTTOU (time of check to time of use) vulnerabilities?
(a) Keeping clocks synchronized across all systems that interact with each other.
(b) Allowing the process to recheck permissions.
(c) Keeping any accessed files read-only.
(d) Ensuring that checks and uses happen in an atomic operation. - Linux capabilities are used to:
(a) Allow a process to run with limited root-level privileges.
(b) Let a user run programs with full root-level privileges even if the user is not root.
(c) Restrict the amount of system resources a process can use.
(d) Define which files a user is allowed to access. - The UNIX chroot system call:
(a) Assigns root privileges to a given user ID.
(b) Changes the root directory of a process to a given subtree in the file system.
(c) Restricts the allowable set of system calls a process can make.
(d) Gives a process its own IP address & hostname. - Sandboxing allows:
(a) Granting unprivileged applications limited access to privileged system calls.
(b) Creating isolated environments with private network interfaces and process IDs.
(c) Automatically encrypting all data accessed by the application.
(d) Restricting access to specific unprivileged system calls.