interroger OID ( Oracle LDAP ) avec Php

PhP et Oracle pas de Commentaire »

Voici un exemple de code qui renvoie un tableau avec tous les Alias de base enregistrés dans OID (Oracle Internet Directory) l’annuaire d’Oracle compatible LDAP.

Pour mettre au point votre programme et interroger votre serveur Oracle OID vous pouvez utiliser un soft gratuit comme le LDAP Browser (navigateur d’annuaire) de Softerra disponible ici : http://www.softerra.com/download.htm

<?php
//liste_base_ldap.php
// renvoie un tableau dynamique contenant la liste des bases de OID
//
function liste_base_ldap() {
// LDAP variables
$ldaphost = « srv_oid.estsurinternet.com »; // serveur LDAP
$ldapport = 389; // port de serveur LDAP
$dn= »dc=esrsurinternet,dc=com »;
$filtre = « objectclass=*Service »;

// Connexion LDAP
$ldapconn = ldap_connect($ldaphost, $ldapport)
or die(« Serveur LDAP $ldaphost introuvable »);
$ldapbind = ldap_bind($ldapconn)
or die (« Connexion anonyme HS »);

// recherche
$rech=ldap_search($ldapconn, $dn, $filtre);

// affichage resultats
$t_base=array();
$info = ldap_get_entries($ldapconn, $rech);
$n=$info['count'];
for ($i=0; $i<$n; $i++) {
$base=$info[$i]["cn"][0] ;// DN de la n-ième entrée du résultat
$t_base[$i]=$base;
}
sort($t_base);
return ($t_base);
}
// print_r (liste_base_ldap());
?>

Comment échapper à Dataguard et à son coût ??

Divers pas de Commentaire »

Il existe un produit nettement moins cher que la solution Dataguard proposé par Oracle et qui de surcroit ne nécessite pas d’être en Enterprise edition, c’est un produit New zelandais, DBVISIT.

Il s’appuie sur les techniques des Standby Database.

Il n’est certes pas zéro perte de données mais peu de solutions le sont et surtout peu d’applicatifs le réclament.

Adaptable sur RAC et ASM, permettant de faire du switchover avec ASm à partir de la version 11, et facile à installer, c’est une belle alternative à Dataguard, sa complexité et son prix.

http://www.dbvisit.com/

Albanlepunk

Introduction sécurité des bases de données

Sécurité bases de données pas de Commentaire »

Introduction

Evolution des architectures vers plus de complexité

On trouvera ci’-après un résumé succint des principales étapes de l’évolution des architectures matérielles et
logicielles qui se sont profondément modifiées lors des deux dernières décennies.

Type client Type serveur Type connexion / architecture logiciels clients logiciels serveur
terminal Mainframe directe - OS + Applicatif
+ fichiers de données
PC terminal Départemental réseau émulateur OS + Applicatif + SGBD
PC lourd Départemental client /
serveur
applicatif
nav + applet
OS + Applicatif + SGBD
PC léger Départemental / Central n-tier+
X Net
navigateur Srv d’application :OS + web
Srv de données : OS + SGBD


la plupart de ces architectures peuvent sembler désuettes, voire anachroniques, mais il suffit de se pencher sur l’écran d’un ordinateur dans une grande surface ou un aéroport pour constater que l’émulation de terminal (même enjolivée) est toujours très utilisée .
Quoi qu’aie pu en penser SUN il y a quelques années : » the Network is NOT YET the computer »

On constate cependant à l’évidence une tendance à la complexité :

  • multiplication des matériels (plusieurs clients fixes ou mobiles,
    plusieurs serveurs, réseau hétérogènes)
  • multiplication des couches logicielles (OS client, application client, client
    reseau, OS serveur, serveur reseau, serveur applicatif, SGBD)
  • multiplication (voire ubiquité) des réseaux ( intranet, internet
    et surtout en ce qui concerne la sécurité des données
    EXTRAnet)
  • généralisation du partage de données : entre particuliers,
    mais aussi employés, entreprises, clients, fournisseurs, partenaires

qui fait de la sécurité des données un enjeu majeur

La sécurité : un nouvel enjeu

Plusieurs raisons font que la sécurité devient un enjeu important :

  • complexité croissante des SI
  • exigence croissante de qualité (certification ISO 9001, et plus spécifiquement ISO 27001)
  • exposition accrue des données et applications avec INTERNET + INTRANET ++ EXTRANET
  • augmentation (et meilleure diffusion / communication) des attaques

Pour info, ci après les statistiques du CERT sur les enregistrements d’incidents des dernières années :

stats_cert

Note : l’absence de statistiques depuis 2003 indique simplement que le CERT a arrété de compter !!!!!!!!!!!!!!!!! Notamment à cause du fait que de + en + d’automates font des attaques massives, ce qui rend leur nombre de moins en moins significatif.

Statistiques sur les incidents réel…et supposés

