Slide 1

Slide 1 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org AboutCode stack Outils et données libres et ouverts Sécurisation de la chaîne d'approvisionnement logicielle Philippe Ombrédanne, Mainteneur principal chez AboutCode

Slide 2

Slide 2 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org Agenda 2 1. Introductions 2. Les défis de la sécurisation de la chaîne d'approvisionnement logicielle 3. Des outils libres pour la cybersécurité et la conformité 4. Software Heritage for open compliance 5. Le futur

Slide 3

Slide 3 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org A propos : Philippe et AboutCode ● Ma mission, le libre d'abord: Rendre plus facile l'utilisation des logiciels libre et ouverts, de façon sécurisée et efficace, avec des logiciels libre et des données ouvertes ○ Créateur de PURL, co-fondateur de SPDX et ClearlyDefined, contributeur à CycloneDX et expert SCA de confiance depuis 2007 ○ [email protected] | https://github.com/pombredanne https://www.linkedin.com/in/philippeombredanne ● Mainteneur principal de AboutCode : https://aboutcode.org ○ Outils open source et base de connaissances ouverte : ScanCode, VulnerableCode ○ Données de référence ouvertes: licenses, paquets, vulnérabilités ○ Standards simples et pratiques : Package-URL (PURL) et Version-Range (VERS) ○ Applis pour le juridique, la sécurité et les développeurs avec des API: DejaCode

Slide 4

Slide 4 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org 4 La lettre "A" dans le mot "Conformité" veut dire “Amusant” The letter "F" in "Compliance" is for Fun

Slide 5

Slide 5 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org 5 Les défis de la sécurisation de la chaîne d'approvisionnement logicielle

Slide 6

Slide 6 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org ● Définis par les licences libres “open source”, FOSS ○ Identifier les licences et la conformité avec ces licences est un problème non résolu ● Les logiciels modernes sont composés principalement de code ouvert ○ Commun de voire un produit ou un appli avec 99% du code libre/ouvert ○ Avec les pratiques de développement moderne, un appli peut facilement dépendre de plus de 10,000+ paquets tiers. ● Le conformité FOSS c’est les licences ET la sécurité ○ Une exigence pour toute organisation depuis les réglementations et mandats SBOMs ○ Il est très difficile de tracer tous les composants libres et ouverts - dépendances, licences, securite, et obligations de conformité - à cause du volume élevé et de la fréquence des changements ○ FOSS = Free and Open Source Software / Logiciels libres et ouverts ○ SBOM = Software Bill Of Material / Nomenclature or inventaire des composants logiciels Les logiciels libres et ouverts sont partout 6

Slide 7

Slide 7 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org 7 ● Toujours important, mais maintenant urgent avec la CRA et d'autres réglementations et toujours davantage d'attaques de cybersécurité ○ Effet disproportionné sur PME ayant les mêmes besoins de conformité que les grandes entreprises et les gouvernements, mais sans les ressources. Pas d'équipes de sécurité dédiées (généralement) ni de budget pour outils et processus coûteux ● L'analyse de la composition logicielle (SCA) est essentielle pour savoir quels composants sont réellement dans un logiciel ○ Comprend des processus pour identifier les composants, leurs licences et les vulnérabilités connues (comme la stack AboutCode) et évaluer la qualité du code (comme le projet CHAOSS) ■ Lire « SCA the FOSS Way » : https://www.nexb.com/software-composition-analysis/ ○ Essentiel pour se conformer aux réglementations émergentes, et produire des SBOMs ● Il est essentiel d’automatiser ces processus, impossible autrement ○ Impératif d'équilibrer les efforts de conformité et les impératifs de livraison des applis ○ Essentiel pour garantir la sécurité et l'intégrité de la chaîne d'approvisionnement des logiciels La conformité, c’est critique

Slide 8

Slide 8 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org 8 Cybersécurité pour logiciels modernes ● Explosion du volume de vulnérabilités publiées ● Explosion du nombre de sources de données sur les vulnérabilités ○ Chaque projet FOSS fournit des données de référence sur les vulnérabilités (bien), mais nécessite plusieures sources et formats pour accéder à toutes les données (mauvais) ● La plus grande menace = faux positifs et lassitude face aux vulnérabilités ○ Il est très difficile de trier et de gérer ces vulnérabilités à grande échelle ○ Les données sont de piètre qualité ● Inadéquation fondamentale entre les “vieilles” bases de données et le développement moderne, basé sur le FOSS ○ Les bases de données de vulnérabilités centralisées échouent, indexées par les CVE et CPE qui demandent un assignement manuel et inefficace. ○ La base NVD financée par le gouvernement américain n'est plus fiable, les CPE et CVSS n'étant plus attribués par faute de financement. Et ca ne vas pas s'améliorer.

