# 2017-07-05
Time: **9am PDT** (12pm EDT, 5pm BST) [see the time in your timezone](https://www.timeanddate.com/worldclock/fixedtime.html?msg=Linuxkit+Security+SIG&iso=20170705T09&p1=224)

Meeting location: https://docker.zoom.us/j/779801882

Announcement: [Moby project forum post](https://forums.mobyproject.org/t/2017-07-05-linuxkit-security-sig-meeting/96)

Video recording: https://youtu.be/qkp0JqtlST0

Previous meeting notes: [2017-06-21](2017-06-21.md)

## Agenda
- Introductions & Administrivia (5 min)
- Automatic privilege separation and `Memorizer` deep dive - @ndauten (30 min)
  - What is automatic privilege separation?
  - Introduction to `Memorizer`
  - Discussion about tracking namespaces, other feedback
  - demo
- Project updates (10 min)
- Next meeting: 2017-07-19
  - deep dive TBD
  - we can propose additional deep dives and discussion topics!

## Meeting Notes
Scribe: @mgoelzer

- Next meeting: July 19th

- Automatic Privilege Separation
    - [Presentation slides here](http://nathandautenhahn.com/talks/2017-06-21_ops+memorizer-linuxkit-sig/linuxkit-sig-remark.html)
    - OPS = opportunistic privilege separation (meta project)
    - Our infra operates on a large, untrusted code base.  Easily exploitable.  “Titanic”
        - Lots of layers of vulnerable code.
        - Lots of code.  E.g., Every version of Linux kernel is >1000 developers contributing
        - Monolithic

    - Strategies to address these problems:
	    - Replace (microkernel), or
	    - Harden + Separate
	        - Harden = making external shell more resistant to attack
	        - Separate = each internal component having minimal privileges so even a compromised component can do only limited damage (eg SELinux, Landlock)

    - What about flipping the script? - by default everything is protected and then whitelist
        - In contrast to current model where by default you have access to everything and then you bolt on protections after the fact

    - Limitations of existing approaches
	    - No ephemeral state
	    - manual policy
	    - don’t address kernel principles
	    - lack of visibility into app
	    - (others mentioned)


    - Tools / Projects:
        - OPS (Opportunistic Priv. Sep.):  end to end approach for fine grained security policy retrofitting
	        - Core hypoth:  we can automatically derive policies from system behavior.  Use ML to set up initial separation policy.
	        - Similar to an optimizing compiler.
        - LINX:  linux nested kernel
        - kr^x:  kernel randomization
        - Memorizer:  dynamic tracer
	        - Creates “maps” (like CAPs)
	        - CAPMAPs
	        - Takes kernel source -> pass it through instrumentation  (piggybacking on kernel address sanitizer to hook all allocations with KASAN) -> now all allocs are hooked
		    - Stack is hooked through KASAN
        - SLICE
