SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
LAPP/SELinux
- A secure web application platform powered by SELinux -

             NEC OSS Promotion Center
                   KaiGai Kohei
              <kaigai@ak.jp.nec.com>



                           1
Self Introduction


         Working for NEC, come from Tokyo, Japan
         6 year's experience in Linux kernel development
           Especially, SELinux and security related region
              SMP Scalability improvement (2.6.11)
              XATTR Support in JFFS (2.6.18)
              SELinux support in busybox
              Type boundary and Multithreading (2.6.28)
              Security-Enhanced PostgreSQL

                        One of the core components
                        One of the core components
                             in LAPP/SELinux
                              in LAPP/SELinux




Page 2
Security-Enhanced PostgreSQL


         Concept
           System-wide consistency in access controls
              It shares a common security policy between OS and RDBMS
           Fine-grained mandatory access controls on DB objects
           Client's privileges based on Labeled IPsec feature
         Status
           Now progress in PostgreSQL v8.4 development cycle
           Available on Fedora8 or later
         Promotions
           Many of talks for the last 2 years....
              SELinux Symposium, PGcon, IPA Forum, etc...
                                                                     PGcon2008
              I got a "frequently   asked question".        Univ of Ottawa (23 May 2008)

Page 3
A Frequently Asked Question


          In the LAPP system, does SE-PostgreSQL enables us to set
          up virtual private database for each web users, doesn't it?


                               Unfortunatelly, we have a few issues.
         Audience
                      KaiGai

                                                              AP servers
         A few issues:                                       (PHP, Tomcat)
            Not separated domains               SELinux
                                                 SELinux
                                                              Web server
                                               coverage        (Apache)
            Multi-threading web application     coverage
                                                                RDBMS
         Our goal                                           (SE-PostgreSQL)

                                                           Operating System
            SELinux as a foundation of consistent              (SELinux)
            access controls on whole of LAPP stack
                                                                  Today
Page 4
A Frequently Asked Question


          In the LAPP system, does SE-PostgreSQL enables us to set
          up virtual private database for each web users, doesn't it?


                                     Unfortunatelly, we have a few issues.
         Audience
                      KaiGai

                               We call it                           AP servers
         A few issues                                              (PHP, Tomcat)
                    LAPP/SELinux
            Not separated domains                     SELinux
                                                       SELinux
                                                                    Web server
                                                                     (Apache)
                                                     coverage
            Multi-threading web application           coverage
                                                                      RDBMS
         Our goal                                                 (SE-PostgreSQL)

                                                                 Operating System
            SELinux as a foundation of consistent                    (SELinux)
            access controls on whole of LAPP stack
                                                                       Future
Page 5
Example: A system image of LAPP/SELinux

          Web application works with correct security context
          DB objects are labeled, and MAC policy is applied on accesses
          Correct access controls, even if Web-application is very buggy!

         Secure Document Management System
                                                    Web server
                                         Web
                                      application
                                                                 Public domain
                    HR                                            (0.0.0.0/0)
                          DB server                                Unlabeled
         Finance
                    Unlabeled



                                            Financial division    Human Resources
                                           (192.168.10.0/24)      (192.168.20.0/24)
                                               label: Finance           label: HR
Page 6
Background: Web application is a Nightmare!


         A security vendor in Japan reported as....

                                                           95% of attacks
                                                           targeted on web
                                                           applications, 2008.




            76% of attacks tried
            SQL injection, 2008.


   Source: Vulnerability Analysis Report vol.11, Lac Inc
Page 7
Can SELinux provide a solution?




         Yes, we can!
Page 8
Issues need to be considered

       Not a separated domain
    Multi-threading web application



                  9
Primarily, how should it be considered?


          Definitions
            Access control is the ability to permit/deny uses of
            paticular resources by particular users.
            User is a human, not a computer program.
            Process is an agent of user in computer system.
               So, access control has to apply its policy on processes
               as if it is a user himself.
          How should the web be considered in this context?
            User accesses paticular resources via its agent.
            User accesses paticular resources via web interface, and it
            invokes web-application as its agent.
            No fundamental differences are here!

Page 10
Issue: Not a separated domain


          Privileges of web applications
            Web server handles all the HTTP request by itself.
            OS does not consider it as works of a agent of clients.
            Web application has to apply its own access controls
          Issues in this scheme
            How to make sure web-app’s access controls are not flaw?
            Who does it actually requires to access on resources?
                  system_u:system_r:httpd_t


                            Web                                     uest
     To be worked in                                       http req
                         application                                  staff_u:staff_r:staff_t:SystemHigh
    separated domain
                     Web
                  application                 Web server
                                                                  user_u:user_r:user_t:SystemLow

Page 11
SELinux and security context


          SELinux
            It can provide various kind of object managers its decision
            on access controls.
               Operating system, RDBMS, X-Window system, ...
            Its decision come from security context of agent and
            resources to be accessed.
            How should correct security context be assigned to the
            agent?

          Strategies
            Authentication
            Labeled Networking Technology
            Do nothing


Page 12
User/Security context assignment (1/3)


          Strategy.1                      Authentication
             It assigns a security context to agent during authentication
             based on user’s identifier.
                 Case examples: Operating System
                           security
                           context
                                      login
                                      shell                   sshd
                 Appli
                cation
                                 login                        logind
                                 shell
                               security
                               context
      Agent of blue user                    Authentication
                                              (pam_selinux)