Slide 9

Slide 9 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org ● Les outils commerciaux de sécurité sont inefficaces et au coût prohibitifs ○ De plus en plus chers; une ruée vers l’or avecs les SBOMs; tarification par utilisateur ■ Ruée vers l'or des éditeurs commerciaux pour vendre tout et n’importe quoi et à tout prix si ça concerne le CRA, les SBOMs, la conformité, les vulnérabilités, ou la cybersécurité ○ Inefficace pour une automation raisonnée des processus de conformité ■ Le coût de ces outils SCA est prohibitif: taux de faux positifs élevés et faible précision de détection de l'origine et de la licence des codes tiers ● Leurs données propriétaires sur les logiciels libres sont erronées ○ La plupart des données sur les paquets et les vulnérabilités des FOSS sont propriétaires?? ■ Certains éditeurs proposent des outils gratuits, mais données FOSS payantes?? ○ Les données de vulnérabilités et sécurité des FOSS doivent être gratuites et ouvertes!! ● La cybersécurité devrait être un droit fondamental ○ Des logiciels open source sécurisés, c’est un bien public 9 Propriétaire: ni évolutif, ni efficace

Slide 10

Slide 10 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org 10 Logiciels modernes -> FOSS et données ouvertes PASSÉ = Propriétaire ❌ Centré sur les vulnérabilités ❌ Données propriétaires ❌ Silos, lock-in ❌ Piloté par les éditeurs ❌ Centralisé ❌ Équipe de sécurité ❌ Réactif FUTUR = Open source ✅ Centré sur les paquets ✅ Données ouvertes ✅ Interopérable ✅ Axé sur la communauté ✅ Décentralisé, fédéré ✅ Équipe de sécurité + développeurs ✅ Proactif

Slide 11

Slide 11 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org 11 AboutCode stack : Des outils FOSS pour les licences et la cyber sécurité

Slide 12

Slide 12 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org AboutCode Stack

Slide 13

Slide 13 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org ● Du FOSS sur du FOSS! ● Rendre l'open source plus sûr à utiliser ● AVEC de l’open source et des données ouvertes ○ Outils SCA open source modulaires et intégrés, reconnus comme les meilleurs de leurs catégories ○ Adaptables aux processus, outils et environnements des équipes de développement avec une couverture pour tous les langages et frameworks de programmation ○ AboutCode travailles à résoudre les problèmes d'analyse de code les plus difficiles pour que vous n'ayez pas à le faire Pourquoi AboutCode ? [1] 13

Slide 14

Slide 14 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org ● Garantir une conformité ouverte et améliorer la sécurité de la chaîne d'approvisionnement logicielle ○ Application Web de gestion pour des politiques centralisées, les “curations” et la gestion des flux de conformité avec des données partagées entre les équipes commerciales, juridiques, ingénierie et de sécurité ○ Partagez efficacement la gestion des risques liés aux licences et vulnérabilités et les responsabilités en matière de licences, de sécurité et de conformité réglementaire au sein de votre organisation ○ Des pipelines d’analyse sur mesure permettent une véritable automatisation de bout en bout des processus SCA et de conformité cyber ● Une communauté active de contributeurs et d'utilisateurs ○ Tous les outils SCA, SBOMs open source et la plupart des outils propriétaires utilisent des outils et bibliothèques open source et des données ouvertes d’ AboutCode ○ Des services professionnels d'assistance technique et de conseil sont également disponibles Pourquoi AboutCode ? [2] 14

Slide 15

Slide 15 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org Qui utilise la stack AboutCode ? ○ La plupart des fondations FOSS ○ Des agences gouvernementales européennes et américaines ○ Cinq des big techs ○ Un éditeur majeur de base de données ○ Un éditeur Linux de premier plan ○ Tous les constructeurs automobiles européens et la plupart de leurs fournisseurs ○ Les principaux fournisseurs américains de puces et de microprocesseurs ○ Cinq grandes entreprises industrielles européennes majeures ○ Toutes les normes SBOMs et VEX: CycloneDX, SPDX, OpenVEX, OASIS CSAF ○ Tous les outils SCA et SBOMs open source ○ La plupart des outils propriétaires SCA, SBOMs, et d’analyse de code ○ Les systèmes d'IA responsables: projet BigCode/StarCoder basé sur Software Heritage ○ Standards et données AboutCode recommandés par: le BSi Allemand, le CISA Américain, le CERT Indien. 15 SCA Tools Management Apps Open Knowledge Base

