Qu’est-ce que la sécurité des applications ?

La sécurité des applications est la pratique consistant à utiliser :

  • des logiciels
  • du matériel
  • des techniques
  • des bonnes pratiques
  • et des procédures de sécurité

…pour protéger les applications informatiques contre les menaces de sécurité externes.

La sécurité était autrefois une réflexion après coup dans la conception des logiciels. Aujourd’hui, elle est une préoccupation de plus en plus critique pour tous les aspects du développement des applications, de la planification au déploiement et au-delà.

Le volume des applications développées, distribuées, utilisées et corrigées sur les réseaux augmente rapidement.

Par conséquent, les pratiques de sécurité des applications doivent répondre à une variété croissante de menaces.

Comment fonctionne la sécurité des applications ?

Les mesures de sécurité comprennent l’amélioration des pratiques de sécurité dans le cycle de développement du logiciel et tout au long du cycle de vie de l’application.

Toutes les activités de sécurité des applications doivent minimiser la probabilité que des acteurs malveillants puissent obtenir un accès non autorisé aux systèmes, aux applications ou aux données.

L’objectif ultime de la sécurité des applications est d’empêcher les attaquants d’accéder à des données sensibles ou exclusives, de les modifier ou de les supprimer.

Toute action prise pour assurer la sécurité des applications est une contre-mesure ou un contrôle de sécurité. Le National Institute of Standards and Technology (NIST) définit un contrôle de sécurité comme suit :

« Une sauvegarde ou une contre-mesure prescrite pour un système d’information ou une organisation, conçue pour protéger la confidentialité, l’intégrité et la disponibilité de ses informations et pour répondre à un ensemble d’exigences de sécurité définies. »

Un pare-feu applicatif est une contre-mesure couramment utilisée pour les logiciels

Les pare-feu déterminent comment les fichiers sont exécutés et comment les données sont traitées en fonction du programme spécifique installé.

Les routeurs sont la contre-mesure la plus courante pour le matériel. Ils empêchent l’adresse IP (Internet Protocol) d’un ordinateur individuel d’être directement visible sur Internet.

Les autres contre-mesures sont les suivantes

Pourquoi la sécurité des applications est-elle importante ?

La sécurité des applications (y compris la surveillance et la gestion des vulnérabilités des applications) est importante pour plusieurs raisons, notamment les suivantes :

  • Trouver et corriger les vulnérabilités réduit les risques de sécurité et contribue ainsi à réduire la surface d’attaque globale d’une organisation.
  • Les vulnérabilités logicielles sont courantes. Bien qu’elles ne soient pas toutes graves, même les vulnérabilités non critiques peuvent être combinées pour être utilisées dans des chaînes d’attaque. Réduire le nombre de vulnérabilités et de faiblesses de sécurité permet de réduire l’impact global des attaques.
  • Adopter une approche proactive de la sécurité des applications est préférable à des mesures de sécurité réactives. Une approche proactive permet aux défenseurs d’identifier et de neutraliser les attaques plus tôt, parfois avant que les dommages ne soient causés.
  • À mesure que les entreprises transfèrent une plus grande partie de leurs données, de leur code et de leurs opérations dans le cloud, les attaques contre ces actifs peuvent augmenter.

Les mesures de sécurité des applications peuvent contribuer à réduire l’impact de ces attaques.

Négliger la sécurité des applications peut exposer une organisation à des menaces potentiellement existentielles.

Tests de sécurité des applications pendant le développement des applications

Les tests de sécurité des applications doivent être effectués à toutes les phases du développement des applications.

La modélisation des menaces ou l’évaluation des menaces est le processus consistant à critiquer les menaces qui pèsent sur une entreprise ou un système d’information, puis à évaluer formellement le degré et la nature de ces menaces.

