Types courants de vulnérabilités de sécurité et moyens de les corriger

Publié: 2022-07-11

Une vulnérabilité dans le serveur Exchange de Microsoft a contribué à une grande série de cyberattaques affectant plus de 60 000 entreprises privées aux États-Unis. Et à peine un mois plus tôt, une entreprise aérospatiale, Bombardier, avait vu les données de ses employés et de ses fournisseurs piratées en raison de faiblesses dans son application tierce de transfert de fichiers.

Il existe de nombreux types de vulnérabilités de sécurité qui peuvent mettre votre système informatique sur le radar des pirates. Des mauvaises pratiques de codage aux composants externes défectueux, quelle qu'en soit la raison, de nombreuses entreprises finissent par être exposées. Pour atténuer ce problème, les entreprises bénéficient de services d'assurance qualité et de test pour évaluer leurs propres logiciels et réseaux et évaluer les risques de sécurité des composants de fournisseurs externes.

Alors, quels types de vulnérabilités de sécurité peuvent exposer votre système aux cybermenaces en ce moment même ? Comment les vulnérabilités apparaissent-elles ? Et comment pouvons-nous les atténuer ?

Qu'est-ce qu'une vulnérabilité logicielle et d'où provient-elle ?

Une vulnérabilité de sécurité est une caractéristique non intentionnelle d'un système ou d'un composant qui amplifie le risque d'intrusion ou de perte de données, soit par exposition accidentelle, attaque intentionnelle ou conflits avec de nouveaux composants. Une telle vulnérabilité peut être un défaut de conception, un bogue d'implémentation, une mauvaise configuration, etc.

Avant d'aller plus loin, clarifions la différence entre une vulnérabilité, un exploit et une menace.

  • Une vulnérabilité existe dans le système sans aucun effort de l'extérieur
  • Un exploit est la façon dont les intrus utilisent une faiblesse existante du système pour monter une attaque
  • Une menace est l'incident réel lorsqu'un ou plusieurs exploits utilisent une vulnérabilité pour pénétrer dans un système

Les experts en sécurité peuvent éliminer les vulnérabilités dès leur découverte à l'aide de correctifs logiciels, de remplacement de matériel et de reconfiguration du système. La formation des utilisateurs finaux aux pratiques de sécurité et la mise à jour de tous les composants permettront également de prévenir et de minimiser les vulnérabilités. De plus, les équipes de sécurité doivent garder à l'esprit qu'à mesure que les systèmes évoluent, de nouvelles faiblesses apparaissent. Par conséquent, les entreprises doivent analyser systématiquement leurs logiciels, leur matériel et leurs réseaux à la recherche de vulnérabilités émergentes et les corriger avant qu'elles ne soient découvertes et exploitées.

De nouvelles vulnérabilités de sécurité continuent d'apparaître rapidement, alors que la base de données nationale des vulnérabilités (NVD) du gouvernement américain a publié plus de 8 000 nouvelles entrées au cours du premier trimestre 2022. Avec ce rythme rapide, de nombreuses entreprises ne peuvent pas suivre et laissent des faiblesses ouvertes pendant des années, exposant leur systèmes. Une étude des vulnérabilités logicielles a révélé que 75 % des attaques montées en 2020 exploitaient des expositions datant d'au moins deux ans, tandis que 18 % s'appuyaient sur des faiblesses signalées en 2013 !

Comment les vulnérabilités de sécurité pénètrent-elles dans les logiciels et les réseaux ?

Selon des recherches, 75 % des applications développées par des éditeurs de logiciels ne sont pas conformes aux 10 principaux standards de l'Open Web Application Security Project (OWASP). Ces normes sont accessibles au public. Alors, pourquoi tant de personnes ne parviennent-elles toujours pas à produire une application sûre ? Voici les principales raisons :

Code tiers vulnérable et autres composants. Il est courant de réutiliser des composants tiers, car cela accélère considérablement le processus de développement. Cependant, les utilisateurs ont tendance à prendre la sécurité de ces composants à la légère et les déploient souvent sans évaluation approfondie. Il en va de même pour le code copié-collé à partir de sources, telles que Stack Overflow, sans évaluer sa sécurité.

