Norme PCI-DSS et Oracle Audit Trail

Aujourd’hui, un sujet sécurité avec une vision large, puis un focus particulier sur une fonctionnalité de la base Oracle.
Cet article traitera dans le détail de deux sujets :

  • présentation du standard PCI-DSS et comment y répondre globalement avec les solutions Oracle
  • exemple de mise en œuvre de l’audit trail pour auditer l’activité d’une base Oracle.

Pour en savoir plus, lisez la suite !

Qu’est-ce que le standard PCI- DSS ?

Le standard PCI-DSS a pour but de s’assurer que les professionnels manipulant les données bancaires se plient à des exigences spécifiques en matière de sécurité afin de se prémunir de la fraude.

Qui est concerné ?

Toutes les entreprises qui manipulent des données cartes bancaires ( banques, sites marchands, etc..).

Objectifs du standard PCI-DSS  et les solutions Oracle

Le standard PC-DSS définit 12 grands chantiers de sécurité :

Objectifs Actions Solution Oracle
Construire et maintenir une infrastructure sécurisée 1. Installez et maintenez un firewall pour protéger vos données.2. N’utilisez pas les mots de passe par défaut fournis avec les équipements et les logiciels 1.Pare-Feu : Oracle Database  FireWall + F52.Politique de renforcement des mots de passé:Oracle Advanced  Security (Oracle EUS       2.Centralisation des utilisateurs dans un référentiel de sécurité : (Enterprise  Users Security)
Protéger les données du propriétaire de la carte 3. Protégez les données stockées.4. Toutes les transmissions contenant des données bancaires sur des réseaux publics (Internet, X25, ..) doivent impérativement être correctement chiffrées (VPN, SSL). 3. Chiffrement des données dans la base et au niveau des archives de sauvegarde Oracle Advanced Security(TDE)4.Chiffrement des données sur le réseau : ASO(Advanced Security Options)
Maintenir un processus de gestion des vulnérabilités 5. Utilisez et maintenez vos antivirus à jour.6. Développez et maintenez la sécurité de vos systèmes et de vos applications (appliquez les correctifs de sécurité).
Implémenter des mesures strictes en termes de contrôles d’accès 7. Restreignez l’accès aux seules données dont l’utilisateur a besoin (« business need-to-know‘ »).8. Chaque utilisateur doit posséder un identifiant unique.9. Restreignez l’accès physique aux serveurs contenant des données sur les cartes bancaires des clients. 7. Ségrégation des droits :  Oracle Database  Vault7. Anonymisation des données :  Oracle Data Masking8.  Gestion centralisée des utilisateurs de bases de données : Oracle Entreprises Users Security
Surveiller et tester le système d’information 10. Surveillez et stockez les événements d’accès aux ressources et aux données bancaires des clients (Conservation et analyse de logs).11. Testez régulièrement la sécurité de vos systèmes et de vos processus par des audits de sécurité. 10 : Surveillance et audit : Oracle Audit Trail, Oracle Audit Vault 11 : Validation de la conformité de la configuration :  Oracle  Configuration Management
Maintenir une politique de sécurité 12. Assurez le maintien et la communication de la politique de sécurité pour tous les collaborateurs

Exemple de mise en œuvre de l’audit sur les bases Oracle avec Audit Trail

L’audit des accès répond à la majorité des normes de conformité règlementaire (PCI-DSS, etc..).
L’exigence va de la mise  à disposition de rapports jusqu’à la consultation des données d’audit archivées.
Dans l’exemple qui suit, nous allons vous présenter :

  • La configuration de l’audit
  • Un exemple d’audit  logon/logoff
  • Un exemple d’audit  sur les ordres  DML ( select) d’un table

Configuration de l’audit

Activation de l’audit

 SQL> alter system set audit_trail=DB_EXTENDED scope=spfile;
 SQL> alter system set audit_sys_operations =TRUE scope=spfile;
Arrêt /redémarrage de la base de donnéese et vérification
SQL> connct  / as sysdba
SQL> shutdown immediate ;
SQL> startup;
SQL> show parameters aud;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      /u01/app/oracle/product/11.2.0
                                                 .2/rdbms/audit
audit_sys_operations                 boolean     TRUE
audit_syslog_level                   string
audit_trail                          string      DB_EXTENDED

 

Audit des accès administratifs

SQL> CONNECT / AS SYSDBA;
SQL> ALTER SYSTEM FLUSH SHARED_POOL;
SQL> UPDATE salary SET base=1000 WHERE name='myname';
Les ordres ALTER SYSTEM et  UPDATE sont visibles dans les logs d’audit :
Thu Sep 29 12:58:00 2011
ACTION: 'CONNECT'
DATABASE USER: '/'
OSPRIV: SYSDBA
CLIENT USER: test1
CLIENT TERMINAL: pts/2
STATUS: 0
Thu Sep 29 12:58:00 2011
ACTION: 'alter system flush shared_pool'
DATABASE USER: ''
OSPRIV: SYSDBA
CLIENT USER: test1
CLIENT TERMINAL: pts/2
STATUS: 0

Audit des connexions logon logoff du compte SCOTT

SQL> AUDIT SESSION BY scott;

Vérification
 
 

Audit des privilèges DML sur la table

Activation de l’audit des privilèges sur la table EMP ;
SQL> AUDIT SELECT, INSERT, UPDATE, DELETE
     ON scott.emp
     BY ACCESS
     WHENEVER SUCCESSFUL;
Quelques ordres DML sur la table EMP par le compte  SCOTT
SQL> connect SCOTT/>PWD>
SQL> INSERT INTO emp SELECT * from emp ;
SQL> UPDATE emp SET ename=ename;
SQL> SELECT * FROM emp ;

Rapport Audit trail

COLUMN username FORMAT A10
COLUMN owner    FORMAT A10
COLUMN obj_name FORMAT A10
COLUMN extended_timestamp FORMAT A35
SELECT username,
       extended_timestamp,
       owner,
       obj_name,
       action_name
FROM   dba_audit_trail
WHERE  owner = 'AUDIT_TEST'
ORDER BY timestamp;
Résultat :
USERNAME   EXTENDED_TIMESTAMP             OWNER OBJ_NAME   ACTION_NAME
---------- ------------------------------ ----- ---------- ------------
SCOTT 29-SEP-2011 14:12:55.514000 +00:00  SCOTT EMP        INSERT
SCOTT 29-SEP-2011 14:12:55.545000 +00:00  SCOTT EMP        UPDATE
SCOTT 16-SEP-2011 14:12:55.592000 +00:00  SCOTT EMP        SELECT

Synthèse

Ce petit exemple est assez parlant sur la possibilité d’audit standard et représentatif des informations que l’on peut recueillir. En revanche, la définition des options d’audit et la granularité des accès, objets, privilèges à auditer  peut s’avérer complexe (audits fins, audit des accès  logon/logoff) car il faudra prendre en compte :

  • Les directives RSSI et/ou de conformité si elles existent
  • Les problématiques de performance
  • Les problématiques d’exploitation des données d’audit (rétention, purge, accessibilité,.)
  • Les problématiques de reporting

La norme PCI-DSS implique la mise en place de l’audit des bases de données et des infrastructures connexes..
Dans des environnements restreints, l’activation des audits trail peut suffire, en revanche, dans des environnements ouverts (multi-bases, multi éditeurs, multi architecture), l’outil Oracle Audit Vault sera  plus adapté.
En version 11g , l‘audit standard (DB) est démarré par défaut.
Dans  mon  prochain article je vous présenterai  un exemple de renforcement de l‘authentification avec ASO.