La modélisation des menaces est l’une des premières étapes de la sécurité des applications et comprend généralement les cinq étapes suivantes :

  1. définir rigoureusement les actifs de l’entreprise ;
  2. identifier ce que chaque application fait ou fera par rapport à ces actifs ;
  3. créer un profil de sécurité pour chaque application
  4. identifier et hiérarchiser les menaces potentielles ; et
  5. documenter les événements indésirables et les mesures prises dans chaque cas.

Dans ce contexte, une menace est tout événement indésirable potentiel ou réel qui peut compromettre les actifs d’une entreprise.

  • Il peut s’agir d’événements malveillants comme une attaque par déni de service
  • ou d’événements imprévus, comme la défaillance d’un dispositif de stockage

Faiblesses et menaces courantes en matière de sécurité des applications

Les faiblesses les plus courantes en matière de sécurité des applications sont bien connues.

Diverses organisations les localisent au fil du temps.

La Common Weakness Enumeration (CWE) compilée par la communauté de la sécurité de l’information se concentre sur des problèmes spécifiques qui peuvent survenir dans n’importe quel contexte logiciel. Son objectif est de fournir aux développeurs des conseils pratiques sur la façon de sécuriser leur code.

Les 10 premiers éléments de la liste CWE et leurs scores CWE sont les suivants :

CWE

Description

CWE score

Écriture hors limites Les logiciels qui écrivent de manière inappropriée au-delà d’une limite de mémoire peuvent entraîner une corruption des données, une panne du système ou permettre l’exécution de codes malveillants. 65.93
Scripting intersite La neutralisation incorrecte des entrées potentiellement dangereuses pendant l’automatisation des pages Web permet aux attaquants de détourner les connexions des utilisateurs de sites Web. 46.84
Lecture hors limites Un logiciel qui lit de manière inappropriée une limite de mémoire peut provoquer un plantage ou exposer des informations système sensibles que les attaquants peuvent utiliser dans d’autres exploits. 24.9
Attaque par validation d’entrée L’absence de validation ou la validation incorrecte des entrées ou des données permet aux attaquants d’exécuter un code malveillant sur le système. 20.47
Injection de commandes du système d’exploitation (OS) Neutralisation incorrecte des éléments potentiellement dangereux utilisés dans une commande OS. 19.55
Injection SQL Un logiciel qui ne neutralise pas correctement les éléments potentiellement dangereux d’une commande SQL. Ces failles permettent des attaques contre les bases de données. 19.54
Utilisation après libre Un logiciel qui fait référence à une mémoire qui a été libérée peut faire planter le programme ou permettre l’exécution de code. 16.83
Traversée de chemin (traversée de répertoire) Limitation incorrecte d’un nom de chemin vers un répertoire restreint. 14.69
Falsification de requête intersite Lorsqu’une application web ne parvient pas à valider qu’une requête d’utilisateur a été envoyée intentionnellement, elle peut exposer des données à des attaquants ou permettre l’exécution de code malveillant à distance. 14.46
Téléchargement sans restriction de logiciels malveillants ou d’autres fichiers potentiellement dangereux. Les logiciels qui autorisent le téléchargement de fichiers sans restriction ouvrent la porte aux attaquants qui peuvent livrer un code malveillant pour une exécution à distance. 8.45

Les menaces courantes pour la sécurité des applications sont les suivantes

  • Les attaques par injection de logiciel exploitent les vulnérabilités du code de l’application qui permettent aux attaquants d’insérer du code dans l’application par le biais d’une entrée utilisateur ordinaire.
  • Les attaques de type « cross-site scripting » exploitent les vulnérabilités dans la façon dont les applications web gèrent les cookies pour voler ou falsifier les cookies afin que l’attaquant puisse se faire passer pour un utilisateur autorisé.
  • Les attaques par débordement de tampon exploitent les vulnérabilités dans la manière dont les applications stockent les données de travail dans les tampons du système. Les meilleures pratiques de développement sécurisé minimisent ces attaques. Elles consistent notamment à utiliser la validation des données et des langages de programmation qui gèrent en toute sécurité les allocations de mémoire, à maintenir les logiciels à jour avec les derniers correctifs et à s’appuyer sur le principe du moindre privilège.

