secret-serialization

Par getsentry · skills

Skill de sécurité du repo getsentry/skills qui détecte les fuites de secrets via la sérialisation générée en Python et JavaScript.

npx skills add https://github.com/getsentry/skills --skill secret-serialization

Secret Serialization Review

Ce skill fait partie du repository officiel de skills de l'équipe Sentry (getsentry/skills). Son objectif est d'aider les agents à identifier les risques de fuite de credentials (tokens, API keys, mots de passe, etc.) qui surviennent non pas par accès direct, mais via la sérialisation générée automatiquement : __repr__, asdict, model_dump, JSON.stringify, util.inspect, et équivalents.

Principe de détection

Le skill repose sur l'identification de deux composants qui, pris séparément, semblent anodins mais combinés créent une fuite :

  • Le holder : un type (dataclass, modèle Pydantic, attrs, NamedTuple, classe JS) qui stocke un champ credential et expose ce champ via sa sérialisation générée.
  • Le sink : du code de logging, tracing, reporting d'erreur ou mise en cache qui sérialise des objets entiers ou tous les kwargs (ex. str(obj), span.set_data(key, obj), JSON.stringify(args)).

Ces deux côtés sont souvent écrits à des mois d'intervalle par des auteurs différents. Le skill prescrit de rechercher systématiquement le côté absent de la diff dans le reste du repository.

Périmètre et références

Le skill couvre Python (dataclasses, attrs, Pydantic, msgspec, logging, Sentry SDK, OpenTelemetry) et JavaScript/TypeScript (classes, JSON.stringify, util.inspect, pino, winston, spans Sentry et OTel). Il s'appuie sur des fichiers de référence internes (references/python.md et references/javascript-typescript.md) pour le détail des mécanismes d'exclusion propres à chaque écosystème.

Utilisation

Ce skill s'active automatiquement lorsqu'une demande mentionne des termes comme « check for secret serialization », « credential in repr », « repr=False audit », ou lorsqu'une modification ajoute un champ credential à un dataclass ou un modèle, ou introduit du code qui sérialise des objets entiers dans de la télémétrie. Il fournit un processus d'investigation structuré, une grille de sévérité (high / medium / low), et un format de reporting précis incluant titre, description, evidence et fix concret.

Skills similaires