Skip to main content

Découvrez parlay, l’outil qui enrichit les SBOM

Écrit par
blog feature parlay announcement

7 juin 2023

0 minutes de lecture

Des SBOM plus riches

L’adoption croissante des normes de nomenclature logicielle (SBOM) commence à favoriser une meilleure interopérabilité entre les outils de sécurité. Les travaux de la NTIA visant à définir un ensemble minimal d’éléments pour un SBOM ont joué un rôle essentiel à cet égard, notamment avec l’utilisation généralisée de plusieurs formats comme CycloneDX et SPDX. Mais alors que les travaux sur SPDX 3.0 et CycloneDX 1.5 progressent, les formats SBOM offrent de nombreuses possibilités au-delà des éléments minimaux.

Vous souhaitez peut-être prendre des décisions fondées sur des règles concernant les licences des packages. Vous aimeriez peut-être accéder rapidement aux sites Web des packages que vous utilisez, ou savoir qui les a créés. Vous voudriez peut-être aussi connaître les vulnérabilités de ces packages en complément de ces informations.

Découvrez Parlay

parlay est un nouvel outil open source de Snyk qui enrichit les SBOM. Rien de tel qu’un exemple pour le montrer : prenons un SBOM simple d’une application JavaScript.

$ cat testing/sbom.cyclonedx.json
...
{
	"bom-ref": "68-subtext@6.0.12",
	"type": "library",
	"name": "subtext",
	"version": "6.0.12",
	"purl": "pkg:npm/subtext@6.0.12"
}
...

Avec parlay, nous l’enrichissons à l’aide des données d’ecosyste.ms :

$ cat testing/sbom.cyclonedx.json | parlay ecosystems enrich -

Cela ajoute des informations sur chaque package, notamment les détails des licences, des liens externes, des informations sur les responsables de la maintenance, et bien plus encore.

...
{
	"bom-ref": "68-subtext@6.0.12",
	"type": "library",
	"supplier": {
		"name": "hapi.js",
		"url": [
			"https://hapi.dev"
		]
	},
	"author": "hapi.js",
	"name": "subtext",
	"version": "6.0.12",
	"description": "HTTP payload parsing",
	"licenses": [
		{
			"expression": "BSD-3-Clause"
		}
	],
	"purl": "pkg:npm/subtext@6.0.12",
	"externalReferences": [
		{
			"url": "https://github.com/hapijs/subtext",
			"type": "website"
		},
		{
			"url": "https://www.npmjs.com/package/subtext",
			"type": "distribution"
		},
		{
			"url": "https://github.com/hapijs/subtext",
			"type": "vcs"
		}
	],
	"properties": [
		{
			"name": "ecosystems:first_release_published_at",
			"value": "2014-09-29T01:56:03Z"
		},
		{
			"name": "ecosystems:latest_release_published_at",
			"value": "2019-01-31T19:36:58Z"
		}
	]
}
...

parlay permet également aux clients de Snyk d’enrichir leurs SBOM avec les données de vulnérabilité de Snyk.

parlay snyk enrich testing/sbom.cyclonedx.json

Cela ajoute un nouvel attribut vulnerabilities au SBOM, par exemple :

"vulnerabilities": [
  {
    "bom-ref": "68-subtext@6.0.12",
    "id": "SNYK-JS-SUBTEXT-467257",
    "ratings": [
      {
        "source": {
          "name": "Snyk",
          "url": "https://security.snyk.io"
        },
        "score": 7.5,
        "severity": "high",
        "method": "CVSSv31",
        "vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
      }
    ],
    "cwes": [
      400
    ],
    "description": "Denial of Service (DoS)",
    "detail": "...",
    "advisories": [
      {
        "title": "GitHub Commit",
        "url": "https://github.com/brave-intl/subtext/commit/9557c115b1384191a0d6e4a9ea028fedf8b44ae6"
      },
      {
        "title": "GitHub Issue",
        "url": "https://github.com/hapijs/subtext/issues/72"
      },
      {
        "title": "NPM Security Advisory",
        "url": "https://www.npmjs.com/advisories/1168"
      }
    ],
    "created": "2019-09-19T10:25:11Z",
    "updated": "2020-12-14T14:41:09Z"
  }

parlay apprécie particulièrement stdin et stdout : vous pouvez envoyer des SBOM provenant d’autres outils vers parlay et enchaîner les différentes commandes enrich.

Vous souhaitez peut-être enrichir un SBOM avec les données d’ecosyste.ms et de Snyk :

cat testing/sbom.cyclonedx.json | parlay e enrich - | parlay s enrich - | jq

Vous souhaitez peut-être utiliser la sortie de Syft et y ajouter des données de vulnérabilité :

syft -o cyclonedx-json nginx | parlay s enrich - | jq

Vous souhaitez peut-être générer un SBOM avec Snyk, l’enrichir avec des informations supplémentaires, puis le tester avec bomber :

snyk sbom | parlay e enrich - | bomber scan --provider snyk -

L’enrichissement d’ecosyste.ms ajoute des informations sur les licences, que Bomber met en évidence lors de l’analyse des vulnérabilités d’un SBOM :

Ecosystems detected: gem
■ Scanning 18 packages for vulnerabilities...
■ Vulnerability Provider: Snyk (https://security.snyk.io)

■ Files Scanned
        - (sha256:701770b2317ea8cbd03aa398ecb6a0381c85beaf24d46c45665b53331816e360)

■ Licenses Found: MIT, Apache-2.0, BSD-3-Clause, Ruby

Et ensuite ?

Nous aimerions connaître l’avis de chacun sur le principe de l’enrichissement des SBOM. De nombreux outils, nouveaux ou existants, génèrent des SBOM aux formats CycloneDX et SPDX, mais ceux-ci restent souvent assez succincts. Des SBOM plus riches nous permettent de créer des outils plus intéressants. Et pour que tous les efforts consacrés à la génération de SBOM en valent la peine, il nous faut davantage d’outils capables de les exploiter et de résoudre les problèmes des utilisateurs.

Vous pouvez télécharger parlay dans la section des versions du dépôt GitHub. Pour découvrir des cas d’usage avancés — notamment l’enchaînement des étapes et la vérification des règles — et suivre un projet exemple, consultez notre guide sur parlay et les possibilités offertes par un SBOM enrichi.

Nous avons commencé avec Ecosyste.ms, l’enrichissement de Snyk et CycloneDX. Si vous avez des idées d’autres sources de données ou souhaitez contribuer à la prise en charge de SPDX, veuillez ouvrir une issue dans le dépôt GitHub officiel.

Lire la suite

feature insights context
Blog

Les attaques autonomes sont déjà là. La défense doit suivre leur rythme.

Les attaquants autonomes réduisent la fenêtre de défense. Découvrez comment la découverte, la correction, la validation et la prévention continues peuvent aider les équipes de sécurité à suivre le rythme.

Blog

Evo ADS : la gouvernance des comportements des agents est disponible : maîtrisez l’utilisation de MCP

La gouvernance des comportements des agents Evo ADS est désormais disponible, avec MCP Governance en première étape. Découvrez, approuvez, surveillez, consignez et bloquez l’utilisation des serveurs MCP par les principaux agents de programmation IA.

illustration hero ai
Blog

Qu’est-ce que l’AppSec agentique ?

Découvrez comment l’AppSec agentique s’appuie sur des agents IA ancrés dans la réalité, aux missions délimitées et vérifiés de manière indépendante pour gérer le cycle de sécurité des applications.