Nos services

samedi 20 août 2016

Testez la sécurité de vos applications

Les applications web et mobiles, de par leur complexité et les budgets restreints alloués à leur développement, contiennent souvent un grand nombre de vulnérabilités. 

C’est donc naturellement qu’elles sont les cibles privilégiées des hackers.



Types de vulnérabilité classés par fréquence d’observation - Selon une analyse des vulnérabilités découvertes en 2015 par la firme de sécurité White Hat security.

Si vous souhaitez sécuriser vos applications critiques, nous vous conseillons de tester leur sécurité tout au long de leurs cycles de vie : développement, test, production.

Pour réaliser ces tests, il existe plusieurs outils et méthodes adaptés à ces cycles ainsi qu’à vos challenges :

- Audit de code source automatisé (SAST - Static Application Security Testing)

- Audit dynamique automatisé (DAST - Dynamic Application Security Testing)

- Test d’intrusion réalisé par un « hacker éthique »

Dans cet article, nous vous expliquerons leurs points forts, leurs limites ainsi que les raisons pour lesquelles des audits automatisés SAST et DAST ne peuvent pas se substituer à des tests d’intrusions réalisés par un hacker éthique.



Audits SAST et DAST de l’application Webgoat écrite en .NET

Audit de code source automatisé (SAST)


L’audit du code source (SAST) de vos applications est important si vous souhaitez détecter et corriger leurs vulnérabilités pendant la phase de développement : plus tôt une vulnérabilité est découverte et moins elle sera couteuse à corriger.

Un audit SAST est non intrusif par nature. Vous pouvez donc scanner en toute sécurité vos applications les plus critiques sans risque d’impacter leur performance.

Un tel audit vous permet de détecter un grand nombre de vulnérabilités présentes dans le code source de vos applications



Exemple de vulnérabilité de type « Path manipulation » découverte par un audit « SAST » :


Un hacker peut se servir de cette vulnérabilité pour consulter le contenu de n’importe quel fichier présent sur le serveur hébergeant cette application : fichiers de configuration, documents confidentiels, etc.






Un audit SAST est particulièrement intéressant car il vous indique l’emplacement exact d’une vulnérabilité dans le code source :




Si la lecture du code source est complexe, vous pouvez consulter une vue simplifiée représentant l’exécution dynamique de votre application :


Audit dynamique avec scanner de vulnérabilité (DAST)


Un audit dynamique (DAST) consiste à se servir d’un scanner pour interagir avec l’application comme un hacker le ferait sur internet : en envoyant un grand nombre de requêtes malicieuses vers l’application auditée afin d’y trouver des failles.

Un scanner de vulnérabilité DAST permet de détecter un certain nombre de vulnérabilités pouvant être découvertes lors d’un audit de code source (SAST) sans pour autant atteindre la même efficacité.

Là ou un scanner de vulnérabilité DAST se démarque c’est dans sa capacité à découvrir des problèmes de configuration relatifs au serveur web sur lequel est installée l’application.



Un audit DAST est intrusif par nature. Il peut détériorer votre application. Il est donc préférable de scanner dynamiquement une application dans un environnement de pré production.

Si vous ne disposez pas d’un environnement de pré production, nous vous conseillons de réaliser un scan DAST léger couplé à un audit de code source (SAST). 

De cette manière vous découvrirez un maximum de vulnérabilités sans pour autant impacter votre application.

Exemple de vulnérabilité de type « Web Server Misconfiguration: Unprotected File » découverte par un audit « DAST » :


Un hacker peut se servir de cette configuration non sécurisée du serveur web pour consulter le code source d’une sauvegarde de l’application archivée sur le serveur :







Test d’intrusion


Les audits de code source (SAST) et les audits dynamiques (DAST) automatisés vous permettront de détecter un grand nombre de vulnérabilités. Cependant, il est important de noter que ces solutions ne pourront pas remplacer l’intelligence humaine. 

Des tests d’intrusion manuels réalisés par un hacker éthique vous permettront de découvrir des vulnérabilités inhérentes à la logique « métier » de vos applications et  ainsi que d’autres vulnérabilités plus difficilement détectables par des solutions automatisées.

Enfin, un testeur d’intrusion sera capable d’exploiter plusieurs vulnérabilités en chaine afin d’obtenir des résultats parfois impressionnant.

Un tel test permet de comprendre la dynamique qu’entretiennent des vulnérabilités entre elles afin de dresser un portrait réaliste de la sécurité de vos applications.



L’homme et la machine : plus fort ensemble 

Quels tests réaliser ?

Si votre budget vous le permet nous vous conseillons de réaliser ces 3 types de tests à la fois.

De cette manière vous obtiendrez une grande assurance que vos applications critiques sont dépourvues de vulnérabilités.

Si vous ne pouvez pas vous offrir ces 3 tests, nous vous conseillons de réaliser des tests d’intrusion manuels et de mettre en place un web application firewall pour protéger votre application. 

En effet, les web application firewalls sont capables de détecter et de stopper l’exploitation de la plupart des vulnérabilités pouvant être découvertes lors d’audits automatisés de code source (SAST) et d’audits automatisés dynamiques (DAST).

Pour aller plus loin

Statistiques des vulnérabilités découvertes par la firme de sécurité WhiteHat security

https://info.whitehatsec.com/rs/whitehatsecurity/images/2015-Stats-Report.pdf

DAST et SAST : définition selon Gartner :

http://www.gartner.com/it-glossary/dynamic-application-security-testing-dast/

http://www.gartner.com/it-glossary/static-application-security-testing-sast/

Nombreuses ressources pour sécuriser vos applications et serveurs web:

https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project

https://geekflare.com/apache-web-server-hardening-security/

http://www.tecmint.com/apache-security-tips/

https://benchmarks.cisecurity.org/downloads/browse/?category=benchmarks.servers.web.iis

Scanners de vulnérabilités gratuits :

https://cirt.net/Nikto2

https://github.com/Dionach/CMSmap

http://www.arachni-scanner.com/

http://w3af.org/


Des questions concernant cet article?

N’hésitez pas à laisser un commentaire pour en faire profiter tout le monde. 

Vous pouvez aussi nous joindre à ce courriel :

info@oppidumsecurity.com


Ou nous parler via notre site internet :



https://oppidumsecurity.com/

Aucun commentaire:

Publier un commentaire