The State of Security Enhanced
             Linux
                  James Morris
                jmorris@namei.org



       FOSS.IN/2007 – Bengaluru, India
Outline


â—Ź   Brief SELinux overview

â—Ź   Project update

â—Ź   Challenges

â—Ź   Ongoing and Future work
What is SELinux?
Security Framework

â—Ź   Pluggable security models
â—Ź   Clean separation of policy
â—Ź   Coherent stacking (composition)
â—Ź   Fully analyzable
What is SELinux?
Security Mechanism

â—Ź   Type Enforcement + RBAC + MLS
â—Ź   Mandatory Access Control (MAC)
â—Ź   Least privilege
â—Ź   Enforces confidentiality and integrity
â—Ź   Limits exploitation of vulnerabilities
What is SELinux?
Community Project

â—Ź   Originated in security research community c.
    1980s
â—Ź   Prototyped as academic research 1990s (Flask)
â—Ź   Ported to Linux and released as GPL in 2000
â—Ź   Adopted by distributions, merged upstream and
    certified
Current Status

â—Ź   Primarily adopted in Fedora and RHEL

â—Ź   Supported by Debian, Ubuntu, Gentoo, others

â—Ź   Market adoption: military, government
    embedded, finance.

â—Ź   Unprecedented: MAC security available freely
    in an off the shelf OS. With source code!
Project Update
         Since last here (2005, Fedora Core 4 era)

Reference Policy
â—Ź   Interfaces & encapsulation
â—Ź   Designed
â—Ź   Policy management infrastructure & tools
â—Ź   Flexibility
â—Ź   Documentation
â—Ź   Full MLS support
Project Update

Loadable Policy Modules

â—Ź   Dynamic loading and unload of policy
â—Ź   Easier customization
â—Ź   Third party policy
â—Ź   Manage & ship policy with applications
Project Update

Policy Tools

SELinux Policy IDE (SLIDE)

â—Ź   GUI policy development
â—Ź   Eclipse-based
â—Ź   Remote policy deployment & monitoring
Project Update

SLIDE
Project Update

Toolkit

libsemanage

â—Ź   Standard library for managing policy
â—Ź   Used by higher level tools, from command line
    to GUI
â—Ź   Extensible, e.g. Remote policy management
Project Update

Toolkit

semanage

â—Ź   Simplifies several tasks which previously
    required editing different config files and
    recompiling policy.

â—Ź   Examples: mapping users to roles, labeling
    network ports.
Project Update

Toolkit

restorecond

â—Ź   Automatic relabeling of files which tend to get
    mislabeled, via inotify

â—Ź   Reduces administrative overhead
Project Update

Toolkit

policycoreuitls-gui

â—Ź   Python toolkit for GUI configuration of SELinux
â—Ź   Integrated into system-config-selinux
system-config-selinux
Project Update

Toolkit

audit2why

â—Ź   Tries to explain entries in the audit log

â—Ź   Offers helpful suggestions
Project Update

Toolkit

setroubleshoot

â—Ź   Diagnostic alerts
â—Ź   Gnome applet
â—Ź   GUI browser
â—Ź   Extensible plugin architecture
â—Ź   Email alerts
Project Update
Project Update

Toolkit

Policy Wizard GUI

â—Ź   Simple guided policy generation tool

â—Ź   Uses common application traits to create a
    loadable policy module for an application
Project Update

Protection

â—Ź   Memory access checks

â—Ź   Targeted policy now covers ~240 confined
    domains.
Project Update

Certification

RHEL5 Common Criteria certified to EAL4+
 against the protection profiles:

● LSPP – Labeled Security (“MAC”)
● CAPP – Controlled Access (“audit”)

● RBACPP – Role Based Access Control




Performed on IBM and HP hardware.
Project Update

Certification

â—Ź   Significantly enhanced audit capabilities

â—Ź   pam_namespace utilizes kernel namespaces to
    provide private views of the fileystem