Slide 16

Slide 16 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org Outils SCA Appli Management “Knowledge Base” ouverte

Slide 17

Slide 17 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org Outils SCA Appli Management “Knowledge Base” ouverte ScanCode DejaCode Licences paquets Vulnérabilités Scan Match Pipelines Politiques Curations Inventaires Workflows SBOMs Etats Analyse Binaires Analyse Dépendances

Slide 18

Slide 18 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org AboutCode Stack : ScanCode 18 SCA Tools ● ScanCode Toolkit est le scanner de code leader pour identifier les composants, les dépendances, et détecter les licences ○ Plusieures techniques pour découvrir le code tiers, déterminer la licence et l'origine du code ○ La précision est primordiale ■ https://github.com/aboutcode-org/scancode-toolkit ● ScanCode.io est un serveur web d'automatisation SCA ○ Avec ScanCode Toolkit, et intégration de toute la stack AboutCode ○ Des pipelines spécialisés pour une analyse personnalisée ■ Y compris l'analyse des images conteneurs Docker et des machines virtuelles ■ Et l'analyse du déploiement des binaires et sources (xz-utils ???!) ○ Enrichissement intégré et automatisé de la “knowledge base” ouverte ■ https://github.com/aboutcode-org/scancode.io/

Slide 19

Slide 19 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org AboutCode Stack : plus d’outils SCA 19 SCA Tools ● MatchCode: nouveau, pour détection approximative de code ○ Approche de détection intelligente en plusieurs étapes avec similarités arbre entier, fichier exact, arbre approximatif et fragments de fichier de code ○ Extension en cours: Détection de code générée par de l'IA ■ https://github.com/aboutcode-org/matchcode ● TraceCode trace le build pour capturer les paquets et fichiers utilisés dans un binaire ○ Reconstruit le graphique du build, pour déterminer quel code source est compilé dans les binaires ■ https://github.com/aboutcode-org/tracecode-toolkit ● Inspecteurs : outils spécifiques pour une tech ○ Et résolveurs de dépendances ○ container-inspector : outil d'analyse pour Docker et d'autres images ○ Plus de bibliothèques sur https://github.com/aboutcode-org

Slide 20

Slide 20 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org PURL: Standard ouvert de noms 20 Open Knowledge Base ● Package-URL (PURL) est une URL permettant d'identifier et de localiser un paquet logiciel dans divers écosystèmes et référentiels FOSS de façon presque universelle ○ Essentiel pour la gestion de la sécurité et de l'intégrité de la chaîne d'approvisionnement logicielle, car PURL permet l'interopérabilité des outils SCA et SBOM ○ Créé pour ScanCode et VulnerableCode et adopté par toute l’industrie: ■ Toutes les normes SBOM et VEX, notamment CycloneDX, SPDX, CSAF et OpenVEX et recommandé par la CISA américaine, la BSi Allemande et le CERT-India ■ Tous les outils SCA et SBOM open source, la plupart des outils SCA, SBOM et d'hébergement de code propriétaires, et la plupart des bases de données de vulnérabilité ouvertes ○ En cours de normalisation Ecma : https://tc54.org/purl/ ■ https://github.com/package-url

Slide 21

Slide 21 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org VERS: Standard ouvert de versions 21 Open Knowledge Base ● “Version Range Specifier” (VERS) notation universelle d’intervalles de versions des paquets: ○ Pour comparer et trier des versions ○ Pour résoudre les dépendances d'un paquet pour exprimer quel sous-ensemble des versions est pris en charge ○ Pour indiquer qu'une vulnérabilité ou un bug connu affecte un intervalle de versions d’un paquet ○ Adopté par CycloneDX et OASIS CSAF ○ Essentiel pour VulnerableCode ■ https://github.com/package-url/purl-spec/blob/master/ VERSION-RANGE-SPEC.rst

Slide 22

Slide 22 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org Open Knowledge Base: Données de licence 22 Open Knowledge Base ● ScanCode LicenseDB comprend plus de 2 000 licences et 35 000 règles de détection de licence ○ Unique: Aucune alternative connue avec une profondeur et une ampleur comparables ○ https://scancode-licensedb.aboutcode.org/ ○ Règles de détection de licence dans ScanCode Toolkit ○ DejaCode est synchronisé avec LicenseDB et ajoute des conditions de licence ○ Référence des licenses au delà de SPDX recommandé par le CERT India et le BSi Allemand

