Access Controls Part 1: Computer Security Lectures 2014/15 S2

Z. Cliffe Schreuders
13 Jun 201538:40

Summary

TLDRThe video script delves into the critical concept of access controls, which are mechanisms that regulate what users and programs can do within a computer system. It emphasizes the significance of access controls for security, highlighting the importance of authentication before authorization. The lecture distinguishes between physical and digital access controls, focusing on the latter. It outlines the necessity of a security policy, the trusted computing base, and the role of the reference monitor in mediating access to resources. The script also explains the access control matrix, a theoretical model for describing security states, and contrasts it with real-world implementations like access control lists (ACLs) and capabilities. The discussion further explores various access control models, including mandatory access control, discretionary access control, and role-based access control. It concludes with practical advice on using access controls, particularly the risks of operating as an administrator and the benefits of user access control in modern operating systems.

Takeaways

  • ๐Ÿ”’ **Access Controls** are critical for computer security, determining what users and programs can do within a system.
  • ๐Ÿ›ก๏ธ **Authentication** is the first step, confirming the identity of a user or process before access control can be enforced.
  • ๐Ÿ“œ **Authorization** follows authentication, defining what actions an authenticated subject is permitted to perform.
  • ๐Ÿข **Physical Security** can be thought of as access control in the physical world, like using a badge to enter a room.
  • ๐Ÿ“ **Digital Access Control** is analogous to physical security, but it applies to digital resources and processes.
  • ๐Ÿ“‹ **Access Control Matrix** is a theoretical model that details every possible access permission in a system, though not practical for large systems.
  • ๐Ÿ”‘ **Trusted Computing Base (TCB)** includes all the software and hardware responsible for enforcing security policy.
  • ๐Ÿšช **Complete Mediation** ensures that all access to resources is controlled and that there are no backdoors or unguarded paths.
  • ๐Ÿ“ **Subjects and Objects** are fundamental to access control; subjects are the entities performing actions, and objects are the resources being acted upon.
  • ๐Ÿ“ **Security Context** includes the identity and related information assigned to each subject, which informs access decisions.
  • ๐Ÿ“Š **Access Control Policies** can be formal or informal and are defined by an organization to ensure confidentiality, integrity, and availability of information.
  • ๐Ÿ—๏ธ **Access Control Mechanisms** are the tools or technologies that enforce the policy, such as firewalls or access control lists (ACLs).
  • ๐Ÿ“ˆ **Role-Based Access Control (RBAC)** assigns permissions based on roles within an organization, allowing for flexible and manageable access control.
  • ๐Ÿค **Discretionary Access Control (DAC)** allows users to control access to their own files, which is common in consumer operating systems like Windows and Linux.
  • ๐Ÿ“ **Mandatory Access Control (MAC)** is where access is strictly defined and enforced by a central authority, often used in military or government settings.

Q & A

  • What is the primary purpose of access controls in computer systems?

    -Access controls in computer systems are designed to restrict what people and programs are allowed to do, playing a crucial role in ensuring security.

  • How does physical security relate to the concept of access controls?

    -Physical security involves access controls like doors, gates, and badges that keep unauthorized individuals out of certain areas, similar to how digital access controls restrict access to digital resources.

  • What is the difference between authentication and authorization in the context of access controls?

    -Authentication is the process of verifying the identity of a user or system, while authorization is the step that follows, determining what actions the authenticated subject is permitted to perform.

  • What is the concept of a 'subject' in access control?

    -In access control, a 'subject' refers to the person or program that is trying to perform an action or access a resource, such as a file or another process.

  • What is an 'object' in the context of access control?

    -An 'object' in access control is typically a static resource like a file or a process that a subject might attempt to access or interact with.

  • Why is complete mediation important in access control systems?

    -Complete mediation ensures that all access to resources is consistently checked against the security policy, preventing unauthorized access through unguarded pathways or methods.

  • What is the Trusted Computing Base (TCB)?

    -The TCB represents all the software, hardware, and components that work together to enforce the security policy, including critical parts like the operating system kernel.

  • How does the concept of an Access Control Matrix help in understanding security policies?

    -An Access Control Matrix is a theoretical construct that provides a comprehensive table detailing every possible access permission, helping to conceptualize and analyze security policies.

  • What are the two main types of access control models discussed in the script?

    -The two main types of access control models are nondiscretionary access control (also known as mandatory access control) and discretionary access control.

  • How does discretionary access control differ from mandatory access control?

    -Discretionary access control allows users to own files and decide who can access them, whereas mandatory access control is enforced by a central authority that dictates access rules for all users without their input.

  • What is the role of a reference monitor in access control?

    -A reference monitor is a concept that ensures every access to a resource, like a file, is mediated by a central authority (like an operating system kernel) that checks if the access is allowed according to the security policy.

  • Why is it recommended not to use an administrator account for daily tasks on a computer system?

    -Using an administrator account for daily tasks can lead to accidental harmful actions due to the high level of permissions, potentially causing irreversible damage to the system.

Outlines

00:00

๐Ÿ”’ Introduction to Access Controls

The video begins with an introduction to access controls, emphasizing their importance in computer security. It explains that access controls are mechanisms that restrict what users and programs can do on a computer system. The speaker highlights the significance of access controls in maintaining security and introduces the concept of digital access control, which is analogous to physical security measures like doors and gates. The video also touches on the necessity of authentication before access control can be enforced, and the importance of authorization in determining what a subject is allowed to do. The concept of subjects and objects in the context of access control is introduced, with examples provided to illustrate these abstract ideas.

05:00

๐Ÿ›ก๏ธ Components of Access Control Systems

This paragraph delves into the components that make up an access control system. It discusses the trusted computing base (TCB), which includes all the software, hardware, and components that work together to enforce security policies. The speaker also talks about the reference monitor concept, which ensures that all access to files is mediated through a central point, such as the kernel in Linux systems. The paragraph further explains the protection state and security context, which are used to inform access decisions. It also addresses the potential pitfalls of having a complex access control policy that might be circumvented through informal means, like email, which could undermine security.

10:02

๐Ÿ“ˆ Access Control Matrix and Security Policies

The speaker introduces the access control matrix as a theoretical model used to represent all possible access permissions in a system. It is described as a large table that outlines which subjects are allowed to access which objects and in what ways. While this matrix is mostly used for theoretical analysis, it is a useful tool for expressing any security policy. The paragraph also differentiates between formal and informal security policies, with examples given to illustrate the concepts of confidentiality, integrity, and availability in the context of security policies.

