systems moving flask to bsd systems
play

Systems Moving FLASK to BSD Systems SELinux ELinux Symposium 2006 - PowerPoint PPT Presentation

Moving FLASK to BSD Systems Moving FLASK to BSD Systems SELinux ELinux Symposium 2006 Symposium 2006 S Chris Vance Information Systems Security Operation, SPARTA, Inc. Vance_20060301_01 Overview Overview Security Frameworks A


  1. Moving FLASK to BSD Systems Moving FLASK to BSD Systems SELinux ELinux Symposium 2006 Symposium 2006 S Chris Vance Information Systems Security Operation, SPARTA, Inc. Vance_20060301_01

  2. Overview Overview • Security Frameworks • A Brief History • SELinux Inspired… – Security Enhanced BSD – Security Enhanced Darwin Vance_20060301_02

  3. Security Frameworks Security Frameworks • Traditional UNIX security isn’t enough – OS hardening – Mandatory protection – Flexible, manageable, scalable protection • Support required in the operating system for new security services – Costs of locally maintaining security extensions are high – Framework offers extensibility so that policies may be enhanced without changing the base operating system • There does not appear to be one perfect security model or policy – Sites may have different security/performance trade-offs – Sites may have special local requirements – Vendors unlikely to adopt a single policy • Bottom Line: Frameworks for Linux, FreeBSD, Darwin Vance_20060301_03

  4. How We Got Here We Got Here… … How Vance_20060301_04

  5. Focus and Reuse and Reuse Focus • Don’t “reinvent” security – Learn from the past – The research is often decades old – A good design is durable, doesn’t require constant change – FLASK hasn’t changed much recently, what’s that mean? Leverage existing technology, focus on “new” issues • – Focus on improving operating system security – Spend the time to get Frameworks correct – Work with vendor for acceptance – Develop rule sets that work – Develop effective tools to manage policy • Do innovate – Don’t stop thinking! – Don’t squash new ideas – Re-factor old ideas Vance_20060301_05

  6. Strategy Strategy • Use MAC Framework to isolate policy from enforcement • Build on Darwin’s source code and Linux FreeBSD Darwin Kernel Kernel Kernel structural similarities to FreeBSD • Port MAC Framework from FreeBSD MAC MAC LSM Framework Framework • Port FLASK components from SELinux FLASK FLASK FLASK • Expand scope for Darwin-specific functionality (Mach IPC) Type Type Type • Minimize Vendor diffs (OS & SELinux) Enforcement Enforcement Enforcement • Leverage existing policy & tools Strong, useful security without sacrificing features, performance, or utility. Vance_20060301_06

  7. FLASK Architecture FLASK Architecture Client Object Request Query Security Server Object Manager Decision Security Policy Policy Enforcement Enforcement Policy Vance_20060301_07

  8. FreeBSD and Mac OS X FreeBSD and Mac OS X • Two related operating systems – FreeBSD - Server-class network operating system » Appropriate for embedded devices, network appliances, storage appliances, web services, firewalls, etc. » Already had FLASK components ported from SELinux » Already has MAC Framework – Mac OS X - Workstation-class operating system » Desktop environment, MS office suite, Adobe tools, etc. » Provides application and GUI components necessary for widespread adoption • Open Source availability (Darwin) • Shared BSD code heritage (user space and kernel) • Audit support • We understood FreeBSD, Mac OS X was new to us! Vance_20060301_08

  9. Mac OS X Mac OS X • Mac OS X is Apple's next generation operating system – Builds on elements of Mach, NeXTStep, FreeBSD, and Mac OS 9, as well as other open source elements such as KDE – Continues Apple's tradition of user interface innovation – Potential for a larger user base (desktop users with application suites, programs people are familiar with) • Security – UNIX security model as base – Mach Ports from NeXTStep for user space to represent privilege and capability – Rich application layer services: SecurityServer, SecurityFramework, SecurityAgent, CDSA crypto framework – Blend of Unix and Mach offers challenges • Mach IPC used extensively, must be considered – Thousands of Mach messages per second! Vance_20060301_09

  10. Mac OS X System Architecture Mac OS X System Architecture Applications Applications Carbon Cocoa Java(JDK) Closed source frameworks and Application Services daemons Core Services Open source MAC Libinfo system_cmds DirectoryServices … mach_init Framework libraries and Boundary daemons Libsystem System Call Boundary Processes UNIX IPC Networking VFS IOKit XNU BSD Kernel Kernel Scheduling Virtual Memory Mach IPC Mach Kernel Vance_20060301_010

  11. MAC Framework Big Picture MAC Framework Big Picture mac_test System Call Interface VFS User Process mac_mls MAC Framework Socket IPC User Process Process SEDarwin Signaling User Process ... ... Mach IPC (proprietary) ... Vance_20060301_011

  12. SEBSD/SEDarwin Policy Module Policy Module SEBSD/SEDarwin • Policy module wraps FLASK MAC Framework and TE implementations Instruments kernel access control logic, – FLASK provides access control provides label infrastructure, provides application security APIs abstractions … – Access Control Vector Cache (AVC) caches policy decisions SEDarwin – TE/RBAC/MLS engine stores Maps between MAC Framework and implements file-backed abstractions and FLASK abstractions, invokes FLASK+AVC checks policy Flask • User space components from SELinux AVC Caches decisions • Kernel components ported easily – “normal” issues with allocators, Security Server locking primitives, logging, printf, Processes policy audit, etc. TE (RBAC) (MLS) Vance_20060301_012

  13. LSM v. MAC Framework v. MAC Framework LSM • Linux, FreeBSD, Darwin similar in operation, very different implementations Parallel in construction • – modular policies, registration based callbacks Linux • – Widespread use – Requirements for vendor (Linus) adoption was critical – Lightweight Framework, less invasive • FreeBSD – MAC Framework provides more label manipulation and management calls – Module composition from the start – Vendor buy-in allowed more significant changes • When SELinux moved from invasive kernel patches to an LSM module, we benefited • Future focus is to avoid divergence Vance_20060301_013

  14. Unique to Darwin Unique to Darwin • Rich (GUI) applications, desktop integration – Provides motivation to use the system – Provides more challenges due to complexity – Inter-application messaging is ubiquitous • IOKit (another discussion entirely) • Mach IPC – Critical to secure – Performance/efficiency concerns – Didn’t have to start from scratch – Explore DTOS protections for Mach IPC Vance_20060301_014

  15. Darwin Complexity Darwin Complexity • Three separate system boundaries (IOKit, Mach, BSD) and each one must be adequately secured! • Mach isn’t implemented as a microkernel, there is a blending of the lines between BSD and Mach services – BSD is in the kernel address space, not user – Threads and the scheduler are Mach constructs while processes are a BSD construct – Even worse, virtual memory is shared amongst all three kernel subsystems • History showed that the complexity of the Mach microkernel led from DTOS to FLASK – Yet here were are trying to secure Mach IPC again… – It’s no less complex than it was Vance_20060301_015

  16. FLASK Extensions to Support Extensions to Support FLASK Mach Messaging Mach Messaging • Add Support for Mach IPC – send, make_send, copy_send, move_recv, hold_send, hold_recv, etc. • Binary policy format is unchanged • Add name based checks / generic access checks – Fine grained control for user space services – For security aware applications / servers – Mach messages are opaque in kernel – User space must do some mediation Vance_20060301_016

  17. Project Status Project Status • SEBSD module for FreeBSD 5.1 and up • SEDarwin module for Mac OS X “Panther” (10.3.8) • Simple sample policy for Mac OS X • BSD coverage is fairly complete for both • Support for Network protections undeveloped • Mach subsystem coverage is still experimental Vance_20060301_017

  18. Future Directions Future Directions • MAC Framework is supported on Mac OS X “Tiger” (10.4.5) but SEDarwin isn’t yet • More complete support for Mach IPC • Update FLASK components to current version • Implement network access controls (Framework already does) • Develop new policy/rules • OpenDarwin integration Vance_20060301_018

  19. Login Login Vance_20060301_019

  20. SEDarwin: For More Information : For More Information SEDarwin • Email: – <Christopher.Vance at SPARTA.com> – TrustedBSD Mailing lists http://lists.freebsd.org/mailman/listinfo/trustedbsd-discuss • Web: – http://sedarwin.org/ – http://trustedbsd.org/ Vance_20060301_020

  21. End. End. Vance_20060301_021

  22. Learning From History Learning From History • You learn each step of the way – Domain and Type Enforcement (DTE) on BSD/OS – Wrappers (System call interception) – Linux Security Modules – Security Enhanced Linux – TrustedBSD MAC Framework on FreeBSD – Security-Enhanced BSD – BSM-based Audit on Mac OS X (CAPP/EAL3) – TrustedBSD MAC Framework on Darwin – Mac OS X DCID 6/3 system – Security Enhanced Darwin • What’s Next? Vance_20060301_022

Recommend


More recommend