+ Side Channel and Covert Channel A1acks on Microkernel - - PowerPoint PPT Presentation

side channel and covert channel a1acks on microkernel
SMART_READER_LITE
LIVE PREVIEW

+ Side Channel and Covert Channel A1acks on Microkernel - - PowerPoint PPT Presentation

+ Side Channel and Covert Channel A1acks on Microkernel Architectures WAMOS 2015 Advanced Opera3ng Systems Hochschule RheinMain Alexander Baumgrtner and


slide-1
SLIDE 1

+ ¡

Side ¡Channel ¡and ¡Covert ¡Channel ¡A1acks ¡on ¡Microkernel ¡Architectures ¡

WAMOS ¡2015 ¡ ¡ Advanced ¡Opera3ng ¡Systems ¡– ¡Hochschule ¡RheinMain ¡ Alexander ¡Baumgärtner ¡and ¡Florian ¡Schneider ¡

  • 06. ¡August ¡2015 ¡
slide-2
SLIDE 2

+ ¡Agenda ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

2 ¡

§ Introduc3on ¡ § Timing ¡Channels ¡

  • ­‑

Basic ¡Idea ¡

  • ­‑

Example ¡Exploits ¡

  • ­‑

Counter ¡Measurement ¡Strategies ¡ § Storage ¡Channels ¡

  • ­‑

Basic ¡Idea ¡

  • ­‑

Fiasco.OC ¡Memory ¡Management ¡

  • ­‑

Storage ¡Channel ¡ANack ¡on ¡Fiasco.OC ¡ § Conclusion ¡ § Discussion ¡

slide-3
SLIDE 3

+ ¡

Introduc3on ¡

Side ¡Channels ¡and ¡Covert ¡Channels ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

3 ¡

slide-4
SLIDE 4

+ ¡Introduc3on ¡

n use ¡physical ¡data ¡as ¡addi3onal ¡

informa3on ¡

n does ¡not ¡break ¡the ¡program ¡

algorithm ¡

n e.g. ¡measure ¡3me ¡from ¡compu3ng ¡

  • pera3ons ¡

n “not ¡intended ¡for ¡informa3on ¡

transfer ¡at ¡all” ¡

n on ¡purpose ¡ n e.g. ¡manipulate ¡3ming ¡informa3on ¡

between ¡two ¡processes ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

4 ¡

Side ¡Channel ¡ Covert ¡Channel ¡ à ¡Goal: ¡get ¡secret ¡data ¡

slide-5
SLIDE 5

+ ¡

Timing ¡Channels ¡

Basic ¡Idea ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

5 ¡

slide-6
SLIDE 6

+ ¡Timing ¡Channels ¡

n use ¡3ming ¡informa3on ¡of ¡different ¡events ¡on ¡the ¡system ¡ n must ¡be ¡dealt ¡with ¡empirically ¡ n goal: ¡reduce ¡bandwidth ¡between ¡two ¡events ¡ n only ¡black ¡box ¡tests ¡are ¡considered ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

6 ¡

Basic ¡Idea ¡

slide-7
SLIDE 7

+ ¡

Timing ¡Channels ¡

Example ¡Exploits ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

7 ¡

slide-8
SLIDE 8

+ ¡Timing ¡Channels ¡

n cache-­‑conten3on ¡channel ¡

n high ¡bandwidth ¡3ming ¡channel ¡ n sender ¡and ¡receiver ¡share ¡same ¡amount ¡of ¡blocks ¡in ¡processor ¡cache ¡ n channel ¡exists: ¡sender ¡manipulates ¡blocks ¡of ¡receiver ¡within ¡the ¡cache ¡ n measures ¡memory ¡access ¡3me ¡of ¡the ¡receiver ¡through ¡receiver ¡clock ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

8 ¡

Example ¡Exploits ¡

slide-9
SLIDE 9

+ ¡Timing ¡Channels ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

9 ¡

Example ¡Exploits ¡

n Preemp3on-­‑Tick ¡Exploit ¡

Source: ¡An ¡empirical ¡study ¡of ¡3ming ¡channels ¡on ¡sel4 ¡

slide-10
SLIDE 10

+ ¡

Timing ¡Channels ¡

Counter ¡Measurement ¡Strategies ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

10 ¡

slide-11
SLIDE 11

+ ¡Timing ¡Channels ¡

n basically ¡three ¡strategies: ¡

n receiver ¡has ¡only ¡on ¡clock ¡ n restric3ng ¡receiver ¡to ¡access ¡the ¡senders ¡blocks ¡in ¡the ¡cache ¡ n adding ¡noise ¡to ¡the ¡clocks ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

11 ¡

Counter ¡Measurement ¡Strategies ¡

slide-12
SLIDE 12

+ ¡Timing ¡Channels ¡

n adding ¡noise ¡to ¡the ¡clocks ¡

n preven3ng ¡the ¡receiver ¡to ¡calculate ¡clock ¡rate ¡so ¡easily ¡ n using ¡an3correlated ¡or ¡uncorrelated ¡noise ¡techniques ¡ n degrades ¡system ¡performance ¡massively ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

12 ¡

Counter ¡Measurement ¡Strategies ¡

Source: ¡An ¡empirical ¡study ¡of ¡3ming ¡channels ¡on ¡sel4 ¡

slide-13
SLIDE 13

+ ¡Timing ¡Channels ¡

n instruc3on-­‑based ¡scheduling ¡

n restricts ¡the ¡receiver ¡to ¡use ¡the ¡preemp3on-­‑3ck ¡ n seL4 ¡allows ¡crea3on ¡of ¡own ¡helper ¡thread ¡to ¡access ¡the ¡preemp3on-­‑3ck ¡ n control ¡kernel-­‑scheduled ¡tasks ¡ n uses ¡performance ¡measurement ¡unit ¡to ¡trigger ¡preemp3ons ¡aaer ¡a ¡fixed ¡