Pratiques de codage non sécurisées. Des études récentes montrent que la sécurité n'est même pas sur le radar pour la plupart des développeurs. Dans une expérience explorant l'attitude de 1 200 développeurs, les chercheurs ont conclu que seuls 14 % considèrent la sécurité comme une priorité lors de l'écriture de code. Notez également que de nombreuses organisations exigent de leurs développeurs qu'ils produisent du code rapidement dans des délais serrés, ce qui ne laisse tout simplement pas de place pour une évaluation approfondie de la sécurité et entraîne des vulnérabilités de code.

Paysage des cyberattaques en évolution rapide. Les attaquants découvrent constamment de nouvelles façons de violer la sécurité des applications. Ainsi, des parties qui étaient considérées comme immunisées auparavant peuvent devenir vulnérables aujourd'hui. Si l'équipe informatique n'évalue pas systématiquement les vulnérabilités des applications et des réseaux et ne maintient pas tous les logiciels à jour, ce n'est qu'une question de temps avant que des faiblesses commencent à apparaître.

Classification des types de vulnérabilités de sécurité

Il existe deux plates-formes, OWASP et CWE, qui offrent une liste fiable et détaillée des vulnérabilités de sécurité. Ils mettent à jour leurs listes pour inclure toutes les faiblesses émergentes. Les deux ressources peuvent être utilisées pour former les programmeurs, les testeurs et les ingénieurs.

L'OWASP est une communauté mondiale à but non lucratif qui publie régulièrement la liste des 10 principales vulnérabilités logicielles de l'OWASP. Common Weakness Enumeration (CWE) est une composition de vulnérabilités logicielles et matérielles également développée par une communauté dédiée, et elle comprend 25 entrées.

Voici 18 des vulnérabilités de sécurité les plus importantes que nous souhaitons mettre en évidence dans cet article, triées par domaine. Celles-ci peuvent se manifester dans n'importe quel système informatique, tel que le cloud, les configurations basées sur l'IoT et les applications mobiles.

1. Absence de pratiques de cryptage solides

Même si le cryptage n'arrêterait pas une cyberattaque, il est essentiel de s'assurer que les données sensibles restent en sécurité même si leur plate-forme de stockage est violée. Les attaquants ne peuvent pas abuser des données cryptées tant qu'ils ne les ont pas décodées, ce qui donne à l'entreprise violée le temps de prendre les mesures nécessaires, telles que notifier les parties concernées et préparer des contre-mesures contre le vol d'identité.

Les recherches montrent que de nombreuses entreprises n'ont pas l'intention immédiate de chiffrer les données sur les clés USB, les ordinateurs portables et les ordinateurs de bureau. Et en parlant de réglementation sur la protection des données, le RGPD n'exige pas explicitement le chiffrement, mais le décrit comme des "mesures techniques et organisationnelles appropriées" pour la sécurité des données.

Dans son rapport sur le coût d'une violation de données, IBM a souligné que le chiffrement est l'un des facteurs les plus influents qui peuvent réduire le coût moyen des violations de données.

2. Exposition des données sensibles

Les données peuvent être exposées en raison d'une erreur humaine lorsqu'un employé négligent les télécharge dans une base de données publique ou un site Web. Mais ce type de vulnérabilité de sécurité peut également être pris en charge par des processus internes qui permettent en fait à un employé non autorisé d'accéder et de manipuler des données sensibles.

Egress, une entreprise de cybersécurité, a mené une enquête révélant que 83 % des organisations américaines ont accidentellement exposé des données sensibles par e-mail, partage de fichiers, logiciels de collaboration et applications de messagerie.

3. Protection insuffisante de la couche de transport

Ce type de vulnérabilité concerne l'échange d'informations entre le client et l'application serveur. Ces informations peuvent contenir des données sensibles, y compris les informations d'identification de l'utilisateur et les détails de la carte de crédit. Lorsque le transport des données n'est pas sécurisé, la communication peut être interceptée et les attaquants peuvent accéder aux données et déchiffrer le cryptage si des algorithmes faibles sont utilisés.

4. Composants système mal configurés et interactions risquées

La configuration incorrecte des composants et des interactions entre eux est un autre problème de sécurité que nous rencontrons souvent. Par exemple, lors de la configuration d'un système informatique, l'administrateur oublie de remplacer les paramètres par défaut du fabricant et de désactiver les listes de répertoires, laissant le système exposé. Un autre exemple est d'oublier de restreindre l'accès aux appareils extérieurs.

En parlant d'interactions, il est conseillé aux applications d'adopter une approche de confiance zéro et de considérer chaque entrée comme risquée avant qu'elle ne soit vérifiée et prouvée légitime. Cela aidera à éviter les attaques, telles que les scripts intersites, où les attaquants infusent une application avec des données non fiables.

