290 likes | 303 Views
Explore the myths and advantages of capability-based systems over ACLs, focusing on enforcement, delegation, and revocation of permissions in computer security. Learn about mandatory access control, security models like Bell-LaPadula and Biba, and dynamic rights considerations.
E N D
CMSC 414Computer and Network SecurityLecture 11 Jonathan Katz
Announcements • Midterm • Closed book, closed notes • Covers material through today’s lecture • Everything linked from the course syllabus • HW2 out
“Capability myths…” • Equivalence myth: ACLs and capabilities are “just” two views of the AC matrix • Confinement myth: Capability systems cannot enforce confinement • That is, cannot restrict delegation • Irrevocability myth: Capabilities cannot be revoked
Equivalence myth • ACLs have “arrows” from objects to subjects; capabilities have “arrows” from subjects to objects • Capabilities do not require subjects to “know” object names a priori • Capabilities do not require subjects to “know” whether they have authority • They have authority by virtue of the fact that they have a capability! • In contrast, with ACLs how do I obtain a list of all files I am allowed to read?
Equivalence myth • Capabilities allow for finer-grained treatment of subjects • Processes rather than user accounts • ACLs potentially require objects to be aware of all subjects • Capabilities allow greater flexibility to delegate permissions • In ACLs, usually all-or-nothing • In capability-based systems, can delegate a subset of the rights you have
Confinement myth • Myth: Capabilities can be delegated “at will” and therefore cannot be confined • But…can be set up so that A can delegate a capability to B only if A is authorized to pass capabilities to B • If B is untrusted, then the latter capability will not exist
Origin of confinement myth • Mistaken assumption that the ability to write/read files translates into the ability to read/write capabilities • Capabilities should not be viewed as “just” files; they can be typed by the OS
Revocation • One solution: indirection • Capabilities name an entry in a table, rather than the object itself • To revoke access to object, invalidate or change the entry in the table • Difficult to revoke access of a single user • Capabilities can also expire with time • If OS stores capabilities, can delete upon request • Requires object to recall to whom capabilities given
Advantages of capabilities • Better at enforcing “principle of least privilege” • Provide access to minimal resources, to the minimal set of subjects • We have seen already that capabilities allow much finer-grained control over subjects (process-level instead of user-level)
Advantages… • Avoiding “confused deputy” problem • “Deputy” = program managing authorities from multiple sources • In the example we have seen, the problem was not the compiler having the wrong authority, but of exercising its authority for the wrong purpose
Confused deputy… • Capabilities give the ability to identify the authority a subject is using • Can designate use of the authority for a specific purpose • Capabilities also tie together designation and authority • Don’t “know” about a resource if you don’t have the capability to access it! • Any request to access a resource must include the necessary authority to do so --- “deputy” can now examine the context of the request
Disadvantages of capabilities • Overhead • Revocation more difficult • Controlling delegation more difficult • Making files world-readable more difficult (impossible?)
“Military security policy” • Primarily concerned with secrecy • Objects given “classification” (rank; compartments) • Subjects given “clearance” (rank; compartments) • “Need to know” basis • Subject with clearance (r, C) dominates object with classification (r’, C’) only if r r’ and C’ C • Defines a lattice … classifications/clearance not necessarily hierarchical
Security models • Bell-LaPadula model • Identifies allowable communication flows • Concerned primarily with ensuring secrecy • Biba model • Concerned primarily with “trustworthiness”/integrity of data • Chinese wall • Developed for commercial applications
Bell-LaPadula model • Simple security condition: S can read O if and only if lo ls • *-property: S can write O if and only if ls lo • Why? • “Read down; write up” • Information flows upward
Dynamic rights • Could consider dynamic rights • Once a process reads a file at one security level, cannot write to any file at a lower security level
Basic security theorem • If a system begins in a secure state, and always preserves the simple security condition and the *-property, then the system will always remain in a secure state • I.e., information never flows down…
Communicating down… • How to communicate from a higher security level to a lower one? • Max. security level vs. current security level • Maximum security level must always dominate the current security level • Reduce security level to write down… • Security theorem no longer holds • Must rely on users to be security-conscious
Commercial vs. military systems • The Bell-LaPadula model does not work well for commercial systems • Users given access to data as needed • Discretionary access control vs. mandatory access control • Would require large number of categories and classifications • Centralized handling of “security clearances”
Biba model • Concerned with integrity • “Dual” of Bell-LaPadula model • The higher the level, the more confidence • More confidence that a program will act correctly • More confidence that a subject will act appropriately • More confidence that data is trustworthy • Integrity levels may be independent of security classifications • Confidentiality vs. trustworthiness • Information flow vs. information modification
Biba model • Simple integrity condition: S can read O if and only if Is Io • Is, Io denote the integrity levels • (Integrity) *-property: S can write O if and only if Io Is • Why? • The information obtained from a subject cannot be more trustworthy than the subject itself • “Read up; write down” • Information flows downward
Security theorem • An information transfer path is a sequence of objects o1, …, on and subjects s1, …, sn-1, such that, for all i, si can read oi and write to oi+1 • Information can be transferred from o1 to on via a sequence of read-write operations • Theorem: If there is an information transfer path from o1 to on, then I(on) I(o1) • Informally: information transfer does not increase the trustworthiness of the data • Note: says nothing about secrecy…
“Low-water-mark” policy • Variation of “pure” Biba model • If s reads o, then the integrity level of s is changed to min(Io, Is) • The subject may be relying on data less trustworthy than itself • So, its integrity level is lowered • Drawback: the integrity level of a subject is non-increasing!
Chinese wall • Intended to prevent conflicts of interest • Rights are dynamically updated based on actions of the subjects
Chinese wall -- basic setup Company datasets Bank A Bank B School 1 School 2 School 3 Conflict of interest (CI) class files
Chinese wall rules • Subject S is allowed to read from at most one company dataset in any CI class • This rule is dynamically updated as accesses occur • See next slide…
Example Bank A Bank B School 1 School 2 School 3 read read
Chinese wall rules II • S can write to O only if • S can read O and • All objects that S can read are in the same dataset as O • This is intended to prevent an indirect flow of information that would cause a conflict of interest • E.g., S reads from Bank A and writes to School 1; S’ can read from School 1 and Bank B • S’ may find out information about Banks A and B! • Note that S can write to at most one dataset…