Vous êtes sur la page 1sur 18

AUDIT DE LA BASE DE DONNEE

Surveiller les activités suspectes

 La surveillance ou l’audit doit faire partie


intégrante des procédures de sécurité.
 Oracle offre 3 niveaux d’’audit :
 L’audit de base de données standard : permet de
capturer plusieurs informations sur un événement audité :
 La survenue de l’ événement audité,
 L’instant auquel il s’est produit
 L’utilisateur qu’il a provoqué
 L’ordinateur client que l’utilisateur employait lors de l’ événement.

Cours DBA ESPRIT 2008-2009 1


AUDIT DE LA BASE DE DONNEE
Surveiller les activités suspectes

 L’audit basé sur les données: auditer les modifications


apportées aux données (insertion , modification et suppression)
 Permet de capturer les événements audités
 Permet de capturer les valeurs insérées ,mises à jour ou supprimer
 Implémenté à l’aide des déclencheurs de base de données

 L’audit détaillé : Final-Grained Auditing (FGA) :


auditer les instructions SQL exécutées en fonction
de leurs contenus

Cours DBA ESPRIT 2008-2009 2


Audit de base de donnée standard
 Activé via le paramètre AUDIT_TRAIL
=NONE : désactiver la collecte des enregistrements d’audit
=DB:active l’audit ,enregistrements stockés dans la base de
données
=OS:active l’audit,enregistrements stockés dans la traçe d’audit
du système d’exploitation.

Evénements audités :
 Evénement de connexion
 Utilisation des privilèges système
 Utilisation des privilèges objet
 Utilisation des instructions SQL :dans ce cas il faut affecter l’option
3
db,extended .
APPLICATION D’AUDIT
 Initialisation du parametre AUDIt_TRAIL :
SQL>Alter system set audit_trail=DB scope =spfile;
Etendre l’audit sur les requêtes SQL :
SQL>Alter system set audit_trail=DB,extended scope =spfile;
 Commande d’audit générale : capture de toute opération qui affecte une table
quelconque (create table,drop,truncate,etc…)
SQL>AUDIT TABLE;
 Commande d’audit ciblée : capture de toutes les opérations UPDATE sur la table
EMPLOYEES de HR :
SQL>AUDIT UPDATE ON HR.EMPLOYEES BY ACCESS (ou BY SESSION);
Option : WHENEVER SUCCESSFUL : seulement si l’opération a réussit
WHENEVER NOT SUCCESSFUL :seulement si l’opération n’a pas réussit
 L’option BY SESSION permet d’enregistrer une seule fois par session
 L’option BY ACCESS permet d’enregistrer tant de fois que d’accès aux
informations (100 000 lignes màj => 100000 enregistrements) 4
Définir les options d’audit (1/3)
 Audit des instructions SQL (non ciblé) :
AUDIT table;
 Audit des privilèges système :
Non ciblé : SQL>AUDIT select any table ,create any trigger
Ciblé : SQL>AUDIT select any table BY hr BY SESSION;
 Chaque fois qu’un privilège système audité est utilisé ,un enregistrement
d’audit est généré.

Cours DBA ESPRIT 2008-2009 5


Définir les options d’audit (2/3)
 Audit des privilèges objet: utilisé pour auditer les
actions sur les tables, les vues ,les procédures et les
séquences.
Non ciblé : SQL>AUDIT all on hr.employees;
Ciblé : SQL>AUDIT UPDATE,DELETE on hr.employees BY ACCESS;
 Audit des sessions : auditer la création des sessions
utilisateur.Il peut être ciblé par nom utilisateur et/ou par
echec/réussite.
 Général : SQL>AUDIT SESSION WHENEVER NOT SUCCESSFUL;
 Ciblé : SQL>AUDIT SESSION BY HR WHENEVER NOT SUCCESSFUL;
6
Définir les options d’audit (3/3)
 Audit par utilisateur: auditer les actions exécutées par
utilisateur
Auditer toutes les actions réalisées par le compte
HR et par accès :
SQL> audit all by HR by access
Auditer les requêtes SELECT TABLE du compte HR:
SQL> audit select table by HR by access
Auditer le privilège create session du compte HR :
Audit create session by hr

Cours DBA ESPRIT 2008-2009 7


Afficher les options d’audit
VUES DU DICTIONNAIRE DE DONNEES DESCRIPTION
ALL_DEF_AUDIT_OPTS Options d’audit par défaut
DBA_STMT_AUDIT_OPTS Options d’audit des instructions
DBA_PRIV_AUDIT_OPTS Options d’audit des privilèges
DBA_OBJ_AUDIT_OPTS Options d’audit des objets de shéma