Cet aspect est particulièrement pertinent pour les solutions basées sur le cloud. Une étude a rapporté que les mauvaises configurations de serveur ont contribué à 200 violations du cloud en deux ans. Une autre étude montre qu'environ 70 % des failles de sécurité dans le cloud commencent par une architecture défectueuse. Par exemple, un compartiment de stockage AWS mal configuré a exposé 750 000 demandes de certificat de naissance aux États-Unis en 2019.

5. Faible contrôle côté serveur

Ce type de vulnérabilité de sécurité représente tout ce qui peut mal tourner côté serveur, d'une mauvaise authentification aux mauvaises configurations de sécurité qui permettent des attaques, telles que la falsification de requêtes intersites où le navigateur d'un utilisateur émet des actions non autorisées sur le serveur à l'insu de cet utilisateur.

Par exemple, une mauvaise configuration dans un serveur de base de données peut rendre les données accessibles via une recherche Web de base. Et s'il contient des informations d'identification d'administrateur, les intrus peuvent accéder au reste du système.

6. Exécution de code à distance

Cela signifie que les vulnérabilités de sécurité logicielle présentées par votre système permettent aux intrus d'exécuter du code malveillant sur Internet sur vos appareils. Par exemple, lorsqu'un employé clique sur un lien de courrier électronique sur un site Web tiers, le pirate à l'origine de cette configuration injecte un logiciel malveillant dans l'ordinateur de la victime et prend le contrôle à partir de là. L'étranger peut accéder à des données sensibles ou verrouiller la machine et exiger une rançon.

7. Vulnérabilités connues basées sur le système d'exploitation

Chaque système d'exploitation a sa liste de vulnérabilités logicielles. Certaines listes sont publiées en ligne pour que tout le monde puisse les voir. Par exemple, voici la liste des 10 principales faiblesses du système d'exploitation Windows 10, et voici la liste correspondante pour OS X. Il appartient aux équipes de sécurité de revoir ces points et d'y remédier pour minimiser les ouvertures d'attaques.

8. Exécution de scripts sans vérification antivirus

Il s'agit d'un type de vulnérabilité de sécurité courant présent dans certains navigateurs Web. Par exemple, Safari permet d'exécuter des scripts "de confiance" sans autorisation explicite de l'utilisateur. Les pirates ont tendance à exploiter cette faiblesse en essayant d'exécuter un morceau de code malveillant qui peut être confondu avec un script "sûr". Heureusement, il est souvent possible de désactiver cette "fonctionnalité".

9. Faiblesse des titres de compétence

Les intrus peuvent y accéder en forçant brutalement les informations d'identification des utilisateurs. C'est particulièrement facile lorsque le seul mot de passe « 123456 » est utilisé par plus de 23 millions de personnes. Cela s'ajoute aux mots de passe, tels que "admin", "password" et "qwerty", qui sont également courants et plutôt faciles à pirater.

Ce type de vulnérabilité logicielle est considéré comme d'origine humaine, mais les entreprises peuvent mettre en œuvre des mesures qui obligeraient les employés à choisir des options plus solides et à modifier leurs informations d'identification assez souvent. Ceci est crucial, étant donné le rôle que joue la faible accréditation dans la sécurité du système. Les statistiques montrent que 80 % des failles de sécurité ont été activées par des mots de passe faibles et que 61 % des utilisateurs ont tendance à utiliser une phrase de sécurité pour plusieurs services.

10. Utilisation de composants avec des vulnérabilités connues

Le déploiement de composants tiers, tels que des bibliothèques, des API, des ensembles de données et des frameworks, peut réduire considérablement l'effort requis pour que votre système soit opérationnel. Mais cela peut aussi introduire des vulnérabilités. Il est important de rester diligent et d'évaluer ces composants pour s'assurer qu'ils ne laissent aucune porte dérobée ouverte pour accéder aux données sensibles.

Même le téléchargement et l'utilisation d'images tierces peuvent être dangereux. En 2021, 30 images Docker Hub avec un volume de téléchargement de 20 millions, ont été déployées pour diffuser des logiciels malveillants de cryptominage.

11. Conception non sécurisée

Il s'agit d'un type de vulnérabilité de sécurité relativement nouveau qui est apparu sur l'OWASP en 2021. L'organisation demande des modèles de conception sécurisés, une modélisation des menaces et une architecture de référence pour éliminer les faiblesses dès le début.