Page 13
User/Security context assignment (2/3)


          Strategy.2                      Labeled Networking Technology
            It assigns a security context on agent based on the peer
            entity’s one.
                  Case examples: SE-PostgreSQL, XACE/SELinux, Xinetd
                   security                                                                       security
                   context                                          Labeled IPsec
                                                                    Labeled IPsec                 context
                           User                                                         Client
                         Instance
                                                     postmaster                         Process
                                                                                    racoon



                                    User                                                      security
             DB                   Instance                                                    context

                               security
                                                      racoon                        Client
                               context                                              Process
                                                                               racoon
                                                        Security context is
                                                        Security context is
                              Agent of blue client       delivered during
                                                         delivered during
                                                         key exchanging
                                                         key exchanging
Page 14
User/Security context assignment (3/3)


          Strategy.3                 Do nothing
             It does not assign individual security context on agent.
                Case examples: Apache, Samba, ...
                                                                                  security
                                                                                  context
                                         security
                                         context    security            Client
                 references   Request               context            Process
                              handler                      Apache
                                                            server
                       invokes
                                                           process              security
               Web                 Request                                      context
                App                handler                            Client
                              security                                Process
                              context
                                               Agent of blue client

          Correct security context should be assigned on agent
          whenever user begins to use a system, but ...
Page 15
Solution


          Rules
            Any agent should be assigned correct security context
            whenever user begin to use the system via agent.
                  User can execute a command via shell program.
                  User can refer a document via web-interfaces.
                      No fundamental differences.
            It allows various strategies to determine security context.
          Items to be enhanced on Web server
            It determine a security context of request handler.
            It assigns it just before invocation of request handler.


            Web application can work under SELinux restriction!

Page 16
Issue: Multi-threading web application


          Restriction
            SELinux didn't allow to assign individual security context
            for each threads within a process.
               It is quite natural restriction due to domain separation!
            Some of applications handle user's request in
            multithreaded backends.
               Apache 2.x, Tomcat, ...
            We need to consider a reasonable solution.




Page 17
Idea: Bounds Domain (1/2)


          What is bounds domain?
              A domain with a hierarchical boundary of its privileges.
              Bounded one cannot have any permission when its
              bounds domain does not have them.
          Example:
          typebounds httpd_t httpd_child_t;
          allow httpd_t       etc_t : file { getattr read };
          allow httpd_child_t etc_t : file {         read write };

              A new typebounds statement defines a hierarchical
              relationship between two domains.
              httpd_child_t cannot have file:{write} due to lack of
              permissions on httpd_t which is the parent.
              It means child domain always has equal or smaller privilleges.
Page 18
Idea: Bounds Domain (2/2)


          What does it make possible?
              We can ensure that all the threads work within a process’s
              privileges, even if they have individual domains.
              Prerequisite of per-thread domain
              We can also consider httpd_user_t as a restricted
              mode of httpd_t domain in this case.

                                                e st      ssh login
    Web applications                   http requ                                 OS applications
                         httpd_t                                        sshd_t
      agent
      agent

          httpd_user_t             httpd_staff_t               user_t            staff_t
                                                       agent
                                                       agent
                httpd_unconfined_t                                    unconfined_t

Page 19
Apache/SELinux plus (1/2)


          What is Apache/SELinux plus?
            An extension of Apache/httpd.
            It assigns individual security context before invocation of
            request handler.
            Currently, it determines the security context based on
            HTTP authentication or source IP address.
               Note that it allows additional various strategies.
          What does it make possible?
            It enables to associate an idea of “web user” and security
            context of SELinux.
               Per web-user privileges on PHP scripts, static web contents,
               and so on...


Page 20
Apache/SELinux plus (2/2)


          Internal design
              It makes a one-time thread just before invocation of request
              handler, and parent waits for its completion.
              The thread assigns correct security context on itself, then
              invokes request handler.
              The thread exist, and parent wakes up.

                                   Read HTTP           Assigns correct
                                 request header        security context
                                                           on itself
                                                                             *.html
                             Make a one-time thread                          handler
          Request
                                                         Invokes http
                                                       request handler
          Response                                                           *.php
                                 Wait for thread                             handler
                                  completion             Exist Thread

Page 21
Demonstration

Security context of agent based on HTTP authentication
  Result set of DB query depends on security context
    It also applied on references to static contents



                          22
Current status of LAPP/SELinux


          Kernel features
            2.6.28 got support bounds-domain and multi-threading.
            SELinux toolchain also supports bounds-domain.
          SE-PostgreSQL
            Currently, we are working under PostgreSQL v8.4
            development cycle.
             http://wiki.postgresql.org/wiki/CommitFest:2008-11
          Apache/SELinux plus
            Also published at http://code.google.com/p/sepgsql/
            Planed to propose it for upstreamed apache/httpd,
            next to the SE-PostgreSQL.


Page 23
Future visions


           SELinux as a common foundation of whole of web
           application stack (LAPP).
               Consistent privileges and decisions in access control for various
               kind of web applications.
               Fine-grained mandatory access control policy


             AP servers               AP servers                AP servers
            (PHP, Tomcat)            (PHP, Tomcat)             (PHP, Tomcat)
             Web server               Web server                Web server
              (Apache)                  (Apache)            (Apache/SELinux plus)
              RDBMS                     RDBMS                     RDBMS
            (PostgreSQL)            (SE-PostgreSQL)           (SE-PostgreSQL)
          Operating System         Operating System          Operating System
              (SELinux)                 (SELinux)                (SELinux)

                Past                     Today                     Future
Page 24
Any questions?

      25
Thank you!

    26

Más contenido relacionado

La actualidad más candente

Using Novell Sentinel Log Manager to Monitor Novell Applications
Using Novell Sentinel Log Manager to Monitor Novell ApplicationsUsing Novell Sentinel Log Manager to Monitor Novell Applications
Using Novell Sentinel Log Manager to Monitor Novell ApplicationsNovell
 