â—Ź   Improved labeled networking, including IPsec-
    based and legacy CIPSO labels for talking to
    existing Trusted OSs
Project Update

Secmark

â—Ź   Uses iptables to categorize & label packets

â—Ź   Leverages iptables tools, modules, connection
    tracking, connection assurance etc.

â—Ź   More secure and also vastly simplifies policy
Project Update

X Access Control Extension (XACE)

â—Ź   Security framework extension for X server

â—Ź   Merged into X.org

â—Ź   Important step in securing the desktop
Project Update

Continued extension beyond Linux kernel

●   Gconf – desktop environments

●   SE-PostgreSQL – databases

●   XSM – virtualization

●   SEDarwin – other operating systems
Project Update

Testing

Linux Test Project (LTP) support for Reference
 Policy

IBM and HP released certification testsuites to
 LTP
Project Update
General

SELinux By Example published, very
 comprehensive book

xguest: constrained guest user for kiosk use

Many contributions from Japanese community:
â—Ź Performance and memory use improvements

â—Ź Busybox integration

â—Ź Segatex (QT-based management suite)

â—Ź SEedit (simplified policy editor)
Challenges
Usability

â—Ź   Security and usability are inherently at odds

â—Ź   No magic bullet

â—Ź   Progress being made; need to continue building
    higher level tools and abstractions
Ongoing Work
â—Ź   Better support for developers and administrators
â—Ź   High level tools for end users
â—Ź   Continued work on desktop support
â—Ź   Full NFS support
â—Ź   Higher level policy language
â—Ź   Architectural refinements
How to Help
Join the mailing list
â—Ź

    http://www.nsa.gov/selinux/info/subscribe.cfm

Submit bug reports
â—Ź




Documentation
â—Ź




Developer and admin tools
â—Ź




Usability for end users
â—Ź




Your distribution probably has an SELinux team
â—Ź
Resources
Main page
   http://www.nsa.gov/selinux/

News & planet
   http://selinuxnews.org/

Conference papers
   http://selinux-symposium.org/

Tresys open source projects
   http://oss.tresys.com/

