1 / 31

Row & Column Level Access

Row & Column Level Access. Peter Rurenga OGh presentatie. 15-02-2011. Martiris. Onderwerpen. Waarom Row en/of Colum Level Security? (RLS en CLS) Overzicht methodes Views Oracle Label Security (OLS) Database Vault (DBV) Virtual Private Database (VPD) Inzoomen op VPD

cedric
Télécharger la présentation

Row & Column Level Access

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Row & Column Level Access Peter Rurenga OGh presentatie 15-02-2011 Martiris

  2. Onderwerpen Waarom Row en/of Colum Level Security? (RLS en CLS) Overzicht methodes Views Oracle Label Security (OLS) Database Vault (DBV) Virtual Private Database (VPD) Inzoomen op VPD Secure Private Data (SPD) Samenvatting 15-02-2011 Martiris

  3. Functioneel - ‘Need to know’ - gecontroleerd gebruikers toelaten - business mogelijk maken - multiclient: alleen toegang tot eigen gegevens Waarom RLS en CLS? Security - ‘No need to know’ - afschermen van gegevens - uitsluiten van gebruikers - privacy wetgeving 15-02-2011 Martiris

  4. Security: een greep uit het nieuws... bron: security.nl Supermarkt IT'er steelt voor 100.000 euro aan bonuspunten Ziekenhuis ontslaat personeel na grasduinen EPD Vodafone ontslaat personeel na groot datalek Agent bekijkt politiedatabase in opdracht van crimineel 15-02-2011 Martiris

  5. Functioneel: Outsourcing, SaaS, Cloud Bijvoorbeeld Electronisch Patienten Dossier: Centrale opslag van gegevens, gedeelde infra- en datastruktuur Verschillende partijen en indelingen: gegevens per ziekenhuis / afdeling / arts onderscheid naar rollen: verpleegkundige / arts taken van elkaar overnemen verschil in mutatie rechten de patient inzicht in eigen dossier 15-02-2011 Martiris

  6. Impact RLS op applicatie Filteren records kan onverwachte gevolgen hebben (indien toegepast op reeds bestaande applicaties) referentiele integriteit unique kolommen batches 15-02-2011 Martiris

  7. Nadelen: • Verweven met applicatie • Tabel gegevens blijven beschikbaar voor privileged users • Verschillende views voor verschillende DML (valt te ondervangen met IO triggers) • Programmeren Traditionele aanpak: views Voordelen: biedt zowel RLS en CLS afschermen door toegang te beperken tot views, niet op tabellen Flexibel Parametriseren dmv Applicatie Context Werkt in alle DB versies 15-02-2011 Martiris

  8. Oracle Label Security (OLS) (1) Wat is het? Ontwikkeld voor defensie en inlichtingendienst. Transparant filteren van records Labels voor zowel gebruikers als records Onderscheid naar DML Tabel krijgt extra, verborgen kolom (ROWLABEL) Aparte licentie vereist Alleen Enterprise Edition 15-02-2011 Martiris

  9. Oracle Label Security (OLS) (2) Een label bestaat uit drie verschillende componenten: - Levels zijn hierarchisch: publiek (L1), vertrouwelijk (L2), geheim(L3) - Compartments: Manager (M), Employee (E) - Groups, hierarchisch: Region Noord (RN), Regio Zuid (RZ) Voorbeeld label record: 'L2:M:RN' voorbeeld label employee: 'L2:E:RN' voorbeeld label manager: 'L3:M,E:R20,R40,RN,RZ’ Nb, het is niet verplicht alle componenten te gebruiken. 15-02-2011 Martiris

  10. Oracle Label Security (OLS) (3) Gebruikers hebben: Minimum/Maximum/default level wat ze in mogen stellen voor nieuwe data. Per compartment en groep DML rechten. Speciale rollen om data label aan te passen: - writedown/up : aanpassen level - writeaccross : aanpassen compartiments/groups 15-02-2011 Martiris

  11. Voordelen: • Biedt RLS • Out of the box • Beschermd tegen insider threat • in de database: applicatie onafhankelijk • policies kunnen in OiD worden ondergebracht • Nadelen: • Biedt geen CLS • extra kolom • Niet flexibel • Best ingewikkeld • Aparte licentie • Alleen in Enterprise Edition Oracle Label Security (OLS) (4) 15-02-2011 Martiris

  12. Database Vault (DBV) (1) Specifiek bedoeld voor: Scheiden van taken Voldoen aan wetgeving (SOX) Afschermen privileged users, zoals DBA Biedt uitgebreide interfaces, packages en rapportages. 15-02-2011 Martiris

  13. Database Vault (DBV) (2) Hoe werkt het? 1. DV-Admin maakt ‘realm’ aan (bv. HR_REALM) 2. Voegt dan een object toe (bv. HR.EMPLOYEES) 3. DV-Account Manager maakt gebruiker aan en maakt deze ‘participant’ van de ‘realm’. 15-02-2011 Martiris

  14. Database Vault (DBV) (3) DBV is met name sterk in reguleren van SQL commando’s : ‘Command rules’ reguleren gebruik DML maar ook DDL, zoals ALTER / DROP statements. Echter, DBV biedt geen RLS of CLS. Integratie met OLS mogelijk maar dan weer een apartie licentie. 15-02-2011 Martiris

  15. Virtual Private Database (VPD) (1) Wat is het? Transparant filteren van records en/of maskeren van kolommen Onzichtbare view Onderscheid naar DML Implementatie dmv. PL/SQL functies: Return = where clause, deze filtert records of maskeert kolom Toepasbaar op tabellen, views of synoniemen Activeren met DBMS_RLS package 15-02-2011 Martiris

  16. Virtual Private Database (VPD) (2) Voordelen Scheiden applicatie van security Afschermen privileged users Flexibel Gratis Standaard aanwezig sinds 8.1.5 Security in de database, applicatie onafhankelijk Kan er niet omheen (in tegenstelling tot views) Ad hoc query tools: Toad, SQL*Plus, ... 15-02-2011 Martiris

  17. Virtual Private Database (VPD) (3) Nadelen Alleen beschibaar in Enterprise Edition Zelf logica (PL/SQL) programmeren Kan complex worden Lastig debuggen Niet waterdicht 15-02-2011 Martiris

  18. Eenvoudig voorbeeld: beperk DEPT tot waarde 20 Eerst de functie die de beperking op zal leveren: create or replace function restrict_dept (p_schema in varchar2 ,p_object in varchar2) return varchar2 is begin return 'deptno = 20'; end; / 15-02-2011 Martiris

  19. Eenvoudig voorbeeld: beperk DEPT tot waarde 20 Dan toepassen op het object (vet = verplicht) begin dbms_rls.add_policy (object_schema => 'scott' ,object_name => 'demo_dept' ,policy_name => 'restrict_dept' ,function_schema => 'sec_mgr' ,policy_function => 'restrict_dept' ,statement_types => 'select, update' ,update_check => true); end; / 15-02-2011 Martiris

  20. Application Context Namespace met attribute / value pairs Default application context: USERENV Syntax:sys_context(‘namespace’,’attribute’) Global vs. Local vs. External Voordelen: performance en flexibiliteit Zelf definieren, aanwijzen ‘trusted program’ Zelf waardes toekennen After logon trigger: kan maar hoeft niet 15-02-2011 Martiris

  21. Best practice Apart schema met daarin functies voor VPD application context package rechten op DBMS_RLS view/functie voor uitlezen context waarden Eventueel ten behoeve van eindgebruikers wrapper package voor manipuleren Appl. Context. NB, voor policy functies zijn geen execute rechten nodig 15-02-2011 Martiris

  22. Eenvoudig CLS: functie Functie: create or replace function mask_loc (p_schema in varchar2 ,p_object in varchar2) return varchar2 is begin return q'# deptno = 20 and sys_context('userenv','session_user') ='SCOTT' #'; end; 15-02-2011 Martiris

  23. Eenvoudig CLS: scott ziet location van 20 Dan toepassen op het object begin dbms_rls.add_policy (object_schema => 'scott' ,object_name => 'demo_dept' ,policy_name => 'mask_loc' ,function_schema => 'sec_mgr' ,policy_function => 'mask_loc' ,statement_types => 'select' ,sec_relevant_cols => 'LOC' ,sec_relevant_cols_opt => dbms_rls.all_rows); end; 15-02-2011 Martiris

  24. Minimale ingredienten voor VPD Objecten Onderscheid records / kolommen in objecten Gebruikers (of rollen) En deze vervolgens aan elkaar knopen… Dat kan nu gemakkelijker: Secure Private Data 15-02-2011 Martiris

  25. O R GANISATIES Gebruikers Secure Private Data (SPD) (1) Profielen Applicatie Rollen Data Segmenten Secure Private Data is: schil om VPD declaratief applicatie transparant out of the box web interface (apex) PL/SQL code 100% gegenereerd Applicatie Data Figuur 1. Concept data model SPD 15-02-2011 Martiris

  26. Secure Private Data (SPD) (2) Wat biedt SPD? rechten toekennen aan gebruikers of rollen rechtenbeheer door FB cascade rechten naar detail gegevens afschermen subset multiclient delen van gegevens IP restricties three-tier / Ldap Column Level Security 15-02-2011 Martiris

  27. Secure Private Data (SPD) (3) XE of Standard Edition? Dan implementatie via views (ook gegenereerd) access logica in packages, Instead Of triggers verder dezelfde functionaliteit maar: scheiding applicatie en security minder strikt geen bescherming insider threats 15-02-2011 Martiris

  28. Secure Private Data (SPD) (4) Demo! 15-02-2011 Martiris

  29. Secure Private Data Screenshot Demo! 15-02-2011 Martiris

  30. Opties Label Security Database Vault VPD SPD Column level security Nee Nee Ja Ja Row level security Ja Nee Ja Ja Out of the box Nee Standard Edition/XE Nee Nee Nee Ja Extra Oracle Licenties vereist Nee Nee Maatwerk mogelijk Nee Nee Ja Ja Beheer door FB Nee Nee Nee Afschermen privileged users Ja Ja Ja Ja* Productvergelijking * Geldt niet voor de View Option 15-02-2011 Martiris

  31. Samenvatting Vragen, discussie. 15-02-2011 Martiris

More Related