# CycloneDX v1.4 est disponible

par Xavier Calland

CycloneDX, le standard pour définir des Software Bill of Materials (SBOM) géré par l’OWASP sort en version 1.4, dont voici les principales nouveautés.

  • Vulnerability exploitability exchange (VEX)
    VEX permet aux éditeurs d’indiquer avec précision le risque lié aux vulnérabilités des composants et des services dans le contexte de leur logiciel, système ou appareil assemblé. Il s’agit d’un format à part destiné à être distribué indépendamment du SBOM, le SBOM est publié au moment de la release, et le VEX est mis à jour au fur et à mesure de la découverte de vulnérabilités sur les différents composants du SBOM pour indiquer dans quelle mesure et conditions le logiciel est ou non impacté.
  • Prise en charge améliorée des périphériques matériels
    Avec une taxonomie formelle et extensible, une large gamme de dispositifs matériels et de configurations peut être représentée dans votre MBOM (Manufacturing Bill of Materials).
  • Format commun des notes de version
    Cette nouvelle fonctionnalité standardise les notes de version dans un format commun lisible par machine, ce qui permet d’en envisager un traitement automatisé.
  • Liens profonds entre les BOM
    Grâce à la nouvelle fonctionnalité de liaison de BOM, il est possible de référencer un composant, un service ou une vulnérabilité à l’intérieur d’un BOM à partir d’autres systèmes ou d’autres BOM.

Cela devrait encore contribuer à améliorer le suivi des vulnérabilités et la sécurité des applications.

On attend avec impatience la gestion de ces nouveautés dans Dependency-Track, autre projet de l’OWASP qui fait partie de l’usine logicielle à Atol CD.

# Rector, le refactoring automatisé

par Axel Serrie

Rector est un outil initié par Thomas Votruba permettant de mettre à jour son code PHP. Rector prend en charge les mises à jour de PHP 5.3 jusqu’à la 8.1. Il est aussi capable de refactoriser votre code, vous aidant ainsi à améliorer la qualité de votre code, cela peut se faire assez simplement voire de façon automatique en l’intégrant directement à votre IDE.

En plus de pouvoir couvrir un large panel de versions, l’outil peut s’utiliser sur les plus gros frameworks, tels que Symfony, Laravel, CakePHP

Cependant, même si l’outil propose de bonne chose, il est important de continuer à reviewer car il est possible qu’il intègre des bugs, à cause d’une mauvaise compréhension de votre code.

Le projet est en open-source et est disponible sur Github.

# Obsolescence et compatibilité du Web

par Thomas Broyer

Au début du mois, Jim Nielsen racontait une anecdote d’un site Web qui ne fonctionnait plus sur l’iPad et la Chromebox de ses parents : page blanche. En creusant un peu, il s’aperçoit que le site utilise des fonctionnalités trop modernes pour les versions de Safari et Chrome installables sur ces appareils : des modèles un peu anciens qui ne peuvent pas être mis à jour par fin du support des fabricants. La seule solution pour les utilisateurs est de racheter du nouveau matériel pour bénéficier de logiciels à jour, alors que les développeurs de ce site aurait pu le rendre compatible avec ces plus anciennes versions de navigateurs, et pas forcément à grands frais. Cette situation résonne avec le récent rapport de l’ARCEP et l’ADEME sur l’empreinte environnementale du numérique en France qui confirme (nous le savions déjà) que c’est la fabrication du matériel qui pèse le plus sur l’environnement. Si on peut demander des contraintes de réparabilité et de mises à jour logicielles aux fabricants, le support ne sera jamais éternel.

Cet épisode nous rappelle donc que, malgré notre attrait naturel en tant que développeurs pour les nouveautés, il ne faut pas oublier l’amélioration progressive pour ne pas laisser de côté certains utilisateurs et/ou les forcer à renouveler leurs matériels, quitte à “couper la moutarde” : une expérience utilisateur même grandement dégradée sera toujours meilleure qu’une page blanche ou complètement inutilisable.