SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
Security-Enhanced
         PostgreSQL
- System-wide consistency in Access Control -


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

      Primary developer of SE-PostgreSQL
      5 year's experience in Linux kernel development
           Especially, SELinux and Security related.

      Experience in PostgreSQL
           About 8 years as a user :-)
           About 2 years for development of SE-PostgreSQL




2   PGcon2008, Ottawa
Philosophical Background


                        Price of Notebook :            $8.00
                        Price of Individual Info:   priceless




      What do you really want to protect from harms?
           Individual info, Corporate secrets, Authentication data,...
             called as "Information Asset"

      Information Asset has to be stored in something.
           Filesystem, Database, Paper, Brain, ...



3   PGcon2008, Ottawa
Philosophical Background



                              Information Asset


      What decides the worth of Information Asset?
           Contents, not the way to store
      How access control mechanism works?
           Filesystem:      UNIX permission (rwxrwxrwx)
           Database:        Database ACL (GRANT/REVOKE)
           Strongly depends on the way to store them!

      We should apply consistent access control rules for same
    information assets, independent from the way to store them!
4   PGcon2008, Ottawa
Consistency in access control policy
      Access control policy depending on the way to store
      Information Asset

                                      Secret Data
                                                               SystemHigh
         Operating System
                                                                                Database ACL
                                                                            (Own security policy)
        SELinux

        Security
         Policy         Filesystem    Network    IPC objects        Databases


                                                                                Application
    Inter-processes
     Inter-processes
    communication
     communication                                     Unclassified Data
        methods
        methods                      SystemLow

5   PGcon2008, Ottawa
Consistency in access control policy
      A single consistent security policy on whole of the system
      Any query, Any object without Any exception

                                      Secret Data
                                                                SystemHigh
            Operating System
                                                                                 Database ACL
                                                                              (Own security policy)
        SELinux

        Security                                                                       Mandatory
         Policy         Filesystem    Network    IPC objects     SE-PostgreSQL       Access Control
                                                                                  (SELinux security policy)

                                                                              Application
    Inter-processes
     Inter-processes
    communication
     communication                                        Unclassified Data
        methods
        methods                      SystemLow

6   PGcon2008, Ottawa
The Feature of SE-PostgreSQL

      "System-wide" consistency in access controls
           A single unified security policy both OS/DBMS
           Common security attribute representation

      Fine-grained Mandatory Access Controls
           Tuple/Column-level access controls
           Non-bypassable, even if privileged users

      The GOAL of SE-PostgreSQL?
           Provision of System-wide Data Flow Controls
           Prevention to leak/manipulate by malicious insider
           Minimization of damages from SQL injection

7   PGcon2008, Ottawa
"System-wide" consistency
    in access controls
SE-PostgreSQL System Image

      A single unified security policy is applied,
           when user tries to read a file via system-calls
           when user tries to select a table via SQL-queries

      System            Operating System
        Call
                                            Implementation of
                        Entry point


                                                                                   Files
                                      Filesystem  System Calls
                                      Permission
                                                     SELinux
                                                    Subsystem      Policy
                                                                                                  A single unified
                                                                                                   A single unified
                                                                                                  security policy
                                                                                                   security policy
                           SE-PostgreSQL
                                                   SE-PostgreSQL
                                                    Sub System                  Tables
                                      Database
                                        ACL                            ------   ----   --   -------



                                        Query Execution Engine
                                                                       ***      ***    *    *****



        SQL
                                                                       +++      ++     +    +++

                                                                       ##       ###    #    #####




