1
1

00:00:00,420  -->  00:00:02,010
<v Instructor>Privilege management.</v>
2

2

00:00:02,010  -->  00:00:03,780
In this lesson, we're going to talk
3

3

00:00:03,780  -->  00:00:06,210
about the different forms of access control,
4

4

00:00:06,210  -->  00:00:08,370
because all of those relate to privileges.
5

5

00:00:08,370  -->  00:00:10,110
Now, when I talk about privilege management,
6

6

00:00:10,110  -->  00:00:11,520
which is the name of this lesson,
7

7

00:00:11,520  -->  00:00:13,530
this is the use of authentication
8

8

00:00:13,530  -->  00:00:16,230
and authorization mechanisms to provide an administrator
9

9

00:00:16,230  -->  00:00:18,570
with centralized or decentralized control
10

10

00:00:18,570  -->  00:00:21,330
of user and group role-based privilege management.
11

11

00:00:21,330  -->  00:00:24,030
Essentially, we want to make sure we're able to control
12

12

00:00:24,030  -->  00:00:26,970
what privileges a person or a group has,
13

13

00:00:26,970  -->  00:00:29,010
and we're going to do that based on their role.
14

14

00:00:29,010  -->  00:00:30,630
That is the best way to do it.
15

15

00:00:30,630  -->  00:00:32,160
So if I have people who work in accounting,
16

16

00:00:32,160  -->  00:00:33,450
they're going to have one set of permissions.
17

17

00:00:33,450  -->  00:00:34,560
If I have people who work in IT,
18

18

00:00:34,560  -->  00:00:36,060
they have a different set of permissions.
19

19

00:00:36,060  -->  00:00:37,140
If I have a regular user,
20

20

00:00:37,140  -->  00:00:38,820
they're going to have a different set of permissions.
21

21

00:00:38,820  -->  00:00:41,310
On my system, instructors have a different set
22

22

00:00:41,310  -->  00:00:42,510
of permissions than students
23

23

00:00:42,510  -->  00:00:44,940
because we have different roles that we have to do.
24

24

00:00:44,940  -->  00:00:46,980
Now, most of our policies are going to be designed
25

25

00:00:46,980  -->  00:00:47,820
with the principles
26

26

00:00:47,820  -->  00:00:50,370
of least privilege and separation of duty,
27

27

00:00:50,370  -->  00:00:51,900
and these are two key concepts
28

28

00:00:51,900  -->  00:00:53,430
that you have to be familiar with.
29

29

00:00:53,430  -->  00:00:55,410
Now, least privilege is pretty simple.
30

30

00:00:55,410  -->  00:00:57,120
That just means doing something
31

31

00:00:57,120  -->  00:00:59,520
with the lowest amount of privileges possible.
32

32

00:00:59,520  -->  00:01:01,140
If you can do it as a user,
33

33

00:01:01,140  -->  00:01:02,970
you're just going to do it with a user account.
34

34

00:01:02,970  -->  00:01:04,590
If you need to have administrative rights,
35

35

00:01:04,590  -->  00:01:07,260
do you need all administrative rights or just certain ones?
36

36

00:01:07,260  -->  00:01:09,450
If so, that would be a super user instead of
37

37

00:01:09,450  -->  00:01:10,770
an administrative user,
38

38

00:01:10,770  -->  00:01:13,050
and so you want to use that idea of least privilege.
39

39

00:01:13,050  -->  00:01:14,820
Now, with separation of duties,
40

40

00:01:14,820  -->  00:01:17,100
this is a means of establishing checks and balances
41

41

00:01:17,100  -->  00:01:19,680
against the possibility of insider threats,
42

42

00:01:19,680  -->  00:01:20,730
because these insider threats
43

43

00:01:20,730  -->  00:01:23,700
can compromise critical systems and procedures.
44

44

00:01:23,700  -->  00:01:25,560
Now, when we talk about separation of duties,
45

45

00:01:25,560  -->  00:01:27,840
this is a system of checks and balances.
46

46

00:01:27,840  -->  00:01:30,660
So in my company, we have a corporate checkbook.
47

47

00:01:30,660  -->  00:01:34,140
If somebody wants to sign a check, one person can't do that.
48

48

00:01:34,140  -->  00:01:36,600
Each of those checks has dual signatures.
49

49

00:01:36,600  -->  00:01:40,050
Now, that means that I can sign and my COO can sign
50

50

00:01:40,050  -->  00:01:41,880
and that means we can pay our bills that way.
51

51

00:01:41,880  -->  00:01:43,260
It's a little bit more cumbersome
52

52

00:01:43,260  -->  00:01:45,030
but it does make sure
53

53

00:01:45,030  -->  00:01:46,560
that nobody can just take the checkbook
54

54

00:01:46,560  -->  00:01:49,050
and do a single signature and steal all of our money.
55

55

00:01:49,050  -->  00:01:51,720
My COO can't go and fly to Vegas and spend all of our money.
56

56

00:01:51,720  -->  00:01:52,553
It doesn't work that way.
57

