Sécurité des mises à jour logicielles

D'un traducteur: je suis tombé sur TheUpdateFramework lors de la recherche de bibliothèques qui implémentent des mises à jour logicielles automatiques sur le bureau. D'une part, la description des aspects de sécurité des systèmes de mise à jour logicielle présentée ci-dessous était intéressante et détaillée pour moi; de l'autre - bien sûr, en plus de la recherche universitaire, bien que sous l'aile de LinuxFoundation, vous pouvez trouver de nombreuses solutions appropriées. Vous pouvez suggérer des options dans les commentaires.


TheUpdateFramework


La sécurité


Nous pouvons considérer un système de mise à jour logicielle comme «sûr» si:


  • elle s'informera des dernières mises Ă  jour disponibles en temps opportun
  • tous les fichiers tĂ©lĂ©chargĂ©s par le système de mise Ă  jour sont corrects, et
  • aucune consĂ©quence nĂ©faste de la vĂ©rification ou du tĂ©lĂ©chargement de fichiers.

Pour y parvenir, des stratégies de prévention réalisables sont nécessaires contre de nombreuses attaques potentielles.


Attaques et faiblesses


Voici quelques-unes des attaques connues contre les systèmes de mise à jour logicielle, y compris les faiblesses qui rendent ces attaques possibles. Pour concevoir un cadre de mise à jour logicielle sécurisé, vous devez comprendre ces attaques et développer des stratégies de protection. Certaines de ces lacunes peuvent être liées les unes aux autres, selon l'architecture et la mise en œuvre d'un système de mise à jour logicielle particulier.


  • Installez un logiciel personnalisĂ© . Un attaquant peut substituer des fichiers arbitraires en rĂ©ponse aux demandes de tĂ©lĂ©chargement et installer tout ce qu'il veut dans le système client, mĂŞme sans dĂ©terminer l'illĂ©galitĂ© de telles actions.
  • Mises Ă  jour de l'attaque . L'attaquant fournit au système de mise Ă  jour logicielle des fichiers d'une version antĂ©rieure Ă  celle actuellement installĂ©e sur le client. L'utilisateur installe une version qui peut contenir des vulnĂ©rabilitĂ©s, sans pouvoir dĂ©couvrir que cette version est obsolète. Plus tard, des vulnĂ©rabilitĂ©s peuvent ĂŞtre exploitĂ©es par un attaquant.
  • Rembobinez les attaques . L'attaquant augmente arbitrairement le numĂ©ro de version, ce qui le rend beaucoup plus Ă©levĂ© que la valeur actuelle, trompant ainsi le système de mise Ă  jour logicielle et le forçant Ă  croire que toute mise Ă  jour successive tente en fait de restaurer la version logicielle vers une version antĂ©rieure obsolète. Dans certaines situations, par exemple, s'il existe le numĂ©ro de version maximum possible, le criminel peut utiliser ce maximum afin que le système de mise Ă  jour ne puisse jamais installer une nouvelle mise Ă  jour.
  • Attaques de gel illimitĂ© . L'attaquant continue de renvoyer des fichiers que le client a dĂ©jĂ  vus au système de mise Ă  jour logicielle. En consĂ©quence, le client reste dans l'ignorance des nouvelles versions de logiciel.
  • Attaques de donnĂ©es sans fin . En rĂ©ponse Ă  une demande de tĂ©lĂ©chargement, l'attaquant renvoie un flux de donnĂ©es sans fin, causant directement des dommages au client (par exemple, le remplissage d'un disque ou d'une RAM).
  • Attaque une rĂ©ponse lente . L'attaquant rĂ©pond aux clients avec un flux de donnĂ©es très lent, ce qui conduit finalement au fait que le client ne peut pas terminer le processus de mise Ă  jour.
  • Attaques de dĂ©pendances excessives . L'attaquant informe le client que l'installation du logiciel requis nĂ©cessite Ă©galement l'installation de logiciels tiers ( hi, mail.ru - approx. Per. ). Ce logiciel tiers peut provenir d'une source fiable, mais prĂ©sente nĂ©anmoins des vulnĂ©rabilitĂ©s connues qu'un attaquant pourrait exploiter.
  • Attaques mixtes combinĂ©es . L'attaquant renvoie au client un instantanĂ© du rĂ©fĂ©rentiel qui contient des fichiers qui n'ont jamais existĂ© en mĂŞme temps dans la mĂŞme rĂ©vision. Cela peut entraĂ®ner l'installation de versions obsolètes des dĂ©pendances et d'autres consĂ©quences plus complexes.
  • Installation d'autres logiciels . L'attaquant renvoie un fichier de confiance au client, ce qui n'est tout simplement pas ce que le client voulait installer.
  • Miroirs malveillants qui empĂŞchent les mises Ă  jour . Un attaquant contrĂ´le l'un des miroirs du rĂ©fĂ©rentiel et peut l'utiliser pour empĂŞcher les clients de recevoir des mises Ă  jour d'autres miroirs non infectĂ©s.
  • VulnĂ©rabilitĂ©s de compromis clĂ©s . Un attaquant qui peut compromettre une seule clĂ© du système (ou plusieurs clĂ©s, dont le nombre ne dĂ©passe pas un seuil spĂ©cifiĂ©), peut compromettre les clients. Ces attaques peuvent se produire Ă  la fois dans le cas de l'approbation d'une seule clĂ© en ligne (par exemple, lors de la protection des mises Ă  jour uniquement avec le cryptage SSL) et dans le cas d'une seule clĂ© hors ligne (pour la plupart des systèmes de mise Ă  jour logicielle qui utilisent des clĂ©s pour la signature).

