- A) Audits identify all security vulnerabilities and guarantee bug-free code
- B) Audits cover only smart contracts but never the offchain code
- C) Audits suggest fixes for issues identified and aim to reduce risk
- D) None of the above
Click the reveal the answer
C- A) Finding likelihood/difficulty, impact and severity
- B) Exploit scenarios and recommended fixes
- C) Formal verification of all findings with proofs and counterexamples
- D) All of the above
Click the reveal the answer
A,BQ3 These audit techniques are especially well-suited for smart contracts (compared to Web2 programs)
- A) Formal verification because contracts are relatively smaller with specific properties
- B) Fuzzing because anyone can send random inputs to contracts on blockchain
- C) Static source-code analysis because contracts are expected to be open-source
- D) High-coverage testing because contract states and transitions are relatively fewer
Click the reveal the answer
A,B,C,D- A) True positives after confirmation from the project team
- B) False positives due to assumptions from missing specification and threat model
- C) False negatives due to limitations of time and expertise
- D) None of the above
Click the reveal the answer
A,B,C- A) Audited projects always have clear/complete specification and documentation of all contract properties
- B) Manual analysis is typically required for detecting application logic vulnerabilities
- C) Automated tools like Slither and MythX have no false negatives
- D) The project team always fixes all the findings identified in audits
Click the reveal the answer
B- A) Are sufficient therefore making manual analysis unnecessary
- B) Have no false positives whatsoever
- C) Are best-suited for application-level vulnerabilities
- D) None of the above
Click the reveal the answer
D- A) Slither supports detectors, printers, tools and custom analyses
- B) Echidna is a symbolic analyzer tool
- C) MythX is a combination of static analysis, symbolic checking and fuzzing tools
- D) None of the above
Click the reveal the answer
A,C- A) They are findings that are not real concerns/vulnerabilities after further review
- B) They are real vulnerabilities but are falsely claimed by auditors as benign
- C) They are possible with automated tools
- D) None of the above
Click the reveal the answer
A,C- A) May include both specific vulnerabilities and generic recommendations
- B) May not all be fixed by the project team for reasons of relevancy and acceptable trust/threat model
- C) Always have demonstrable proof-of-concept exploit code on mainnet
- D) None of the above
Click the reveal the answer
A,B- A) Asset flow
- B) Symbolic checking
- C) Inferring constraints
- D) Evaluating assumptions
Click the reveal the answer
A,C,D- A) It is the easiest to perform because smart contracts never have access control
- B) It is the fastest to perform because there are always only two roles: users and admins
- C) It is fundamental to security because privileged roles (of which there may be many) may be misused/compromised
- D) None of the above
Click the reveal the answer
C- A) Difficulty indicates how hard it was for auditors to detect the issue
- B) Difficulty is an objective measure that can always be quantified
- C) Impact is typically classified as High if there is loss/lock of funds
- D) None of the above
Click the reveal the answer
C- A) Are always clearly/completely specified and documented
- B) Have to be typically inferred from the code or discussions with project team
- C) Typically require manual analysis
- D) None of the above
Click the reveal the answer
B,C- A) Static analysis analyzes program properties by actually executing the program
- B) Fuzzing uses valid, expected and deterministic inputs
- C) Symbolic checking enumerates individual states/transitions for efficient state space traversal
- D) None of the above
Click the reveal the answer
D- A) Analyzes the flow of Ether or tokens managed by smart contracts
- B) Assets should be withdrawn only by authorized addresses
- C) The timing aspects of asset withdrawals/deposits is irrelevant
- D) The type and quantity of asset withdrawals/deposits is irrelevant
Click the reveal the answer
A,B- A) Interprocedural control flow is typically indicated by a call graph
- B) Intraprocedural control flow is dictated by conditionals (if/else), loops (for/while/do/continue/break) and return statements
- C) Interprocedural data flow is evaluated by analyzing the data used as argument values for function parameters at call sites
- D) Intraprocedural data flow is evaluated by analyzing the assignment and use of variables/constants along control flow paths within functions