Qu'est-ce que la Surface d'Attaque ?

novembre 22, 2022

Les cyberattaques se multiplient, en particulier au sein des petites et moyennes entreprises, puisque selon un rapport, 70 % des petites entreprises ont essuyé une attaque.

De nombreuses petites et moyennes entreprises ne sont pas préparées à faire face à la prolifération des menaces de sécurité. En fait, 45 % de ces entreprises déclarent ne pas disposer de mesures de sécurité suffisantes pour empêcher ces cyberattaques. Cet article se penche sur une des vulnérabilités potentielles : la surface d’attaque des applications logicielles.

Les petites et moyennes entreprises peuvent mapper leurs faiblesses potentielles et implémenter un programme de gestion de la surface d’attaque pour réduire leur vulnérabilité et améliorer leur cybersécurité. Au final, l’application d’un plan de gestion de la surface d’attaque protège les données sensibles des clients ainsi que d’autres ressources précieuses contre les cyberattaques.

Surface d’attaque d’une application logicielle

La surface d’attaque désigne l’ensemble des expositions potentielles à des risques de sécurité au sein de l’environnement logiciel d’une entreprise. En d’autres termes, il s’agit de l’ensemble des vulnérabilités potentielles (connues et inconnues) et des contrôles au niveau des tous les composants matériels, logiciels et réseau.

On distingue trois types de surfaces d’attaque de base :

  • Surface d’attaque numérique : la surface d’attaque numérique englobe l’intégralité de l’environnement réseau et logiciel d’une entreprise. Elle inclut les applications, le code, les ports ainsi que les autres points d’entrée et de sortie.
  • Surface d’attaque physique : la surface d’attaque physique d’une entreprise couvre tous les endpoints d’une entreprise : ordinateurs de bureau, ordinateurs portables, terminaux mobiles et ports USB.
  • Surface d’attaque d’ingénierie sociale : les attaques d’ingénierie sociale exploitent les vulnérabilités liées au comportement des utilisateurs. Les types d’attaques les plus courants dont sont victimes les entreprises incluent le harponnage (« spear phishing »), le pretexting et d’autres techniques de manipulation visant à amener les utilisateurs à donner accès à leurs données sensibles.

Parmi toutes les vulnérabilités potentielles auxquelles les entreprises devraient être sensibilisées, nous examinons ici la surface d’attaque des applications logicielles, c’est-à-dire toutes les fonctions possibles d’un code au sein d’un environnement logiciel auxquelles un utilisateur non authentifié ou un logiciel malveillant peut accéder.

Identification de la surface d’attaque d’une application

Pour identifier la surface d’attaque d’une application logicielle, il convient de mapper toutes les fonctions à examiner et à tester à la recherche de vulnérabilités. Cela veut dire que tous les points d’entrée et de sortie du code source de l’application doivent être examinés. Plus la surface d’attaque d’une application logicielle est grande, plus il sera facile pour le cyberattaquant ou le logiciel malveillant d’accéder au code et de l’exécuter sur une machine cible.

Gestion de la surface d’attaque

La gestion de la surface d’attaque des applications logicielles vise à identifier les faiblesses d’un système et à réduire le nombre de vulnérabilités exploitables. L’analyse de la surface d’attaque a pour but d’exposer aux développeurs et aux experts en sécurité l’ensemble des zones de risque d’une application. La sensibilisation constitue la première étape sur la voie de l’identification de solutions pour atténuer les risques.

En fin de compte, les entreprises peuvent utiliser l’analyse de la surface d’attaque pour implémenter ce que l’on appelle communément la sécurité Zero Trust au moyen de concepts clés tels que la segmentation du réseau et d’autres stratégies similaires.

2022 CrowdStrike Global Threat Report

Téléchargez le Global Threat Report 2022 pour découvrir les tendances observées par nos équipes chez les cyberpirates en matière de techniques, tactiques et procédures.

Télécharger

Principales surfaces d’attaque

Les surfaces d’attaque évoluent au gré de l’ajout de nouveaux composants, tels que des sites web, des applications cloud et mobiles, des hôtes, etc. Mais on observe généralement une certaine constante en ce qui concerne les types de vulnérabilités.

Identification des vulnérabilités logicielles

Pour améliorer la cybersécurité, une des premières étapes consiste à élaborer un modèle de surface d’attaque. Ce modèle permettra de mettre en lumière les points les plus vulnérables d’une application logicielle donnée, qui peuvent varier sensiblement d’une entreprise à l’autre.