La conception sécurisée est une méthodologie qui évalue en permanence les menaces et assure la robustesse du code. Il encourage les tests systématiques par rapport aux méthodes d'attaque connues. Il considère la sécurité comme un élément essentiel du développement logiciel, et non comme un module complémentaire ou une fonctionnalité intéressante.

12. Bogues de sécurité dans les API

Les interfaces de programmation d'applications (API) permettent aux composants logiciels d'interagir les uns avec les autres, ce qui est une partie essentielle d'un système informatique. Cependant, les API avec des mesures de sécurité faibles peuvent ouvrir plusieurs failles, telles qu'une authentification cassée et autoriser l'injection de code et d'autres pratiques malveillantes.

Par exemple, une API construite de manière imprudente, qui s'appuie sur le côté client pour filtrer les informations avant de les présenter aux utilisateurs, peut exposer des données, les rendant disponibles à l'achat. Les données sensibles doivent être filtrées côté serveur. Voici un autre exemple de ce type de vulnérabilité de sécurité : si une API ne limite pas le nombre de requêtes entrantes, elle peut ouvrir la possibilité d'attaques par déni de services (DoS).

Voici la liste OWASP des 10 principales vulnérabilités de sécurité liées à l'API à prendre en compte. Les API non sécurisées ont ouvert la porte à de nombreuses attaques au cours des dernières années. Un exemple tristement célèbre vient de LinkedIn, car un acteur malveillant a utilisé l'API sans authentification de la plate-forme pour télécharger les données de 700 millions d'utilisateurs. À l'aide d'une violation d'API similaire, un intrus a récupéré des informations sur 1,3 million d'utilisateurs de Clubhouse et les a publiées sur un forum de pirates.

13. Authentification inadéquate

Des mesures d'authentification faibles permettent aux pirates d'exploiter l'option "Mot de passe oublié" pour réinitialiser les comptes ou lancer une attaque de prise de contrôle de compte. Cela aide l'intrus lorsque la question d'authentification est quelque chose comme la date de naissance ou le nom de l'animal de compagnie de l'utilisateur, car il s'agit d'informations accessibles au public grâce aux médias sociaux. Suivre un processus d'authentification multifacteur augmentera la sécurité. Malheureusement, les recherches montrent que seulement 26 % des entreprises américaines utilisent cette méthode d'authentification forte.

14. Surveillance et journaux insuffisants

Les journaux stockent des données sur les événements système, les activités réseau et les actions des utilisateurs. En surveillant les journaux, les équipes de sécurité peuvent observer toutes les activités qui ont eu lieu récemment et identifier les événements suspects. Si les journaux ne sont pas examinés systématiquement, cela crée un manque d'informations dans lequel les vulnérabilités logicielles et les activités malveillantes ne sont pas détectées.

15. Privilèges de superutilisateur

Moins un utilisateur peut accéder à des données, moins son compte peut être endommagé s'il est compromis. Cependant, certaines entreprises accordent encore par négligence des privilèges de superutilisateur à gauche et à droite et ne limitent pas l'accès des employés à ce dont ils ont besoin pour s'acquitter de leurs tâches quotidiennes. Si un intrus s'empare d'un compte de niveau administrateur, il peut désactiver le logiciel antivirus et le pare-feu, installer des applications nuisibles, s'approprier des fichiers, etc.

Selon les recherches, 74 % des violations de données commencent par l'abus d'informations d'identification privilégiées.

16. Logiciel obsolète

La plupart des entreprises réalisent qu'une mise à jour logicielle en temps opportun est la clé d'un système sécurisé. Cependant, il semble que seuls quelques-uns suivent réellement cette pratique. Cybernews rend compte d'une étude récente portant sur la fréquence des mises à jour logicielles. Cette recherche a été menée sur une période de 18 mois et a révélé que 95 % des sites Web examinés fonctionnent en fait sur des logiciels obsolètes présentant des vulnérabilités connues. L'équipe de recherche a également découvert qu'un produit logiciel moyen a généralement quatre ans de retard sur son dernier correctif.

De plus, Kaspersky a déterminé que les entreprises qui utilisent des logiciels obsolètes sont susceptibles d'encourir 47 % de coûts supplémentaires en cas de violation.

Pour donner un exemple, la chaîne hôtelière Marriott avait 500 millions d'enregistrements de données compromis dans une faille de sécurité résultant d'un logiciel non corrigé.

17. Vulnérabilités dans le code source