On trouve dans le tableau ci après issu d’une étude du CLUSIF (Club de la Sécurité de l4Information Francais) de 2008, la perception des incidents de sécurité des SI :

perception_incidents_secu1perception des incidents

et dans le tableau suivant (même source), les statistiques réelles sur les incidents en entreprise

typo_incidents_secu

Un petit exemple de dérive

Voici un extrait du site ‘comment ca marche’ sur l’introduction à la sécurité des systèmes d’information :

<< …Afin de pouvoir sécuriser un système, il est nécessaire d’identifier les menaces potentielles, et DONC de connaître et de prévoir la façon de procéder de l’ennemi. Le but de ce dossier est ainsi de donner un aperçu des motivations éventuelles des pirates, de catégoriser ces derniers, et enfin de donner une idée de leur façon de procéder afin de mieux comprendre comment il est possible de limiter les risques d’intrusions…>>

en 3 lignes on retrouve les termes : menaces, ennemi, motivation, pirate, intrusion… qui présupposent que la sécurité des SI est forcément (‘donc’) mise en péril par des Hackers malveillants, ce qui est loin d’être la réalité comme en témoignent les stats précédentes…

Comme quoi tout ce qui est sur le net (sauf mon site bien sûr) n’est pas parole d’évangile.

A savoir (et à se rappeler…)

  • La complexité des SI impose une approche globale,
    ‘systémique’ du problème (attention de ne pas envisager QUE la sécurité des BDs)

  • K.I.S.S principle (Keep It Simple Stupid !) : VISEZ LA SIMPLICITE
    • pour réduire la complexité du SI ( Normes et standards des différentes couches matérielles et logicielles + moyens d’imposer et vérifier ces standards)
    • pour produire des règles, des procédures et des contraintes pragmatiques, de bon sens et ‘respectables’
    • adapter les procédures et règles en fonction des populations (un poste admin local n’est pas un PC d’internaute)
  • Un SI a le niveau de sécurité du plus faible de ses composant (principe du « maillon faible » !)

  • Elle nécessite l’implication ET SURTOUT L’ADHESION de TOUS (si certains employés n’adhèrent pas, ils généreront du « maillon faible »)

  • La sécurité est fonction d’objectifs et d’un enjeu (la mise en place d’un plan de sécurité est un projet)

  • Il n’existe pas de système totalement sûr ( on visera à satisfaire au mieux les objectifs et répondre aux besoins)

Le projet Sécurité

Sécurité bases de données pas de Commentaire »

Les grandes étapes

Elles peuvent être résumées dans le schéma suivant :

strategie_pgssi

La phase stratégique

note : la phase stratégique reboucle sur elle même : la décision stratégique , plutôt une VOLONTé STRATEGIQUE au départ donne lieu à une étude d’opportunité / faisabilité (en fonction des risques, des enjeux, des obligations légales, etc) et donne (ou pas) la décison stratégique.

  • La législation

Pourquoi la prendre en compte :
- il existe des lois, nul n’est censé les ignorer
- les enfreindre implique une responsabilité civile ou pénale de l’entreprise
- la loi peut imposer de nouvelles activités à l’entreprise (pas seulement interne) : exemple : la dématérialisation des marchés publics et l’e administration

Quelle législation ?
- lois nationales, directives, Européennes, lois internationales
- règlements intérieurs, conventions collectives (de la métallurgie par exemple), délibération des collectivités

Les lois nationales concernent principalement :
- la loi informatique et libertés (CNIL) (respect de la vie privée, des données personnelles, obligation de déclaration)
- la propriété intellectuelle
- protection/la copie/le piratage d’oeuvres ou de logiciels
- le recyclage de déchets électroniques et informatiques

  • L’analyse des risques

On sait qu’il y a des risques, encore faut il les analyser / évaluer.
Il existe différentes catégories de menaces :
- internes / externes (80% / 20 % !!)
- par intérêt économique ou par jeu / défi intellectuel

Il existe différents types d’acteurs :
- des individus (employés rancuniers ou cupides, hackers)
- des entreprises
- des états (espionnage industriel, terrorisme)

On évaluera par exemple leur probalité (est ce qu’une administration est susceptible d’être attaquées par des entreprises concurrentes ???)

  • La classification

Pragmatisme !! : toutes les informations ou ressources associées ne demandent pas le même niveau de sécurité. Cela implique de les classifier / quantifier. Un effet de bord intéressant sera que l’on limitera l’énergie et l’argent dépensé !

On quantifie la SENSIBILITE des infos et ressources (en fonction de la loi, des enjuex , des missions de l’entreprise)
==> taxinomie :

- par niveau de sensiblité
- par domaine de sécurité (confidentialité, disponiblité,…)
Ceci implique des procédures de protection et de gestion des documents et des ressources.
ET aussi un niveau de diffsuion des docs (de libre à…secret défense!)

+ d’infos  sur Wikipedia : http://fr.wikipedia.org/wiki/Sécurité du_système_d’information

Méthodologie