Rudder - Configuration management benefits for everyone (FOSDEM 2012)
Rudder - Configuration management benefits for everyone (FOSDEM 2012)Rudder - Configuration management benefits for everyone (FOSDEM 2012)
Rudder - Configuration management benefits for everyone (FOSDEM 2012)RUDDER
 
Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conf...
Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conf...Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conf...
Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conf...RUDDER
 
Ccmigration 09186a00807a15d0
Ccmigration 09186a00807a15d0Ccmigration 09186a00807a15d0
Ccmigration 09186a00807a15d0j_papanna
 
Windows Server 2008 Security Overview Short
Windows Server 2008 Security Overview ShortWindows Server 2008 Security Overview Short
Windows Server 2008 Security Overview ShortEduardo Castro
 
Oracle day co_opensource_final
Oracle day co_opensource_finalOracle day co_opensource_final
Oracle day co_opensource_finalManuel Contreras
 
Introducing WebLogic 12c OTN Tour 2012
Introducing WebLogic 12c OTN Tour 2012Introducing WebLogic 12c OTN Tour 2012
Introducing WebLogic 12c OTN Tour 2012Bruno Borges
 
WebClient Overview and 1.8 Roadmap
WebClient Overview and 1.8 RoadmapWebClient Overview and 1.8 Roadmap
WebClient Overview and 1.8 RoadmapCM First Group
 
Safety LAMP: data security & agile languages
Safety LAMP: data security & agile languagesSafety LAMP: data security & agile languages
Safety LAMP: data security & agile languagesPostgreSQL Experts, Inc.
 
WebLogic for DBAs 1.0h
WebLogic for DBAs 1.0hWebLogic for DBAs 1.0h
WebLogic for DBAs 1.0hSimon Haslam
 
Securing and Managing the Oracle HTTP Server
Securing and Managing the Oracle HTTP ServerSecuring and Managing the Oracle HTTP Server
Securing and Managing the Oracle HTTP ServerSecureDBA
 
Web 2 And Application Delivery Public
Web 2 And Application Delivery PublicWeb 2 And Application Delivery Public
Web 2 And Application Delivery PublicLori MacVittie
 
Java EE Technical Keynote at JavaOne Latin America 2011
Java EE Technical Keynote at JavaOne Latin America 2011Java EE Technical Keynote at JavaOne Latin America 2011
Java EE Technical Keynote at JavaOne Latin America 2011Arun Gupta
 
Classloader leak detection in websphere application server
Classloader leak detection in websphere application serverClassloader leak detection in websphere application server
Classloader leak detection in websphere application serverRohit Kelapure
 

La actualidad más candente (19)

Using Novell Sentinel Log Manager to Monitor Novell Applications
Using Novell Sentinel Log Manager to Monitor Novell ApplicationsUsing Novell Sentinel Log Manager to Monitor Novell Applications
Using Novell Sentinel Log Manager to Monitor Novell Applications
 
Cl219
Cl219Cl219
Cl219
 
Rudder - Configuration management benefits for everyone (FOSDEM 2012)
Rudder - Configuration management benefits for everyone (FOSDEM 2012)Rudder - Configuration management benefits for everyone (FOSDEM 2012)
Rudder - Configuration management benefits for everyone (FOSDEM 2012)
 
Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conf...
Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conf...Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conf...
Configuration management benefits for everyone - Rudder @ FLOSSUK Spring Conf...
 
Ccmigration 09186a00807a15d0
Ccmigration 09186a00807a15d0Ccmigration 09186a00807a15d0
Ccmigration 09186a00807a15d0
 
Windows Server 2008 Security Overview Short
Windows Server 2008 Security Overview ShortWindows Server 2008 Security Overview Short
Windows Server 2008 Security Overview Short
 
Oracle day co_opensource_final
Oracle day co_opensource_finalOracle day co_opensource_final
Oracle day co_opensource_final
 
Introducing WebLogic 12c OTN Tour 2012
Introducing WebLogic 12c OTN Tour 2012Introducing WebLogic 12c OTN Tour 2012
Introducing WebLogic 12c OTN Tour 2012
 
Cl221
Cl221Cl221
Cl221
 
WebClient Overview and 1.8 Roadmap
WebClient Overview and 1.8 RoadmapWebClient Overview and 1.8 Roadmap
WebClient Overview and 1.8 Roadmap
 
Safety LAMP: data security & agile languages
Safety LAMP: data security & agile languagesSafety LAMP: data security & agile languages
Safety LAMP: data security & agile languages
 
WebLogic for DBAs 1.0h
WebLogic for DBAs 1.0hWebLogic for DBAs 1.0h
WebLogic for DBAs 1.0h
 
Sail Fin Webinar Overview
Sail Fin Webinar OverviewSail Fin Webinar Overview
Sail Fin Webinar Overview
 
Securing and Managing the Oracle HTTP Server
Securing and Managing the Oracle HTTP ServerSecuring and Managing the Oracle HTTP Server
Securing and Managing the Oracle HTTP Server
 
keerthi-resume
keerthi-resumekeerthi-resume
keerthi-resume
 
Web 2 And Application Delivery Public
Web 2 And Application Delivery PublicWeb 2 And Application Delivery Public
Web 2 And Application Delivery Public
 
James G. Joyner
James G. JoynerJames G. Joyner
James G. Joyner
 
Java EE Technical Keynote at JavaOne Latin America 2011
Java EE Technical Keynote at JavaOne Latin America 2011Java EE Technical Keynote at JavaOne Latin America 2011
Java EE Technical Keynote at JavaOne Latin America 2011
 
