8. Inférence et audite des BD
Plan:
8
Contrôle d'accès
Sécurité en rangée
2
Vulnérabilité des BD
Sécurité des bases de données
Évaluation de l'accès aux
applications
10. Sécurité en rangée(Row level security)
10
● La sécurité au niveau de la ligne
de chaque table
●la BD renvoie seulement
les enregistrements que l'utilisateur
a le droit d'afficher
11. Évaluation de l'accès aux applications
(Application access assessment)
11
● 99% des utilisateurs accèdent
à la BD via un CRUD
● la matrice de sécurité
● simple, mais efficace
12. Vulnérabilité des BD
12
● Phénomène croissant
● De plus en plus de bases de données
sont rendues accessibles
● Objectif : réduire les vulnérabilité
13. Inférence des BD
13
●Pas d’accès à des données individuelles
●Possibilité de génération des données
14. Audite
14
● Suivre l'accès aux bases de données
et l'activité des utilisateurs
● Suivi des tentatives d'accès ( DCL)
● Manipulation de données (DML)
● Fichiers journaux
23. Détection
Pour détecter une Injection SQL, rien de plus simple il suffit
d'injecter le symbole « ' » et si une erreur du genre " You have
an error in your SQL syntax; " s'affiche, c'est que
l'application est vulnérable.
23
25. N'ayez jamais confiance !
Hashage des mots de passe en MD5
Utiliser les requêtes préparés
Un petit captcha
Éviter d'utilisr le compte 'root' pour la connexion BD
Utiliser Intval() , is_numeric() pour injection numerique
Utiliser mysql_real_escape_string() d'echapper les quotes
Comment l'éviter?
25
30. • Root me
• HackerRank
• Database Security: What Students Need to Know
“Meg Coffin Murray”
• Openclassrooms
“protegez vous efficacement contreles-failles-web”
“eviter-les-injections-sql”
30
Editor's Notes
+ je vous remercie pour votre présence hj .
+ Ce travail a était encadré par Mr Brahim Adjif
Je vous remerci enormement pour votre encouragement et votre soutinet morallle & phesque tous ou lend de min projert de fin détude
Cette présentation va se dérouler comme suit:
Nous allons commencer par introduire et présenter le cadre général du projet. Ensuite, nous passons à la spécification des besoins et la conception.Après, nous nous concentrons sur la partie réalisation avant de conclure.
Dans ce partie, après l’introduction nous allons vous présenter l’organisme d’accueil pour notre stage avant de passer à la problématique de ce travail.Et enfin, nous vous proposons notre solution.
De nos jours la communication est devenu indispensable pour chaque individue
Pour faire des appelles
travaille
L’une des causes qui poussent les entreprises à exprimer un besoin particulier est leur volonté
de changer ou d’améliorer l’existant. Pour cela, ……
des besoins qui ont incité cette société à s’orienter vers l’amélioration et le changement de ses moyens de travail
sachant que toutes ces actions sont actuellement traitées manuellement via les logiciels
tableurs de la suite bureautique Microsoft Office à savoir le Microsoft Excel.
Temps de réponse lent
Complexité des taches
Difficile à mettre en mettre à jours
Pour toutes ses raisons, nous proposons de concevoir une application destinée
aux concepteurs réseaux permettant de faire le suivit de l’infrastructure DWDM tout en
réduisant le temps de réponse.
Pour ce chapitre, nous allons commencer par justifier notre choix de méthodologie. Après nous passons à l’identification des acteurs. Nous précisons après les besoins fonctionnels et non fonctionnels de notre projet.Et à la fin nous présentions le diagramme de cas d’utilisation général.
La principale méthode utilisée pour protéger les données est de limiter l'accès aux données. Cela peut se faireL'authentification, l'autorisation et le contrôle d'accès. Ces trois mécanismes sont nettement différentsMais généralement utilisé en combinaison avec un accent sur le contrôle d'accès pour la granularité dans la cession des droitsÀ des objets et utilisateurs spécifiques. Par exemple, la plupart des systèmes de base de données utilisent une certaine forme d'authentification,Tels que nom d'utilisateur et mot de passe, pour restreindre l'accès au système. De plus, la plupart des utilisateurs sont autorisésOu attribuer des privilèges définis à des ressources spécifiques. Le contrôle d'accès affineEn attribuant des droits et des privilèges à des objets de données et à des ensembles de données spécifiques. Dans une base de données,Ces objets comprennent habituellement des tables, des vues, des lignes et des colonnes. Par exemple, StudentA peutDes droits de connexion à la base de données de l'Université avec les droits d'autorisation d'un utilisateur étudiantQui comprennent des privilèges en lecture seule pour le tableau de données Course_ Listing. Grâce à ce niveau granulaireDe contrôle d'accès, les étudiants peuvent avoir la possibilité de parcourir les cours mais pas deNotes attribuées à leurs camarades de classe. De nombreux étudiants, aujourd'hui, comprennent deGranularité dans l'octroi de l'accès lorsqu'il est encadré en termes d'octroi de «amis» l'accès à leur Facebooksite. Limiter l'accès aux objets de la base de données peut être démontré par l'accès Grant / RevokeMécanisme de contrôle.
La sécurité au niveau de la ligne est le terme de sécurité de la base de données qui se rapporte à la capacité de définir et de mettre en application la logique de contrôle d'accès sur les lignes de données, de sorte qu'un utilisateur ne peut récupérer que les lignes de données qu'il est autorisé à afficher.Dans la sécurité au niveau des lignes, un utilisateur peut demander à afficher un ensemble de données, par ex. dossiers médicaux. La table de base de données (ou vue) contient un ensemble complet d'enregistrements médicaux, mais renvoie seulement les enregistrements que l'utilisateur a le droit d'afficher. L'autorisation est généralement pilotée par la configuration de VPD / RCAC / FGAC ou par une politique de contrôle d'accès, par ex. Les médecins peuvent consulter les dossiers médicaux des patients auxquels ils sont affectés.
http://stackoverflow.com/tags/row-level-security/info
Corrélation entre les opérations ou les autorisations nécessaires pour les objets de base de données et les sources d'entrée
La plupart des utilisateurs n'accèdent pas à une base de données en entrant directement dans le système de base de données. Au lieu de cela,Accéder à la base de données via un programme d'application. Un outil simple, connu sous le nom deCRUD) peut être utilisée pour identifier explicitement les droits d'accès requis par une applicationprogramme. Plus précisément, la matrice de sécurité fournit une représentation visuelle de la corrélation entreLes opérations ou les autorisations nécessaires pour les objets de base de données et les sources d'entrée /Sous forme de formulaires et de rapports. Les opérations décrites dans une matrice de sécurité comprennent Sélectionner, Créer (insérer), Mettre à jour,Et Supprimer. La rangée supérieure de la matrice répertorie les objets de la table de base de données. Les programmes d'application sontRépertoriés dans la colonne de gauche. Les lettres C, R, U, D sont placées dans des cellules se coupant pour identifier leType d'accès requis par un programme particulier. Toute cellule donnée peut contenir n'importe quelle combinaison deCes lettres ou pas du tout. Une cellule vide indique qu'un programme n'a pas besoin d'accéder à l'intersectiontable. Inversement, une cellule avec les quatre lettres, CRUD, a besoin d'un accès complet à la table.Une matrice de sécurité comme indiqué dans le sous-module Matrice de sécurité ADbC est présentée à la figure 4. AScénario de commande client est représenté. Sept tables sont énumérées en haut. Sept formulaires sont répertoriésSur le côté gauche. La numérisation de la matrice de gauche à droite montre que le formulaire de commande nécessite un accèsÀ cinq tableaux incluant des droits de modification à trois d'entre eux. Plus précisément, le bon de commandeN'a besoin que de l'accès en lecture aux tables Clients et employés, nécessite la lecture, l'insertion, la mise à jour et laSupprimer les droits dans la table Order_Details et Orders et nécessite des droits de lecture et de mise à jourTable des produits. Numérisation de haut en bas montre que trois applications, étiquettes client, clientInformations et formulaire de commande, accédez à la table Customers. Formulaire des étiquettes et commandes des clientsRequièrent un accès en lecture à la table Customers tandis que le formulaire Customer Information nécessite une lecture,Insérer, mettre à jour et supprimer des droits. Le sous-module Matrice de sécurité comprend un ensemble d'accompagnementDes questions interactives qui demandent aux utilisateurs d'identifier les relations entre les tables et l'applicationprogrammes.Un autre avantage de la matrice de sécurité est qu'elle représente visuellement les règles d'intégrité. Par exemple,La matrice permet d'identifier facilement tous les programmes d'application susceptibles d'être modifiésFait à une table de base de données. Par exemple, une colonne supprimée de la table Produits influe sur leFormulaire de commande et Formulaire produits, générant éventuellement une erreur lors de l'exécution de ces applications.Avant qu'un tel changement soit apporté, son impact ultérieur doit être évalué pourLes applications devront être mises à jour. En résumé, la matrice de sécurité est un outil simple, mais efficace,Identifier les autorisations de sécurité nécessaires aux objets de base de données
Vulnérabilité de la base de donnéesLes violations de la sécurité sont un phénomène croissant. De plus en plus de bases de données sont rendues accessiblesVia l'Internet et les applications Web, leur exposition aux menaces de sécurité augmentera. leL'objectif est de réduire la vulnérabilité à ces menaces. Peut-être l'application de base de données la plus publiéeVulnérabilité a été l'injection SQL. Les injections SQL fournissent d'excellents exemples pourSécurité, car ils incarnent l'un des problèmes de sécurité les plus importants, des risquesÀ l'entrée utilisateur non validée
L'inférence se produit souvent dans les cas où l'intention réelle est que les utilisateurs génèrent ouLorsqu'ils n'ont pas eu accès à des données individuelles. Cependant,Exposés à des informations sur les données, ils sont parfois capables d'inférer des valeurs de données individuelles.Prenons par exemple un scénario où un travailleur désire connaître le salaire de son collègue Goldberg.Dans cette organisation, les données salariales sont confidentielles. Le travailleur a le droit de générer desDes données telles que le résumé des données sur les salaires organisationnels en fonction de critères spécifiques (c.-à-d.Moyenne par sexe). Bien que le travailleur n'ait pas accès à des données individuelles, ilElle possède des détails particuliers et uniques sur Goldberg; Spécifiquement que Goldberg est une femmeEt a 11 personnes à charge. Sur la base de ces informations, le travailleur peut dériver une fonction agrégéeTels que SELECT AVG (Salary) FROM EMPLOYEES OÙ Sexe = "F" et les personnes à charge= 11. Cela retournera le salaire de Goldberg parce que la moyenne est tirée d'unEnsemble de données d'un. L'animation du sous-module d'inférence ADbC pour ce scénario est illustrée dans la figure7. La fenêtre de commande SQL représente la construction de la requête requise pour vérifiersalaire avera
Nous avons choisit de travailler avec la méthodologie 2TUP.
Nous n’avons pas un cahier de charge avec des fonctionnalités fixes dés le début. Nous avons continué à nous documenter, améliorer et enrichir competance pendant la1er partie.
Propose un cycle de développement en Y.
Cible des projets de toutes tailles.
D'après l’étude des points fort et faibles de chaque méthodes, notre choix s'est porté vers la
méthode 2TUP car elle répond à nos critères de choix, donc elle nous servira à faire réussir le
projet.
L'injection SQL est une méthode d'attaque très connue. C'est un vecteur d'attaque extrêmement puissant quand il est bien exploité. Il consiste à modifier une requête SQL en injectant des morceaux de code non filtrés, généralement par le biais d'un formulaire.
3 tieres
Client legee
Ce projet s’est déroulé selon quatre phases
déclaré la problématique et la méthodologie du travail suivie
une étude fonctionnelle dont le but est de spécifier et analyser les besoins
conception de notre système afin de bien structurer la couche métier de l’application.
réalisation technique