The State of Security Enhanced Linux - FOSS.IN/2007

  • 1.
    The State ofSecurity Enhanced Linux James Morris jmorris@namei.org FOSS.IN/2007 – Bengaluru, India
  • 2.
    Outline â—Ź Brief SELinux overview â—Ź Project update â—Ź Challenges â—Ź Ongoing and Future work
  • 3.
    What is SELinux? SecurityFramework â—Ź Pluggable security models â—Ź Clean separation of policy â—Ź Coherent stacking (composition) â—Ź Fully analyzable
  • 4.
    What is SELinux? SecurityMechanism â—Ź Type Enforcement + RBAC + MLS â—Ź Mandatory Access Control (MAC) â—Ź Least privilege â—Ź Enforces confidentiality and integrity â—Ź Limits exploitation of vulnerabilities
  • 5.
    What is SELinux? CommunityProject â—Ź Originated in security research community c. 1980s â—Ź Prototyped as academic research 1990s (Flask) â—Ź Ported to Linux and released as GPL in 2000 â—Ź Adopted by distributions, merged upstream and certified
  • 6.
    Current Status â—Ź Primarily adopted in Fedora and RHEL â—Ź Supported by Debian, Ubuntu, Gentoo, others â—Ź Market adoption: military, government embedded, finance. â—Ź Unprecedented: MAC security available freely in an off the shelf OS. With source code!
  • 7.
    Project Update Since last here (2005, Fedora Core 4 era) Reference Policy â—Ź Interfaces & encapsulation â—Ź Designed â—Ź Policy management infrastructure & tools â—Ź Flexibility â—Ź Documentation â—Ź Full MLS support
  • 8.
    Project Update Loadable PolicyModules â—Ź Dynamic loading and unload of policy â—Ź Easier customization â—Ź Third party policy â—Ź Manage & ship policy with applications
  • 9.
    Project Update Policy Tools SELinuxPolicy IDE (SLIDE) â—Ź GUI policy development â—Ź Eclipse-based â—Ź Remote policy deployment & monitoring
  • 10.
  • 11.
    Project Update Toolkit libsemanage â—Ź Standard library for managing policy â—Ź Used by higher level tools, from command line to GUI â—Ź Extensible, e.g. Remote policy management
  • 12.
    Project Update Toolkit semanage â—Ź Simplifies several tasks which previously required editing different config files and recompiling policy. â—Ź Examples: mapping users to roles, labeling network ports.
  • 13.
    Project Update Toolkit restorecond â—Ź Automatic relabeling of files which tend to get mislabeled, via inotify â—Ź Reduces administrative overhead
  • 14.
    Project Update Toolkit policycoreuitls-gui â—Ź Python toolkit for GUI configuration of SELinux â—Ź Integrated into system-config-selinux
  • 15.
  • 16.
    Project Update Toolkit audit2why â—Ź Tries to explain entries in the audit log â—Ź Offers helpful suggestions
  • 17.
    Project Update Toolkit setroubleshoot â—Ź Diagnostic alerts â—Ź Gnome applet â—Ź GUI browser â—Ź Extensible plugin architecture â—Ź Email alerts
  • 18.
  • 19.
    Project Update Toolkit Policy WizardGUI â—Ź Simple guided policy generation tool â—Ź Uses common application traits to create a loadable policy module for an application
  • 21.
    Project Update Protection â—Ź Memory access checks â—Ź Targeted policy now covers ~240 confined domains.
  • 22.
    Project Update Certification RHEL5 CommonCriteria certified to EAL4+ against the protection profiles: ● LSPP – Labeled Security (“MAC”) ● CAPP – Controlled Access (“audit”) ● RBACPP – Role Based Access Control Performed on IBM and HP hardware.
  • 23.
    Project Update Certification â—Ź Significantly enhanced audit capabilities â—Ź pam_namespace utilizes kernel namespaces to provide private views of the fileystem â—Ź Improved labeled networking, including IPsec- based and legacy CIPSO labels for talking to existing Trusted OSs
  • 24.
    Project Update Secmark â—Ź Uses iptables to categorize & label packets â—Ź Leverages iptables tools, modules, connection tracking, connection assurance etc. â—Ź More secure and also vastly simplifies policy
  • 25.
    Project Update X AccessControl Extension (XACE) â—Ź Security framework extension for X server â—Ź Merged into X.org â—Ź Important step in securing the desktop
  • 26.
    Project Update Continued extensionbeyond Linux kernel ● Gconf – desktop environments ● SE-PostgreSQL – databases ● XSM – virtualization ● SEDarwin – other operating systems
  • 27.
    Project Update Testing Linux TestProject (LTP) support for Reference Policy IBM and HP released certification testsuites to LTP
  • 28.
    Project Update General SELinux ByExample published, very comprehensive book xguest: constrained guest user for kiosk use Many contributions from Japanese community: â—Ź Performance and memory use improvements â—Ź Busybox integration â—Ź Segatex (QT-based management suite) â—Ź SEedit (simplified policy editor)
  • 29.
    Challenges Usability â—Ź Security and usability are inherently at odds â—Ź No magic bullet â—Ź Progress being made; need to continue building higher level tools and abstractions
  • 30.
    Ongoing Work â—Ź Better support for developers and administrators â—Ź High level tools for end users â—Ź Continued work on desktop support â—Ź Full NFS support â—Ź Higher level policy language â—Ź Architectural refinements
  • 31.
    How to Help Jointhe mailing list â—Ź http://www.nsa.gov/selinux/info/subscribe.cfm Submit bug reports â—Ź Documentation â—Ź Developer and admin tools â—Ź Usability for end users â—Ź Your distribution probably has an SELinux team â—Ź
  • 32.
    Resources Main page http://www.nsa.gov/selinux/ News & planet http://selinuxnews.org/ Conference papers http://selinux-symposium.org/ Tresys open source projects http://oss.tresys.com/