9   PGcon2008, Ottawa
How security policy works? (1/2)

       SELinux makes a decision with security policy and context.
       Security context
                                                                        /var/lib/pgsql/*
           system_u : object_r : postgresql_db_t : Classified
                                                                        PostgreSQL
               User        Role       Type/Domain        MLS Label     Database Files

            Any process/resource have its security context.
            It enables to show its attribute independent from its class.
       Security policy
            A set of massive rules to be allowed
            Rules are described as relationships between two security
            contexts and action.
                 postgresql_t is allowed to write files with postgresql_log_t.
                 SystemHigh is allowed to read file with Classified.

10   PGcon2008, Ottawa
How security policy works? (2/2)

         Common attributes well formalized for various kind of resources.
         Object manager has to maintain proper security context of its
         managing objects

                                                          staff_u:staff_r:staff_t:SystemHigh
                                                          staff_u:staff_r:staff_t:SystemHigh




 system_u:object_r:var_log_t:Unclassified
 system_u:object_r:var_log_t:Unclassified                           system_u:object_r:sepgsql_table_t:Classified
                                                                    system_u:object_r:sepgsql_table_t:Classified

                                                         shared
              /var/log/messages             ~/memo.txt   memory                  SE-PostgreSQL


          system_u:object_r:user_home_t:Unclassified
          system_u:object_r:user_home_t:Unclassified     system_u:object_r:postgresql_t:Unclassified
                                                         system_u:object_r:postgresql_t:Unclassified




                   user_u:user_r:user_t:SystemLow
                   user_u:user_r:user_t:SystemLow

11    PGcon2008, Ottawa
'security_context' system column

     postgres=# SELECT security_context, * FROM drink;
                  security_context             | id | name | price | alcohol
     ------------------------------------------+----+-------+-------+---------
      unconfined_u:object_r:sepgsql_table_t:s0 | 1 | water |    100 | f
      unconfined_u:object_r:sepgsql_table_t:s0 | 2 | coke |     120 | f
      unconfined_u:object_r:sepgsql_table_t:s0 | 3 | juice |    130 | f
      system_u:object_r:sepgsql_table_t:s0:c0 | 4 | cofee |     180 | f
      system_u:object_r:sepgsql_table_t:s0:c0 | 5 | beer |      240 | t
      system_u:object_r:sepgsql_table_t:s0:c0 | 6 | sake |      320 | t
     (6 rows)


        A new system column of security_context.
        It shows security context of each tuples.
             In pg_attribute, it shows security context of the column.
             ditto, for pg_class, pg_database, pg_class

        Default security context of newly inserted tuples
        Updating security context via writable system column

12    PGcon2008, Ottawa
How clients' authority decided?

       Access controls, as if users access files via system calls.
            But, queries come through networks.
       Labeled Networking Technology
            SELinux provides getpeercon() API, that enables to obtain the
            security context of peer process.
            SE-PostgreSQL applies it as a security context of client

                                                         Peer's context is delivered
                                                          during key exchanging.

                                                                                       ...:SystemMiddle
                                                          Labeled IPsec Networks
          ...:SystemHigh



            UNIX domain socket
                                       SE-PostgreSQL    IP address     Normal TCP/IP
                                                             lookup
                           localhost                   ...:SystemLow

13   PGcon2008, Ottawa
Fine-grained Mandatory
    access controls
Tuple-level Access Controls

         SE-PostgreSQL filters any violated tuples from result set,
         as if they are not on the target table.
              ditto, on UPDATE and DELETE statement
              Checks at tuple insertion for INSERT statement

              Example:
               Example:
                       SELECT * FROM employee NATURAL JOIN division;
                             parser
                           & optimizer
                                           SeqScan
                                                               TABLE: employee
                    Plan tree
                                           IndexScan
     kernel space                                              TABLE: division

       Security
                                    SE-PostgreSQL      Hooks
        Policy

15     PGcon2008, Ottawa
Column-Level Access Control

       SE-PostgreSQL checks any column appeared in queries.
            Abort query execution, if violated usage found.

         SELECT c1, sin(c2), exp(c3+ln(c4)) FROM ttWHERE c5 < 100;
          SELECT c1, sin(c2), exp(c3+ln(c4)) FROM WHERE c5 < 100;

            Query parser
                                  Walking on the node tree.
         Query tree
                                    c1             sin            exp
          targetList
                                                                         '+' operation
                            '<' operation          c2         float8pl

           jointree               float8lt               c3              ln

                            c5               100                         c4
                                                         Abort!

16   PGcon2008, Ottawa
Case Study (1/2)

             SELECT name, price * 2 FROM drink WHERE id < 40;

        db_column:{select} for name and price column
        db_column:{use} for id column
             {use} permission means "referred but consumed internally"
        db_procedure:{execute} for int4mul and int4lt function
        db_table:{select use} for drink table
                                                                 Implementation of operators.
                                                             Implementation of operators.
             The current transaction will be aborted,
             if the client does not have enough permissions.
     And
       db_tuple:{select use} for each tuples
             Any violated tuples are filtered from result set.




17    PGcon2008, Ottawa
Case Study (2/2)

                UPDATE drink SET size = 500, price = price * 2
                                       WHERE alcohol = true;

        db_column:{update} for size column
        db_column:{select update} for price column
             price column is also read, not only updated.
        db_column:{use} for alcohol column
        db_procedure:{execute} for booleq and int4mul function
        db_table:{select use update} for drink table
             The current transaction will be aborted,
             if the client does not have enough permissions.
     And
       db_tuple:{select use update} for each tuples
             Any violated tuples are excepted from the target of updating.

18    PGcon2008, Ottawa
Demonstration
Data Flow Control Demonstration

                 PostgreSQL (original)                                            SE-PostgreSQL


                               read(2)                                                   read(2)
                                               Secret                                                    Secret
                  SystemHigh                                                SystemHigh

               INSERT            write(2)                                INSERT            write(2)

              PgSQL                         Filesystem               SE-PgSQL                         Filesystem



                                            Secret                       Secret                       Secret


 Security
  Security                                             System-wide
                                                        System-wide
 Attribute
  Attribute     SELECT                   read(2)        consistency
                                                         consistency     SELECT                    read(2)
  LOST!
   LOST!                                             in accee control
                                                      in accee control
                          SystemLow                                                 SystemLow

20    PGcon2008, Ottawa
Miscellaneous Topics
Performance

                                   700                         CPU: Core2Duo E6400, Mem: 1GB, HDD: SATA
                                                                CPU: Core2Duo E6400, Mem: 1GB, HDD: SATA
                                                               shared_buffer=512m, rest of options are in default.
                                                                shared_buffer=512m, rest of options are in default.
                                   600
                                                               $$pgbench -c 22-t 200000
         Transactions per second

                                                                  pgbench -c -t 200000
                                   500

                                   400

                                   300

                                   200

                                   100

                                     0
                                         2     4      6        8        10     12       14    16     18      20
                                                                   Scaling factor
                                         PostgreSQL 8.4devel                        SE-PostgreSQL 8.4devel

       about 10% security-tradeoff
       access vector cache (AVC) minimizes system-call invocation

22   PGcon2008, Ottawa
Platform dependency

       SE-PostgreSQL always needs SELinux to run.
            Is SE-PostgreSQL available on disabled SELinux?
            Is SE-PostgreSQL available on any other operating system?
       PostgreSQL Access Control Extension (PGACE)
            A set of platform independent hooks
            To apply various kind of security module with minimum impact
     Base PostgreSQL implementation             PGACE framework                        OS specific security module
                                             pgaceHeapTupleInsert                      sepgsqlHeapTupleInsert

                 ExecInsert

                                                                                           fooHeapTupleInsert
                              static inline bool
                              static inline bool
                              pgaceHeapTupleInsert(Relation rel, HeapTuple tup,...)
                              pgaceHeapTupleInsert(Relation rel, HeapTuple tup,...)           varHeapTupleInsert
                              {
                              {
                              #ifdef HAVE_SELINUX
                              #ifdef HAVE_SELINUX
              database
                                  if (sepgsqlIsEnabled())
                                   if (sepgsqlIsEnabled())
                                       return sepgsqlHeapTupleInsert(rel, tup, ...);
                                       return sepgsqlHeapTupleInsert(rel, tup, ...);
                              #endif
                              #endif
                                  return true;
                                   return true;
23   PGcon2008, Ottawa        }
                              }
The current status of SE-PostgreSQL

       The current status
            Now, it is available on Fedora 8 or later
            Patches are reviewed at CommitFest:May
                 Thanks for many worthful comments/suggestions!
                 http://wiki.postgresql.org/wiki/CommitFest:May




       In the next
            Now revising my patches for CommitFest:Jul
                 design improvement, documentation, regression test, ...
            Security Policy Upstreaming

24   PGcon2008, Ottawa
Summary

       "System-wide" Consistency in Access Controls
        ITS PHILOSOPHY:
            Same access control policy should be applied to same
            information asset, independent from the way to store.
            Key concept is sharing a single unified security policy.


       Fine-grained Mandatory Access Controls
            Non-bypassable for everyone
            Column-/Tuple-level flexibility
                 Any violated tuple is filtered, as if they don't exist.
                 Using violated column and others invokes execution aborts.



25   PGcon2008, Ottawa
Any Question?
Thank you!

    Acknoledgement:
    Information-Technology Promotion Agency (IPA), Japan supported
    the development of SE-PostgreSQL as one of the Exploratory
    Software Projects in later half of 2006FY.
Resources

       Project Home
            http://code.google.com/p/sepgsql/
            SVN repository
                 svn co http://sepgsql.googlecode.com/svn/ sepgsql
            Today's slide
                 http://sepgsql.googlecode.com/files/PGCON20080523.pdf

       RPM Packages
            http://code.google.com/p/sepgsql/downloads/list
            And, see the repository of Fedora project

       Logo                                         Currently, he has no name.




28   PGcon2008, Ottawa

Más contenido relacionado

La actualidad más candente

そろそろSELinux を有効にしてみませんか?
そろそろSELinux を有効にしてみませんか?そろそろSELinux を有効にしてみませんか?
そろそろSELinux を有効にしてみませんか?Atsushi Mitsu
 
Pgsodium's Features: those not provided by pgcrypto and integration with rem...
 Pgsodium's Features: those not provided by pgcrypto and integration with rem... Pgsodium's Features: those not provided by pgcrypto and integration with rem...
Pgsodium's Features: those not provided by pgcrypto and integration with rem...EDB
 
Entrepreneurship for hackers
Entrepreneurship for hackersEntrepreneurship for hackers
Entrepreneurship for hackerssnyff
 
20221111_JPUG_CustomScan_API
20221111_JPUG_CustomScan_API20221111_JPUG_CustomScan_API
20221111_JPUG_CustomScan_APIKohei KaiGai
 
MySQL Atchitecture and Concepts
MySQL Atchitecture and ConceptsMySQL Atchitecture and Concepts
MySQL Atchitecture and ConceptsTuyen Vuong
 
The InnoDB Storage Engine for MySQL
The InnoDB Storage Engine for MySQLThe InnoDB Storage Engine for MySQL
The InnoDB Storage Engine for MySQLMorgan Tocker
 
Deploying deep learning models with Docker and Kubernetes
Deploying deep learning models with Docker and KubernetesDeploying deep learning models with Docker and Kubernetes
Deploying deep learning models with Docker and KubernetesPetteriTeikariPhD
 
Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...
Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...
Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...Edureka!
 
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...NTT DATA Technology & Innovation
 
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~真乙 九龍
 
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들Brian Hong
 
20220427-k8s-meetup-tokyo.pdf
20220427-k8s-meetup-tokyo.pdf20220427-k8s-meetup-tokyo.pdf
20220427-k8s-meetup-tokyo.pdfVanouIshii
 
MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?Sébastien Prunier
 
Big Data Architecture and Deployment
Big Data Architecture and DeploymentBig Data Architecture and Deployment
Big Data Architecture and DeploymentCisco Canada
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーToru Makabe
 
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)Seongyun Byeon
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装infinite_loop
 
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめOhyama Masanori
 

La actualidad más candente (20)

そろそろSELinux を有効にしてみませんか?
そろそろSELinux を有効にしてみませんか?そろそろSELinux を有効にしてみませんか?
そろそろSELinux を有効にしてみませんか?
 
Pgsodium's Features: those not provided by pgcrypto and integration with rem...
 Pgsodium's Features: those not provided by pgcrypto and integration with rem... Pgsodium's Features: those not provided by pgcrypto and integration with rem...
Pgsodium's Features: those not provided by pgcrypto and integration with rem...
 
Entrepreneurship for hackers
Entrepreneurship for hackersEntrepreneurship for hackers
Entrepreneurship for hackers
 
20221111_JPUG_CustomScan_API
20221111_JPUG_CustomScan_API20221111_JPUG_CustomScan_API
20221111_JPUG_CustomScan_API
 
MySQL Atchitecture and Concepts
MySQL Atchitecture and ConceptsMySQL Atchitecture and Concepts
MySQL Atchitecture and Concepts
 
The InnoDB Storage Engine for MySQL
The InnoDB Storage Engine for MySQLThe InnoDB Storage Engine for MySQL
The InnoDB Storage Engine for MySQL
 
Deploying deep learning models with Docker and Kubernetes
Deploying deep learning models with Docker and KubernetesDeploying deep learning models with Docker and Kubernetes
Deploying deep learning models with Docker and Kubernetes
 
Fleet and elastic agent
Fleet and elastic agentFleet and elastic agent
Fleet and elastic agent
 
Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...
Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...
Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...
 
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
 
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
 
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
 
20220427-k8s-meetup-tokyo.pdf
20220427-k8s-meetup-tokyo.pdf20220427-k8s-meetup-tokyo.pdf
20220427-k8s-meetup-tokyo.pdf
 
MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?
 
PostgreSQLアーキテクチャ入門
PostgreSQLアーキテクチャ入門PostgreSQLアーキテクチャ入門
PostgreSQLアーキテクチャ入門
 
Big Data Architecture and Deployment
Big Data Architecture and DeploymentBig Data Architecture and Deployment
Big Data Architecture and Deployment
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
 
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめ
 

Similar a Security Enhanced PostgreSQL - System-wide consistency in access control

The Security-Enhanced PostgreSQL - "system wide" consistency in access control
The Security-Enhanced PostgreSQL - "system wide" consistency in access controlThe Security-Enhanced PostgreSQL - "system wide" consistency in access control
The Security-Enhanced PostgreSQL - "system wide" consistency in access controlKohei KaiGai
 
LAPP/SELinux - A secure web application stack using SE-PostgreSQL
LAPP/SELinux - A secure web application stack using SE-PostgreSQLLAPP/SELinux - A secure web application stack using SE-PostgreSQL
LAPP/SELinux - A secure web application stack using SE-PostgreSQLKohei KaiGai
 
LCJ2010-KaiGai-sepgsql
LCJ2010-KaiGai-sepgsqlLCJ2010-KaiGai-sepgsql
LCJ2010-KaiGai-sepgsqlKohei KaiGai
 
Label based Mandatory Access Control on PostgreSQL
Label based Mandatory Access Control on PostgreSQLLabel based Mandatory Access Control on PostgreSQL
Label based Mandatory Access Control on PostgreSQLKohei KaiGai
 
LAPP/SELinux - A secure web application stack powered by SELinux
LAPP/SELinux - A secure web application stack powered by SELinuxLAPP/SELinux - A secure web application stack powered by SELinux
LAPP/SELinux - A secure web application stack powered by SELinuxKohei KaiGai
 
SE-PostgreSQL - System wide consistency of access control
SE-PostgreSQL - System wide consistency of access controlSE-PostgreSQL - System wide consistency of access control
SE-PostgreSQL - System wide consistency of access controlKohei KaiGai
 
Oscar Cabanillas - Elastic - OSL19
Oscar Cabanillas - Elastic - OSL19Oscar Cabanillas - Elastic - OSL19
Oscar Cabanillas - Elastic - OSL19marketingsyone
 
SELinux_@gnu_group_meetup
SELinux_@gnu_group_meetupSELinux_@gnu_group_meetup
SELinux_@gnu_group_meetupJayant Chutke
 
Présentation ELK/SIEM et démo Wazuh
Présentation ELK/SIEM et démo WazuhPrésentation ELK/SIEM et démo Wazuh
Présentation ELK/SIEM et démo WazuhAurélie Henriot
 
Security analysis of a privacy preserving decentralized key-policy attribute-...
Security analysis of a privacy preserving decentralized key-policy attribute-...Security analysis of a privacy preserving decentralized key-policy attribute-...
Security analysis of a privacy preserving decentralized key-policy attribute-...JPINFOTECH JAYAPRAKASH
 
Single Sign-on Framework in Tizen
Single Sign-on Framework in TizenSingle Sign-on Framework in Tizen
Single Sign-on Framework in TizenRyo Jin
 
3 securityarchitectureandmodels-120331064706-phpapp01
3 securityarchitectureandmodels-120331064706-phpapp013 securityarchitectureandmodels-120331064706-phpapp01
3 securityarchitectureandmodels-120331064706-phpapp01wardell henley
 
Metric for Evaluating Availability of an Information System : A Quantitative ...
Metric for Evaluating Availability of an Information System : A Quantitative ...Metric for Evaluating Availability of an Information System : A Quantitative ...
Metric for Evaluating Availability of an Information System : A Quantitative ...IJNSA Journal
 
Ensuring distributed accountability
Ensuring distributed accountabilityEnsuring distributed accountability
Ensuring distributed accountabilityNandini Chandran
 
Openstack security presentation 2013
Openstack security presentation 2013Openstack security presentation 2013
Openstack security presentation 2013brian_chong
 
Investigation on Revocable Fine-grained Access Control Scheme for Multi-Autho...
Investigation on Revocable Fine-grained Access Control Scheme for Multi-Autho...Investigation on Revocable Fine-grained Access Control Scheme for Multi-Autho...
Investigation on Revocable Fine-grained Access Control Scheme for Multi-Autho...IJCERT JOURNAL
 
Process behaviour modelling using lsm
Process behaviour modelling using lsmProcess behaviour modelling using lsm
Process behaviour modelling using lsmiaemedu
 
Osonto documentatie
Osonto documentatieOsonto documentatie
Osonto documentatiewondernet
 

Similar a Security Enhanced PostgreSQL - System-wide consistency in access control (20)

The Security-Enhanced PostgreSQL - "system wide" consistency in access control
The Security-Enhanced PostgreSQL - "system wide" consistency in access controlThe Security-Enhanced PostgreSQL - "system wide" consistency in access control
The Security-Enhanced PostgreSQL - "system wide" consistency in access control
 
LAPP/SELinux - A secure web application stack using SE-PostgreSQL
LAPP/SELinux - A secure web application stack using SE-PostgreSQLLAPP/SELinux - A secure web application stack using SE-PostgreSQL
LAPP/SELinux - A secure web application stack using SE-PostgreSQL
 
LCJ2010-KaiGai-sepgsql
LCJ2010-KaiGai-sepgsqlLCJ2010-KaiGai-sepgsql
LCJ2010-KaiGai-sepgsql
 
Label based Mandatory Access Control on PostgreSQL
Label based Mandatory Access Control on PostgreSQLLabel based Mandatory Access Control on PostgreSQL
Label based Mandatory Access Control on PostgreSQL
 
LAPP/SELinux - A secure web application stack powered by SELinux
LAPP/SELinux - A secure web application stack powered by SELinuxLAPP/SELinux - A secure web application stack powered by SELinux
LAPP/SELinux - A secure web application stack powered by SELinux
 
SE-PostgreSQL - System wide consistency of access control
SE-PostgreSQL - System wide consistency of access controlSE-PostgreSQL - System wide consistency of access control
SE-PostgreSQL - System wide consistency of access control
 
Se linux course1
Se linux course1Se linux course1
Se linux course1
 
Oscar Cabanillas - Elastic - OSL19
Oscar Cabanillas - Elastic - OSL19Oscar Cabanillas - Elastic - OSL19
Oscar Cabanillas - Elastic - OSL19
 
SELinux_@gnu_group_meetup
SELinux_@gnu_group_meetupSELinux_@gnu_group_meetup
SELinux_@gnu_group_meetup
 
Présentation ELK/SIEM et démo Wazuh
Présentation ELK/SIEM et démo WazuhPrésentation ELK/SIEM et démo Wazuh
Présentation ELK/SIEM et démo Wazuh
 
Security analysis of a privacy preserving decentralized key-policy attribute-...
Security analysis of a privacy preserving decentralized key-policy attribute-...Security analysis of a privacy preserving decentralized key-policy attribute-...
Security analysis of a privacy preserving decentralized key-policy attribute-...
 
Single Sign-on Framework in Tizen
Single Sign-on Framework in TizenSingle Sign-on Framework in Tizen
Single Sign-on Framework in Tizen
 
3 securityarchitectureandmodels-120331064706-phpapp01
3 securityarchitectureandmodels-120331064706-phpapp013 securityarchitectureandmodels-120331064706-phpapp01
3 securityarchitectureandmodels-120331064706-phpapp01
 
Metric for Evaluating Availability of an Information System : A Quantitative ...
Metric for Evaluating Availability of an Information System : A Quantitative ...Metric for Evaluating Availability of an Information System : A Quantitative ...
Metric for Evaluating Availability of an Information System : A Quantitative ...
 
Ensuring distributed accountability
Ensuring distributed accountabilityEnsuring distributed accountability
Ensuring distributed accountability
 
Openstack security presentation 2013
Openstack security presentation 2013Openstack security presentation 2013
Openstack security presentation 2013
 
Investigation on Revocable Fine-grained Access Control Scheme for Multi-Autho...
Investigation on Revocable Fine-grained Access Control Scheme for Multi-Autho...Investigation on Revocable Fine-grained Access Control Scheme for Multi-Autho...
Investigation on Revocable Fine-grained Access Control Scheme for Multi-Autho...
 
Process behaviour modelling using lsm
Process behaviour modelling using lsmProcess behaviour modelling using lsm
Process behaviour modelling using lsm
 
Osonto documentatie
Osonto documentatieOsonto documentatie
Osonto documentatie
 
Security Architecture
Security ArchitectureSecurity Architecture
Security Architecture
 

Más de Kohei KaiGai

20221116_DBTS_PGStrom_History
20221116_DBTS_PGStrom_History20221116_DBTS_PGStrom_History
20221116_DBTS_PGStrom_HistoryKohei 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
 
20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_FdwKohei KaiGai
 

Más de Kohei KaiGai (20)

20221116_DBTS_PGStrom_History
20221116_DBTS_PGStrom_History20221116_DBTS_PGStrom_History
20221116_DBTS_PGStrom_History
 
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
 
20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw
 

Último

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
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
#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
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
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
 
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
 
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
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Último (20)

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
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
#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
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
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
 
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
 
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
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

Security Enhanced PostgreSQL - System-wide consistency in access control

  • 1. Security-Enhanced PostgreSQL - System-wide consistency in Access Control - NEC OSS Promotion Center KaiGai Kohei <kaigai@ak.jp.nec.com>
  • 2. Who is KaiGai ? Primary developer of SE-PostgreSQL 5 year's experience in Linux kernel development Especially, SELinux and Security related. Experience in PostgreSQL About 8 years as a user :-) About 2 years for development of SE-PostgreSQL 2 PGcon2008, Ottawa
  • 3. Philosophical Background Price of Notebook : $8.00 Price of Individual Info: priceless What do you really want to protect from harms? Individual info, Corporate secrets, Authentication data,... called as "Information Asset" Information Asset has to be stored in something. Filesystem, Database, Paper, Brain, ... 3 PGcon2008, Ottawa
  • 4. Philosophical Background Information Asset What decides the worth of Information Asset? Contents, not the way to store How access control mechanism works? Filesystem: UNIX permission (rwxrwxrwx) Database: Database ACL (GRANT/REVOKE) Strongly depends on the way to store them! We should apply consistent access control rules for same information assets, independent from the way to store them! 4 PGcon2008, Ottawa
  • 5. Consistency in access control policy Access control policy depending on the way to store Information Asset Secret Data SystemHigh Operating System Database ACL (Own security policy) SELinux Security Policy Filesystem Network IPC objects Databases Application Inter-processes Inter-processes communication communication Unclassified Data methods methods SystemLow 5 PGcon2008, Ottawa
  • 6. Consistency in access control policy A single consistent security policy on whole of the system Any query, Any object without Any exception Secret Data SystemHigh Operating System Database ACL (Own security policy) SELinux Security Mandatory Policy Filesystem Network IPC objects SE-PostgreSQL Access Control (SELinux security policy) Application Inter-processes Inter-processes communication communication Unclassified Data methods methods SystemLow 6 PGcon2008, Ottawa
  • 7. The Feature of SE-PostgreSQL "System-wide" consistency in access controls A single unified security policy both OS/DBMS Common security attribute representation Fine-grained Mandatory Access Controls Tuple/Column-level access controls Non-bypassable, even if privileged users The GOAL of SE-PostgreSQL? Provision of System-wide Data Flow Controls Prevention to leak/manipulate by malicious insider Minimization of damages from SQL injection 7 PGcon2008, Ottawa
  • 8. "System-wide" consistency in access controls
  • 9. SE-PostgreSQL System Image A single unified security policy is applied, when user tries to read a file via system-calls when user tries to select a table via SQL-queries System Operating System Call Implementation of Entry point Files Filesystem System Calls Permission SELinux Subsystem Policy A single unified A single unified security policy security policy SE-PostgreSQL SE-PostgreSQL Sub System Tables Database ACL ------ ---- -- ------- Query Execution Engine *** *** * ***** SQL +++ ++ + +++ ## ### # ##### 9 PGcon2008, Ottawa
  • 10. How security policy works? (1/2) SELinux makes a decision with security policy and context. Security context /var/lib/pgsql/* system_u : object_r : postgresql_db_t : Classified PostgreSQL User Role Type/Domain MLS Label Database Files Any process/resource have its security context. It enables to show its attribute independent from its class. Security policy A set of massive rules to be allowed Rules are described as relationships between two security contexts and action. postgresql_t is allowed to write files with postgresql_log_t. SystemHigh is allowed to read file with Classified. 10 PGcon2008, Ottawa
  • 11. How security policy works? (2/2) Common attributes well formalized for various kind of resources. Object manager has to maintain proper security context of its managing objects staff_u:staff_r:staff_t:SystemHigh staff_u:staff_r:staff_t:SystemHigh system_u:object_r:var_log_t:Unclassified system_u:object_r:var_log_t:Unclassified system_u:object_r:sepgsql_table_t:Classified system_u:object_r:sepgsql_table_t:Classified shared /var/log/messages ~/memo.txt memory SE-PostgreSQL system_u:object_r:user_home_t:Unclassified system_u:object_r:user_home_t:Unclassified system_u:object_r:postgresql_t:Unclassified system_u:object_r:postgresql_t:Unclassified user_u:user_r:user_t:SystemLow user_u:user_r:user_t:SystemLow 11 PGcon2008, Ottawa
  • 12. 'security_context' system column postgres=# SELECT security_context, * FROM drink; security_context | id | name | price | alcohol ------------------------------------------+----+-------+-------+--------- unconfined_u:object_r:sepgsql_table_t:s0 | 1 | water | 100 | f unconfined_u:object_r:sepgsql_table_t:s0 | 2 | coke | 120 | f unconfined_u:object_r:sepgsql_table_t:s0 | 3 | juice | 130 | f system_u:object_r:sepgsql_table_t:s0:c0 | 4 | cofee | 180 | f system_u:object_r:sepgsql_table_t:s0:c0 | 5 | beer | 240 | t system_u:object_r:sepgsql_table_t:s0:c0 | 6 | sake | 320 | t (6 rows) A new system column of security_context. It shows security context of each tuples. In pg_attribute, it shows security context of the column. ditto, for pg_class, pg_database, pg_class Default security context of newly inserted tuples Updating security context via writable system column 12 PGcon2008, Ottawa
  • 13. How clients' authority decided? Access controls, as if users access files via system calls. But, queries come through networks. Labeled Networking Technology SELinux provides getpeercon() API, that enables to obtain the security context of peer process. SE-PostgreSQL applies it as a security context of client Peer's context is delivered during key exchanging. ...:SystemMiddle Labeled IPsec Networks ...:SystemHigh UNIX domain socket SE-PostgreSQL IP address Normal TCP/IP lookup localhost ...:SystemLow 13 PGcon2008, Ottawa
  • 14. Fine-grained Mandatory access controls
  • 15. Tuple-level Access Controls SE-PostgreSQL filters any violated tuples from result set, as if they are not on the target table. ditto, on UPDATE and DELETE statement Checks at tuple insertion for INSERT statement Example: Example: SELECT * FROM employee NATURAL JOIN division; parser & optimizer SeqScan TABLE: employee Plan tree IndexScan kernel space TABLE: division Security SE-PostgreSQL Hooks Policy 15 PGcon2008, Ottawa
  • 16. Column-Level Access Control SE-PostgreSQL checks any column appeared in queries. Abort query execution, if violated usage found. SELECT c1, sin(c2), exp(c3+ln(c4)) FROM ttWHERE c5 < 100; SELECT c1, sin(c2), exp(c3+ln(c4)) FROM WHERE c5 < 100; Query parser Walking on the node tree. Query tree c1 sin exp targetList '+' operation '<' operation c2 float8pl jointree float8lt c3 ln c5 100 c4 Abort! 16 PGcon2008, Ottawa
  • 17. Case Study (1/2) SELECT name, price * 2 FROM drink WHERE id < 40; db_column:{select} for name and price column db_column:{use} for id column {use} permission means "referred but consumed internally" db_procedure:{execute} for int4mul and int4lt function db_table:{select use} for drink table Implementation of operators. Implementation of operators. The current transaction will be aborted, if the client does not have enough permissions. And db_tuple:{select use} for each tuples Any violated tuples are filtered from result set. 17 PGcon2008, Ottawa
  • 18. Case Study (2/2) UPDATE drink SET size = 500, price = price * 2 WHERE alcohol = true; db_column:{update} for size column db_column:{select update} for price column price column is also read, not only updated. db_column:{use} for alcohol column db_procedure:{execute} for booleq and int4mul function db_table:{select use update} for drink table The current transaction will be aborted, if the client does not have enough permissions. And db_tuple:{select use update} for each tuples Any violated tuples are excepted from the target of updating. 18 PGcon2008, Ottawa
  • 20. Data Flow Control Demonstration PostgreSQL (original) SE-PostgreSQL read(2) read(2) Secret Secret SystemHigh SystemHigh INSERT write(2) INSERT write(2) PgSQL Filesystem SE-PgSQL Filesystem Secret Secret Secret Security Security System-wide System-wide Attribute Attribute SELECT read(2) consistency consistency SELECT read(2) LOST! LOST! in accee control in accee control SystemLow SystemLow 20 PGcon2008, Ottawa
  • 22. Performance 700 CPU: Core2Duo E6400, Mem: 1GB, HDD: SATA CPU: Core2Duo E6400, Mem: 1GB, HDD: SATA shared_buffer=512m, rest of options are in default. shared_buffer=512m, rest of options are in default. 600 $$pgbench -c 22-t 200000 Transactions per second pgbench -c -t 200000 500 400 300 200 100 0 2 4 6 8 10 12 14 16 18 20 Scaling factor PostgreSQL 8.4devel SE-PostgreSQL 8.4devel about 10% security-tradeoff access vector cache (AVC) minimizes system-call invocation 22 PGcon2008, Ottawa
  • 23. Platform dependency SE-PostgreSQL always needs SELinux to run. Is SE-PostgreSQL available on disabled SELinux? Is SE-PostgreSQL available on any other operating system? PostgreSQL Access Control Extension (PGACE) A set of platform independent hooks To apply various kind of security module with minimum impact Base PostgreSQL implementation PGACE framework OS specific security module pgaceHeapTupleInsert sepgsqlHeapTupleInsert ExecInsert fooHeapTupleInsert static inline bool static inline bool pgaceHeapTupleInsert(Relation rel, HeapTuple tup,...) pgaceHeapTupleInsert(Relation rel, HeapTuple tup,...) varHeapTupleInsert { { #ifdef HAVE_SELINUX #ifdef HAVE_SELINUX database if (sepgsqlIsEnabled()) if (sepgsqlIsEnabled()) return sepgsqlHeapTupleInsert(rel, tup, ...); return sepgsqlHeapTupleInsert(rel, tup, ...); #endif #endif return true; return true; 23 PGcon2008, Ottawa } }
  • 24. The current status of SE-PostgreSQL The current status Now, it is available on Fedora 8 or later Patches are reviewed at CommitFest:May Thanks for many worthful comments/suggestions! http://wiki.postgresql.org/wiki/CommitFest:May In the next Now revising my patches for CommitFest:Jul design improvement, documentation, regression test, ... Security Policy Upstreaming 24 PGcon2008, Ottawa
  • 25. Summary "System-wide" Consistency in Access Controls ITS PHILOSOPHY: Same access control policy should be applied to same information asset, independent from the way to store. Key concept is sharing a single unified security policy. Fine-grained Mandatory Access Controls Non-bypassable for everyone Column-/Tuple-level flexibility Any violated tuple is filtered, as if they don't exist. Using violated column and others invokes execution aborts. 25 PGcon2008, Ottawa
  • 27. Thank you! Acknoledgement: Information-Technology Promotion Agency (IPA), Japan supported the development of SE-PostgreSQL as one of the Exploratory Software Projects in later half of 2006FY.
  • 28. Resources Project Home http://code.google.com/p/sepgsql/ SVN repository svn co http://sepgsql.googlecode.com/svn/ sepgsql Today's slide http://sepgsql.googlecode.com/files/PGCON20080523.pdf RPM Packages http://code.google.com/p/sepgsql/downloads/list And, see the repository of Fedora project Logo Currently, he has no name. 28 PGcon2008, Ottawa