Slide 23

Slide 23 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org Open Knowledge Base: Métadonnées de paquets 23 ● PurlDB comprend plus de 21 millions de paquets et de fichiers ainsi que leurs “fingerprints” ○ Base de données de métadonnées de paquets indexées par Package-URL ○ Comprend les principaux écosystèmes FOSS - sources ET binaires - avec collecte intégrée des données d’écosystèmes à la demande ■ PurlDB disponible sur : https://public.purldb.io/api/packages/ ● Autres bases de métadonnées de paquets: ○ ClearlyDefined (OSI), deps.dev (Google, propriétaire) ○ Centralisées et trop volumineuses pour être partagées ○ Pas d'option pour les opérations privées (trop volumineuses à nouveau) Open Knowledge Base

Slide 24

Slide 24 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org Open Knowledge Base: Données de vulnérabilités 24 Open Knowledge Base ● VulnerableCodeDB comprend plus de plus de 240 000 vulnérabilités pour plus 760 000 paquets ○ Base de données basée sur PURL; agrégation et corrélation des données de tous les principaux écosystèmes et bases de données de vulnérabilités ○ Découvert des relations (et des incohérences) dans le graphe des vulnérabilités ■ VulnerableCodeDB disponible sur : https://public.vulnerablecode.io/ ● Autres bases de données de vulnérabilités : ○ Google OSV (réutilise également du code AboutCode), GitHub, GitLab, NVD ○ Contiennent souvent des données contradictoires pour les versions vulnérables, les versions corrigées ou les paquets affectés ○ Comparaison rendue possible avec VulnTotal pour interroger les versions vulnérables à partir d'une PURL

Slide 25

Slide 25 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org Management Appli: DejaCode 25 ● Gère les inventaires de produits et de composants ● Organise l'origine du code et les licences ● Définit et applique les politiques de licence ● Lance des analyses et accède à la base de connaissances ● Identifie les vulnérabilités des paquets ● Intégration avec outils SCA AboutCode et à la base de connaissances ouverte Management Apps ● Consomme et enrichit les SBOMs (CycloneDX ou SPDX) ● Génère des documents de conformité FOSS, tels que les notices d'attribution de produits et les SBOMs (CycloneDX ou SPDX) ● Rapports standard et personnalisés ● API JSON et webhooks Intégre tous les outils et données dans une seule application Web pour la gestion de la conformité et de la SCA et les utilisateurs techniques, juridiques, sécurité et business

Slide 26

Slide 26 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org Les outils FOSS ont encore du travail ● L'état de la précision de détection des outils SCA n'est pas très bon ○ Dans une récente comparaison à grande échelle des scanners de conteneurs (FOSS et commerciaux) ■ Les outils commerciaux inventes des paquets et des PURLs ■ Plusieurs outils créent des SBOMs non valides ■ La plupart ne considèrent que les manifestes de paquets installés ■ Au-delà de l'origine des paquets, la détection des licences est mauvaise et trompeuse ■ Dans la plupart des cas, il s'agit d'un “grep” sur la licence déclarée dans un manifeste ● Nous pouvons mieux faire! ○ Les outils FOSS ont obtenu de meilleurs résultats que les outils commerciaux ○ Mais Il manque encore de nombreuses fonctionnalités pour compléter l'automatisation de bout en bout des processus de conformité et cybersécurité

Slide 27

Slide 27 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org Software Heritage for Open Compliance

Slide 28

Slide 28 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org Projets futurs

Slide 29

Slide 29 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org Code Commons ● Ce projet s'appuie sur Software Heritage (avec ScanCode) pour positionner la France comme une référence mondiale pour la base de données d'apprentissage sur le code, et donner un avantage concurrentiel précieux aux acteurs français de l'IA générative ○ Le projet vise à consolider et monter en puissance le bien commun numérique unique construit par Software Heritage, et développer l’infrastructure logicielle indispensable pour répondre aux défis posés par la construction de développement massif de grands modèles de langages ○ AboutCode apportera son expertise pour la détection des licences des codes sources avec son logiciel ScanCode, référence mondiale dans le domaine. ■ https://www.diverse-team.fr/codecommons/ ○ Un partenariat stratégique entre Inria, le CEA, et Tweag 29

Slide 30