number ¡of ¡instruc3ons ¡

n creates ¡excep3on ¡aaer ¡fixed ¡number ¡of ¡instruc3ons ¡ n goal: ¡reduce ¡availability ¡of ¡bandwidth ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

13 ¡

Counter ¡Measurement ¡Strategies ¡

slide-14
SLIDE 14

+ ¡Timing ¡Channels ¡

n cache ¡colouring ¡

n does ¡not ¡deny ¡receiver ¡to ¡access ¡the ¡wall-­‑clock ¡ n colours ¡caches ¡between ¡sender ¡and ¡receiver ¡ n dyeing ¡physical ¡memory ¡on ¡page ¡level ¡ n uses ¡colours ¡for ¡each ¡disjunct ¡par33on ¡ n cost: ¡flush ¡par33ons ¡aaer ¡context ¡switch ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

14 ¡

Counter ¡Measurement ¡Strategies ¡ ¡

Source: ¡An ¡empirical ¡study ¡of ¡3ming ¡channels ¡on ¡sel4 ¡

slide-15
SLIDE 15

+ ¡

Storage ¡Channels ¡

Basic ¡Idea ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

15 ¡

slide-16
SLIDE 16

+ ¡Storage ¡Channels ¡

n use ¡the ¡storage ¡of ¡a ¡system ¡for ¡communica3on ¡

n not ¡detectable ¡by ¡the ¡system ¡ n bypass ¡exis3ng ¡security ¡policies ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

16 ¡

Basic ¡Idea ¡

Source: ¡Undermining ¡Isola3on ¡through ¡Covert ¡Channels ¡in ¡the ¡Fiasco.OC ¡Microkernel ¡

slide-17
SLIDE 17

+ ¡

Storage ¡Channels ¡

Fiasco.OC ¡Memory ¡Management ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

17 ¡

slide-18
SLIDE 18

+ ¡Storage ¡Channels ¡

n microkernel ¡without ¡formally ¡proven ¡correctness ¡ n implementa3on ¡of ¡memory ¡management ¡can ¡be ¡exploited ¡ n kernel ¡objects ¡are ¡stored ¡in ¡slabs ¡

n each ¡slab ¡stores ¡mul3ple ¡objects ¡of ¡same ¡type ¡ n only ¡empty ¡slabs ¡are ¡deleted ¡ n half-­‑empty ¡slabs ¡cannot ¡be ¡rearranged ¡ n many ¡slabs ¡with ¡one ¡object ¡can ¡block ¡much ¡memory ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

18 ¡

Fiasco.OC ¡Memory ¡Management ¡

slide-19
SLIDE 19

+ ¡Storage ¡Channels ¡

n memory ¡usage ¡example ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

19 ¡

Fiasco.OC ¡Memory ¡Management ¡ ¡

Source: ¡Undermining ¡Isola3on ¡through ¡Covert ¡Channels ¡in ¡the ¡Fiasco.OC ¡Microkernel ¡

slide-20
SLIDE 20

+ ¡

Storage ¡Channels ¡

Storage ¡Channel ¡ANack ¡on ¡Fiasco.OC ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

20 ¡

slide-21
SLIDE 21

+ ¡Storage ¡Channels ¡

n ini3al ¡state: ¡slab ¡for ¡data ¡transfer ¡with ¡one ¡empty ¡slot ¡ n sending ¡of ¡one ¡bit ¡by ¡filling ¡or ¡not ¡filling ¡this ¡slot ¡ n receiver ¡reads ¡data ¡by ¡also ¡trying ¡to ¡fill ¡this ¡slot ¡

n if ¡successful ¡à ¡0 ¡is ¡read ¡ n if ¡failure ¡à ¡1 ¡is ¡read ¡

n aaerwards ¡restoring ¡ini3al ¡state ¡for ¡transfer ¡of ¡next ¡data ¡bit ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

21 ¡

Storage ¡Channel ¡ANack ¡on ¡Fiasco.OC ¡

slide-22
SLIDE 22

+ ¡Storage ¡Channels ¡

n data ¡transfer ¡example ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

22 ¡

Storage ¡Channel ¡ANack ¡on ¡Fiasco.OC ¡ ¡

Source: ¡Undermining ¡Isola3on ¡through ¡Covert ¡Channels ¡in ¡the ¡Fiasco.OC ¡Microkernel ¡

slide-23
SLIDE 23

+ ¡

Conclusion ¡

Side ¡Channels ¡and ¡Covert ¡Channels ¡ ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

23 ¡

slide-24
SLIDE 24

+ ¡Conclusion ¡

n 3ming ¡channels ¡

n must ¡be ¡dealt ¡with ¡empirically ¡ n counter ¡measurements ¡oaen ¡come ¡with ¡high ¡costs ¡ n deal ¡with ¡future ¡problems ¡like ¡OpenSSL ¡remote ¡vulnerabili3es ¡

n storage ¡channels ¡

n transfer ¡data ¡using ¡a ¡system’s ¡storage ¡ n Fiasco.OC ¡example: ¡block ¡more ¡memory ¡than ¡allowed ¡ n not ¡possible ¡in ¡systems ¡with ¡(suitable) ¡formal ¡proof ¡

¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

24 ¡

slide-25
SLIDE 25

+ ¡

Discussion ¡

… ¡and ¡Ques3ons? ¡

  • 06. ¡August ¡2015 ¡

WAMOS ¡2015 ¡| ¡Baumgärtner ¡& ¡Schneider ¡

25 ¡