Les vulnérabilités du code s'infiltrent au cours du développement logiciel. Par exemple, un programme peut transmettre des données sensibles sans cryptage ou utiliser une chaîne aléatoire, qui n'est pas réellement aléatoire. De telles erreurs sont souvent détectées lors de la phase de test du logiciel.

Selon une récente enquête Secure Code Warrior, 86 % des développeurs participants ont admis qu'ils ne considéraient pas la sécurité des applications comme une priorité absolue lors de l'écriture d'un code, 36 % attribuant cela à des délais serrés. L'enquête a également révélé que 33 % des personnes interrogées ne comprennent même pas ce qui rend leur code vulnérable.

18. Injection SQL

Ce type de vulnérabilité de sécurité concerne les sites Web et les applications optimisés par Structured Query Language (SQL). Il permet à l'attaquant de modifier les instructions SQL fournies par l'utilisateur et de tromper l'interpréteur pour exécuter des commandes involontaires et accorder l'accès à la base de données. De cette façon, les intrus peuvent manipuler les données sensibles en remplaçant/supprimant/modifiant les champs sensibles.

Il s'agit d'une vulnérabilité assez ancienne qui représentait déjà plus de 65 % des attaques contre les applications logicielles en 2019.

Types de vulnérabilités de sécurité spécifiques au système et comment prévenir ces vulnérabilités logicielles

Après avoir mis en évidence les vulnérabilités de sécurité courantes, passons aux faiblesses spécifiques aux applications et au système et découvrons comment en protéger vos systèmes.

Le nuage

Il existe une longue liste de types de vulnérabilités de sécurité possibles dans le cloud, qu'il s'agisse d'Azure, d'AWS, de GCP ou de tout autre fournisseur de cloud. Notre expert en cloud, Alexey Zhadov, divise ces vulnérabilités par couches et donne des conseils pour les prévenir.

Vulnérabilités de la couche système

Quel que soit le service cloud sur lequel votre logiciel s'exécute, il y a toujours un système d'exploitation sous le capot. Même si vous ne pouvez accéder qu'à un panneau de contrôle pour votre ressource. Chaque système d'exploitation a ses "trous" et ses "portes dérobées". Les développeurs de systèmes d'exploitation recherchent constamment ces faiblesses, essayant de couvrir les bases. C'est pourquoi il est important de maintenir vos logiciels à jour et d'être au courant des derniers développements dans le domaine de la cybersécurité sur les problèmes connus.

Vulnérabilités de la couche réseau

Chaque ressource cloud s'exécute sur un réseau cloud. Et avec cela vient la possibilité de se connecter à la ressource en externe. L'équipe de sécurité doit s'assurer que la configuration du réseau est adéquate. N'ouvrez jamais de ports que vous ne prévoyez pas de déployer, utilisez la liste blanche des adresses IP que vous connaissez et des réseaux qui devraient se connecter à votre solution. Soyez prudent lorsque vous ouvrez une connexion directe aux ports RDP/SSH à partir de n'importe quel endroit autre que des adresses IP connues.

Vulnérabilités de la couche de configuration

Le cloud doit être correctement configuré en fonction des besoins et des objectifs de l'utilisateur, et cette configuration doit être toujours maintenue à jour. Configurez des politiques et des procédures de gestion de la configuration et surveillez toute activité suspecte.

Vulnérabilités des facteurs humains

N'oubliez pas les utilisateurs finaux et les administrateurs qui ont accès à la solution cloud. Le piratage de compte est l'une des faiblesses les plus courantes de tout système informatique. Si un intrus accède aux informations d'identification du compte de quelqu'un, il peut librement entrer et manipuler le système dans les droits du compte, et personne ne l'arrêtera jusqu'à ce qu'il reçoive une notification de l'utilisateur piraté. Voici la liste des types de vulnérabilités de sécurité les plus courants dans les applications cloud :

  • Réseaux et pare-feux mal configurés
  • Stockage cloud mal configuré
  • API non sécurisées
  • Mauvaise gestion des accès
  • Piratage de compte
  • Initiés malveillants
  • Vulnérabilités du système
  • Vulnérabilités de la location partagée
  • Absence d'authentification multifacteur pour les utilisateurs et les appareils qui souhaitent rejoindre le réseau