Principes de sécurité


Afin de s'assurer que le système est protégé contre toutes les attaques décrites ci-dessus, l'architecture et la mise en œuvre du Framework de mise à jour (TUF) reposent sur plusieurs concepts de base. Des détails sur la façon dont TUF transmet les informations décrites ci-dessus peuvent être trouvés dans la documentation des métadonnées .


Confiance


Faire confiance aux fichiers téléchargés signifie en fait supposer que les fichiers ont été fournis par une partie sans solutions architecturales vulnérables. Les deux aspects souvent insaisissables de la confiance dans un système de mise à jour logicielle sont les suivants:


  • La confiance ne doit pas ĂŞtre accordĂ©e pour toujours. La confiance doit ĂŞtre rĂ©voquĂ©e si elle n'est pas mise Ă  jour.
  • La confiance ne devrait pas ĂŞtre accordĂ©e de manière Ă©gale Ă  tous les participants. Ce type d'approbation partagĂ©e signifie que vous ne pouvez approuver que les fichiers membres dont la fourniture par ce membre est spĂ©cifiĂ©e par le rĂ´le racine.

Réduction des risques clés (résistance au compromis)


Les signatures cryptographiques sont un élément essentiel de la sécurité des systèmes de mise à jour logicielle. La sécurité des clés utilisées dans ces signatures affecte directement la sécurité des clients que le système protège. Au lieu de croire naïvement que les clés privées ne peuvent jamais être compromises, les systèmes de mise à jour logicielle sécurisée devraient prévoir comment protéger les clients contre la possibilité de compromettre ces clés. C'est le principe de base de la résistance au compromis.


La sécurisation des clients lorsqu'une clé est compromise comprend:


  • Remplacement et rappel rapides et sĂ»rs des clĂ©s.
  • Confiance minimale dans les clĂ©s avec un risque Ă©levĂ© de compromis. Les clĂ©s qui sont stockĂ©es en ligne ou utilisĂ©es dans des systèmes d'automatisation ne devraient pas constituer une menace instantanĂ©e pour les clients en cas de compromis.
  • Utilisation de plusieurs clĂ©s et signatures de seuil / quorum.

Intégrité


La garantie de l'intégrité dans le cadre de mise à jour (TUF) s'applique non seulement aux fichiers individuels, mais également au référentiel dans son ensemble. Il est assez évident que les clients doivent vérifier que les fichiers individuels sont corrects. Déjà pas si évident, mais il est toujours très important pour les clients de s'assurer que l'audit du référentiel dans son ensemble est correct. Par exemple, si une source approuvée fournit deux fichiers, le système de mise à jour logicielle doit voir les dernières versions des deux fichiers (pas un seul), et uniquement les versions de ces deux fichiers qui existent à la fois dans le référentiel.


Pertinence


Étant donné que les mises à jour logicielles corrigent souvent des vulnérabilités, il est important que les systèmes de mise à jour logicielle obtiennent les dernières versions disponibles. Un attaquant peut tenter de forcer le client à installer des versions obsolètes du logiciel, ou simplement convaincre le client qu'il n'y a pas de nouvelles mises à jour.


Assurer la pertinence signifie:


  • N'acceptez jamais de fichiers plus anciens que ceux dĂ©jĂ  installĂ©s.
  • Identifiez les problèmes potentiels liĂ©s Ă  la rĂ©ception des mises Ă  jour.

Il convient de noter que si un attaquant répond aux demandes des clients, il n'est pas toujours possible d'effectuer une mise à jour réussie. Cependant, le client doit être en mesure de déterminer la probabilité de mises à jour qu'il ne peut pas recevoir.


Sécurité de mise en œuvre


En plus d'une architecture sécurisée, TUF fonctionne également contre les vulnérabilités de mise en œuvre, y compris les vulnérabilités communes aux systèmes de mise à jour logicielle. Dans certains cas, l'inclusion d'informations supplémentaires dans les métadonnées de mise à jour est utilisée à cet effet. Par exemple, la connaissance de la taille attendue du fichier téléchargé permet à TUF de limiter la quantité de données téléchargées. En conséquence, TUF est protégé contre l'attaque de données infinie discutée ci-dessus.

Source: https://habr.com/ru/post/fr464171/


All Articles