15:02

๐Ÿ›๏ธ Nondiscretionary Access Control

The video moves on to discuss nondiscretionary or mandatory access control, which is characterized by strict rules set by system administrators. The speaker uses an analogy of filing cabinets with different types of information to explain how access is controlled in such systems. It is noted that this type of access control is suitable for environments where the organization owns all the data and needs to maintain tight control over access, such as in the military or government sectors. The paragraph also touches on the use of security context labels in files and processes to enforce these rules.

20:05

๐Ÿ“ Discretionary Access Control and File Ownership

The speaker contrasts mandatory access control with discretionary access control, where users have ownership of files and can decide who can access them. Using the analogy of a personal file folder, the video explains how users can specify access permissions for their files. It is noted that this approach can be chaotic due to the complexity of permission interactions but is suitable for everyday use on systems like Windows and Linux. The paragraph also mentions that modern versions of Windows implement user access control to prevent users from running as administrators all the time, which can lead to security vulnerabilities.

25:07

๐ŸŽญ Role-Based Access Control

The video introduces role-based access control as a method where permissions are assigned based on the roles within an organization. Unlike group-based permissions, roles define specific actions that can be taken by individuals assuming those roles. The speaker explains that this approach is useful for organizations that need a more structured way of assigning permissions without granting full access to all data to role holders. It is highlighted that role-based access control allows for more flexibility and can be applied in both discretionary and nondiscretionary access control contexts.

30:07

๐Ÿ“‹ Access Control Lists and Capabilities

The speaker discusses access control lists (ACLs) as the most common method of describing permissions on computer systems. ACLs are attached to each object and detail the permissions for all users on that system. The video contrasts ACLs with capabilities, where permissions are attached to the subject rather than the object. Capabilities require a token or proof of access, which is then presented when access is attempted. The paragraph also includes a discussion on the risks of using administrator accounts and the importance of using least privilege principles to enhance security.

35:08

๐Ÿ”‘ Summary and Future Topics

The video concludes with a summary of the key points covered in the lecture, including the use of access controls to mediate actions based on a subject's permissions as defined by a policy. The speaker previews that future lectures will delve into more specifics, particularly focusing on Unix systems, to explore file permissions and access controls in greater detail. The importance of understanding these concepts for anyone working in the field of security is emphasized.

Mindmap

Keywords

๐Ÿ’กAccess Controls

Access controls are mechanisms put in place on computer systems to restrict what people and programs are allowed to do. They are crucial for maintaining security and are the focus of the video's discussion. In the context of the video, access controls can refer to both physical security measures, such as doors and gates, and digital security measures that regulate interactions with computer programs and resources.

๐Ÿ’กAuthentication

Authentication is the process of verifying the identity of a person or program. It is a prerequisite step before access controls can be enforced. In the video, it is mentioned that once a subject (user or program) is authenticated, access controls can determine what actions they are authorized to perform. An example from the script is checking a person's badge before allowing them into a room.

๐Ÿ’กAuthorization

Authorization refers to the set of actions a subject is allowed to perform after they have been authenticated. It is part of the access control process and is concerned with granting or denying specific permissions. The video emphasizes that authorization comes after authentication and uses the example of checking a list of people allowed in a room after verifying someone's identity.

๐Ÿ’กTrusted Computing Base (TCB)

The Trusted Computing Base (TCB) is a term that encompasses all the software, hardware, and components that work together to enforce security policies. The TCB is central to the video's discussion on how access controls are implemented and maintained. An example given is that in a Linux system, the kernel and login programs are part of the TCB because they play a critical role in enforcing security.

๐Ÿ’กReference Monitor

The reference monitor is a concept that ensures all access to resources goes through a centralized point that mediates access based on security policies. It is mentioned in the video as a way to ensure every access request, such as accessing a file, is checked against the security policy. The Linux kernel is used as an example, where all file access requests are channeled through it for verification.

๐Ÿ’กAccess Control Matrix

An access control matrix is a theoretical model that describes the security state of a system by detailing every possible access permission in a table format. It is used in the video to illustrate the concept of mapping users to the resources they can access and the actions they are allowed to perform. The matrix is considered abstract and not practical for real-world applications due to its complexity.

๐Ÿ’กSecurity Policy

A security policy is a set of rules that define what is considered secure and what actions are allowed or prohibited within a system. The video discusses how a security policy can be formal or informal and is essential for guiding the implementation of access controls. It defines the desired state of confidentiality, integrity, and availability of information.

๐Ÿ’กMandatory Access Control

Mandatory access control, also known as nondiscretionary access control, is a system where security policies are strictly enforced by administrators, and users have no control over these policies. It is highlighted in the video as a type of access control that is often used in military or government settings where tight control over information is critical. An example is labeling files with security contexts and enforcing access based on these labels.

๐Ÿ’กDiscretionary Access Control

Discretionary access control allows users to own files and decide who can access them, which contrasts with mandatory access control. The video explains that in this model, users have the ability to change permissions and control access to their files, which is more suitable for everyday use in systems like Windows and Linux. Google Drive permissions are cited as an example of discretionary access control in a practical context.

๐Ÿ’กRole-Based Access Control

Role-based access control is a model where permissions are assigned based on the roles that individuals have within an organization. The video describes how this model allows for certain roles to have specific access permissions, which can be activated or deactivated as needed. It is suitable for environments where roles are clearly defined and where individuals may have multiple roles.

๐Ÿ’กAccess Control List (ACL)

An access control list (ACL) is a data structure that specifies access rights to an object. In the context of the video, ACLs are used in operating systems like Windows and Linux to control access to files and directories. Each file has an associated ACL that lists the permissions for different users or groups, allowing for fine-grained control over who can access or modify the file.

Highlights

Access controls are crucial for restricting what people and programs can do on a computer system, playing a vital role in computer security.

Physical security involves access controls like doors and gates, while digital access controls focus on authorization in computer systems.

Authentication must precede access control to verify the identity of a user or process before enforcing what they're authorized to do.

The concept of a subject in access control refers to the person or program attempting an action, while an object is the resource being accessed.

Enforcing a security policy involves complete mediation, ensuring there's a consistent way to enforce security without alternative access points.