EBIOS
mise au point par le SCSSI : Service central de Sécurité des SI, du gouvernement (1er ministre)

Les principales étapes de la démarche sont les suivantes

ÉTAPE 1 – ÉTUDE DU CONTEXTE
ACTIVITÉ 1.1 – ÉTUDE DE L’ORGANISME
ACTIVITÉ 1.2 – ÉTUDE DU SYSTÈME-CIBLE
ACTIVITÉ 1.3 – DÉTERMINATION DE LA CIBLE DE L’ÉTUDE DE SÉCURITÉ
ÉTAPE 2 – EXPRESSION DES BESOINS DE SÉCURITÉ
ACTIVITÉ 2.1 – RÉALISATION DES FICHES DE BESOINS
ACTIVITÉ 2.2 – SYNTHÈSE DES BESOINS DE SÉCURITÉ
ÉTAPE 3 – ÉTUDE DES MENACES
ACTIVITÉ 3.1 – ÉTUDE DES ORIGINES DES MENACES
ACTIVITÉ 3.2 – ÉTUDE DES VULNÉRABILITÉS
ACTIVITÉ 3.3 – FORMALISATION DES MENACES
ÉTAPE 4 – IDENTIFICATION DES OBJECTIFS DE SÉCURITÉ
ACTIVITÉ 4.1 – CONFRONTATION DES MENACES AUX BESOINS
ACTIVITÉ 4.2 – FORMALISATION DES OBJECTIFS DE SÉCURITÉ
ACTIVITÉ 4.3 – DÉTERMINATION DES NIVEAUX DE SÉCURITÉ
ÉTAPE 5 – DÉTERMINATION DES EXIGENCES DE SÉCURITÉ
ACTIVITÉ 5.1 – DÉTERMINATION DES EXIGENCES DE SÉCURITÉ FONCTIONNELLES
ACTIVITÉ 5.2 – DÉTERMINATION DES EXIGENCES DE SÉCURITÉ D’ASSURANCE

Le memento de la méthode EBIOS

Conversion d’une base oracle de 7 bits en 8 bits

scripts et trucs 1 Commentaire »

A partir de Oracle 8.1 on peut utiliser une commande ‘ALTER’ pour changer le jeu de caractères ( CHARACTER SET) de la base Oracle(qui est codé en dur lors du CREATE DATABASE…) Pour par exemple la convertir de US7ASCII à WE8MSWIN1252 ou WE8ISO8859P1. Note : la conversion peut fonctionner car tous les caratères encodés de la sources sont représentables dans le jeu de caractère cible. En d’autres termes par que les jeux de caractères 8bits sont en général des sur ensembles (supersets) de U7ASCII. Faire une sauvegarde de la base puis passer les commandes suivantes :

SQL> STARTUP MOUNT; — la base doit être en mode RESTRICT
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER DATABASE OPEN;
SQL> ALTER DATABASE CHARACTER SET WE8MSWIN1252;
– ou par exemple CHARACTER SET WE8ISO8859P1;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;

Cela permettra de résoudre des problèmes de compatibilité d’export / import par exemple.

Remarque : il est peu évident d’admettre qu’une base en jeu de caractère 7 bits US7ASCII, puisse afficher des caractères accentués, c’est pourtant le cas.

Il suffit de laisser la base telle quelle et de paramétrer les clients avec un jeu de caractères 8 bits, via le paramètre d’environnement NLS_LANG par exemple. Voir la doc NLS pour + d’infos.
ATTENTION ! il faut bien sûr que les données aient été saisies (INSERT SQL) dans CET environnement pour que cela marche !

Solution de l’erreur Oracle ORA-01843

Musée des erreurs, scripts et trucs pas de Commentaire »

Un exemple :

SQL> update ma_table
set ma_date=’10/04/2009′
/
ERROR at line 1:
ORA-01843: not a valid month

Le format de date proposé est incompatible avec la base de données cible.

Ceci se produit lorsque le client Oracle n’est pas dans la même configuration que le serveur au niveau de son environnement de ‘localisation’ : environnement NLS (Oracle National Language Support

solution temporaire (la durée de la session)
SQL> ALTER SESSION SET NLS_DATE_FORMAT=’MM/DD/YYYY’;

solution un peu plus pérenne sous Unix/Linux :
Changer le paramétrage du client Oracle, pour positionner le nouveau format de date par défaut.
Ceci se fait avec une variable d’environnement Unix :

$> export NLS_DATE_FORMAT=DD/MM/YYYY

Sous Windows (personne n’est parfait) l’environnement client Oracle est spécifié dans la base de registres, donc on modifiera / ajoutera une clé NLS_DATE_FORMAT dans la section HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE avce regedit par exemple.

Note : lorsqu’on utilise un client léger (application Web ou i*SQLPlus par exemple), il ne faut pas regarder la cofiguration du poste client bien sûr, mais celle su serveur Web qui, dans une architecture 3-tier, est le ‘vrai’ client de la base de données…