Reading: text, §16.4; [Chr11,OWA13] Due: Homework 1, on Apr. 5
Greetings and felicitations!
Puzzle of the Day
Capabilities
Revocation: use of a global descriptor table
MULTICS ring mechanism
Rings, gates, ring-crossing faults
Used for both data and procedures; rights are REWA
(b1, b2) access bracket—can access freely; (b3, b4) call bracket—can call segment through gate; so if a’s access bracket is (32, 35) and its call bracket is (36, 39), then assuming permission mode (REWA) allows access, a procedure in:
rings 0–31: can access a, but ring-crossing fault occurs
rings 32–35: can access a, no ring-crossing fault
rings 36–39: can access a, provided a valid gate is used as an entry point
rings 40–63: cannot access a
If the procedure is accessing a data segment d, no call bracket allowed; given the above, assuming permission mode (REWA) allows access, a procedure in:
rings 0–32: can access d
rings 33–35: can access d, but cannot write to it (W or A)
rings 36–63: cannot access d
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 – 2013 rc1 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
Cross-site scripting
Insecure direct object references
Security misconfiguration
Sensitive data exposure
Missing function level access control
Cross-site request forgery
Using known vulnerable components
Unvalidated redirects and forwards
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
Discussion Problem. You discover a security flaw in the operating system on your company’s computer. The flaw enables any user to read any other user’s files, regardless of their protection. You have several choices: you can keep quiet and hope no-one else discovers the flaw, or tell the company, or tell the system vendor, or announce it on the Internet.
Suppose an exploitation of the vulnerability could be prevented by proper system configuration. Which of the above courses of action would you take, and why?
If an exploitation of the vulnerability could be detected (but not prevented) by system administrators, how would this change your answer to the first question?
Now suppose no exploitation of the vulnerability can be detected or prevented. Would this change your answer, and if so, how?