Classloader leak detection in websphere application server
Classloader leak detection in websphere application serverClassloader leak detection in websphere application server
Classloader leak detection in websphere application server
 

Destacado

PostgreSQL v9.5の新機能~CustomScan/Join Interface
PostgreSQL v9.5の新機能~CustomScan/Join InterfacePostgreSQL v9.5の新機能~CustomScan/Join Interface
PostgreSQL v9.5の新機能~CustomScan/Join InterfaceKohei KaiGai
 
20150318-SFPUG-Meetup-PGStrom
20150318-SFPUG-Meetup-PGStrom20150318-SFPUG-Meetup-PGStrom
20150318-SFPUG-Meetup-PGStromKohei KaiGai
 
Custom Scan API - PostgreSQL Unconference #3 (18-Jan-2014)
Custom Scan API - PostgreSQL Unconference #3 (18-Jan-2014)Custom Scan API - PostgreSQL Unconference #3 (18-Jan-2014)
Custom Scan API - PostgreSQL Unconference #3 (18-Jan-2014)Kohei KaiGai
 
GPGPU Accelerates PostgreSQL ~Unlock the power of multi-thousand cores~
GPGPU Accelerates PostgreSQL ~Unlock the power of multi-thousand cores~GPGPU Accelerates PostgreSQL ~Unlock the power of multi-thousand cores~
GPGPU Accelerates PostgreSQL ~Unlock the power of multi-thousand cores~Kohei KaiGai
 
Technology Updates of PG-Strom at Aug-2014 (PGUnconf@Tokyo)
Technology Updates of PG-Strom at Aug-2014 (PGUnconf@Tokyo)Technology Updates of PG-Strom at Aug-2014 (PGUnconf@Tokyo)
Technology Updates of PG-Strom at Aug-2014 (PGUnconf@Tokyo)Kohei KaiGai
 
SQL+GPU+SSD=∞ (English)
SQL+GPU+SSD=∞ (English)SQL+GPU+SSD=∞ (English)
SQL+GPU+SSD=∞ (English)Kohei KaiGai
 
20170127 JAWS HPC-UG#8
20170127 JAWS HPC-UG#820170127 JAWS HPC-UG#8
20170127 JAWS HPC-UG#8Kohei KaiGai
 
pgconfasia2016 plcuda en
pgconfasia2016 plcuda enpgconfasia2016 plcuda en
pgconfasia2016 plcuda enKohei KaiGai
 
pgconfasia2016 lt ssd2gpu
pgconfasia2016 lt ssd2gpupgconfasia2016 lt ssd2gpu
pgconfasia2016 lt ssd2gpuKohei KaiGai
 
SQL+GPU+SSD=∞ (Japanese)
SQL+GPU+SSD=∞ (Japanese)SQL+GPU+SSD=∞ (Japanese)
SQL+GPU+SSD=∞ (Japanese)Kohei KaiGai
 
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望Kohei KaiGai
 
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsKohei KaiGai
 
PG-Strom - GPGPU meets PostgreSQL, PGcon2015
PG-Strom - GPGPU meets PostgreSQL, PGcon2015PG-Strom - GPGPU meets PostgreSQL, PGcon2015
PG-Strom - GPGPU meets PostgreSQL, PGcon2015Kohei KaiGai
 
GPGPU Accelerates PostgreSQL (English)
GPGPU Accelerates PostgreSQL (English)GPGPU Accelerates PostgreSQL (English)
GPGPU Accelerates PostgreSQL (English)Kohei KaiGai
 

Destacado (14)

PostgreSQL v9.5の新機能~CustomScan/Join Interface
PostgreSQL v9.5の新機能~CustomScan/Join InterfacePostgreSQL v9.5の新機能~CustomScan/Join Interface
PostgreSQL v9.5の新機能~CustomScan/Join Interface
 
20150318-SFPUG-Meetup-PGStrom
20150318-SFPUG-Meetup-PGStrom20150318-SFPUG-Meetup-PGStrom
20150318-SFPUG-Meetup-PGStrom
 
Custom Scan API - PostgreSQL Unconference #3 (18-Jan-2014)
Custom Scan API - PostgreSQL Unconference #3 (18-Jan-2014)Custom Scan API - PostgreSQL Unconference #3 (18-Jan-2014)
Custom Scan API - PostgreSQL Unconference #3 (18-Jan-2014)
 
GPGPU Accelerates PostgreSQL ~Unlock the power of multi-thousand cores~
GPGPU Accelerates PostgreSQL ~Unlock the power of multi-thousand cores~GPGPU Accelerates PostgreSQL ~Unlock the power of multi-thousand cores~
GPGPU Accelerates PostgreSQL ~Unlock the power of multi-thousand cores~
 
Technology Updates of PG-Strom at Aug-2014 (PGUnconf@Tokyo)
Technology Updates of PG-Strom at Aug-2014 (PGUnconf@Tokyo)Technology Updates of PG-Strom at Aug-2014 (PGUnconf@Tokyo)
Technology Updates of PG-Strom at Aug-2014 (PGUnconf@Tokyo)
 
SQL+GPU+SSD=∞ (English)
SQL+GPU+SSD=∞ (English)SQL+GPU+SSD=∞ (English)
SQL+GPU+SSD=∞ (English)
 
20170127 JAWS HPC-UG#8
20170127 JAWS HPC-UG#820170127 JAWS HPC-UG#8
20170127 JAWS HPC-UG#8
 
pgconfasia2016 plcuda en
pgconfasia2016 plcuda enpgconfasia2016 plcuda en
pgconfasia2016 plcuda en
 
