SlideShare a Scribd company logo
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

More Related Content

What's hot

RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料
Tetsuya Hasegawa
 
FIWARE Training: NGSI-LD Advanced Operations
FIWARE Training: NGSI-LD Advanced OperationsFIWARE Training: NGSI-LD Advanced Operations
FIWARE Training: NGSI-LD Advanced Operations
FIWARE
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
 
LX 공간정보아카데미 PostGIS 강의자료
LX 공간정보아카데미 PostGIS 강의자료LX 공간정보아카데미 PostGIS 강의자료
LX 공간정보아카데미 PostGIS 강의자료
JungHwan Yun
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
Masahito Zembutsu
 
セキュアエレメントとIotデバイスセキュリティ2
セキュアエレメントとIotデバイスセキュリティ2セキュアエレメントとIotデバイスセキュリティ2
セキュアエレメントとIotデバイスセキュリティ2
Kentaro Mitsuyasu
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
 
NETCONFとYANGの話
NETCONFとYANGの話NETCONFとYANGの話
NETCONFとYANGの話
Masakazu Asama
 
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
そろそろ知っておきたい!!コンテナ技術とDockerのキホンそろそろ知っておきたい!!コンテナ技術とDockerのキホン
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
Naoki Nagazumi
 
RDBでのツリー表現入門
RDBでのツリー表現入門RDBでのツリー表現入門
RDBでのツリー表現入門
Kent Ohashi
 
Ingressの概要とLoadBalancerとの比較
Ingressの概要とLoadBalancerとの比較Ingressの概要とLoadBalancerとの比較
Ingressの概要とLoadBalancerとの比較
Mei Nakamura
 
PostgreSQL - C言語によるユーザ定義関数の作り方
PostgreSQL - C言語によるユーザ定義関数の作り方PostgreSQL - C言語によるユーザ定義関数の作り方
PostgreSQL - C言語によるユーザ定義関数の作り方Satoshi Nagayasu
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門
Hiroyuki Wada
 
EC2でkeepalived+LVS(DSR)
EC2でkeepalived+LVS(DSR)EC2でkeepalived+LVS(DSR)
EC2でkeepalived+LVS(DSR)Sugawara Genki
 
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo NagataInsight Technology, Inc.
 
Kubernetes internals (Kubernetes 해부하기)
Kubernetes internals (Kubernetes 해부하기)Kubernetes internals (Kubernetes 해부하기)
Kubernetes internals (Kubernetes 해부하기)
DongHyeon Kim
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Masahiko Sawada
 
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
 
CloudStack再入門!15分でおさらいするCloudStackの基礎
CloudStack再入門!15分でおさらいするCloudStackの基礎CloudStack再入門!15分でおさらいするCloudStackの基礎
CloudStack再入門!15分でおさらいするCloudStackの基礎
Satoshi Shimazaki
 

What's hot (20)

RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料
 
FIWARE Training: NGSI-LD Advanced Operations
FIWARE Training: NGSI-LD Advanced OperationsFIWARE Training: NGSI-LD Advanced Operations
FIWARE Training: NGSI-LD Advanced Operations
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
 
LX 공간정보아카데미 PostGIS 강의자료
LX 공간정보아카데미 PostGIS 강의자료LX 공간정보아카데미 PostGIS 강의자료
LX 공간정보아카데미 PostGIS 강의자료
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
 
セキュアエレメントとIotデバイスセキュリティ2
セキュアエレメントとIotデバイスセキュリティ2セキュアエレメントとIotデバイスセキュリティ2
セキュアエレメントとIotデバイスセキュリティ2
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 
NETCONFとYANGの話
NETCONFとYANGの話NETCONFとYANGの話
NETCONFとYANGの話
 
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
そろそろ知っておきたい!!コンテナ技術とDockerのキホンそろそろ知っておきたい!!コンテナ技術とDockerのキホン
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
 
RDBでのツリー表現入門
RDBでのツリー表現入門RDBでのツリー表現入門
RDBでのツリー表現入門
 
Ingressの概要とLoadBalancerとの比較
Ingressの概要とLoadBalancerとの比較Ingressの概要とLoadBalancerとの比較
Ingressの概要とLoadBalancerとの比較
 
PostgreSQL - C言語によるユーザ定義関数の作り方
PostgreSQL - C言語によるユーザ定義関数の作り方PostgreSQL - C言語によるユーザ定義関数の作り方
PostgreSQL - C言語によるユーザ定義関数の作り方
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門
 
EC2でkeepalived+LVS(DSR)
EC2でkeepalived+LVS(DSR)EC2でkeepalived+LVS(DSR)
EC2でkeepalived+LVS(DSR)
 
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
 
Kubernetes internals (Kubernetes 해부하기)
Kubernetes internals (Kubernetes 해부하기)Kubernetes internals (Kubernetes 해부하기)
Kubernetes internals (Kubernetes 해부하기)
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会
 
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
 
CloudStack再入門!15分でおさらいするCloudStackの基礎
CloudStack再入門!15分でおさらいするCloudStackの基礎CloudStack再入門!15分でおさらいするCloudStackの基礎
CloudStack再入門!15分でおさらいするCloudStackの基礎
 

Similar to 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 control
Kohei 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-PostgreSQL
Kohei KaiGai
 
LCJ2010-KaiGai-sepgsql
LCJ2010-KaiGai-sepgsqlLCJ2010-KaiGai-sepgsql
LCJ2010-KaiGai-sepgsql
Kohei 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 SELinux
Kohei 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 control
Kohei KaiGai
 
Se linux course1
Se linux course1Se linux course1
Oscar Cabanillas - Elastic - OSL19
Oscar Cabanillas - Elastic - OSL19Oscar Cabanillas - Elastic - OSL19
Oscar Cabanillas - Elastic - OSL19
marketingsyone
 
SELinux_@gnu_group_meetup
SELinux_@gnu_group_meetupSELinux_@gnu_group_meetup
SELinux_@gnu_group_meetup
Jayant 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 Wazuh
Auré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 Tizen
Ryo Jin
 
3 securityarchitectureandmodels-120331064706-phpapp01
3 securityarchitectureandmodels-120331064706-phpapp013 securityarchitectureandmodels-120331064706-phpapp01
3 securityarchitectureandmodels-120331064706-phpapp01
wardell 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 accountability
Nandini Chandran
 
Openstack security presentation 2013
Openstack security presentation 2013Openstack security presentation 2013
Openstack security presentation 2013
brian_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 lsm
iaemedu
 
Osonto documentatie
Osonto documentatieOsonto documentatie
Osonto documentatie
wondernet
 
Security Architecture
Security ArchitectureSecurity Architecture
Security Architecture
amiable_indian
 
Practical Security Monitoring with ELKStack
Practical Security Monitoring with ELKStack Practical Security Monitoring with ELKStack
Practical Security Monitoring with ELKStack
Eguardian Global Services
 

Similar to 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
 
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
 
Practical Security Monitoring with ELKStack
Practical Security Monitoring with ELKStack Practical Security Monitoring with ELKStack
Practical Security Monitoring with ELKStack
 

More from Kohei KaiGai

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

More from 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
 

Recently uploaded

9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
saastr
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
BibashShahi
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
Edge AI and Vision Alliance
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
Javier Junquera
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 

Recently uploaded (20)

9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 

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