The Trusted Computing Base (TCB) includes all software, hardware, and components that work together to enforce security policies.

Hardware can also be part of the TCB, with recent exploits showing how hardware vulnerabilities can lead to security breaches.

An access control policy should prevent workarounds, such as using email to share files, which can undermine the security system.

The reference monitor concept ensures that all access to files is mediated by a central authority, like the kernel in Linux systems.

The protection state of a computer includes all processes, identities, and security contexts that inform access decisions.

An access control matrix is a theoretical model used to express any security policy through a table of permissions for every user and resource.

A security policy can be formal or informal, defining what is considered secure and the rules to enforce.

Confidentiality, integrity, and availability are key concepts in defining a security policy, focusing on what can be read, changed, and accessed.

Mandatory access control (MAC) is used in environments like the military where the system administrator sets security rules for all users.

Discretionary access control (DAC) allows users to own files and decide who can access them, which is common in everyday computing environments.

Role-based access control (RBAC) is a model where permissions are assigned based on the roles within an organization.

Access control lists (ACLs) are used in systems like Windows and Linux to attach permissions to each object, specifying who can access it.

Capabilities are an alternative to ACLs where permissions are attached to the subject, requiring a token to access an object.

It is advised not to run as an administrator or root user due to the risk of making fatal mistakes that can harm the system.

Transcripts

play00:00

okay so this week we are talking about

play00:02

access controls so access controls are

play00:06

the things that it put in place on a

play00:09

computer system that restrict what

play00:12

people and programs are allowed to do

play00:14

basically so very very important in

play00:16

terms of security one of the most

play00:18

important topics I would say uh in the

play00:21

entire computer security like curriculum

play00:24

so this is particularly important and

play00:26

also something that I uh that is related

play00:29

to research and things that that

play00:31

I am involved in so there is quite a lot

play00:36

of terminology in this lecture um but it

play00:39

is quite important so just um bear with

play00:42

me so as we know the term Access Control

play00:45

can refer to physical security so we

play00:48

when when there are access controls in

play00:50

place it's literally you know doors and

play00:53

Gates and all that sort of stuff that

play00:54

keep people out when they're not

play00:55

supposed to be you know in certain areas

play00:58

so when you use a badge to swipe into an

play01:00

area that's an access control um but

play01:03

what we're focused on for this lecture

play01:06

is the digital access control side of

play01:08

things and it's very analogous like it's

play01:09

a very similar concept and a lot of the

play01:12

same Theory applies that we're about to

play01:14

talk about but we are I'm particularly

play01:17

focusing on the computer security side

play01:20

of things so digital digital access

play01:22

controls are the things that restrict

play01:24

access to resources and the various

play01:26

interactions with um you know different

play01:28

programs and things on a F so it's all

play01:31

about authorization so that's what a

play01:34

subject's allowed to perform in order to

play01:36

do that we need to have already done

play01:38

authentication so the stuff from last

play01:40

week about how do you know someone is

play01:42

who they say they are you need to do

play01:44

that first once you know that that

play01:47

person is who they say they are now you

play01:49

can start to enforce access controls so

play01:51

you can say okay yeah so Chris come

play01:54

tries to enter a room for example you

play01:56

show your badge I check the photos the

play01:58

same so okay you are authenticated

play02:00

I I'm convinced that you're that you're

play02:03

Chris uh then I might look at the list

play02:06

of people allowed in the room and if

play02:08

your name's on that list then you're

play02:10

alled in so that first step is um

play02:13

authentication checking who you are uh

play02:15

and then the access control is the

play02:17

authorization step where we actually

play02:18

check what you're authorized to do um

play02:22

and the important thing is this

play02:23

immediates subject's access to objects

play02:26

so subject is just the um person or the

play02:30

thing doing something so in a computer

play02:32

system it might be the program that's

play02:34

running so that process is the the

play02:37

subject of the access control it's

play02:38

trying to do something and when we're

play02:40

making Access Control decisions it's

play02:42

what is that subject allowed to access

play02:46

is that subject allowed to access this

play02:48

object and object are just mostly static

play02:51

resources so files but also if a

play02:55

um you can also say an object might also

play03:00

be a process because if a process is

play03:02

trying to access another process in that

play03:05

situation the the process that's acting

play03:08

you would say is the subject and the

play03:09

process they're trying to connect to is

play03:10

the object um

play03:13

and uh also if you're trying to access

play03:16

the network that that might also be

play03:18

referred to in those terms as well but

play03:21

it's all about enforcing a security

play03:22

policy so we need some policy so some

play03:25

rules that state who's allowed to do

play03:28

what um and then we're going to enforce

play03:30

that with our access controls so we're

play03:33

aiming for complete mediation which

play03:35

means that we really want the security

play03:38

to work and the program shouldn't just

play03:40

be able to access some other program to

play03:44

get the the files that they need to that

play03:46

they want to access like there has to be

play03:48

a consistent way that the security is um

play03:52

enforced so for example if I was a

play03:54

person standing at the door checking

play03:56

name badges like are you allowed in this

play03:58

room if there was another door at the

play04:01

back of the building and no one was

play04:02

guarding that that would fail the

play04:04

complete mediation test right so that

play04:06

would be a bad security design because

play04:08

someone just come in through the other

play04:10

door so in order to work we need to

play04:12

actually have just like one way of

play04:14

accessing a resource and we need to um

play04:17

be able to carefully Define how that

play04:21

behaves um and one of the ways that we

play04:23

are sure that it's going to work is by

play04:26

thinking about the trusted Computing

play04:27

base so trusted Computing Bas or the TCB

play04:31

is basically a term that represents all

play04:34

of the software and hardware and all of

play04:37

the parts and pieces that go together to

play04:40

enforce the policy so if we're talking

play04:43

about like a Linux or Windows system for

play04:45

example that's basically most of the

play04:47

operating system so uh let's just say

play04:50

Linux for example the kernel every Pro

play04:53

process is running on that system as

play04:55

root um basically um

play05:00

whatever login programs there are and

play05:01

all all those sorts of things that's all

play05:03

part of the trusted Computing base

play05:04

because if there are any vulnerabilities

play05:05

in any of that stuff the security is all

play05:07

going to break so that you know the

play05:10

security like the kernel is particularly

play05:13