pgconfasia2016 lt ssd2gpu
pgconfasia2016 lt ssd2gpupgconfasia2016 lt ssd2gpu
pgconfasia2016 lt ssd2gpu
 
SQL+GPU+SSD=∞ (Japanese)
SQL+GPU+SSD=∞ (Japanese)SQL+GPU+SSD=∞ (Japanese)
SQL+GPU+SSD=∞ (Japanese)
 
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
 
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
 
PG-Strom - GPGPU meets PostgreSQL, PGcon2015
PG-Strom - GPGPU meets PostgreSQL, PGcon2015PG-Strom - GPGPU meets PostgreSQL, PGcon2015
PG-Strom - GPGPU meets PostgreSQL, PGcon2015
 
GPGPU Accelerates PostgreSQL (English)
GPGPU Accelerates PostgreSQL (English)GPGPU Accelerates PostgreSQL (English)
GPGPU Accelerates PostgreSQL (English)
 

Similar a LAPP/SELinux - A secure web application platform powered by SELinux

CM WebClient for CA Plex
CM WebClient for CA PlexCM WebClient for CA Plex
CM WebClient for CA PlexCM First Group
 
system automation, integration and recovery
system automation, integration and recoverysystem automation, integration and recovery
system automation, integration and recoveryDerek Chang
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009Stefane Fermigier
 
Membase Meetup 2010
Membase Meetup 2010Membase Meetup 2010
Membase Meetup 2010Membase
 
Java Abs Dynamic Server Replication
Java Abs   Dynamic Server ReplicationJava Abs   Dynamic Server Replication
Java Abs Dynamic Server Replicationncct
 
DevOps and Cloud at NI
DevOps and Cloud at NIDevOps and Cloud at NI
DevOps and Cloud at NIErnest Mueller
 
GigaSpaces Cloudify - The PaaS Jailbreaker
GigaSpaces Cloudify - The PaaS Jailbreaker GigaSpaces Cloudify - The PaaS Jailbreaker
GigaSpaces Cloudify - The PaaS Jailbreaker Uri Cohen
 
08 sdn system intelligence short public beijing sdn conference - 130828
08 sdn system intelligence   short public beijing sdn conference - 13082808 sdn system intelligence   short public beijing sdn conference - 130828
08 sdn system intelligence short public beijing sdn conference - 130828Mason Mei
 
Open shift and docker - october,2014
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014Hojoong Kim
 
Enterprise-Ready Private and Hybrid Cloud Computing Today
Enterprise-Ready Private and Hybrid Cloud Computing TodayEnterprise-Ready Private and Hybrid Cloud Computing Today
Enterprise-Ready Private and Hybrid Cloud Computing TodayRightScale
 
Java Web Programming Using Cloud Platform: Module 10
Java Web Programming Using Cloud Platform: Module 10Java Web Programming Using Cloud Platform: Module 10
Java Web Programming Using Cloud Platform: Module 10IMC Institute
 
Getting Memcached Secure
Getting Memcached SecureGetting Memcached Secure
Getting Memcached SecureKohei KaiGai
 
Java EE7: Developing for the Cloud
Java EE7: Developing for the CloudJava EE7: Developing for the Cloud
Java EE7: Developing for the CloudDmitry Buzdin
 
Up 2012 dave jilk - multi-tenancy in paa s (distribution version)
Up 2012   dave jilk - multi-tenancy in paa s (distribution version)Up 2012   dave jilk - multi-tenancy in paa s (distribution version)
Up 2012 dave jilk - multi-tenancy in paa s (distribution version)Khazret Sapenov
 
Intorduction to struts
Intorduction to strutsIntorduction to struts
Intorduction to strutsAnup72
 
CloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 Preview
CloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 PreviewCloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 Preview
CloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 PreviewChip Childers
 
Research Assignment For Active Directory
Research Assignment For Active DirectoryResearch Assignment For Active Directory
Research Assignment For Active DirectoryJessica Myers
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitMarco Ferrigno
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps ParadigmNaLUG
 

Similar a LAPP/SELinux - A secure web application platform powered by SELinux (20)

CM WebClient for CA Plex
CM WebClient for CA PlexCM WebClient for CA Plex
CM WebClient for CA Plex
 
system automation, integration and recovery
system automation, integration and recoverysystem automation, integration and recovery
system automation, integration and recovery
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009
 
Membase Meetup 2010
Membase Meetup 2010Membase Meetup 2010
Membase Meetup 2010
 
Java Abs Dynamic Server Replication
Java Abs   Dynamic Server ReplicationJava Abs   Dynamic Server Replication
Java Abs Dynamic Server Replication
 
DevOps and Cloud at NI
DevOps and Cloud at NIDevOps and Cloud at NI
DevOps and Cloud at NI
 
GigaSpaces Cloudify - The PaaS Jailbreaker
GigaSpaces Cloudify - The PaaS Jailbreaker GigaSpaces Cloudify - The PaaS Jailbreaker
GigaSpaces Cloudify - The PaaS Jailbreaker
 
08 sdn system intelligence short public beijing sdn conference - 130828
08 sdn system intelligence   short public beijing sdn conference - 13082808 sdn system intelligence   short public beijing sdn conference - 130828
08 sdn system intelligence short public beijing sdn conference - 130828
 
Open shift and docker - october,2014
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014
 
Enterprise-Ready Private and Hybrid Cloud Computing Today
Enterprise-Ready Private and Hybrid Cloud Computing TodayEnterprise-Ready Private and Hybrid Cloud Computing Today
Enterprise-Ready Private and Hybrid Cloud Computing Today
 