Les vulnérabilités logicielles courantes ci-dessous doivent retenir toute votre attention :

  • Problèmes de contrôle des accès. Contrôler les accès est compliqué lorsque les employés accèdent au système de diverses façons (au bureau et à distance, par exemple). Souvent, les développeurs de logiciels introduisent des règles en différents points du code, créant ainsi autant de failles susceptibles d’être facilement exposées et exploitées. En s’attaquant aux vulnérabilités du contrôle des accès, les cyberpirates peuvent modifier ou supprimer du contenu, voire prendre le contrôle de l’administration du site.
  • Failles d’injection. Les failles d’injection incluent les requêtes SDL adressées au système d’exploitation et aux bases de données backend. Les attaques par injection sont souvent exécutées via des champs de saisie qui communiquent avec les bases de données et les répertoires. Ces champs sont souvent dépourvus de filtre d’entrée, ce qui les rend vulnérables aux attaques.
  • Problèmes d’authentification. Lorsque les fonctions de l’application liées à la gestion de la session et à l’authentification ne sont pas correctement implémentées, les cyberattaquants peuvent obtenir un accès à un système avec les mêmes autorisations que les utilisateurs ciblés. Ils peuvent ensuite compromettre les clés, les mots de passe, etc.
  • Problèmes liés aux entités externes XML. Une mauvaise configuration des analyseurs syntaxiques XML ou parseurs XML qui traitent les saisies XML contenant des références à des entités externes peut conduire à des problèmes tels que l’exposition d’informations confidentielles et le déni de service (DoS).
  • API personnalisées. Les API ajoutent des vulnérabilités au travers de la violation de l’authentification des utilisateurs, de la violation des autorisations au niveau de l’objet, de l’exposition excessive des données et d’autres problèmes.
  • Formulaires web. L’ajout de formulaires web offre d’autres possibilités d’envoyer des données directement au serveur. L’exécution de scripts intersites (Cross-Site Scripting, XSS) est une attaque par formulaire web courante, dans le cadre de laquelle le cyberattaquant exécute un script malveillant dans le navigateur de l’utilisateur. La falsification de requête intersite (Cross-Site Request Forgery, XSRF) est un autre type d’attaque, dans le cadre de laquelle le cyberattaquant amène un utilisateur à envoyer involontairement une requête.
  • Rétrocompatibilité ou compatibilité descendante. Plus le nombre de versions disponibles d’un logiciel est grand, plus il est facile d’y introduire des vulnérabilités.

Identification des principales surfaces d’attaque

En règle générale, les principales surfaces d’attaque des applications logicielles sont les points d’entrée et de sortie à distance. Ces points à haut risque incluent les interfaces avec les systèmes externes et Internet, en particulier lorsque le système autorise les accès anonymes :

  • Numéros de système autonome (ASN)
  • Adresses IP et blocs IP
  • Certificats SSL et attribution
  • Enregistrements, contacts et historiques WHOIS
  • Ports TCP/IP
  • Cloud public et privé
  • Domaines et sous-domaines
  • Services de serveur web tels que les e-mails et les bases de données

Surfaces d’attaque et vecteurs d’attaque, quelle différence ?

Pour obtenir une cyberveille pertinente, il est nécessaire de comprendre la différence entre la surface d’attaque et les vecteurs d’attaque. Fortes de cette connaissance, les entreprises pourront créer un plan de gestion de la surface d’attaque propre à les protéger contre les cyberattaques.

Définition des vecteurs d’attaque

Les vecteurs d’attaque sont toutes les méthodes qui permettent à des utilisateurs non autorisés d’obtenir un accès à des données. L’utilisation de vecteurs d’attaque par un acteur malveillant peut entraîner la compromission de données, voire pire.

Les vecteurs d’attaque peuvent être regroupés dans deux catégories : passifs et actifs.

Les vecteurs d’attaque passifs sont les canaux utilisés pour obtenir un accès au système sans impacter les ressources système. Ils incluent des techniques d’espionnage telles que l’enregistrement de sessions, l’analyse des ports et l’analyse du trafic.

Les vecteurs d’attaque actifs désignent les canaux dont l’exploitation a un impact sur le système d’exploitation. Ils incluent les ransomwares, les attaques de phishing et les attaques par déni de service distribué (DDoS).

Comment différencier la surface d’attaque des vecteurs d’attaque ?

En bref, la surface d’attaque est l’ensemble des points qu’un acteur malveillant pourrait exploiter au sein d’une application (ou, plus largement, d’un système). Le vecteur d’attaque est la méthode utilisée par l’acteur malveillant pour exploiter un de ces points.

En mappant la surface d’attaque, vous obtenez une vue d’ensemble étendue de toutes les faiblesses potentielles d’une application logicielle. De son côté, l’analyse des vecteurs d’attaque individuels fournit à l’équipe de sécurité des informations sur les éléments à corriger ou à renforcer.

Identification des surfaces d’attaque et des vecteurs d’attaque

La surface d’attaque numérique est constituée de deux types de ressources : les facteurs connus et les facteurs inconnus. Les facteurs connus correspondent aux ressources que les développeurs connaissent et surveillent, notamment les sous-domaines et les processus généraux de sécurité.