important that it is enforcing Security

play05:15

in the correct way um so yeah even

play05:19

Hardware so there's a news item I don't

play05:21

know if you've heard from this week very

play05:23

clever exploit where um basically by

play05:26

flipping bits um in memory

play05:31

in on a certain type of um Hardware it's

play05:34

possible to basically corrupt um

play05:37

different set of memory which can result

play05:39

in privilege escalation in in Linux

play05:42

basically I mean it's it's incredibly

play05:44

it's incredibly clever but um so

play05:46

Hardware also comes into it um so all

play05:50

these things go together to actually

play05:52

enforce uh the

play05:54

security

play05:56

um if we can if the person can basically

play06:01

avoid the security controls then we're

play06:04

you know it's not good so another

play06:07

example that might be email in an

play06:09

organization if you have this really

play06:11

clever Access Control policy that

play06:14

specifies which people within an

play06:15

organization are allowed to access

play06:17

certain files say it's a really

play06:20

difficult system to use people might

play06:21

just end up emailing all the files they

play06:23

need back and forth between each other

play06:25

and that's that's horrible right that's

play06:27

the worst thing for security because now

play06:28

they're going around the thing that's

play06:31

supposed to keep those files controlled

play06:33

and who can access them as soon as

play06:34

people start just like ignoring that and

play06:37

emailing things to each other then you

play06:39

know that Security Systems Failing so

play06:42

ideally it shouldn't be possible to um

play06:45

not access things through our security

play06:48

system reference monitor is basically a

play06:51

concept that that there is this thing

play06:55

that you use to access the files so

play06:58

again on Linux it's the kernel every

play07:01

time you go to access a file that

play07:04

request is via a system call so a

play07:06

program says to the Kel hey give me this

play07:08

file and the Kel says uh let me just

play07:12

check if that's okay and then if it is

play07:14

okay it gives the um basically gives

play07:18

access to that file to that program so

play07:21

every single access to a file goes via

play07:24

the kernel and a specific set of you

play07:27

know the security subsystem Within the

play07:29

kernel so that's basically reference

play07:32

monitor where you have something that

play07:34

mediates access to everything the

play07:37

protection State against more

play07:39

terminology um is like the this

play07:43

complete state that the computer is in

play07:47

in terms of you know all of the um

play07:50

processes and all the identity

play07:51

associated with them all security

play07:54

context is the identity or the

play07:57

information assigned to each sub subject

play08:00

that is used to inform the access

play08:02

decisions so uh if we were talking about

play08:06

this exam the analogy that I've said had

play08:08

before of you know standing at the door

play08:09

I might you know check people's name

play08:11

badges you know is David allowed into

play08:13

this room is Chris allowed in the room

play08:15

all in the room um the security context

play08:18

in that situation is if I've checked

play08:22

your name badges already the security

play08:24

context is the information written on

play08:26

your name badge that's the information

play08:27

the person at the door is using to make

play08:29

that decision so uh on a Linux system

play08:32

that's the uid and the G and other

play08:34

security information that is associated

play08:37

with each of those processors so you

play08:38

guys are processors on a computer and

play08:40

you're trying to access something look

play08:42

at your name badge what does your uid

play08:44

say is that user allowed to access it

play08:48

um

play08:50

the thing the stuff happens on a

play08:52

computer though where you might change

play08:54

your name badge so you might Maybe I

play08:59

don't know maybe Umar has permission to

play09:02

sometimes act on taz's behalf right so

play09:06

so you Tas may have in the past said

play09:08

yeah I don't it's fine you can you can

play09:10

you can access that file for me or go

play09:12

into the room for me here here's a name

play09:15

badge and then and and it's a piece of

play09:17

paper that says you're allowed to use my

play09:19

name badge or something and then you

play09:20

might put your put taza's name badge

play09:22

over the top of your name badge um and

play09:25

in that situation you've assumed that

play09:27

identity and that's okay but the act of

play09:30

doing that is a transition in the

play09:32

protection state of the system because

play09:34

things have now changed and now you're

play09:35

acting with a different set of

play09:36

permissions so it's really important on

play09:39

a computer system to clearly Define what

play09:43

kinds of con security context changes

play09:46

are allowed how are those um

play09:49

transitions what are what are what are

play09:51

you allowed to do what how are you

play09:53

allowed to change it that needs to be

play09:54

really tightly controlled obviously and

play09:56

it might be that you need to actually go

play09:58

up to someone else and say can you swap

play10:00

open my name badge you know you

play10:01

shouldn't just be able to randomly

play10:03

change your own name badge um so again

play10:06

that's an analogy for on a computer

play10:08

where you might um change your uid so

play10:11

that you can do something that you're

play10:12

not normally allowed to do so um there

play10:16

are various ways you can do that on a um

play10:20

on a Unix

play10:21

system um and that needs to be very

play10:24

tightly

play10:25

controlled so an access control Matrix

play10:28

is the simplest way of

play10:31

describing a uh Security State and

play10:36

basically it's just a massive table

play10:39

explaining every single access

play10:42

permission that is possible and whether

play10:44

it's allowed so in this case we have

play10:46

user a user B you know a list of all the

play10:48

different every single user is on this

play10:51

table and every single resource that's

play10:54

on the computer or in the room or

play10:56

whatever is all uh laid out in this

play10:59

tables and then for each of these cells

play11:02

is whether or not that subject is

play11:04

allowed to access to that object and in

play11:06

what ways um

play11:09

so in this example here user a is

play11:12

allowed to read and write to file one

play11:14

and actually that user owns that file so

play11:17

they're allowed to change permissions

play11:19

and things for that file um whereas user

play11:22

B is not allowed to read or write to the

play11:24

file they're only allowed to append to

play11:25

the file so they can just stick

play11:27

something at the end of it they can't

play11:28

access what is inside the file or change

play11:30

what's inside the file and and so on so

play11:34

this is an access control

play11:36

Matrix but this is basically an abstract

play11:39

way of thinking about things because in

play11:41

reality um you would never use this

play11:45

system because just you

play11:47

know how many

play11:51

people you know this table is just going

play11:53

to be massive once you've got 100 files

play11:56

you know and 10 users it just become

play11:58

becomes no unmanageable so that's not

play12:01

the way that we um store information

play12:03

about security but it is one way of

play12:05

thinking about it um so we actually need

play12:07