Alexey recommande quelques règles simples que les entreprises peuvent mettre en œuvre pour protéger leurs systèmes cloud :

  • Maintenir les systèmes d'exploitation à jour
  • Protégez vos réseaux
  • Utilisez des serveurs bastions pour accéder à votre périmètre fermé
  • Configurer les groupes de sécurité réseau et les listes de contrôle d'accès
  • Restreindre l'accès aux ports inutiles
  • Configurer la surveillance et la journalisation lorsque cela est possible
  • Mettre en œuvre un contrôle d'accès multifacteur pour tous les utilisateurs
  • Utiliser des pare-feu et une protection DDoS
  • Utilisez des outils cloud pour vérifier la conformité aux normes de sécurité, comme Azure Security Center

des applications Web

Alexey a également pesé sur les problèmes de sécurité logicielle qui hantent les applications Web. En exploitant ces vulnérabilités, les attaquants peuvent causer de graves dommages à l'application et à l'organisation dans son ensemble. Voici les attaques d'applications Web les plus courantes résultant de vulnérabilités de sécurité des applications Web :

  • Injection SQL
  • Scripts intersites
  • Traversée de chemin
  • Exécution de commandes à distance

Si les cybercriminels lancent ces attaques avec succès, ils peuvent implanter des logiciels malveillants, compromettre des comptes d'utilisateurs, accéder à des informations restreintes, etc. Alors, comment tester les logiciels pour détecter les vulnérabilités ? Alexey recommande d'effectuer des tests de sécurité des applications Web pour évaluer les paramètres suivants :

  • Validation des entrées. Comment l'application peut-elle traiter les entrées, et peut-elle repérer et bloquer les entrées malveillantes ?
  • Paramétrage du serveur. Utilise-t-il une méthode de cryptage forte ?
  • Gestion de l'authentification. Quels types d'autorisation sont appliqués ? Les utilisateurs peuvent-ils opter pour des mots de passe faibles ?
  • Possibilités d'autorisation. L'application peut-elle se protéger contre les élévations de privilèges ?
  • Logique commerciale. Les utilisateurs peuvent-ils insérer des données invalides ? Peuvent-ils ignorer les étapes d'authentification ? Est-il possible que les utilisateurs nuisent à l'intégrité de l'application et de ses données ?

Applications mobiles

En parlant de sécurité des applications mobiles, nous ne pouvons pas ignorer les types de vulnérabilités de sécurité présentés par l'appareil lui-même en plus de l'application. Alexey Zhadov, notre expert cloud et mobile, a également partagé des problèmes communs qui affectent les applications mobiles :

  • Faible contrôle côté serveur
  • Stockage de données non sécurisé
  • Protection insuffisante de la couche de transport
  • Fuite de données involontaire
  • Mauvaise autorisation et authentification
  • Mauvaise cryptographie
  • Injection côté client
  • Entrées non fiables
  • Mauvaise gestion des sessions
  • Absence de protection binaire
  • Utilisation incorrecte du système d'exploitation
  • Trafic non sécurisé et appels d'API
  • Falsification de code et appareils jailbreakés
  • Journalisation et surveillance inadéquates
  • Mauvaises configurations de sécurité

Pour sécuriser les applications mobiles, Alexey recommande quelques pratiques simples que les entreprises peuvent mettre en œuvre dans la conception et la maintenance des applications :

Évaluation du code open source : la plupart des applications mobiles utilisent des bibliothèques tierces open source disponibles pour tout le monde. Cela rationalise le processus de développement, mais ouvre également des portes dérobées aux intrus potentiels. Il est donc obligatoire de tester rigoureusement le code tiers pour les vulnérabilités de sécurité logicielle avant de l'incorporer dans l'application.

Pratiques de cryptographie solides : chiffrez et déchiffrez les données pendant le transfert. Avec une technique de cryptage de données solide, les données d'application, telles que le code source, les informations utilisateur et les identifiants de connexion, le stockage de votre application sera sécurisé. Une fois les données cryptées, les pirates ne pourront pas les interpréter même s'ils accèdent au contenu original.

Certificat de signature de code : les développeurs peuvent signer des applications mobiles pour les protéger des cyberattaques et gagner la confiance des utilisateurs. Une telle signature garantit que le code n'a pas été interprété ou modifié après la signature de l'application. L'équipe de sécurité peut trouver plusieurs options de certificat de signature de code avec des étiquettes de prix modestes. Cette pratique est à la fois rentable et fiable.