57

00:01:52,553  -->  00:01:54,540
She has to have both our signatures.
58

58

00:01:54,540  -->  00:01:56,730
That's the idea of a separation of duties here.
59

59

00:01:56,730  -->  00:01:57,900
Now, I mentioned at the beginning
60

60

00:01:57,900  -->  00:01:59,160
of this lesson we were going to talk
61

61

00:01:59,160  -->  00:02:00,360
about access control types.
62

62

00:02:00,360  -->  00:02:01,680
So, let's get into that.
63

63

00:02:01,680  -->  00:02:03,120
Access control types.
64

64

00:02:03,120  -->  00:02:05,700
There are four types of access controls.
65

65

00:02:05,700  -->  00:02:07,740
There is discretionary access control,
66

66

00:02:07,740  -->  00:02:10,770
mandatory access control, role-based access control
67

67

00:02:10,770  -->  00:02:13,020
and attribute based access control.
68

68

00:02:13,020  -->  00:02:15,900
Now, when we deal with discretionary access control or DAC,
69

69

00:02:15,900  -->  00:02:18,540
this is an access control model where each resource
70

70

00:02:18,540  -->  00:02:21,480
is protected by an access control list or ACL
71

71

00:02:21,480  -->  00:02:23,850
and it's managed by the resource owner or owners.
72

72

00:02:23,850  -->  00:02:25,350
If you use Microsoft Windows,
73

73

00:02:25,350  -->  00:02:28,110
you're familiar with DAC because that's what we use.
74

74

00:02:28,110  -->  00:02:30,960
You can right click on that properties button on the folder,
75

75

00:02:30,960  -->  00:02:32,370
you can go to a shared folder,
76

76

00:02:32,370  -->  00:02:34,290
you can right click on it and go to properties.
77

77

00:02:34,290  -->  00:02:36,600
And when you do that, you'll see the attributes associated
78

78

00:02:36,600  -->  00:02:38,160
with that access control list.
79

79

00:02:38,160  -->  00:02:40,200
It'll say what users can read, write
80

80

00:02:40,200  -->  00:02:41,700
or modify those folders.
81

81

00:02:41,700  -->  00:02:44,130
That's the whole idea of discretionary access control.
82

82

00:02:44,130  -->  00:02:47,250
The person who owns that resource can change those files
83

83

00:02:47,250  -->  00:02:49,590
and make anybody access it that they want.
84

84

00:02:49,590  -->  00:02:50,700
I, as assistant administrator,
85

85

00:02:50,700  -->  00:02:52,860
have access over the entire system as well.
86

86

00:02:52,860  -->  00:02:54,390
But Windows, by default,
87

87

00:02:54,390  -->  00:02:56,730
is a discretionary access control system.
88

88

00:02:56,730  -->  00:02:58,530
It is a DAC system.
89

89

00:02:58,530  -->  00:03:00,840
Now, beyond that, we can look into MAC,
90

90

00:03:00,840  -->  00:03:02,910
and MAC is a little bit more secure.
91

91

00:03:02,910  -->  00:03:04,650
MAC has a lot more overhead though.
92

92

00:03:04,650  -->  00:03:07,260
MAC is mandatory access control.
93

93

00:03:07,260  -->  00:03:09,570
This is an access control model where resources
94

94

00:03:09,570  -->  00:03:12,660
are protected by inflexible system defined rules
95

95

00:03:12,660  -->  00:03:16,650
where every resource or object and every user or subject
96

96

00:03:16,650  -->  00:03:19,590
is allocated a clearance level or a label.
97

97

00:03:19,590  -->  00:03:22,560
Whenever I hear about MAC, I always think about labels.
98

98

00:03:22,560  -->  00:03:23,730
Everything is labeled.
99

99

00:03:23,730  -->  00:03:26,280
And if you think about the standard military context,
100

100

00:03:26,280  -->  00:03:27,990
this is a MAC context.
101

101

00:03:27,990  -->  00:03:30,840
We have a document and it's either classified as secret,
102

102

00:03:30,840  -->  00:03:34,080
confidential, top secret, whatever that document is.
103

103

00:03:34,080  -->  00:03:36,930
That label then tells it how it it'll be treated
104

104

00:03:36,930  -->  00:03:38,370
inside of our system.
105

105

00:03:38,370  -->  00:03:39,810
Now, if I wanted to read this document
106

106

00:03:39,810  -->  00:03:41,280
it's going to check my account and say,
107

107

00:03:41,280  -->  00:03:43,380
Jason, what clearances does he have?
108

108

00:03:43,380  -->  00:03:47,340
He has top secret, secret, confidential, unclassified.
109

109

00:03:47,340  -->  00:03:48,990
That means he can read all four of those.
110

110

00:03:48,990  -->  00:03:50,610
Now, if we went and checked Mary's clearance
111

111

00:03:50,610  -->  00:03:52,200
and she only has secret,
112

112

00:03:52,200  -->  00:03:53,520
she wouldn't be able to read this document
113

113

