ECE590-03 Enterprise Storage Architecture Fall 2019 Security
Tyler Bletsch Duke University
Enterprise Storage Architecture Fall 2019 Security Tyler Bletsch - - PowerPoint PPT Presentation
ECE590-03 Enterprise Storage Architecture Fall 2019 Security Tyler Bletsch Duke University What this lecture contains Included: Not included: Cryptography internals Basic definitions How to program using Fundamental
Tyler Bletsch Duke University
2
cryptography primitives
can be used in enterprise storage
applicable to storage
cryptography primitives (it’s easy to screw up!)
cryptography
injection attacks)
prevention systems
exploits, e.g. buffer
ever possibly list
3
Confidentiality
authorized restrictions on information access and disclosure, including means for protecting personal privacy and proprietary information
Availability
and reliable access to and use of information Integrity
against improper information modification or destruction, including ensuring information nonrepudiation and authenticity
From Computer Security: Principles and Practices by William Stallings and Lawrie Brown
4
else: system cannot be compromised
cannot easily disprove condition
they can intercept user data, but we if we use encryption, then they cannot.”
5
6
(Also called shared-key encryption or secret-key encryption)
7
key; attacker would need to try all possible keys
(unless these slides are old, then google it first...)
8
all costs (hence the name “private”)
(Also called public-key encryption)
9
but one cannot be determined from the other
then use symmetric with that key
as your reference, stop. You’re doing it wrong.
10
^ Good enough to make a hash table
^ Result: can’t determine input from hash except by brute force
that, but to keep it simple: Don’t use it!
11
isn’t tampered with, so let’s add hash verification:
12
Figure from Wikipedia: Electronic signature
13
private key
the identity of other keyholders
certificate.
certificate attesting to it.
verify the certificate.
14
15
Server Storage controller Disks User
Client/server
HTTP, IMAP, etc.
Server/Storage
iSCSI, FCP, NFS, CIFS
Back-end
SAS, SATA, FCAL
16
(in the case of compromised storage controller, we’re dead no matter what, so we omit consideration of this case)
Server Storage controller Disks Eavesdrop: User
Client/server
HTTP, IMAP, etc.
Server/Storage
iSCSI, FCP, NFS, CIFS
Back-end
SAS, SATA, FCAL
Attacker A Attacker B Attacker C
17
packets.
Server Storage controller Disks MITM: User
Client/server
HTTP, IMAP, etc.
Server/Storage
iSCSI, FCP, NFS, CIFS
Attacker A
Back-end
SAS, SATA, FCAL
Attacker B Attacker C
18
Server Storage controller Disks User
Client/server
HTTP, IMAP, etc.
Back-end
SAS, SATA, FCAL
to get a shared key, then symmetric crypto on the payload
Verify identity with certificate (prevent MITM). Encrypt, usually with encrypted variant of normal protocol. (HTTP→HTTPS, IMAP→IMAPS, etc.)
Server/Storage
FCP, iSCSI, NFS, CIFS
19
Server Storage controller Disks User
Client/server
HTTP, IMAP, etc.
Back-end
SAS, SATA, FCAL
break isolation
Isolated network, protocol-dependent authorization, sometimes encryption
Server/Storage
FCP, iSCSI, NFS, CIFS
20
Server Storage controller Disks User
Client/server
HTTP, IMAP, etc.
Server/Storage
FCP, iSCSI, NFS, CIFS
Back-end
SAS, SATA, FCAL
and your controller
Zoning, messy proprietary encryption
21
Server Storage controller Disks User
Client/server
HTTP, IMAP, etc.
Back-end
SAS, SATA, FCAL
device
tunnel and storage controller...)
CHAP authentication, bolt-on IPSec for encryption (rare)
Server/Storage
FCP, iSCSI, NFS, CIFS
22
Server Storage controller Disks User
Client/server
HTTP, IMAP, etc.
Back-end
SAS, SATA, FCAL
basically equivalent to hash-based password verification
IP/Kerberos authentication, bolt-on IPSec for encryption (rare)
Server/Storage
FCP, iSCSI, NFS, CIFS
23
Server Storage controller Disks User
Client/server
HTTP, IMAP, etc.
Back-end
SAS, SATA, FCAL
encryption
Windows Active Directory + certificate authentication, CIFS encryption (new) or bolt-on IPSec (rare)
Server/Storage
FCP, iSCSI, NFS, CIFS
24
Server Storage controller Disks User
Client/server
HTTP, IMAP, etc.
Back-end
SAS, SATA, FCAL
Very isolated network, at-rest encryption
THEFT
?
Server/Storage
FCP, iSCSI, NFS, CIFS
25
Where does the key live?
provide key, key copied to RAM, admin takes card out and secures it)
26
Server Storage controller Disks User
Client/server
HTTP, IMAP, etc.
Back-end
SAS, SATA, FCAL
Encryption from user to disk (in addition to previous techniques)
Server/Storage
FCP, iSCSI, NFS, CIFS
27
Server Storage controller Disks User
Client/server
HTTP, IMAP, etc.
Back-end
SAS, SATA, FCAL
volume
Server encrypts, data is opaque to storage controller
Server/Storage
FCP, iSCSI, NFS, CIFS
28
Server Storage controller Disks User
Client/server
HTTP, IMAP, etc.
Back-end
SAS, SATA, FCAL
Manual one-off encryption
Server/Storage
FCP, iSCSI, NFS, CIFS
29
30
Includes content from Computer Security: Principles and Practices by William Stallings and Lawrie Brown (the slate blue slides)
31
32
Subject (initiator)
making the request (e.g. the user) Verb (request)
perform (e.g., read, delete, etc.) Right (permission)
ability for the subject to do the action to the object. Object (target)
that’s being hit by the request (e.g., a file).
33
attached to the subject or object (or possibly a giant heap of global rules).
have clearances, subjects cannot give additional permissions.
have all the permissions.
34
35
bool IsActionAllowed(subject, object, action) { if (action ∈ get_permissions(subject,object)) return true }
none of which should surprise you
Own Read Write Read Write Own Read Write
Read Write Read Own Read Write Own Read Write User A User B SUBJECTS OBJECTS User C File 2 File 1 (a) Access matrix File 3 File 4
(b) Access control lists for files of part (a) (c) Capability lists for files of part (a)
R BSubject Access Mode Object A Own File 1 A Read File 1 A Write File 1 A Own File 3 A Read File 3 A Write File 3 B Read File 1 B Own File 2 B Read File 2 B Write File 2 B Write File 3 B Read File 4 C Read File 1 C Write File 1 C Read File 2 C Own File 4 C Read File 4 C Write File 4
Matrix Linked list Flat list
inode
inodes of all the files in the file system
stored in a memory resident inode table
UNIX files are administered using inodes (index nodes)
Directories are structured in a hierarchical tree
Unique user identification number (user ID)
Member of a primary group identified by a group ID
Belongs to a specific group
12 protection bits
Specify read, write, and execute permission for the
users
The owner ID, group ID, and protection bits are part of the file’s inode
(a) Traditional UNIX approach (minimal access control list)
rw- r--
w n e r c l a s s G r
p c l a s s O t h e r c l a s s user: :rw- group::r--
s s s s s
“Set user ID”(SetUID)
“Set group ID”(SetGID)
System temporarily uses rights of the file owner/group in
addition to the real user’s rights when making access control decisions
Enables privileged programs to access files/resources not
generally accessible
Sticky bit
When applied to a directory it specifies that only the owner
that file
Superuser
Is exempt from usual access control restrictions Has system-wide access
39
more metadata to store/check
Windows ACL UI Examples of Linux ACL commands
From Arch Wiki
40
41
bool IsActionAllowed(subject, object, action) { for each rule in rules: if rule allows (subject,object,action) return true return false }
42
43
44
45
since this post-it says he gets everything Frank has…”
commit insider trading with Bob. He dies in prison.
Role 1 Users Roles
Figure 4.6 Users, Roles, and Resources
Resources Role 2 Role 3
47
“Developer” and adds access to the production servers bool IsActionAllowed(subject, object, action) { if (action ∈ get_permissions(subject.role,object)) return true }
48
49
storage system)
intentionally losing data can get surprisingly hard.
blocks; these aren’t affected by simple deletion
the drive to overwrite data, but it’s still there...
disks redirect blocks for bad sector compensation
50
(basically that means “cat /dev/zero > /dev/sda”)
deletion, destruction of backups, etc.
to destroy data, simply lose the key.
51