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.