some kind of implementation to actually

play12:09

enforce this and also you need to Define

play12:11

what does this mean what does reading

play12:12

mean you know what does writing mean and

play12:14

owning what do own give you the ability

play12:16

to do

play12:18

so but the nice thing about an access

play12:21

control Matrix this big table is you can

play12:23

use it to express any policy you can if

play12:25

you got this massive table if you can

play12:29

Express anything this way so so I could

play12:31

say that you know you three are allowed

play12:34

to access these files and you guys are

play12:35

allowed to access this in these ways and

play12:37

everything like that um but yeah it's

play12:40

mostly used for theoretical you know

play12:42

analysis and things it's not actually

play12:44

used in real life but we will come back

play12:47

to that in order to explain you know

play12:49

different types of security systems so a

play12:52

policy um defines what's allowed so that

play12:55

can either be formally or informally so

play12:57

a formal policy might literally

play12:59

be you know like this the this is what

play13:02

these users are exactly about to do an

play13:04

informal policy might be more like in a

play13:06

business context the sorts of things

play13:08

that you're supposed to do and and um

play13:11

you know not not specifically specified

play13:15

if it's just written in English it can

play13:17

be you know a bit

play13:19

ambiguous um but a security policy

play13:22

basically defines what's secure um and

play13:25

what what are the rules that we're

play13:27

trying to enforce so if this is our

play13:29

policy this Access Control Matrix here

play13:32

if user B finds a way to write to file

play13:34

one they've managed to subvert our

play13:36

security system and we're in an insecure

play13:38

State that's really we don't we never

play13:41

want user B to be able to um you know

play13:44

write to file one if they figure out a

play13:47

way then things are horribly

play13:49

broken

play13:51

um and the way that we Define what our

play13:54

policy is is going to be in terms of

play13:55

like confidentiality integrity and

play13:57

availability so again thinking about

play13:59

those basic concepts in security um you

play14:03

know are do we want people to be able to

play14:05

read certain information we are they

play14:06

allowed to change it and you know is it

play14:08

available to them

play14:09

basically um can you guys think of

play14:13

practical examples of a security policy

play14:16

just anything just

play14:18

to you know we all know what the terms

play14:22

mean yeah so for

play14:25

example whether or not the information

play14:28

is aailable

play14:29

[Music]

play14:31

Oran yeah yeah so you will um often

play14:35

organizations will say whether certain

play14:38

resources are supposed to be publicly

play14:40

available and a lot of time there's a

play14:41

lot of information that shouldn't be

play14:43

available for the public and I don't

play14:45

know can you think of an

play14:47

example of when information that we

play14:50

wouldn't want to

play14:54

share that's a reason but yeah finances

play14:57

finances is a good answer company

play14:59

policies sorry company policies company

play15:02

policies yeah you know some of that

play15:04

stuff you don't really want everyone to

play15:06

see um so yeah there's all sorts of

play15:09

reasons why you don't want stuff to be

play15:11

available and in that case um are we

play15:14

talking about confidentiality Integrity

play15:16

or

play15:18

availability conf yeah so it's about

play15:22

what someone has you know the ability to

play15:24

read so that's confidentiality if we're

play15:26

talking about whether someone can change

play15:28

something we're talking about integrity

play15:30

and whether it's something that's

play15:31

available as

play15:33

availability um yeah okay so you know as

play15:38

as we've discussed a mechanism is

play15:40

something that enforces a

play15:42

policy um so for example a firewall is a

play15:46

mechanism right it's a thing that does

play15:49

something a model is a way of

play15:51

representing a policy or types of

play15:53

policies um so we're starting to get a

play15:55

bit abstract so a way of representing

play15:58

the the kinds of rules so for example

play16:00

the um you know this Access Control

play16:03

Matrix that's like a security model

play16:07

um and again we are I'm introducing

play16:10

quite a lot of terminology but this is

play16:11

really important especially if you end

play16:12

up working on the defensive side of

play16:14

security you know or any type of

play16:16

security it is important to understand

play16:18

this stuff so okay we just s all this so

play16:22

confidentiality deals with sorry

play16:24

confidentiality policy deals o only with

play16:27

confidentiality

play16:29

so there are types of security systems

play16:31

that the military use for example where

play16:33

the most important thing to them is that

play16:35

things St remain confident confidential

play16:38

so there are security systems they have

play16:40

that will basically won't stop someone

play16:42

from altering information as long as

play16:45

they can't see the stuff they're not

play16:46

allowed to see like that's like the most

play16:48

important thing to them an Integrity

play16:50

policy Deals Only with Integrity they

play16:53

really it doesn't matter what people can

play16:55

see but it's super important that no one

play16:58

can alter this information that's like

play17:01

the most important goal for us and that

play17:03

is often the case in like a commercial

play17:05

setting um but in reality as like you

play17:08

can probably guess when I'm saying this

play17:10

most people want a bit of

play17:12

confidentiality and integrity so we have

play17:14

like a mixed model um so real life

play17:16

policies do a bit of both um you know

play17:19

but there usually is an emphasis on one

play17:21

or

play17:21

another so some types of access control

play17:25

so these are Access Control models uh

play17:27

there's nondescript access control which

play17:29

is also known as mandatory access

play17:31

control and there's discretionary Access

play17:33

Control those are the two big ones so

play17:35

I'm going to talk about those so

play17:38

nondiscretionary access

play17:40

control or mandatory access control um

play17:43

it's one of those areas where the people

play17:45

don't agree with the terminology that

play17:46

you should be using basically manat

play17:49

access

play17:49

control is when a a system um

play17:54

administrator or a Security

play17:55

administrator gets to configure the

play17:57

security role uh rules and that applies

play17:59

to everyone so if I for example had this

play18:03

list of who's

play18:04

allowed hang on let's let's adjust the

play18:07

analogy so it works better um say we've

play18:11

got a room and uh this analog is really

play18:15

boring got filing cabinets and there's

play18:18

certain filing cabinets have different

play18:20

types of information in them um so for

play18:23

example one might be for finances one

play18:25

might be for um use

play18:28

uh Personnel information right and all

play18:31

of you guys have name badges and you're

play18:33

allowed in the room but someone's

play18:35

standing next to these two filing

play18:37

covenants and just checking that you're

play18:38

allowed to access that filing Covenant

play18:40