Java Web Programming Using Cloud Platform: Module 10
Java Web Programming Using Cloud Platform: Module 10Java Web Programming Using Cloud Platform: Module 10
Java Web Programming Using Cloud Platform: Module 10
 
Getting Memcached Secure
Getting Memcached SecureGetting Memcached Secure
Getting Memcached Secure
 
Java EE7: Developing for the Cloud
Java EE7: Developing for the CloudJava EE7: Developing for the Cloud
Java EE7: Developing for the Cloud
 
Crx 2.2 Deep-Dive
Crx 2.2 Deep-DiveCrx 2.2 Deep-Dive
Crx 2.2 Deep-Dive
 
Up 2012 dave jilk - multi-tenancy in paa s (distribution version)
Up 2012   dave jilk - multi-tenancy in paa s (distribution version)Up 2012   dave jilk - multi-tenancy in paa s (distribution version)
Up 2012 dave jilk - multi-tenancy in paa s (distribution version)
 
Intorduction to struts
Intorduction to strutsIntorduction to struts
Intorduction to struts
 
CloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 Preview
CloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 PreviewCloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 Preview
CloudStack DC Meetup - Apache CloudStack Overview and 4.1/4.2 Preview
 
Research Assignment For Active Directory
Research Assignment For Active DirectoryResearch Assignment For Active Directory
Research Assignment For Active Directory
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps Paradigm
 

Más de Kohei KaiGai

20221116_DBTS_PGStrom_History
20221116_DBTS_PGStrom_History20221116_DBTS_PGStrom_History
20221116_DBTS_PGStrom_HistoryKohei KaiGai
 
20221111_JPUG_CustomScan_API
20221111_JPUG_CustomScan_API20221111_JPUG_CustomScan_API
20221111_JPUG_CustomScan_APIKohei KaiGai
 
20211112_jpugcon_gpu_and_arrow
20211112_jpugcon_gpu_and_arrow20211112_jpugcon_gpu_and_arrow
20211112_jpugcon_gpu_and_arrowKohei KaiGai
 
20210928_pgunconf_hll_count
20210928_pgunconf_hll_count20210928_pgunconf_hll_count
20210928_pgunconf_hll_countKohei KaiGai
 
20210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.020210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.0Kohei KaiGai
 
20210511_PGStrom_GpuCache
20210511_PGStrom_GpuCache20210511_PGStrom_GpuCache
20210511_PGStrom_GpuCacheKohei KaiGai
 
20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_Index20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_IndexKohei KaiGai
 
20201128_OSC_Fukuoka_Online_GPUPostGIS
20201128_OSC_Fukuoka_Online_GPUPostGIS20201128_OSC_Fukuoka_Online_GPUPostGIS
20201128_OSC_Fukuoka_Online_GPUPostGISKohei KaiGai
 
20201113_PGconf_Japan_GPU_PostGIS
20201113_PGconf_Japan_GPU_PostGIS20201113_PGconf_Japan_GPU_PostGIS
20201113_PGconf_Japan_GPU_PostGISKohei KaiGai
 
20201006_PGconf_Online_Large_Data_Processing
20201006_PGconf_Online_Large_Data_Processing20201006_PGconf_Online_Large_Data_Processing
20201006_PGconf_Online_Large_Data_ProcessingKohei KaiGai
 
20200828_OSCKyoto_Online
20200828_OSCKyoto_Online20200828_OSCKyoto_Online
20200828_OSCKyoto_OnlineKohei KaiGai
 
20200806_PGStrom_PostGIS_GstoreFdw
20200806_PGStrom_PostGIS_GstoreFdw20200806_PGStrom_PostGIS_GstoreFdw
20200806_PGStrom_PostGIS_GstoreFdwKohei KaiGai
 
20200424_Writable_Arrow_Fdw
20200424_Writable_Arrow_Fdw20200424_Writable_Arrow_Fdw
20200424_Writable_Arrow_FdwKohei KaiGai
 
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_TokyoKohei KaiGai
 
20191115-PGconf.Japan
20191115-PGconf.Japan20191115-PGconf.Japan
20191115-PGconf.JapanKohei KaiGai
 
20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_BetaKohei KaiGai
 
20190925_DBTS_PGStrom
20190925_DBTS_PGStrom20190925_DBTS_PGStrom
20190925_DBTS_PGStromKohei KaiGai
 
20190909_PGconf.ASIA_KaiGai
20190909_PGconf.ASIA_KaiGai20190909_PGconf.ASIA_KaiGai
20190909_PGconf.ASIA_KaiGaiKohei KaiGai
 
20190516_DLC10_PGStrom
20190516_DLC10_PGStrom20190516_DLC10_PGStrom
20190516_DLC10_PGStromKohei KaiGai
 
20190418_PGStrom_on_ArrowFdw
20190418_PGStrom_on_ArrowFdw20190418_PGStrom_on_ArrowFdw
20190418_PGStrom_on_ArrowFdwKohei KaiGai
 

Más de Kohei KaiGai (20)

20221116_DBTS_PGStrom_History
20221116_DBTS_PGStrom_History20221116_DBTS_PGStrom_History
20221116_DBTS_PGStrom_History
 
20221111_JPUG_CustomScan_API
20221111_JPUG_CustomScan_API20221111_JPUG_CustomScan_API
20221111_JPUG_CustomScan_API
 
20211112_jpugcon_gpu_and_arrow
20211112_jpugcon_gpu_and_arrow20211112_jpugcon_gpu_and_arrow
20211112_jpugcon_gpu_and_arrow
 
20210928_pgunconf_hll_count
20210928_pgunconf_hll_count20210928_pgunconf_hll_count
20210928_pgunconf_hll_count
 
20210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.020210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.0
 
