Test de base de données - Sécurité
Les tests de sécurité de la base de données sont effectués pour trouver les failles dans les mécanismes de sécurité et également pour trouver les vulnérabilités ou les faiblesses du système de base de données.
Le principal objectif des tests de sécurité des bases de données est de découvrir les vulnérabilités d'un système et de déterminer si ses données et ressources sont protégées contre les intrus potentiels. Les tests de sécurité définissent un moyen d'identifier efficacement les vulnérabilités potentielles, lorsqu'ils sont effectués régulièrement.
Vous trouverez ci-dessous les principaux objectifs de la réalisation de tests de sécurité de base de données -
- Authentication
- Authorization
- Confidentiality
- Availability
- Integrity
- Resilience
Types de menaces sur un système de base de données
Injection SQL
Il s'agit du type d'attaque le plus courant dans un système de base de données où des instructions SQL malveillantes sont insérées dans le système de base de données et exécutées pour obtenir des informations critiques du système de base de données. Cette attaque tire parti des failles dans la mise en œuvre des applications utilisateur. Pour éviter cela, les champs de saisie utilisateur doivent être traités avec soin.
Élévation des privilèges dans la base de données
Dans cette attaque, un utilisateur a déjà un certain accès dans le système de base de données et il essaie seulement d'élever ce niveau d'accès plus élevé afin qu'il / elle puisse effectuer certaines activités non autorisées dans le système de base de données.
Déni de service
Dans ce type d'attaque, un attaquant rend un système de base de données ou une ressource d'application indisponible pour ses utilisateurs légitimes. Les applications peuvent également être attaquées de manière à rendre l'application, et parfois la machine entière, inutilisable.
Accès non autorisé aux données
Un autre type d'attaque consiste à obtenir un accès non autorisé aux données d'une application ou d'un système de base de données. L'accès non autorisé comprend -
- Accès non autorisé aux données via des applications basées sur l'utilisateur
- Accès non autorisé à en surveillant l'accès des autres
- Accès non autorisé aux informations d'authentification client réutilisables
Usurpation d'identité
Dans l'usurpation d'identité, un pirate utilise les informations d'identification d'un utilisateur ou d'un appareil pour lancer des attaques contre les hôtes du réseau, voler des données ou contourner les contrôles d'accès au système de base de données. La prévention de cette attaque nécessite une infrastructure informatique et des atténuations au niveau du réseau.
Manipulation de données
Lors d'une attaque de manipulation de données, un pirate informatique modifie les données pour obtenir un avantage ou pour endommager l'image des propriétaires de bases de données.
Techniques de test de sécurité de base de données
Tests de pénétration
Un test d'intrusion est une attaque contre un système informatique dans le but de trouver des failles de sécurité et d'accéder potentiellement à celui-ci, à ses fonctionnalités et à ses données.
Recherche de risques
La recherche de risque est un processus d'évaluation et de décision sur le risque associé au type de perte et à la possibilité d'occurrence d'une vulnérabilité. Ceci est déterminé au sein de l'organisation par divers entretiens, discussions et analyses.
Test d'injection SQL
Il s'agit de vérifier les entrées utilisateur dans les champs d'application. Par exemple, entrer un caractère spécial comme "," ou ";" dans toute zone de texte d'une application utilisateur ne doit pas être autorisé. Lorsqu'une erreur de base de données se produit, cela signifie que l'entrée utilisateur est insérée dans une requête, qui est ensuite exécutée par l'application. Dans un tel cas, l'application est vulnérable à l'injection SQL.
Ces attaques constituent une grande menace pour les données car les attaquants peuvent accéder à des informations importantes à partir de la base de données du serveur. Pour vérifier les points d'entrée d'injection SQL dans votre application Web, recherchez le code de votre base de code où des requêtes MySQL directes sont exécutées sur la base de données en acceptant certaines entrées utilisateur.
Les tests d'injection SQL peuvent être effectués pour les crochets, les virgules et les guillemets.
Cracking de mot de passe
Il s'agit de la vérification la plus importante lors du test du système de base de données. Pour accéder aux informations critiques, les pirates peuvent utiliser un outil de craquage de mot de passe ou peuvent deviner un nom d'utilisateur / mot de passe commun. Ces mots de passe courants sont facilement disponibles sur Internet et des outils de craquage de mots de passe existent librement.
Par conséquent, il est nécessaire de vérifier au moment du test si la politique de mot de passe est maintenue dans le système. Dans le cas de toute application bancaire et financière, il est nécessaire de définir une politique de mot de passe stricte sur tous les systèmes de base de données d'informations critiques.
Audit de sécurité du système de base de données
Un audit de sécurité est un processus d'évaluation des politiques de sécurité de l'entreprise à intervalles réguliers pour déterminer si les normes nécessaires sont respectées ou non. Diverses normes de sécurité peuvent être suivies selon les exigences de l'entreprise pour définir la politique de sécurité, puis l'évaluation des politiques définies par rapport à ces normes peut être effectuée.
Les exemples de normes de sécurité les plus courantes sont ISO 27001, BS15999, etc.
Outils de test de sécurité de base de données
Il existe divers outils de test système disponibles sur le marché, qui peuvent être utilisés pour tester le système d'exploitation et la vérification des applications. Certains des outils les plus courants sont décrits ci-dessous.
Proxy Attaque Zed
Il s'agit d'un outil de test de pénétration permettant de trouver des vulnérabilités dans les applications Web. Il est conçu pour être utilisé par des personnes ayant une vaste expérience en matière de sécurité et, en tant que tel, est idéal pour les développeurs et les testeurs fonctionnels qui sont nouveaux dans les tests d'intrusion. Il est couramment utilisé pour Windows, Linux, Mac OS.
Paros
Toutes les données HTTP et HTTPS entre le serveur et le client, y compris les cookies et les champs de formulaire, peuvent être interceptées et modifiées à l'aide de ces scanners. Il est utilisé pour Cross-platform, Java JRE / JDK 1.4.2 ou supérieur.
Boîte à outils de l'ingénieur social
C'est un outil open source et les éléments humains sont attaqués plutôt que l'élément système. Il vous permet d'envoyer des e-mails, des applets java, etc. contenant le code d'attaque. Il est préférable pour Linux, Apple Mac OS X et Microsoft Windows.
Skipfish
Cet outil est utilisé pour analyser leurs sites à la recherche de vulnérabilités. Les rapports générés par l'outil sont destinés à servir de base aux évaluations professionnelles de la sécurité des applications Web. Il est préférable pour Linux, FreeBSD, MacOS X et Windows.
Vega
Il s'agit d'un outil de sécurité Web multiplateforme open source utilisé pour rechercher des instances d'injection SQL, de scripts intersites (XSS) et d'autres vulnérabilités dans les applications Web. Il est préférable pour Java, Linux et Windows.
Wapiti
Wapiti est un outil open source basé sur le Web qui analyse les pages Web de l'application Web et vérifie les scripts et les formulaires dans lesquels il peut injecter des données. Il est construit avec Python et peut détecter les erreurs de gestion de fichiers, les injections de base de données, XSS, LDAP et CRLF, la détection d'exécution de commande.
Scarabée Web
Il est écrit en Java et est utilisé pour analyser les applications qui communiquent via les protocoles HTTP / HTTPS. Cet outil est principalement conçu pour les développeurs qui peuvent écrire eux-mêmes du code. Cet outil ne dépend pas du système d'exploitation.