Protection du cache de données : les données mises en cache contiennent des informations extraites de l'application pour aider à une réouverture plus rapide afin d'améliorer les performances de l'application. Le cache de données est généralement stocké sans mesures de sécurité supplémentaires sur l'appareil d'un utilisateur. Il est plus sûr de générer un mot de passe et de verrouiller l'application. De plus, Alexey vous recommande d'effacer fréquemment les données mises en cache et de vous connecter à l'aide d'une connexion réseau sécurisée.

Stockage sécurisé des données : chaque application contient des données que les intrus peuvent utiliser à mauvais escient. Il comprend à la fois les informations des utilisateurs et du développeur de l'application. Par conséquent, il est essentiel de stocker ces données en toute sécurité dans un stockage cloud sécurisé, au lieu de s'appuyer sur des unités de stockage locales.

Techniques d'authentification et d'autorisation : Il est indispensable de mettre en place une authentification multi-facteurs pour éviter le vol de données. Il comprend l'ID utilisateur, le mot de passe, le code PIN, l'OTP, etc. L'autorisation doit toujours avoir lieu côté serveur pour vérifier les rôles et les autorisations des utilisateurs authentifiés.

Effacement des données et verrouillage de l'appareil : cette fonctionnalité est principalement utilisée dans les applications contenant des données confidentielles, telles que des informations personnelles, financières, de santé, etc. Il s'agit d'une couche de sécurité où les données distantes sont effacées après plusieurs tentatives de connexion infructueuses du côté de l'utilisateur, et le l'application est verrouillée automatiquement. Il interdit également aux utilisateurs de choisir un numéro séquentiel pour leurs mots de passe au lieu de lettres majuscules, de caractères spéciaux, d'alphabets, de chiffres, etc.

Contre-action de l' ingénierie inverse : les pirates utilisent l'ingénierie inverse pour altérer les fonctionnalités de l'application. En accédant au code source de l'application, les pirates peuvent contourner le processus d'authentification, falsifier leur emplacement et voler les données. L'application de la sécurité d'exécution est primordiale pour contrer l'ingénierie inverse. Il empêche les intrus de modifier les fonctions internes d'une application en modifiant sa structure de code pour affecter le comportement de l'application.

Solutions IdO

Ce qui rend les solutions IoT uniques du point de vue de la sécurité, c'est que les capacités de chaque appareil sont limitées par ses exigences d'utilisation. Il n'y a pas de place pour mettre en œuvre des fonctionnalités de sécurité sophistiquées qui consomment de la capacité supplémentaire, de la mémoire ou de l'énergie, ce qui rend les appareils IoT vulnérables.

Notre expert IoT, Yahor Paloika, met en évidence les types de vulnérabilités de sécurité suivants dans les appareils connectés :

  • Identifiants codés en dur. Les appareils IoT sont livrés avec des mots de passe codés en dur que les administrateurs oublient parfois de changer, donnant aux pirates la possibilité de pénétrer facilement dans le système en utilisant ces informations d'identification bien connues.
  • Réseaux non protégés. Certains réseaux n'appliquent pas d'authentification forte, ce qui permet aux intrus d'ajouter des appareils, de reconfigurer la configuration pour modifier le flux de données, d'intercepter les données et d'injecter leurs propres données pour imiter les lectures des capteurs.
  • Gestion des mises à jour faible. De nombreux appareils IoT fonctionnent de manière indépendante et ne dépendent pas des interférences humaines pour effectuer les mises à jour. Dans ce cas, un système de gestion des mises à jour est chargé de s'assurer que les mises à jour automatiques arrivent via un canal crypté, proviennent d'une source vérifiée et ne sont pas corrompues. Si un tel système est faible, il permettra aux intrus de corrompre le logiciel et le micrologiciel mis à jour, modifiant ainsi le comportement de l'appareil.
  • Modules de code obsolètes. Oublier d'éliminer les modules obsolètes qui ne sont plus utilisés donne aux pirates suffisamment de temps pour explorer leurs problèmes de sécurité logicielle et trouver des failles pour pénétrer dans le système. Tous les modules qui ne font pas partie des fonctionnalités des appareils connectés doivent être supprimés.
  • Protection des données. Toutes les données circulant à l'intérieur du réseau IoT doivent être cryptées, et seuls les utilisateurs autorisés peuvent y avoir accès.