20210511_PGStrom_GpuCache
20210511_PGStrom_GpuCache20210511_PGStrom_GpuCache
20210511_PGStrom_GpuCache
 
20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_Index20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_Index
 
20201128_OSC_Fukuoka_Online_GPUPostGIS
20201128_OSC_Fukuoka_Online_GPUPostGIS20201128_OSC_Fukuoka_Online_GPUPostGIS
20201128_OSC_Fukuoka_Online_GPUPostGIS
 
20201113_PGconf_Japan_GPU_PostGIS
20201113_PGconf_Japan_GPU_PostGIS20201113_PGconf_Japan_GPU_PostGIS
20201113_PGconf_Japan_GPU_PostGIS
 
20201006_PGconf_Online_Large_Data_Processing
20201006_PGconf_Online_Large_Data_Processing20201006_PGconf_Online_Large_Data_Processing
20201006_PGconf_Online_Large_Data_Processing
 
20200828_OSCKyoto_Online
20200828_OSCKyoto_Online20200828_OSCKyoto_Online
20200828_OSCKyoto_Online
 
20200806_PGStrom_PostGIS_GstoreFdw
20200806_PGStrom_PostGIS_GstoreFdw20200806_PGStrom_PostGIS_GstoreFdw
20200806_PGStrom_PostGIS_GstoreFdw
 
20200424_Writable_Arrow_Fdw
20200424_Writable_Arrow_Fdw20200424_Writable_Arrow_Fdw
20200424_Writable_Arrow_Fdw
 
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo
 
20191115-PGconf.Japan
20191115-PGconf.Japan20191115-PGconf.Japan
20191115-PGconf.Japan
 
20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta
 
20190925_DBTS_PGStrom
20190925_DBTS_PGStrom20190925_DBTS_PGStrom
20190925_DBTS_PGStrom
 
20190909_PGconf.ASIA_KaiGai
20190909_PGconf.ASIA_KaiGai20190909_PGconf.ASIA_KaiGai
20190909_PGconf.ASIA_KaiGai
 
20190516_DLC10_PGStrom
20190516_DLC10_PGStrom20190516_DLC10_PGStrom
20190516_DLC10_PGStrom
 
20190418_PGStrom_on_ArrowFdw
20190418_PGStrom_on_ArrowFdw20190418_PGStrom_on_ArrowFdw
20190418_PGStrom_on_ArrowFdw
 

Último

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 

Último (20)

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

