- BlogOraK ™ - http://blogorak.estsurinternet.com -
Sécurité des bases de données
Posted By Daredevil On 17 septembre 2008 @ 4:16 In Divers, Sécurité Oracle 10g | No Comments
1 [1] Introduction
2 [2] A savoir (et à se rappeler…) avant de commencer
3 [3] Les grandes étapes du “Projet” Sécurité
4 Les différents aspects de la sécurité
5 [4] Les mécanismes mis en oeuvre pour la sécurité des BDs
6 [5] Les principales attaques ciblant les SGBDs
7 [6] Le cas de l’injection SQL
8 [7] Autres menaces et faiblesses de comportement
[8] 9 [9] Une application concrète : Les basiques de a sécurité d’Oracle
[10]
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) + appliSrv 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é :
qui fait de la sécurité des données un enjeu majeur
Plusieurs raisons font que la sécurité devient un enjeu important :
Pour info, ci après les statistiques du [11] CERT sur les enregistrements d’incidents des dernières années :
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.
La complexité des SI impose une approche globale,
’systémique’ du problème (attention de ne pas envisager QUE la sécurité des BDs)
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)
elles peuvent être résumées dans le schéma suivant :
note : la phase stratégique reboucle sur elle même : la décision stratégique , plutôt une VOLONT2 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.
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
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 ???)
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!)
On envisage souvent la sécurité sous un angle fermé, essentiellement celui de la confidentialité. Mais bien d’autres concepts sous tendent la sécurité. Ils sont pratiquement tous applicables aux OS ET aux SGBDs, tant il est vrai que ces deux domaines sont extrèmement recouvrants.
Les sgbds (dignes de ce nom) se doivent de fournir un certain n ombre de mécanismes internes ou de fonctionnalités assurant un niveau satisfaisant de sécurité.
La multiplication des couches logicielles sus évoquée, et l’inflation d’applications sur les postes utilisateur fait que ce dernier est fréquemment amené à s’authentifier des dizaines de fois par jour. La signature unique (Single Sign On ou SSO) est un objectif très louable mais rarement atteint !
Aspect sécurité | mécanisme mis en oeuvre | exemple d’implémentationau niveau SGBD | exemple d’implémentationau niveau OS |
confidentialité |
|
|
|
|
|
|
|
traçabilité |
|
|
|
fiabilité, disponibilité, maintenabilité |
|
|
|
|
|
|
|
intégrité |
|
|
(1) la vue est pratiquement le seul contrôle d’accès offrant un niveau de granularité ligne ou colonne ! et qui plus est de manière contextuelle, en les paramétrant (tranches horaires, @ IP, etc.)
programmes spécialisé aléatoires ou basés sur dictionnaire, ou crack manuel
mesures à prendre :
exemple de crack de password Oracle
La table DBA_TABLES est est une table du référentiel Oracle, qui recèle, outre le nom et différentes info sur les utilisateurs de la base, leurs mos de passe crypté. On peut l’utiliser pour cracker un mot de passe avec une méthode brute.
Les avantages de travailler sur ce mot de passe crypté sont multiples :
• Efficacité : on sait en gros comment Oracle chiffre ses mots de passe : algorithme DES 64 bits, password crypté de 30 caractères maximum, utilisation du user + mot de passe pour le hashage, etc. On ne part
donc pas de zéro
• travail OFFLINE : Contournement d’une éventuelle politique de mot de passe (password policy) : ce n’est pas le cas par défaut, mais le DBA peut limiter le nombre de tentatives de connexions infructueuses
et faire échouer une méthode brute. Voir l’utilisation des ‘PROFILES’ Oracle pour plus d’information. En travaillant sur une valeur cryptée, sans tentative effective de connexion
• Discrétion : Cf. le point précédent, on peut travailler tranquillement OFFLINE, sur un poste extérieur sans limite de temps ou de nombre d‘essais. Un programme de forçage de mot de passe peut être trouvé
sur le site ‘toolcrypt.org’ à l’adresse suivante :
[17] http://www.toolcrypt.org/index.html?orabf
Sur un poste de Windows moyen, il m’a fallu une dizaine de minutes avec ce programme pour casser un mot de passe ‘SYSTEM’ de 6 caractères.
En mode commande il suffit d’entrer la commande suivante :
C:\> orabf 70F277D6E92A1D9B:SYSTEM -n 6
– 70F277D6E92A1D9B est la valeur chiffrée lue dans le dictionnaire
– SYSTEM est le nom de l’utilisateur correspondant
– 6 la longueur minimale du mot de passe cherché
Mais attention : le décryptage d’un mot de passe alphanumérique > 8 caractères peut durer de quelques jours à plusieurs semaines !
Un comparatif intéressant des programmes de forçage des mots de passe Oracle, gratuits ou payants a été fait par la société ‘Red Database Security’ et peut être trouvé ici :
http://www.red-database-security.com/whitepaper/oracle_password_cracker.html
Au lieu de se connecter via le programme apllicatif, on peut utiliser le mode commande ligne ou un interpréteur SQL standard (SQL+ d’Oracle) ou un outil d’admin (PHPMyAdmin, OEM). On utilise alors directement les droits
du compte propriétaire des données (en général tous les droits).
mesures à prendre :
pas de gestion de droits applicative !
connexion au compte propriétaire interdite (compte locké par exemple)
une gestion des droits fine (connexion + consultation et / ou mise à jour de tables (voire de vues) ciblées
Il existe des sources de données partiellement ou parfois totalement redondantes de la base de données de production. Ces données peuvent être dans le même format que les données d’origine (tables d’une BD Oracle) ou dans des formats différents (texte, CSV, SQL, …).
Ces données redondantes sont en général moins (ou pas du tout) sécurisées, par rapport à la base de production,
et seront donc une cible plus facile pour les pirates fatigués.
Pour corser le tout, une mauvaise habitude assez répandue dans les entreprises consiste à recopier intégralement des données de production, dans les bases de test ou de développement, pouyr éviter d’extraire des jeux d’essai de données complexes, ou pour ne pas repartir de données vides lors d’un eopération de maintenance logicielle…
Comme données Offline, on citera par exemple :
(”Portes dérobées”) : Programmes usurpateurs qui détournent des fonctionnalités systèmes dans le but d’ouvrir
des accès utiles aux pirates pour contrôler à distance les machines ciblées (modification des programmes de login avec user/passwd en dur, ouverture de ports particuliers, etc.) . Ces programmes sont la plupart
du temps installés par le biais d’un “cheval de Troie”. Parmi les plus (tristement) célèbres, on peut citer BackOrifice (BO) ou encore NetBus.
Les accès illicites via ces backdoors pouvant être facilement détectés par des commandes système standards (liste des process connectés, des ports ouverts) ils sont parfois utilisés conjointement avec des rootkits, ensemble de commandes standards modifiées pour masquer les intrusions.
certaines back doors peuvent être inclsues dans le code d’applications standards,
sans intention forcément malveillante mais pour réserver au développeur du programme, un accès ‘privé’ à toute
les machines hébergeant son code. L’accès au source d’un logiciel libre peut nous prémunir contre ce genre d’indélicatesse.
voir le papier de sogoodtobe sur [19] http://www.securiteinfo.com
( d’identification, d’authentification , méta données )
mesures à prendre :
Les menaces les plus connues du grand public, visent à paralyser, ou détruire tout ou partie du système d’information. Elles ne ciblent pas vraiment les SGBDs mais nous les citerons néanmoins parce qu’incontournables.
Jetons un oeil aux définitions données par [21] le grand glossaire de la sécurité de ECHU.ORG
Comme chacun sait (depuis certaines émissions de télé) c’est le maillon faible de la chaîne qui cassera imanquablement. On peut mettre en place le plus beau (et le + cher) des firewalls, il sera bien
inutile si un adminitrateur est resté ‘loggé’ root sur son poste (Statistiquement la majorité des attaques provient de l’intérieur des entreprises !)
Cependant, on n’oubliera pas de rester pragmatique : tous les PMEs ne sont pas le pentagone et n’intéressent pas tous les hackers de la planète.
Les besoins et les objectifs doivent être clairement définis au départ et l’adéquation de la solution vérifiée.
Un certains nombres d’utilitaires libres sont disponibles sur internet pour vérifier la fiabilité de votre système d’information. Voir parmi la liste des liens utiles.
Il faudra de + trouver un équilibre entre niveau de sécurité satisfaisant et confort (voire simple possibilité) de travai ldes autres acteurs.
[24] http://www.cert.org[25] http://www.certa.ssi.gouv.fr | LE centre d’expertise sur la sécurité internetle site du premier ministre sur la sécurité des S.I |
|
|
[26] http://www.insecure.org/links.htmlhttp://citadelle.intrinsec.org/ http://www.securiteinfo.com/ |
qq liens supplémentaires |
voir le document (sécurisé) joint sur [27] lessystèmes haute sécurité
Article printed from BlogOraK ™: http://blogorak.estsurinternet.com
URL to article: http://blogorak.estsurinternet.com/?p=73
URLs in this post:
[1] Introduction: #intro
[2] A savoir (et à se rappeler…) avant de commencer: #asavoir
[3] Les grandes étapes du “Projet” Sécurité: #etapes
[4] Les mécanismes mis en oeuvre pour la sécurité des BDs: #mecanismes
[5] Les principales attaques ciblant les SGBDs: #attaques
[6] Le cas de l’injection SQL: #injection
[7] Autres menaces et faiblesses de comportement: #autresmenaces
[8] 9 : http://blogorak.estsurinternet.com/?p=71
[9] Une application concrète : Les basiques de a sécurité d’Oracle: #secuoracle
[10] : #secuoracle
[11] CERT: http://www.cert.org
[12] virtual private database: http://blogorak.estsurinternet.comvpd.htm
[13] droits d’accès aux données: http://blogorak.estsurinternet.com../../dba/droits/priv_objets.htm
[14] droits du LDD ou Systeme: http://blogorak.estsurinternet.com../../dba/droits/priv_syst.htm
[15] roles: http://blogorak.estsurinternet.com../../dba/droits/roles.htm
[16] tables d’audit: http://blogorak.estsurinternet.com../../dba/audit/audit_main.htm
[17] http://www.toolcrypt.org/index.html?orabf: http://www.toolcrypt.org/index.html?orabf
[18] : http://www.red-database-security.com/whitepaper/oracle_password_cracker.html
[19] http://www.securiteinfo.com: http://www.securiteinfo.com/attaques/hacking/dos.shtml
[20] Voir le document joint : http://oracle.estsurinternet.com/SGBD/securite/buffer_overflow.htm
[21] le grand glossaire de la sécurité de ECHU.ORG: http://www.echu.org/portail/modules/glossaire/
[22] voir le document joint: http://oracle.estsurinternet.com/SGBD/securite/alteration_sql.htm
[23] http://assiste.com: http://assiste.com
[24] http://www.cert.org: http://www.cert.org
[25] http://www.certa.ssi.gouv.fr: http://www.certa.ssi.gouv.fr
[26] http://www.insecure.org/links.html: http://www.insecure.org/links.html
[27] lessystèmes haute sécurité: http://blogorak.estsurinternet.comtrusted_systems.htm
Click here to print.
Copyright © 2008 BlogOraK (tm), by Didier Deleglise. All rights reserved.