L’objectif de la sécurité des applications est de faire échec aux attaques, tandis que les vecteurs d’attaque donnent aux attaquants les moyens de violer la sécurité des applications.

Catégories courantes de sécurité des applications

Les applications peuvent être classées de différentes manières ; par exemple, en fonction de fonctions spécifiques, comme l’authentification ou les tests de sécurité des applications.

Elles peuvent également être divisées en fonction des domaines :

  • comme la sécurité des applications Web
  • mobiles
  • de l’internet des objets (IoT)
  • et d’autres applications intégrées

Menaces sur les applications IoT

Les applications IoT sont pour la plupart soumises aux mêmes menaces que les applications ordinaires.

Les professionnels de la sécurité utilisent différentes tactiques et stratégies pour la sécurité des applications, en fonction de l’application développée et utilisée.

Les contrôles de sécurité des applications

  • Les contrôles de test de la sécurité des applications permettent d’éviter les faiblesses et les vulnérabilités de l’application au cours de son développement.
  • Les contrôles d’accès empêchent l’accès non autorisé aux applications. Elles protègent contre le détournement de comptes d’utilisateurs authentifiés ainsi que contre le fait de donner par inadvertance accès à des données restreintes à un utilisateur authentifié qui n’est pas autorisé à y accéder.
  • Les contrôles d’authentification servent à garantir que les utilisateurs ou les programmes accédant aux ressources des applications sont bien ceux qu’ils prétendent être.
  • Les contrôles d’autorisation sont utilisés pour s’assurer que les utilisateurs ou les programmes qui ont été authentifiés sont effectivement autorisés à accéder aux ressources de l’application. Les contrôles d’autorisation et d’authentification sont étroitement liés et souvent mis en œuvre avec les mêmes outils.
  • Les contrôles de chiffrement sont utilisés pour chiffrer et déchiffrer les données qui doivent être protégées. Les contrôles de chiffrement peuvent être mis en œuvre à différentes couches pour les applications en réseau. Par exemple, une application peut mettre en œuvre le chiffrement dans l’application elle-même en chiffrant toutes les entrées et sorties de l’utilisateur.

Par ailleurs, une application peut s’appuyer sur des contrôles de chiffrement tels que ceux fournis par les protocoles de la couche réseau, comme IP Security ou IPsec, qui chiffrent les données transmises vers et depuis l’application.

NordVPN est un des fournisseurs de VPN majeurs.

Il offre un accès illimité à plus de 5 000 serveurs dans le monde entier, ainsi qu’un doublement du chiffrement pour les communications et le surfs les plus sensibles. NordVPN propose de nombreuses fonctionnalités avancées telles que :

  • une adresse IP dédiée
  • des serveurs spécialisés pour le peer-to-peer
  • des serveurs qui transitent via TOR ce qui vous évite d’installer le navigateur chez vous, etc.

Cela vous permettra de dépasser les restrictions des FAI ainsi que les problèmes d’adresses IP interdites. En outre, il dispose de fonctions intégrées de blocage des logiciels malveillants et des publicités.

Obtenir un accès à NordVPN

Les contrôles de journalisation permettent de localiser les activités de l’application

Ils sont indispensables pour maintenir la responsabilité.

Sans journalisation, il peut être difficile, voire impossible, d’identifier les ressources qu’une attaque a exposées. Des journaux d’application complets constituent également un contrôle important pour tester les performances des applications.