it's not a very good analogy but we

play18:42

we'll go with it um so it's like it's

play18:45

almost not even analogy it's like what's

play18:47

happening on a computer so okay so

play18:49

that's what's happening um if I get to

play18:53

write all the

play18:55

rules about that information then we've

play18:58

got a mandatory access control system so

play19:00

you guys have no say over what you're

play19:02

allowed to access because I've labeled

play19:05

all of the files in these and filing

play19:07

covenants with information that says

play19:09

this file is about Personnel information

play19:13

this file is about um you know all the

play19:16

everything in this folder is about

play19:18

finances and then I've written on your

play19:21

name tags you know your name and then on

play19:24

my little piece of paper that no none of

play19:26

you get to touch it says

play19:28

list of names and who and whether or not

play19:30

you're allowed to access certain things

play19:32

right that's manag Access Control you've

play19:34

got no choice you can't change any of

play19:36

the security policies you are subject to

play19:38

them uh and you have to basically uh

play19:41

you've got no ownership over any of

play19:43

those files either you just have access

play19:44

to them and um the rules specify what

play19:47

you're allowed to do so that is manager

play19:49

access control so it works well when the

play19:51

organization owns all of the data so all

play19:54

the information is owned by the

play19:55

organization and I want to keep like

play19:57

tight control over what you're allowed

play19:58

to do so for example in the military or

play20:01

government that's often the case so I I

play20:04

really know that you're only supposed to

play20:06

access certain stuff um and it can

play20:10

prevent the problem where you guys if

play20:12

you were allowed to change who's allowed

play20:13

to access what and you made a mistake

play20:15

you might accidentally end up doing

play20:18

something that you don't mean to do so

play20:19

that stops you from making mistakes and

play20:22

it's really predictable for me being the

play20:24

person that's in control of all these

play20:26

files and everything I know what's going

play20:29

to happen it's it's quite

play20:31

straightforward

play20:33

um usually the way that works on a

play20:35

computer is you you literally attach a

play20:38

security context label to an object so I

play20:42

attach some information to each

play20:44

individual file on the computer um and

play20:47

also I attach a separate label to every

play20:50

single running um process or every user

play20:53

on a system And Then There are rules

play20:55

that say what's allowed to happen so

play20:56

it's literally exact the analogy is not

play20:58

too bad so in in this example if I had

play21:01

certain um printouts and I put a sticky

play21:04

note on it that said you know is this a

play21:06

per is is this specific file a um you

play21:12

know Personnel information or Finance

play21:14

information and then I look up on my

play21:16

name and I look you know is Chris

play21:18

allowed to access finances uh I I say

play21:21

yes so yeah okay so you you can access

play21:23

it that's what happens on a computer

play21:26

basically um

play21:29

so uh so yeah there's rules that Define

play21:31

what's that to happen um some ways of

play21:35

modeling traditional mandatory access

play21:38

controls is using like formal math so

play21:40

there's like actual like a notation that

play21:43

describes exactly how this model Works

play21:45

um and the seminal models are very

play21:48

important um traditional like papers and

play21:51

um models that have been proposed uh

play21:54

such as Bell and lapadula model which is

play21:58

focused entirely on confidentiality and

play22:00

the bber model which is um entirely

play22:03

about strong

play22:04

Integrity

play22:07

um but uh it's starting to become the

play22:11

case

play22:13

where there are certain abil there is a

play22:18

there are

play22:20

some security features in things you

play22:23

know consumer operating systems like

play22:25

Windows and Linux where we can do things

play22:27

like this

play22:28

where we can Define security rules that

play22:31

the users have no say over so for

play22:33

example on Linux we can use SE Linux and

play22:35

app armor and that stuff that we'll look

play22:36

at in the next Topic in the module um

play22:38

when we start looking at virtualization

play22:40

sandboxing and

play22:41

things um but for the most part systems

play22:45

aren't based on what we've just

play22:47

described right what I've just described

play22:49

is not the way that most windows and

play22:51

Linux systems work so the way that they

play22:53

work is via discretionary access control

play22:56

which is where users own the files and

play22:59

get to choose who can access them

play23:01

basically so in this previous thing

play23:03

where I'm standing in front of the um

play23:06

set of all all of these um files and

play23:11

checking against my set of rules and

play23:14

that's not exactly how it works I guess

play23:17

my altering my analogy

play23:20

slightly say we've got a um each user

play23:25

has their own um file fer with their own

play23:29

files in it um and you get to say who's

play23:32

allowed to access them so in this

play23:35

situation there might be a um a list on

play23:38

the front of of a particular print out

play23:41

where you get to say who's allowed to

play23:43

access this file and I might still be

play23:44

standing in front of the um the filing

play23:48

covenants just to check that you're all

play23:49

behaving yourselves but now you guys get

play23:52

to Define what the policy is so um Chris

play23:57

you might have

play23:58

you know a certain file that you want to

play24:01

share with David so you might change the

play24:04

rules for that file and say David's

play24:05

allowed to access this file and

play24:07

obviously I'm standing there and check

play24:08

that you only you get to write on the

play24:10

front say who's allowed to access it but

play24:13

now um you know it still might be that

play24:17

that Stig can't can't come along and

play24:20

access that file

play24:22

sorry um because his name is not on the

play24:24

list of who's allowed to access it but

play24:26

if David comes along it's like yeah I I

play24:28

know that Chris said that you're allowed

play24:29

to access the file Chris owns the file

play24:32

and maybe you're even allowed to say I'm

play24:34

going to give away ownership of this

play24:35

file to someone else and then you aren't

play24:37

allowed to change those rules anymore

play24:38

and the file is now owned by someone

play24:40

else

play24:41

yeah

play24:46

Google yes yeah um yeah so you you get

play24:49

to specify who's allowed to access the

play24:51

file um yeah so like Google Drive that

play24:54

that is a form of access controls so

play24:56

there's a list of people and what

play24:57

they're allowed to do on on that file um

play25:01

and I don't think on Google Drive though

play25:04

you can give away ownership of a file as

play25:06

far as I'm aware but you can give full

play25:09

letter yeah yeah so on on like a Windows

play25:13

system or a Linux system you can give

play25:15

the file away entirely if you want so

play25:17

you can say uh yeah you own this file

play25:19

now and then um you've got no longer

play25:22

have any control over the permissions on