Le piratage des systèmes IoT peut avoir un effet dévastateur. Par exemple, dans une expérience, une équipe de chercheurs pourrait pénétrer le logiciel des appareils IoT dans le Jeep Cherokee et envoyer des commandes malveillantes via le système de divertissement du Jeep. Ils ont altéré la climatisation, baissé la température, allumé les pare-brise et ensuite, à la grande horreur du conducteur, ils ont désactivé les freins. Heureusement, ce n'était qu'une expérience. Voici quelques conseils que Yahor recommande pour protéger les systèmes IoT :

  • Utiliser un protocole cryptographique à forte sécurité existant, tel que Transport Layer Security (TLS), pour prendre en charge la communication dans un réseau IoT et compenser le manque de sécurité intégrée
  • Disposer d'un sous-système moderne de gestion des clés et des certificats intégrés, qui fournit le niveau de cryptage et de sécurité requis. En outre, Yahor recommande de mettre à jour les clés et les certificats une fois tous les six mois au moins
  • Mettre en place un système fiable de gestion des mots de passe pour générer des mots de passe forts et les changer systématiquement
  • Implémentez un système de gestion des mises à jour qui n'autorisera que les mises à jour sécurisées provenant d'une source légitime, bloquant toute tentative de forcer des modifications corrompues

Solutions IA

Il y a un aspect qui différencie considérablement les solutions d'intelligence artificielle (IA) et d'apprentissage automatique (ML) du reste des systèmes mentionnés dans cet article - c'est le fait que ces modèles sont souvent formés pour faire des prédictions, et ce processus de formation introduit plusieurs types de failles de sécurité. Notre expert en intelligence artificielle, Maksym Bochok, a mis en évidence les faiblesses les plus courantes :

  • L'attaquant peut altérer l'ensemble de données d'entraînement et forcer le modèle à apprendre de fausses règles et à faire des prédictions erronées
  • Les ingénieurs ML peuvent opter pour des modèles pré-formés existants qu'ils trouvent en ligne, et ces modèles peuvent déjà être malveillants. Par exemple, ils peuvent contenir le virus cheval de Troie ou d'autres logiciels malveillants.
  • L'intrus peut s'emparer de l'algorithme lui-même et ajuster le code, les poids et d'autres paramètres pour modifier le comportement du modèle.

De plus, l'IA est souvent associée à d'autres technologies, telles que l'IoT et le cloud, ce qui la rend sensible aux types de vulnérabilités de sécurité introduites par ces systèmes.

Pour sécuriser les systèmes d'IA, notre expert recommande ce qui suit :

  • Lorsque vous utilisez des modèles pré-formés et des ensembles de données externes, vérifiez qu'ils ne contiennent aucun logiciel malveillant
  • Testez systématiquement vos algorithmes pour obtenir le résultat souhaité afin de vous assurer que personne n'a altéré les règles de correspondance ou n'a introduit de biais, etc.
  • Surveiller les dérives de données (changements dans les données d'entrée)
  • Détecter les valeurs aberrantes, car les intrus peuvent insérer des données potentiellement dangereuses pour fausser le modèle vers la sortie souhaitée
  • Recherchez toutes les valeurs aberrantes possibles dans votre jeu de données d'entraînement
  • Utilisez des outils généraux d'évaluation de la sécurité de l'IA, tels que Counterfit. Cela aidera à garantir que les algorithmes sont fiables et robustes.
  • Bénéficiez des outils de protection des données existants et protégez les données confidentielles lorsqu'elles sont stockées et utilisées. Un exemple est l'outil Imperva qui peut servir de pare-feu externe.

Sur une note finale

Si vous êtes une entreprise prospère, il y a de fortes chances que quelqu'un tente de pénétrer votre système pour demander une rançon ou pour nuire à votre réputation. Et comme les pirates sont constamment à la recherche de failles à exploiter, votre équipe informatique travaille à réduire les risques. Pour vous assurer de gagner cette course, consultez une société de sécurité et de test expérimentée qui vous aidera à évaluer l'état de votre système et vous donnera des recommandations sur la façon de l'améliorer.

Et en attendant, pour éviter que différents types de failles de sécurité n'exposent vos applications, faites attention à la configuration de votre système, assurez-vous que tous vos logiciels sont à jour et formez vos employés aux pratiques sécurisées.

Vous avez des doutes sur la sécurité de votre système existant ? Ou souhaitez-vous créer une application dans un souci de sécurité ? Laissez tomber l'équipe ITRex une ligne! Nos experts en sécurité testeront votre matériel et vos logiciels pour détecter les vulnérabilités et suggéreront des améliorations.


Publié à l'origine sur https://itrexgroup.com le 6 juillet 2022.