Une autre façon de classer les contrôles de sécurité des applications est la manière dont ils protègent contre les attaques.

  • Les contrôles préventifs sont utilisés pour empêcher les attaques de se produire. Leur objectif est de se protéger contre les vulnérabilités. Par exemple, le contrôle d’accès et le chiffrement sont souvent utilisés pour empêcher les utilisateurs non autorisés d’accéder à des informations sensibles ; les tests complets de sécurité des applications sont un autre contrôle préventif appliqué dans le cycle de vie du développement logiciel.
  • Les contrôles correctifs réduisent l’effet des attaques ou d’autres incidents. Par exemple, l’utilisation de machines virtuelles, l’arrêt des programmes malveillants ou vulnérables, ou l’application de correctifs aux logiciels pour éliminer les vulnérabilités sont autant de contrôles correctifs.
  • Les contrôles de détection sont fondamentaux pour une architecture de sécurité applicative complète, car ils peuvent être le seul moyen pour les professionnels de la sécurité de déterminer qu’une attaque est en cours. Les contrôles de détection comprennent les systèmes de détection d’intrusion, les scanners antivirus et les agents qui surveillent la santé et la disponibilité du système.

 Mise en garde

Il existe des applications-espionnes qu’un de vos proches peut installer de manière invisible dans votre téléphone.

Elles rappatrient ensuite vos mots de passe mais aussi vos discussions sur les réseaux sociaux et vos SMS/MMS.

Outils et tests de sécurité des applications

Les outils et techniques utilisés pour la sécurité des applications sont presque aussi nombreux et divers que ceux utilisés pour le développement des applications.

La plupart de ces outils et techniques entrent dans l’une des quatre catégories suivantes :

  1. Les plateformes de développement sécurisées aident les développeurs à éviter les problèmes de sécurité en imposant et en appliquant des normes et des bonnes pratiques de développement sécurisé.
  2. Les outils d’analyse du code permettent aux développeurs de critiquer le code nouveau et existant pour y déceler des vulnérabilités potentielles ou d’autres expositions.
  3. Les outils de test des applications automatisent le test du code fini. Les outils de test d’applications peuvent être utilisés pendant le processus de développement ou être appliqués au code existant pour identifier les problèmes potentiels. Les outils de test d’applications peuvent être utilisés pour des tests statiques, dynamiques, mobiles ou interactifs.
  4. Les outils de protection des applications sont utilisés pour protéger les applications en cours de diffusion. En voici quelques exemples :
  • Les outils d’autoprotection des applications en cours d’exécution, qui combinent des éléments des outils de test des applications et des outils de protection des applications pour permettre la surveillance continue d’une application.
  • des outils d’obscurcissement du code pour rendre le code source difficile ou impossible à déchiffrer et à désosser ;
  • des outils de chiffrement pour protéger les données contre l’interception ;
  • des outils de détection des menaces pour examiner le réseau et l’environnement dans lequel une application s’exécute, et signaler les vulnérabilités et les menaces potentielles

Bien entendu, la sécurité des applications s’inscrit dans le contexte des systèmes d’exploitation, des réseaux et d’autres composants d’infrastructure connexes qui doivent également être sécurisés.

Pour être totalement sécurisée, une application doit être protégée contre tous les types d’attaques.

Meilleures pratiques en matière de sécurité des applications

Les meilleures pratiques en matière de sécurité des applications se répartissent en plusieurs catégories générales.

  • Qu’est-ce qui doit être protégé ? Les experts recommandent aux professionnels de la sécurité de répertorier tous les systèmes, logiciels et autres ressources informatiques – dans le nuage et sur place – qui doivent faire partie de l’application.
  • Quel est le pire qui puisse arriver ? Les experts recommandent de comprendre et de quantifier ce qui est en jeu si le pire se produit. Cela permet aux organisations d’allouer des ressources de manière appropriée pour éviter les risques.
  • Que pourrait-il se passer ? Comment une attaque réussie pourrait-elle être menée ? Les menaces sont les éléments qui pourraient avoir un effet négatif sur l’application, l’organisation qui la déploie ou les utilisateurs de l’application.

Les conseils spécifiques aux meilleures pratiques en matière de sécurité des applications se concentrent sur l’identification des faiblesses et des vulnérabilités générales et sur leur traitement.

D’autres meilleures pratiques dépendent de l’application de pratiques spécifiques telles que l’adoption d’un cadre de sécurité ou la mise en œuvre de pratiques de développement logiciel sécurisé adaptées au type d’application.