LAPP/SELinux - A secure web application platform powered by SELinux

  • 1. LAPP/SELinux - A secure web application platform powered by SELinux - NEC OSS Promotion Center KaiGai Kohei <kaigai@ak.jp.nec.com> 1
  • 2. Self Introduction Working for NEC, come from Tokyo, Japan 6 year's experience in Linux kernel development Especially, SELinux and security related region SMP Scalability improvement (2.6.11) XATTR Support in JFFS (2.6.18) SELinux support in busybox Type boundary and Multithreading (2.6.28) Security-Enhanced PostgreSQL One of the core components One of the core components in LAPP/SELinux in LAPP/SELinux Page 2
  • 3. Security-Enhanced PostgreSQL Concept System-wide consistency in access controls It shares a common security policy between OS and RDBMS Fine-grained mandatory access controls on DB objects Client's privileges based on Labeled IPsec feature Status Now progress in PostgreSQL v8.4 development cycle Available on Fedora8 or later Promotions Many of talks for the last 2 years.... SELinux Symposium, PGcon, IPA Forum, etc... PGcon2008 I got a "frequently asked question". Univ of Ottawa (23 May 2008) Page 3
  • 4. A Frequently Asked Question In the LAPP system, does SE-PostgreSQL enables us to set up virtual private database for each web users, doesn't it? Unfortunatelly, we have a few issues. Audience KaiGai AP servers A few issues: (PHP, Tomcat) Not separated domains SELinux SELinux Web server coverage (Apache) Multi-threading web application coverage RDBMS Our goal (SE-PostgreSQL) Operating System SELinux as a foundation of consistent (SELinux) access controls on whole of LAPP stack Today Page 4
  • 5. A Frequently Asked Question In the LAPP system, does SE-PostgreSQL enables us to set up virtual private database for each web users, doesn't it? Unfortunatelly, we have a few issues. Audience KaiGai We call it AP servers A few issues (PHP, Tomcat) LAPP/SELinux Not separated domains SELinux SELinux Web server (Apache) coverage Multi-threading web application coverage RDBMS Our goal (SE-PostgreSQL) Operating System SELinux as a foundation of consistent (SELinux) access controls on whole of LAPP stack Future Page 5
  • 6. Example: A system image of LAPP/SELinux Web application works with correct security context DB objects are labeled, and MAC policy is applied on accesses Correct access controls, even if Web-application is very buggy! Secure Document Management System Web server Web application Public domain HR (0.0.0.0/0) DB server Unlabeled Finance Unlabeled Financial division Human Resources (192.168.10.0/24) (192.168.20.0/24) label: Finance label: HR Page 6
  • 7. Background: Web application is a Nightmare! A security vendor in Japan reported as.... 95% of attacks targeted on web applications, 2008. 76% of attacks tried SQL injection, 2008. Source: Vulnerability Analysis Report vol.11, Lac Inc Page 7
  • 8. Can SELinux provide a solution? Yes, we can! Page 8
  • 9. Issues need to be considered Not a separated domain Multi-threading web application 9
  • 10. Primarily, how should it be considered? Definitions Access control is the ability to permit/deny uses of paticular resources by particular users. User is a human, not a computer program. Process is an agent of user in computer system. So, access control has to apply its policy on processes as if it is a user himself. How should the web be considered in this context? User accesses paticular resources via its agent. User accesses paticular resources via web interface, and it invokes web-application as its agent. No fundamental differences are here! Page 10
  • 11. Issue: Not a separated domain Privileges of web applications Web server handles all the HTTP request by itself. OS does not consider it as works of a agent of clients. Web application has to apply its own access controls Issues in this scheme How to make sure web-app’s access controls are not flaw? Who does it actually requires to access on resources? system_u:system_r:httpd_t Web uest To be worked in http req application staff_u:staff_r:staff_t:SystemHigh separated domain Web application Web server user_u:user_r:user_t:SystemLow Page 11
  • 12. SELinux and security context SELinux It can provide various kind of object managers its decision on access controls. Operating system, RDBMS, X-Window system, ... Its decision come from security context of agent and resources to be accessed. How should correct security context be assigned to the agent? Strategies Authentication Labeled Networking Technology Do nothing Page 12
  • 13. User/Security context assignment (1/3) Strategy.1 Authentication It assigns a security context to agent during authentication based on user’s identifier. Case examples: Operating System security context login shell sshd Appli cation login logind shell security context Agent of blue user Authentication (pam_selinux) Page 13
  • 14. User/Security context assignment (2/3) Strategy.2 Labeled Networking Technology It assigns a security context on agent based on the peer entity’s one. Case examples: SE-PostgreSQL, XACE/SELinux, Xinetd security security context Labeled IPsec Labeled IPsec context User Client Instance postmaster Process racoon User security DB Instance context security racoon Client context Process racoon Security context is Security context is Agent of blue client delivered during delivered during key exchanging key exchanging Page 14
  • 15. User/Security context assignment (3/3) Strategy.3 Do nothing It does not assign individual security context on agent. Case examples: Apache, Samba, ... security context security context security Client references Request context Process handler Apache server invokes process security Web Request context App handler Client security Process context Agent of blue client Correct security context should be assigned on agent whenever user begins to use a system, but ... Page 15
  • 16. Solution Rules Any agent should be assigned correct security context whenever user begin to use the system via agent. User can execute a command via shell program. User can refer a document via web-interfaces. No fundamental differences. It allows various strategies to determine security context. Items to be enhanced on Web server It determine a security context of request handler. It assigns it just before invocation of request handler. Web application can work under SELinux restriction! Page 16
  • 17. Issue: Multi-threading web application Restriction SELinux didn't allow to assign individual security context for each threads within a process. It is quite natural restriction due to domain separation! Some of applications handle user's request in multithreaded backends. Apache 2.x, Tomcat, ... We need to consider a reasonable solution. Page 17
  • 18. Idea: Bounds Domain (1/2) What is bounds domain? A domain with a hierarchical boundary of its privileges. Bounded one cannot have any permission when its bounds domain does not have them. Example: typebounds httpd_t httpd_child_t; allow httpd_t etc_t : file { getattr read }; allow httpd_child_t etc_t : file { read write }; A new typebounds statement defines a hierarchical relationship between two domains. httpd_child_t cannot have file:{write} due to lack of permissions on httpd_t which is the parent. It means child domain always has equal or smaller privilleges. Page 18
  • 19. Idea: Bounds Domain (2/2) What does it make possible? We can ensure that all the threads work within a process’s privileges, even if they have individual domains. Prerequisite of per-thread domain We can also consider httpd_user_t as a restricted mode of httpd_t domain in this case. e st ssh login Web applications http requ OS applications httpd_t sshd_t agent agent httpd_user_t httpd_staff_t user_t staff_t agent agent httpd_unconfined_t unconfined_t Page 19
  • 20. Apache/SELinux plus (1/2) What is Apache/SELinux plus? An extension of Apache/httpd. It assigns individual security context before invocation of request handler. Currently, it determines the security context based on HTTP authentication or source IP address. Note that it allows additional various strategies. What does it make possible? It enables to associate an idea of “web user” and security context of SELinux. Per web-user privileges on PHP scripts, static web contents, and so on... Page 20
  • 21. Apache/SELinux plus (2/2) Internal design It makes a one-time thread just before invocation of request handler, and parent waits for its completion. The thread assigns correct security context on itself, then invokes request handler. The thread exist, and parent wakes up. Read HTTP Assigns correct request header security context on itself *.html Make a one-time thread handler Request Invokes http request handler Response *.php Wait for thread handler completion Exist Thread Page 21
  • 22. Demonstration Security context of agent based on HTTP authentication Result set of DB query depends on security context It also applied on references to static contents 22
  • 23. Current status of LAPP/SELinux Kernel features 2.6.28 got support bounds-domain and multi-threading. SELinux toolchain also supports bounds-domain. SE-PostgreSQL Currently, we are working under PostgreSQL v8.4 development cycle. http://wiki.postgresql.org/wiki/CommitFest:2008-11 Apache/SELinux plus Also published at http://code.google.com/p/sepgsql/ Planed to propose it for upstreamed apache/httpd, next to the SE-PostgreSQL. Page 23
  • 24. Future visions SELinux as a common foundation of whole of web application stack (LAPP). Consistent privileges and decisions in access control for various kind of web applications. Fine-grained mandatory access control policy AP servers AP servers AP servers (PHP, Tomcat) (PHP, Tomcat) (PHP, Tomcat) Web server Web server Web server (Apache) (Apache) (Apache/SELinux plus) RDBMS RDBMS RDBMS (PostgreSQL) (SE-PostgreSQL) (SE-PostgreSQL) Operating System Operating System Operating System (SELinux) (SELinux) (SELinux) Past Today Future Page 24