AUDIT DE CODE TESTS INTRUSIFS - INGÉNIERIE SOCIALE Document réalisé par : Aliou
AUDIT DE CODE TESTS INTRUSIFS - INGÉNIERIE SOCIALE Document réalisé par : Aliou Dadal KA, Ouleye Lam, Cheikh Tidiane Guèye, Ndeye Coumba Ndao, Khorédia Kébé, Mamadou Lamine Tamba, Fanta Barry, Souleymane Youm, Habib Diallo, Jean Ndong, Abdoulaye Diallo, Contexte 1 Audit de code 1.1 Qu’est-ce que l’audit de code ? 1.2 Les éléments à auditer au sein de l’entreprise Béta 1.3 Comment réaliser l’audit de code (méthodologie) ? 2 Test d’intrusion 2.1 Type de test d’intrusion 2.2 Comment se déroule un test d’intrusion basé sur l’ingénierie sociale dans notre cas d’étude ? 2.3 Comment exploiter le pentest d’ingénierie sociale ? 3 Quelle suite à un audit de code, un test d’intrusion 3.1 Mesure de sécurité et bonnes pratiques à implémenter 3.2 Analyse Complémentaire 3.3 Fréquence des tests d’intrusion Contexte La tendance actuelle est au renforcement des exigences sécurité des clients, partenaires et investisseurs. Les audits de sécurité se sont démocratisés aux petites et moyennes entreprises, pour qui ils représentent un passage obligé afin de pouvoir collaborer sur des sujets IT avec des grandes entreprises. En effet, les grands-comptes intègrent quasi systématiquement des demandes de rapport d’audits de sécurité dans leurs processus d’achats. Les entreprises commencent à prendre conscience des enjeux de sécurité des données, dans des secteurs d’activité où la prise en compte des risques était auparavant peu élevée. Les certifications en sécurité (ISO 27001, HDS, PCI-DSS, SOC2…) sont de plus en plus plébiscitées par les entreprises de petite et moyenne taille, afin de se différencier et de faire de la sécurité un axe de qualité. C’est dans ce contexte que l’entreprise Béta fait appel à des auditeurs, afin de connaitre l’état des lieux du niveau de sécurité de son système informatique. Il existe plusieurs types d’audits de sécurité, dont principalement : les audits organisationnels, les audits techniques, et les tests d’intrusion. Ces différents types d’audits peuvent s’appliquer à un périmètre plus ou moins étendu, selon que l’entreprise souhaite évaluer tout son SI ou seulement certains domaines identifiés comme étant prioritaires. Nous nous focalisons dans cet étude sur les audits techniques plus spécialement, l’audit de code et les tests d’intrusion (test de pénétration ou pentest). L’audit de code 1.1.Qu’est-ce que l’audit de code L’audit de sécurité de codes fait partie de l’ensemble des audits de sécurité qui permettent d’évaluer le niveau de sécurité d’un ou plusieurs composants d’un système d’information. La revue du code source est ainsi une étape primordiale qui permet d’identifier les implémentations ciblées par l’analyse et d’en évaluer la conformité. En effet, l’audit de code est une pratique consistant à parcourir le code source d’un logiciel afin de s’assurer du respect de règles précises. 1.2.Les éléments à auditer au sein de entreprise Béta Après étude du texte, nous avons remarqué ces quelques applications qui nécessitent un audit de code pour une meilleure sécurisation de son système : L’ERP TAWFEKH, Sage People, l’outil GLPI. 1.3.Comment réaliser l’audit de code (méthodologie) ? OWASP est une référence sur la sécurité des applications web, il publie annuellement une liste des 10 vulnérabilités les plus exploitées sur la toile. Pour faire un bon audit de code, on peut procédé ainsi, en prenant en compte le référencement d’OWASP : a°/ Définition des objectifs L’audit de code vise ici à relever les vulnérabilités des outils métiers utilisés par l’entreprise Béta, mais également on essayera de mettre l’accent sur les leviers à actionner pour améliorer leur performance. Vu qu’on a pas à notre disposition, les documents technique et fonctionnels de ces dits logiciels, nous ne pouvons que se baser sur les informations mentionnées dans le fichier. Et à notre avis elles ne sont pas suffisantes pour la réalisation de l’audit de code en profondeur. b°/Cependant, on peut envisager d’utiliser des outils d’audit tels que SonarQube, Themis entre autre pour réaliser une analyse automatisée. Elle permettra d’identifier rapidement des vulnérabilités, des codes dupliqués ou inutilisés et le non-respect de règles de programmation. Cette revue est effectuée par des outils d’analyse statique. Il existe des outils open-sources pour tous les langages de programmation et frameworks. Pour atténuer les faux-positifs, on ne peut pas toujours s’appuyer sur un seul outil, il peut être nécessaire d’associer les forces et faiblesses de plusieurs outils pour obtenir un meilleur résultat. c°/Revue Manuelle Les modules de l’application les plus sensibles seront revus manuellement. Un diagramme de flux de données, indiquant le cheminement des données au sein de l’application, peut-être réalisé préalablement afin de faciliter l’identification des zones importantes du code source. Il n’est pas possible de vérifier automatiquement la logique d’une application et sa conformité avec les demandes fonctionnelles. Une revue manuelle est donc indispensable et son étendue doit être clairement définie à l’avance. d°/Livraison C’est une étape essentielle ! Un audit est inutile s’il n’est pas suivi de corrections. Le livrable contiendra la liste des problèmes identifiés. Elle sera accompagnée du risque qu’ils posent et de la façon de les corriger. Le livrable contiendra également des remarques et conseils afin d’améliorer les documents techniques. Il peut aussi servir de base pour de futurs audits. Test d’intrusion Un test d’intrusion consiste à tester la sécurité d’un système informatique en effectuant des attaques dans le but d’identifier les vulnérabilités du système et de proposer des correctifs de sécurité. Les tests d’intrusion et les tests de vulnérabilités diffèrent de par leurs objectifs. Un test de vulnérabilité repose sur des scanners automatiques qui permettent d’identifier rapidement les failles les plus courantes. Le test d’intrusion va plus loin. Il inclut notamment la recherche de failles logiques, non détectables par des outils automatiques, et une phase d’exploitation manuelle des vulnérabilités identifiées. C’est une méthode d’audit de sécurité éprouvée plus complète, qui permet de mesurer l’impact réel de tout type de faille. Un test d’intrusion peut inclure des tests en boite noire, en boite grise ou en boite blanche. Les tests en boite noire ciblent la surface d’attaque accessible à n’importe quel attaquant externe, tandis que des tests en boite grise vont concerner des éléments disponibles uniquement à des clients, des partenaires ou des salariés d’une entreprise. L’audit en boite blanche quant à lui permet d’analyser le niveau de sécurité en disposant des mêmes accès qu’un administrateur du système (serveur, application…). Le livrable remis à la suite d’un test d’intrusion est un rapport d’audit de sécurité qui présente les vulnérabilités identifiées, classifiées par niveau de criticité, ainsi que des suggestions techniques de remédiation. En complément du rapport, une synthèse non technique peut également être délivrée, pour présentation au comité de direction ou à des partenaires. 2.1. Type de test d’ intrusion Le type de test d’intrusion est défini par rapport à l’environnement dans lequel il est réalisé. On distingue notamment le pentest réalisé sur une plateforme Web qui, recherche des vulnérabilités liées à la configuration des serveurs ou celle de la couche application. Mais aussi, nous avons entre autre des tests d’intrusions basés sur l’ingénierie sociale. Ces derniers s’intéressent aux facteurs humains de l’entreprise. Il permettent de tester les réactions des équipes face aux tentatives de phishing, d’attaques téléphoniques et d’intrusion physique. Les techniques utilisées sont par exemple l’envoi d’emails de phishing, incluant des clones d’interfaces et des malwares, la récolte d’informations sensibles par téléphone, et l’utilisation de clés USB piégées. 2.2. Comment peut se dérouler un test d’intrusion basé sur l’ingénierie sociale dans notre cas d’étude ? Dans notre cas, il s’agit de tester la sécurité du système informatique de l’entreprise Béta en effectuant des tests d’intrusions. En effet pour cela, nous allons essayés d’exploiter les failles (faiblesses) relevés notamment la mauvaise gestion des départs : avec une possible utilisation de compte d’anciens employés. Avec un contrôle non suffisant des accès à la salle, on peut même se rendre dans la salle serveur pour réaliser l’intrusion du système. Le pentest social engineering peut être basé sur plusieurs techniques. Chacune demande à la fois des compétences et des connaissances technologiques et aussi des compétences relationnelles. Le phishing est une technique très répandue, car très simple à mettre en place et souvent très efficace. Par exemple un ancien employé de Béta, ayant une certaine rancune, peut adopter cette technique et exploiter la période de sensibilisation à la sécurité informatique, en envoyant un email frauduleux aux différents collaborateurs. Dans cet email, il reprend le design du Groupe. Le but est d’amener le destinataire à cliquer sur des liens présents dans le message qui le conduiront à un site lui aussi falsifié. L’exemple typique de phishing est l’email que vous recevez soi-disant de votre banque et qui vous demande d’aller sur un site pour changer votre mot de passe parce qu’il a été piraté. Une fois sur le faux site, l’utilisateur saisit son identifiant, son ancien mot de passe et un nouveau. Ces informations sont collectées par le pirate qui n’a plus qu’à les utiliser. Vu que les accès physiques aux équipements de l’entreprise Béta de Dakar, sont faiblement sécurisés. La technique du pentest par intrusion physique est alors largement envisageable. Cette technique consiste à s’introduire dans les locaux de l’entreprise. Le pirate se fera passer pour quelqu’un ayant un motif uploads/S4/ audit-de-code-pentest.pdf
Documents similaires










-
26
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 26, 2021
- Catégorie Law / Droit
- Langue French
- Taille du fichier 0.1602MB