play25:23

it

play25:26

um but yeah so there are um ways of a

play25:31

user controlling um their own files

play25:35

basically and you can basically specify

play25:38

what other people are allowed to do but

play25:39

as you can imagine it's a little bit

play25:41

chaotic right so all there's so many

play25:43

interactions and ways that permissions

play25:44

can change so if you are an organization

play25:47

like the military that's not going to

play25:49

suit your needs very well is it but for

play25:52

real everyday life it works quite well I

play25:54

mean it's we get by with it on on Linux

play25:57

and windows

play25:58

um you know we've got by on that system

play26:01

for a really long time I mean it

play26:03

works

play26:05

um so that's that's what we're used to

play26:07

using uh if you're using older version

play26:09

of Windows like Windows Millennium

play26:11

edition if anyone here can remember that

play26:13

and earlier so like you know talking

play26:15

about like Windows 98 Windows

play26:19

95 Windows

play26:22

3.11 there was no access controls at all

play26:25

there's literally nothing in place to

play26:27

stop

play26:28

you from accessing each other's files it

play26:30

was just freefor all in all senses of of

play26:33

the word there there was no controls

play26:34

there at all

play26:36

um there only in Windows NT the server

play26:40

systems where they actually had some

play26:42

form of security actually there for

play26:44

access controls and Windows XP provides

play26:46

discretionary access controls but almost

play26:48

everyone runs as administrator on

play26:50

Windows XP for practical reasons because

play26:52

if you don't run as administrator Vol

play26:55

programs complain and crash um

play26:58

but um you know since Windows Vista

play27:02

there is actually user access control uh

play27:05

is available in Windows and

play27:08

um it now you're if you're using Windows

play27:13

it's good because you can run as not an

play27:19

administrator just a phone call from

play27:22

Australia

play27:23

um so

play27:26

um

play27:28

yeah so now you can actually have a um

play27:31

Windows system where you run and you you

play27:33

know it's not Poss you know hopefully it

play27:36

makes it harder to just accidentally

play27:38

screw up your whole system or for a

play27:40

security problem to cause a huge huge

play27:44

impact um but that's something we can

play27:46

talk about again later Unix has had

play27:49

discretionary Access Control since the

play27:50

1970s so all along there've been

play27:53

Security in place on a Unix

play27:56

system so um the way that discretionary

play28:01

Access Control usually works is the

play28:04

process is a traded um based on user

play28:08

identity so you know I talking about

play28:09

name badges you know we've said this

play28:12

before hopefully you got hopefully

play28:15

you're sick of hearing me say it that

play28:17

the processes on a Windows and a Linux

play28:19

system is most of the security decision

play28:22

is based on who started that program so

play28:24

what is the user identity associated

play28:26

with that program um in practice what

play28:28

that

play28:29

means is that

play28:32

um programs can influence security

play28:34

configuration so um you know a user a

play28:38

program can then set permissions on your

play28:40

own files and things like that because

play28:42

the pro program is running with your

play28:44

permission on that system and we're

play28:46

going to come back to program security

play28:49

throughout the module

play28:50

really um so another kind of Access

play28:54

Control in addition to ro base uh discre

play28:57

access control and manager access

play28:58

control one of the main models used to

play29:01

describe access control is role based

play29:03

access control and that's um usually you

play29:07

use for non non um discretionary access

play29:12

control so kind of a manager control

play29:15

usually but basically the the idea is

play29:18

that if we've got an organization

play29:20

everyone who has certain roles within

play29:22

the organization should be allowed to do

play29:23

certain

play29:24

things um and this is slightly different

play29:28

from groups um but it's a similar

play29:31

concept um but if we have a um I don't

play29:36

know say a bank we might have a manager

play29:39

role and people who are manager managers

play29:42

in the bank get to access certain

play29:43

information that everyone else can

play29:44

access but rather than having to

play29:47

manually give that person all those

play29:49

permissions we just have a role that

play29:50

they're allowed to assume at certain

play29:52

times and maybe the same person has

play29:54

multiple roles that they can activate at

play29:56

various points so rather than just

play29:58

giving that person always access to

play30:00

everything because they're a manager

play30:02

they might also have the role of being

play30:03

an employee which gives them a basic

play30:05

amount of access and then every now and

play30:06

then they can escalate to being a

play30:08

manager and then they get these extra

play30:09

per missions so that's what role based

play30:11

access control

play30:14

is so I said we were going to come back

play30:17

to that um Access Control Matrix and

play30:20

this is where I will so an access

play30:23

control list is the most common way of

play30:25

describing permissions on a computer

play30:27

system so an access control list or an

play30:29

AAL is um attached to each object and it

play30:35

describes the subjects that are allowed

play30:37

access so um so it's like this so you

play30:42

can see this diagram here this is the

play30:43

original diagram we had but now attached

play30:45

to each file is a list of all the

play30:47

permissions for all the users on that

play30:50

system

play30:52

um so it basically stores all the rules

play30:56

for that specific specific file attached

play30:58

to each file so that's the way that um

play31:01

windows and Linux works so and in

play31:04

slightly different ways but similar so

play31:06

on Windows they have a full access

play31:08

control list associated with every

play31:09

single file in the system if you go into

play31:12

security properties for that file you

play31:14

can see the list of all of the users and

play31:17

um that are allowed to access that file

play31:20

uh on Linux it's a slightly um

play31:24

simplified version of that where you it

play31:27

simplifies the permissions down to the

play31:30

owner of the

play31:31

file everyone in um a specific group

play31:37

that the file has associated with it and

play31:39

everyone else on the entire system so

play31:40

rather than a list of every single

play31:42

independent user on the system it kind

play31:43

of groups people together into these

play31:45

categories that's this the typical Unix

play31:48

way of doing things um but it you know

play31:51

it's

play31:53

not Linux has lots of extra security

play31:56

features in addition to that basic way

play31:58

of doing things the Unix way and we'll

play32:00

come back to that so basically the idea

play32:03

is with an Ackle the rules are stored

play32:05

with the object so that's

play32:08

important capabilities yeah

play32:11

sorry with ACLS

play32:14

though especially Windows if you try to

play32:17

edit a file access because of the ACL

play32:19

yeah and you actually change you can

play32:21

actually write you can actually append

play32:23

the file say I'm right to it you when

play32:28

