Lecture 28: December 4, 2019
Reading: text>, §24.4.2–24.5
Due: Homework 5, due on December 6, 2019 at 11:59pm; Lab 3, due on December 6, 2019 at 11:59pm
- Greetings and felicitations!
- Some common vulnerabilities
- Catalogues: CVE (Common Vulnerabilities and Exposures), CWE (Common Weakness Enumeration)
- 2011 MITRE/SANS Top 25 Most Dangerous Software Errors
- OWASP Top 10 – 2017 The Ten Most Critical Web Application Security Risks
- MITRE/SANS list
- Insecure interactions among components
- SQL injection
- OS command injection
- Cross-site scripting
- Unrestricted upload of file with dangerous type
- Cross-site request forgery
- URL redirect to untrusted site
- Risky resource management
- Buffer copy without checking size of input
- Improper limitation of a pathname to a restricted directory
- Download of code without integrity check
- Inclusion of functionality from untrusted control sphere
- Use of potentially dangerous function
- Incorrect calculation of buffer size
- Uncontrolled format string
- Integer overflow or wraparound
- Porous defenses
- Missing authentication for critical function
- Missing authorization
- Use of hard-coded credentials
- Missing encryption of sensitive data
- Reliance on untrusted inputs in a security decision
- Execution with unnecessary privileges
- Incorrect authorization
- Incorrect permission assignment for critical resource
- Use of a broken or risky cryptographic algorithm
- Improper restriction of excessive authentication attempts
- Use of a one-way hash without a salt
- OWASP list
- Injection
- Broken authentication and session management
- Sensitive data exposure
- XML external entities
- Broken access cointrol
- Security misconfiguration
- Cross-site scripting
- Insecure deserialization
- Using components with known vulnerabilities
- Insufficient logging and monitoring
- Comparison
- Everything on the OWASP list is also on the MITRE/SANS list
- Injection is #1 on both lists
- The MITRE/SANS list covers vulnerabilities generally; OWASP covers only web vulnerabilities
- Penetration Studies
- Why? Why not direct analysis?
- Effectiveness
- Interpretation
- Flaw Hypothesis Methodology
- System analysis
- Hypothesis generation
- Hypothesis testing
- Generalization
- System Analysis
- Learn everything you can about the system
- Learn everything you can about operational procedures
- Compare to other systems
- Hypothesis Generation
- Study the system, look for inconsistencies in interfaces
- Compare to other systems’ flaws
- Compare to vulnerabilities models
- Hypothesis testing
- Look at system code, see if it would work (live experiment may be unneeded)
- If live experiment needed, observe usual protocols
- Generalization
- See if other programs, interfaces, or subjects/objects suffer from the same problem
- See if this suggests a more generic type of flaw
- Elimination
- Where to start
- Unknown system
- Known system, no authorized access
- Known system, authorized access
- Examples
- Michigan Terminal System