Tendances et avenir de la sécurité des applications

Si les concepts de la sécurité des applications sont bien compris, ils ne sont pas toujours bien mis en œuvre.

Les experts en sécurité ont dû s’adapter à l’évolution de l’informatique. Par exemple, lorsque l’industrie est passée des mainframes à temps partagé aux ordinateurs personnels en réseau, les professionnels de la sécurité des applications ont dû changer leur façon d’identifier et de traiter les vulnérabilités les plus urgentes.

  • Aujourd’hui, alors que les entreprises transfèrent davantage de ressources et d’actifs informationnels vers le cloud, la sécurité des applications change d’orientation.
  • De même, comme les développeurs d’applications s’appuient de plus en plus sur l’automatisation, l’apprentissage automatique et l’intelligence artificielle, les professionnels de la sécurité des applications devront eux aussi intégrer ces technologies dans leurs propres outils.

À mesure que les risques de déploiement d’applications non sécurisées augmentent, les développeurs d’applications se retrouveront également de plus en plus à travailler avec des outils et des techniques de développement qui peuvent aider à guider le développement sécurisé.

Glossaire des termes relatifs à la sécurité des applications

Test dynamique de sécurité des applications (DAST).

Méthode de test qui analyse les applications en cours d’exécution. DAST se concentre sur les entrées et les sorties et sur la façon dont l’application réagit aux données malveillantes ou erronées.

Exploitation.

Méthode par laquelle les attaquants tirent parti d’une vulnérabilité pour accéder à des ressources protégées ou sensibles. Un exploit peut utiliser des logiciels malveillants, des rootkits ou l’ingénierie sociale pour tirer parti des vulnérabilités.

Test de sécurité des applications instrumenté ou interactif (IAST).

Une méthodologie de test qui combine les meilleures caractéristiques des tests statiques de sécurité des applications (SAST) et des tests DAST, en analysant le code source, les applications en cours d’exécution, les configurations, le trafic HTTP, etc.

Test de pénétration.

Méthodologie de test reposant sur des hackers éthiques qui utilisent des méthodes de piratage pour évaluer la posture de sécurité et identifier les points d’entrée possibles dans l’infrastructure d’une organisation, à la demande de cette dernière.

Risque.

Le coût potentiel d’une attaque réussie. Le risque évalue ce qui est en jeu si une application est compromise, ou si un centre de données est endommagé par un ouragan ou tout autre événement ou attaque.

Autoprotection des applications d’exécution.

Outils qui combinent des éléments des outils de test des applications et des outils de protection des applications pour permettre la surveillance continue d’une application.

Test statique de sécurité des applications.

Méthodologie de test qui analyse le code source de l’application pour détecter les défauts de codage et de conception et les vulnérabilités de sécurité.

Menace.

Tout ce qui peut causer des dommages à un système ou à une application. Les menaces peuvent être des événements naturels comme les tremblements de terre ou les inondations, ou elles peuvent être associées aux actions d’une personne.

  • Les menaces non intentionnelles se produisent lorsque les actions d’une personne ne sont pas destinées à causer des dommages.
  • Les menaces intentionnelles sont dues à une activité malveillante. Les menaces exploitent les vulnérabilités.

Vulnérabilité.

Une faille ou un bogue dans une application ou un système connexe qui peut être utilisé pour mettre en œuvre une menace pour le système. S’il était possible d’identifier et de corriger toutes les vulnérabilités d’un système, celui-ci serait totalement résistant aux attaques. Cependant, tous les systèmes présentent des vulnérabilités et sont donc attaquables.

Pare-feu d’application Web (WAF).

Une contre-mesure commune qui surveille et filtre le trafic HTTP.

Les WAF examinent le trafic web pour détecter des types d’attaques spécifiques qui dépendent de l’échange de messages réseau au niveau de la couche application.

applicationprotectionsécurité