you change it sometimes still you access

play32:30

to it um it well no if you change the

play32:35

permissions in theory and I'm not

play32:37

advocating the fact that Windows does

play32:39

security perfectly but if it's working

play32:42

properly it well there might be multiple

play32:45

layers of security things going on but

play32:47

just looking at that one specific layer

play32:50

right the akles because Windows uh

play32:53

inherits permissions from folders and

play32:56

things like that above it but but

play32:58

generally the permissions on an

play33:00

individual file should specify who can

play33:03

access that file and if you own that

play33:06

file you can change those submissions if

play33:07

you don't you need to be an

play33:08

administrator or the person who owns

play33:10

that file to change those

play33:12

submissions but you can

play33:14

um yeah it should work as it's supposed

play33:17

to so you can say if you're not allowed

play33:19

access to it if you're actually using

play33:22

your computer correctly and you've got

play33:24

multiple users sharing that computer

play33:26

they should have dependent user accounts

play33:28

and then if you've got certain files

play33:30

that you want everyone to be able to use

play33:31

on that computer you would set the

play33:33

permission so that everyone's allowed to

play33:35

access it or certain users are allowed

play33:36

to access

play33:37

it um it's not good practice to have a

play33:41

shared computer with everyone using one

play33:43

account um it's just it's good to have

play33:46

separate accounts for everyone even just

play33:48

so that they don't set you don't have to

play33:50

look at desktop backgrounds that you

play33:52

don't like you know um but you know from

play33:55

a security perspective you should be

play33:56

using it

play33:57

correctly um does that answer your

play34:00

question sort

play34:08

of

play34:13

yeah okay that's fine uh so capabilities

play34:17

is an alternative approach so instead of

play34:20

attaching all of the information about

play34:22

who's allowed to do what to the to the

play34:23

objects we instead attach that

play34:26

information to the

play34:27

subject so basically we keep the rules

play34:30

with the

play34:31

processes so if for example um going

play34:36

going back to our not that inventive

play34:38

analogy of having physical files with

play34:40

things attached to them if I had a print

play34:42

out of something and I staple to it a

play34:44

list of all the users that are allowed

play34:46

to read that file that's an access

play34:49

control list if instead I give you on

play34:53

your name badge a thing that you can

play34:55

clip onto it that has a list of files

play34:57

are allowed to access we're now talking

play34:59

about capabilities

play35:01

so uh it's information that's kept with

play35:03

the with the the actual subjects of the

play35:06

system and obviously you need a way of

play35:08

obtaining the actual capabilities um but

play35:11

there's there will be some mechanism for

play35:13

you to get proof a token that says

play35:16

you're allowed to access something and

play35:17

then when you go to access it you you'll

play35:19

be allowed uh to access it so that's

play35:22

what a capability

play35:25

is says

play35:28

Windows um is it okay to from security

play35:33

perspective um to v as administrator

play35:37

there only one account or you have an

play35:39

administrator account you should never

play35:42

ever ever run as an administrator you

play35:45

should not log in as an administrator or

play35:47

a root user ever because it's too easy

play35:52

to well I could list how many reasons do

play35:55

you want I'll give you two main ones

play35:57

is that you can make mistakes that are

play36:00

fatal hopefully not physically fatal but

play36:02

you know you can make you accidentally

play36:04

type in a command and you've just wiped

play36:05

the Entire Computer like deleted the

play36:07

operating

play36:10

system Windows will let you do that well

play36:13

there's been various problems with that

play36:15

on on Windows as well but it but yeah

play36:18

that still at least that's a level where

play36:19

you actually need to authenticate like

play36:21

on a on a Linux or Unix system you

play36:24

should be logged in not as rout and then

play36:26

you should have to elevate your

play36:27

privileges to do the things that are

play36:29

important so you type the root password

play36:30

to prove that you're allow to do certain

play36:32

things or if it's an auntu system you um

play36:35

have the permission to basically use

play36:37

your own password to do root things

play36:40

which is similar to a Windows like user

play36:42

account control where you can like

play36:44

specifically escalate to do certain

play36:45

things so the Windows security system

play36:49

tries to have that balance where you

play36:52

might be a administrator but you can't

play36:55

just delete things without clicking

play36:56

something on the screen but there have

play36:58

been various problems with that

play36:59

mechanism in the past so it's not it's

play37:02

not perfect but it's better than

play37:04

nothing um so if we're talking about

play37:07

capabilities versus Arles capabilities

play37:09

require applications to be aware of them

play37:11

and they're they can well they're

play37:13

considered to be hard to manage uh

play37:15

although some people in the security

play37:17

Community will strongly argue the

play37:19

opposite but access

play37:21

controlers are just easy in general

play37:23

because we just store them with the

play37:24

files so it's very straightforward

play37:27

basically um and they're stored within

play37:30

the file system and that's the way that

play37:32

most Opera operating systems do things

play37:36

um so on Windows and Unix which includes

play37:38

Linux and Mac um we use AAL for

play37:42

discretionary Access Control although

play37:44

there are other security features that

play37:46

we will talk about um in the next couple

play37:48

of weeks so that's where I'm going to um

play37:52

cover for now in today's lecture and

play37:55

then next week we put pick this up and

play37:57

talk about some specifics to do um

play38:00

mostly with like Unix uh as the example

play38:03

where we look at the way that the um

play38:05

file per missions and access controls

play38:07

and things work so the takeaway messages

play38:10

from the lecture is the fact that we use

play38:13

Access Control to imediate actions based

play38:15

on what a subject's allowed to do and

play38:17

there's a policy that defines what

play38:18

you're allow what different people are

play38:20

allowed to do so what you're authorized

play38:22

to do um and there are things that we're

play38:25

going to cover next next week about the

play38:28

quite powerful and expressive ways that

play38:30

we can do that in Linux um so yeah so

play38:34

we're going to continue on with this

play38:35

topic next week and go into some more

play38:37

detail uh that's all I'm going to cover

play38:39

this week

Rate This
โ˜…
โ˜…
โ˜…
โ˜…
โ˜…

5.0 / 5 (0 votes)

Related Tags
Access ControlComputer SecurityAuthenticationAuthorizationTrusted ComputingSecurity PoliciesMandatory AccessDiscretionary AccessSecurity SystemsRole-Based AccessSecurity ModelsLinux SecurityWindows Security