00:03:53,520  -->  00:03:55,020
because this is a top secret document
114

114

00:03:55,020  -->  00:03:56,460
so it wouldn't show it to her.
115

115

00:03:56,460  -->  00:03:59,340
That's the idea of MAC, and that's how these systems work.
116

116

00:03:59,340  -->  00:04:02,610
Now, most operating systems do not support MAC
117

117

00:04:02,610  -->  00:04:04,380
but there is one that really does it well,
118

118

00:04:04,380  -->  00:04:06,120
and this is SELinux.
119

119

00:04:06,120  -->  00:04:07,410
SELinux was actually developed
120

120

00:04:07,410  -->  00:04:10,140
by the National Security Agency, the NSA,
121

121

00:04:10,140  -->  00:04:12,090
and it provides a method for implementing MAC
122

122

00:04:12,090  -->  00:04:13,140
within that network.
123

123

00:04:13,140  -->  00:04:15,600
So, if you want to use MAC, remember,
124

124

00:04:15,600  -->  00:04:17,130
there's a lot of overhead involved
125

125

00:04:17,130  -->  00:04:19,440
but if you have something that's very classified,
126

126

00:04:19,440  -->  00:04:22,350
it's a good system to use, and then you'd use SELinux.
127

127

00:04:22,350  -->  00:04:23,430
Now, the next one we want to talk about
128

128

00:04:23,430  -->  00:04:26,040
is role-based access control or RBAC.
129

129

00:04:26,040  -->  00:04:28,260
Now, RBAC is an access control model
130

130

00:04:28,260  -->  00:04:30,330
where resources are protected by ACLs
131

131

00:04:30,330  -->  00:04:31,770
that are managed by administrators
132

132

00:04:31,770  -->  00:04:35,070
and can provide user permissions based on job functions.
133

133

00:04:35,070  -->  00:04:37,260
So, going back to my earlier example,
134

134

00:04:37,260  -->  00:04:39,780
I take all my accountants and I put 'em in one group
135

135

00:04:39,780  -->  00:04:41,550
then I can give that group permissions.
136

136

00:04:41,550  -->  00:04:44,010
That would be a role-based access control.
137

137

00:04:44,010  -->  00:04:45,690
Because I'm going to be able to implement this
138

138

00:04:45,690  -->  00:04:47,730
through the concept of groups inside of Windows.
139

139

00:04:47,730  -->  00:04:49,590
That's the idea of doing RBAC.
140

140

00:04:49,590  -->  00:04:51,750
Now, this isn't a perfect implementation of RBAC
141

141

00:04:51,750  -->  00:04:54,510
but it does get the job done most of the way
142

142

00:04:54,510  -->  00:04:55,740
and so we will consider that
143

143

00:04:55,740  -->  00:04:58,320
an implementation inside of Windows.
144

144

00:04:58,320  -->  00:05:00,690
Another one we can use is attribute based.
145

145

00:05:00,690  -->  00:05:03,060
Attribute based access control or ABAC
146

146

00:05:03,060  -->  00:05:04,590
is an access control technique
147

147

00:05:04,590  -->  00:05:06,240
that evaluates a set of attributes
148

148

00:05:06,240  -->  00:05:07,860
that each subject possesses
149

149

00:05:07,860  -->  00:05:09,600
to determine if access should be granted.
150

150

00:05:09,600  -->  00:05:11,670
Now, ABAC can be used to implement controls
151

151

00:05:11,670  -->  00:05:13,290
for separation of duties.
152

152

00:05:13,290  -->  00:05:16,200
So, I can say that I'm part of the A group
153

153

00:05:16,200  -->  00:05:17,760
and somebody else is part of the B group.
154

154

00:05:17,760  -->  00:05:19,950
And based on that, we have certain attributes.
155

155

00:05:19,950  -->  00:05:20,880
So, there are certain things
156

156

00:05:20,880  -->  00:05:22,080
that A group people can do
157

157

00:05:22,080  -->  00:05:23,640
and B group people can do.
158

158

00:05:23,640  -->  00:05:26,520
And because of those attributes associated with each of us,
159

159

00:05:26,520  -->  00:05:27,810
we can then do certain things
160

160

00:05:27,810  -->  00:05:29,280
and that would separate our duties.
161

161

00:05:29,280  -->  00:05:32,760
ABAC is by far the most complicated type of access control
162

162

00:05:32,760  -->  00:05:33,600
to implement
163

163

00:05:33,600  -->  00:05:36,000
but it does give you the most flexibility
164

164

00:05:36,000  -->  00:05:38,430
because you're not doing things based on groups anymore,
165

165

00:05:38,430  -->  00:05:40,590
you're doing it based on a single subject.
166

166

00:05:40,590  -->  00:05:43,800
And so I can actually have down to the individual person
167

167

00:05:43,800  -->  00:05:45,780
what specific attributes they have
168

168

00:05:45,780  -->  00:05:48,060
and therefore what specific things they can do
169

169

00:05:48,060  -->  00:05:48,993
on that system.
