InkTag: Secure Applications on an Untrusted Operating System
Owen Hofmann, Sangman Kim, Alan Dunn, Mike Lee, Emmett Witchel UT Austin
InkTag: Secure Applications on an Untrusted Operating System Owen - - PowerPoint PPT Presentation
InkTag: Secure Applications on an Untrusted Operating System Owen Hofmann, Sangman Kim, Alan Dunn, Mike Lee, Emmett Witchel UT Austin You trust your OS... should you? The OS is the software root of trust on most systems The OS is a
Owen Hofmann, Sangman Kim, Alan Dunn, Mike Lee, Emmett Witchel UT Austin
attack surface
App App App App
2
attack surface
App App App App
2
App
attack surface
App App App App
2
App
attack surface
App App App App
2
App
App App App
3
App App App App
4
App App App App
4
App App App App
4
App App App App App
App App App
App App App App
5
App App App App
6
at address V
data from F at the correct offset?
7
page table
at address V
data from F at the correct offset?
7
mmap() 0x7FFCB...
page table
at address V
data from F at the correct offset?
8
mmap() 0x7FFCB...
page table
at address V
data from F at the correct offset?
9
page table
at address V
data from F at the correct offset?
9
page table
page fault
at address V
data from F at the correct offset?
9
page table
page fault set_pte()
at address V
data from F at the correct offset?
9
page table
page fault
at address V
data from F at the correct offset?
10
page table
page fault
11
page table
11
page table
set_pte()
12
13
14
15
16
H
17
H
17
H
17
H
17
H
17
H
17
18
H
18
H
18
H
18
19
1 3 2
19
1 3 2 1 2 3
19
1 3 2 1 2 3
19
1 3 2 1 2 3
page table
address space
correctly?
same hash as F
low-level PTE change
application requests
20
mmap() 0x7FFCB...
page table
address space
correctly?
same hash as F
low-level PTE change
application requests
20
page table
page fault
address space
correctly?
same hash as F
low-level PTE change
application requests
20
page table
page fault set_pte()
address space
correctly?
same hash as F
low-level PTE change
application requests
20
page table
page fault
address space
correctly?
same hash as F
low-level PTE change
application requests
20
page table
page fault
21
address space
correctly?
same hash as F
low-level PTE change
application requests
page table
page fault
22
address space
correctly?
same hash as F
low-level PTE change
application requests
PT (2)
23
PT
PT (2)
23
PT (1)
PT (2)
24
PT (1)
PT (2)
24
PT (1)
PT (2)
24
PT (1)
PT (2)
25
PT (1)
PT (2)
25
PT (1)
PT (2)
25
PT (1)
Stack New region
26
mmap() 0x7FFCB...
Stack New region
26
27
28
29
pte_update( addr=0x7FCB...
29
in an array of descriptors
mapping
.file=... .addr=... .offset=...
30
in an array of descriptors
mapping
.file=... .addr=... .offset=...
mmap(file=..., token=5 0x7FCB...
30
in an array of descriptors
mapping
.file=... .addr=... .offset=...
30
in an array of descriptors
mapping
.file=... .addr=... .offset=...
pte_update( addr=0x7FCB... token=5
30
in an array of descriptors
mapping
.file=... .addr=... .offset=...
pte_update( addr=0x7FCB... token=5
30
.file=... .addr=... .offset=...
31
.file=... .addr=... .offset=...
pte_update( addr=0x7FCB... token=eleventy
31
.file=... .addr=... .offset=...
pte_update( addr=0x7FCB... token=eleventy
31
.file=... .addr=... .offset=...
pte_update( addr=0x7FCB... token=eleventy
31
.file=... .addr=... .offset=...
32
.file=... .addr=... .offset=...
mmap(file=..., token=5 0x7FCB...
32
.file=... .addr=... .offset=...
mmap(file=..., token=5 0x7FCB... , prev=2
32
validation
mappings
updates list
.file=... .addr=... .offset=...
mmap(file=..., token=5 0x7FCB... , prev=2
33
34
35
36
37
38