Exemple :
select object_name,object_type,ins,upd
From dba_obj_audit_opts
Where object_name=‘EMPLOYEES’;
Ins : A : par accès S : par session
Cours DBA ESPRIT 2008-2009 8
Afficher les résultats d’audit
VUES DU DICTIONNAIRE DE DONNEES DESCRIPTION
DBA_AUDIT_TRAIL Toutes les entrées de la trace d’audit
DBA_AUDIT_EXISTS Enregistrements concernant AUDIT
EXISTS/NOT EXISTS
DBA_AUDIT_OBJECT Enregistrements concernant les objets du
shéma
DBA_AUDIT_SESSION Toutes les entrées de connexion et de
déconnexion
DBA_AUDIT_STATEMENT Enregistrement d’audit des instructions

Cours DBA ESPRIT 2008-2009 9


ANNULATION D’AUDIT
 Supprimer toutes les entrées d’audit :
truncate table aud$;
 Annuler l’audit ciblé : NOAUDIT
Exemple : NOAUDIT INSERT ON
HR.EMPLOYEES;

Cours DBA ESPRIT 2008-2009 10


Audit basé sur les données
 Etend l’audit de base de données en
capturant les valeurs modifiées
 Utilise les déclencheurs sur les instructions
LMD

Cours DBA ESPRIT 2008-2009 11


Audit détaillé (F.G.A) (1/4)
 Capture les instructions SQL
 Surveille l’accès aux données en fonction du
contenu
 Peut être liée à une table ou une vue
 Peut exécuter une procédure
 Administré via le package DBMS_FGA
 Ne nécessite pas de déclencheurs
Cours DBA ESPRIT 2008-2009 12
Audit détaillé (2/4) : création d’une
stratégie d’audit
 Se fait via la procédure DBMS_FGA.ADD_POLICY
 Déclaration dans le package :
PROCEDURE add_policy(object_schema IN VARCHAR2 := NULL,
object_name IN VARCHAR2,
policy_name IN VARCHAR2,
audit_condition IN VARCHAR2 := NULL,
audit_column IN VARCHAR2 := NULL,
handler_schema IN VARCHAR2 := NULL,
handler_module IN VARCHAR2 := NULL,
enable IN BOOLEAN := TRUE,
statement_type IN VARCHHAR2 ,) ;

Cours DBA ESPRIT 2008-2009 13


Audit détaillé (3/4): arguments de la
procedure ADD_POLICY
 object_schema : le schéma de l’objet à auditer
 object_name : nom de l’objet (table,vue,synonyme,..)) à auditer
 policy_name :nom de la stratégie d’audit
 audit_condition : La condition d’audit Le type d’instruction
 audit_column : La colonne d’audit
 handler_schema et handler_module : (facultatif) schéma et
procédure PL/SQL qui définit les actions supplémentaires à effectuer
au cours de l’audit.
 enable : Le statut : activation (TRUE) ou désactivation (FALSE) de la
stratégie d’audit
 statement_type : type d’instructions SQL devant être audité :
select,update,delete,insert
14
Audit détaillé (4/4): Vues du dictionnaire
de donnée
VUES DU DICTIONNAIRE DE DONNEES DESCRIPTION
DBA_FGA_AUDIT_TRAIL Tous les événements d’audit détaillé
ALL_AUDIT_POLICIES Toutes les stratégies d’audit détaillé
auxquels l’utilisateur peut accéder
DBA_AUDIT_POLICIES Toutes les stratégies d’audit détaillé dans
la BD
USER_AUDIT_POLICIES Toutes les stratégies d’audit détaillé pour
les objets du schéma de l’utilisateur actuel

Cours DBA ESPRIT 2008-2009 15


Audit détaillé (F.G.A)
Exemple (1/3)
 Audit des instructions SQL SELECT sur la
table EMPLOYEES pour le n° département 10
Execute dbms_fga.add_policy (
object_schema =>'hr',
object_name =>'employees',
policy_name =>'audit_emps_salary',
audit_condition => 'department_id=10',
audit_column =>'salary',
enable => TRUE,
statement_type =>'select');

Cours DBA ESPRIT 2008-2009 16


Audit détaillé (F.G.A)
Exemple (2/3)
 Déclencher les événements d’audit :
Les instructions suivantes provoquent un audit :
 Select count(*) from employees where department_id=10 and salary
> 3000;
Select salary from employees;
L’instruction suivante ne provoque pas un audit :
 Select las_name from employees where department_id=10;

Cours DBA ESPRIT 2008-2009 17


Audit détaillé (F.G.A)
Exemple (3/3)
 Consulter les événements d’audit : DBA_FGA_AUDIT_TRAIL
select to_char(timestamp,'dd/mm/yyyy à hh24mi') "date et heure",
db_user,policy_name, sql_text
from dba_fga_audit_trail;
 TIMESTAMP : date et heure d’exécution
 DB_USER : nom du compte à l’origine d’exécution
 POLICY_NAME : nom stratégie d’audit
 SQL_TEXT : instruction SQL ayant provoqué l’evenement
d’audit.

Cours DBA ESPRIT 2008-2009 18