Les facteurs inconnus, également appelés « ressources du Shadow IT », sont les applications et les terminaux non approuvés qui sont connectés au réseau d’une entreprise. Il peut s’agir de terminaux physiques (tels que les smartphones et tablettes des utilisateurs), d’applications de messagerie, du stockage cloud et d’applications d’optimisation de l’espace de travail, notamment. Ces ressources n’ayant pas été officiellement intégrées ou validées par le département informatique, elles ne sont pas dans la ligne de mire des développeurs, ce qui rend les systèmes vulnérables.

La gestion de la surface d’attaque est essentielle, car elle permet aux entreprises d’identifier tous les facteurs de la surface d’attaque, qu’ils soient connus ou inconnus.

EBOOK — REDUCING THE ATTACK SURFACE

Les services cloud publics sont devenus un élément incontournable des plans de croissance stratégique à long terme de la plupart des entreprises. Découvrez cinq manières de réduire les risques au sein d’un environnement multicloud.

Télécharger

Gestion des surfaces d’attaque numériques et physiques

Pour réduire une surface d’attaque, il faut d’abord en connaître le périmètre. Une analyse de la surface d’attaque permettra d’identifier tous les facteurs connus et inconnus qui constituent les vulnérabilités potentielles de l’environnement logiciel d’une entreprise.

Il convient toutefois de garder à l’esprit qu’en termes de sécurité, il est plus simple d’être proactif et défensif pour contrer les éventuelles attaques que de devoir réparer les dégâts après l’attaque.

Réduction de la surface d’attaque

Pour réduire la surface d’attaque, commencez par installer systématiquement les solutions de sécurité les plus fondamentales. Par exemple, dans la mesure où les ports TCP/IP ouverts sont vulnérables, assurez-vous de mettre en place un pare-feu pour limiter le nombre de ports TCP/IP accessibles. Appliquez les mises à jour et les correctifs de sécurité requis, et utilisez le chiffrement HTTPS et les certificats SSL.

Vous pouvez également prendre des mesures plus spécifiques, en fonction de l’environnement logiciel à protéger.

Par exemple, limitez la quantité de code exposée. Tout code présente des vulnérabilités susceptibles d’être exploitées. Plus il y a de code, plus des failles sont probables. Limiter la quantité de code permet donc aux entreprises de réduire leur surface d’attaque. À mesure que votre application logicielle évolue et que vous ajoutez de nouvelles fonctionnalités, vos principaux modules peuvent eux aussi ajouter des fonctionnalités supplémentaires. Masquez les paramètres non utilisés afin d’exposer le moins d’éléments possible aux cybercriminels. Et tant qu’à faire, demandez-vous si ces paramètres ne pourraient pas être purement supprimés. Examinez attentivement chaque module pour identifier tout code mort.

Par ailleurs, sachez que les applications tierces représentent également un danger dans la mesure où leur code source est largement disponible, ce qui augmente la surface d’attaque. Si vous utilisez des applications tierces, examinez et testez leur code avec soin. Pour protéger leur code, vous pouvez également tenter de renommer ces applications ou de dissimuler leur identité d’une quelconque manière.

Minimisation des points d’entrée disponibles

Vous devez également évaluer avec soin les fonctionnalités accessibles aux utilisateurs non authentifiés. Par exemple, comme les démonstrations en ligne dévoilent l’intégralité de votre code, limitez-en l’accès aux clients ou aux utilisateurs enregistrés. Limitez également l’accès aux modules d’administration ou de gestion des contenus, ainsi qu’aux modules intranet et extranet. Appliquez des restrictions aux adresses IP, utilisez des ports fermés et des certificats clients et déplacez les modules d’administration vers un site distinct.

En outre, pensez à prendre les mesures suivantes pour limiter l’accès aux points d’entrée :

  • Validez et assainissez les saisies dans les formulaires web afin de vous protéger contre les attaques par injection SQL.
  • Collectez uniquement les données dont vous avez besoin et anonymisez-les autant que possible.
  • Sécurisez le chargement de fichiers en limitant les types de fichiers qu’il est possible de charger, en validant le type de fichier et en autorisant uniquement les utilisateurs authentifiés à charger des fichiers.
  • Renforcez la sécurité du cloud au moyen de fonctionnalités de protection des workloads cloud, qui protègent contre les compromissions des workloads, des conteneurs et des environnements Kubernetes.

Désactivation des fonctionnalités superflues

En général, les nouvelles ressources numériques telles que les serveurs et les systèmes d’exploitation sont livrées non configurées. Par défaut, tous les services d’application sont activés et tous les ports sont ouverts. Qui plus est, ces applications et ces ports n’ont généralement pas été mis à jour. Ils représentent dès lors une source de vulnérabilité. Les procédures de sécurité à mettre en place devraient par conséquent prévoir d’examiner ces ressources numériques et de désactiver les applications, les fonctions et les services superflus. De nouveau, plus la surface d’attaque est réduite, moins il y a de chances qu’un cybercriminel obtienne un accès.

Pour découvrir comment protéger votre entreprise contre les cyberattaques, consultez notre base de données Cybersecurity 101. Vous pouvez également contacter CrowdStrike pour obtenir de l’aide pour améliorer votre cybersécurité.