Slide 30 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org ● Ce projet propose une nouvelle approche avec une correspondance de code approximative pour renvoyer efficacement des résultats précis ○ La correspondance basée sur les empreintes digitales permet de faire évoluer l'index mais également la requête dans son ensemble, car la base de code (Go) est la requête ■ Empreinte digitale réglable au moment de la requête pour plus de précision et de rappel ○ Empreinte digitale approximative et floue pour permettre la correspondance de code qui n'a jamais été indexé ○ Financement de l'UE via le fonds NGI Search avec le soutien financier du programme Internet de nouvelle génération de la Commission européenne ■ https://github.com/aboutcode-org/ai-gen-code-search AI-Generated Code Search 30

Slide 31

Slide 31 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org CRAVEX 31 ● Application de résilience cybernétique pour l'échange d'exploitabilité des vulnérabilités automatise le triage des vulnérabilités et les rapports de conformité ○ Solution gratuite et ouverte pour les projets open source et les petites entreprises pour se conformer aux mandats réglementaires (SBOM, CRA) et minimiser les frictions et les coûts ○ Financé par l'UE via le fonds NGI0 Entrust avec le soutien financier du programme Internet de nouvelle génération de la Commission européenne ■ https://nlnet.nl/project/CRAVEX ● Extension de la pile AboutCode, intégrée aux données ouvertes ○ Application web pour collecter, suivre et trier les vulnérabilités des paquets FOSS, déterminer leur exploitabilité et générer des rapports sous forme de documents VEX ■ Gestion des vulnérabilités centrée sur les paquets et les produits logiciels

Slide 32

Slide 32 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org ● Projet collaboratif pour exécuter une analyse massive des licences ○ Dans l'ensemble des archives du patrimoine logiciel avec plus de 20 milliards de fichiers de code source unique de plus de 327 millions de projets ○ Comprend l'index PurlDB de tous les principaux registres de paquets et distributions Linux ● Le projet générera une base de données ouverte massive pour améliorer la correspondance et la découverte des codes FOSS à grande échelle ○ Base de données de référence Commons pour accélérer les futurs processus d'analyse et de correspondance avec des informations de licence précises ○ Collecte d'empreintes digitales permet une correspondance approximative de code à grande échelle ○ Financé par l'UE via le fonds NGI0 Commons avec le soutien financier du programme Internet de nouvelle génération de la Commission européenne ■ https://nlnet.nl/project/MassiveFOSSscan Massive FOSS Scan 32 +

Slide 33

Slide 33 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org OCCTET 33 ● Boîte à outils de conformité FOSS pour simplifier le processus de conformité des PME ○ Collaboration entre la Fondation Eclipse, Bitsea, EXPERTWARE, l'ALLIANCE EUROPÉENNE DES PME NUMÉRIQUES, AboutCode, RED ALERT LABS et DoubleOpen ○ Financement de l'UE via le programme Digital Europe (DIGITAL) / Centre européen de compétences en cybersécurité (ECCC) ○ Plus de détails seront annoncés début 2025 ● Données ouvertes et outils ouverts intégrés, basés sur la stack AboutCode, et guides de processus de conformité CRA ouvert avec : ○ Évaluation de la conformité rationalisée et coûts et efforts de conformité réduits ○ Fardeau de diligence raisonnable réduit via une base de données partagée d'attestation d'évaluation de la conformité des FOSS

Slide 34

Slide 34 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org ● Contribuez avec du code, de la documentation, des cas d'utilisation, des rapports de bugs ■ https://github.com/aboutcode-org ● Sponsorisez les mainteneurs du projet AboutCode ○ Accélérez le développement de nouvelles fonctionnalités et financez les contributeurs ■ https://github.com/sponsors/aboutcode-org ○ Achetez des services d'assistance, de mise en œuvre et de conseil pour payer les mainteneurs d'AboutCode ■ Envoyez un e-mail à [email protected] ● Rejoignez la communauté : ■ https://www.aboutcode.org/ ■ https://gitter.im/aboutcode-org/discuss AboutCode a également besoin de votre aide ! 34 "Dependency" by xkcd, used under CC BY-NC 2.5 / Modified text from original

Slide 35

Slide 35 text

© AboutCode - License: CC-BY-SA-4.0 - https://www.aboutcode.org 35 Des questions ? Philippe Ombredanne Lead Maintainer, AboutCode Connectons-nous sur LinkedIn! Project Nayuki (© 2024) QR-Code-generator [Source code] (MIT). https://github.com/nayuki/QR-Code-generator