
Nosey Parker est un outil en ligne de commande qui trouve des secrets et des informations sensibles dans les données textuelles et l'historique Git.
Voir notre annonce https://www.praetorian.com/blog/titus-open-source-secret-scanner/. Le dépôt Titus se trouve à https://github.com/praetorian-inc/titus
Nosey Parker est un outil en ligne de commande qui trouve des secrets et des informations sensibles dans des données textuelles.
Il s'agit essentiellement d'un outil spécialisé de type grep pour la détection de secrets.
Il a été conçu pour la sécurité offensive (par exemple, pour permettre le mouvement latéral lors d'audits de sécurité), mais il peut également être utile pour les tests de sécurité défensifs. Il a découvert des secrets dans des centaines d'engagements de sécurité offensive chez Praetorian.
Fonctionnalités clés :
Le flux de travail typique comporte trois phases :
scanreportbrew install noseyparker
La page de la dernière version contient des binaires précompilés pour Linux et macOS en x86_64/aarch64.
docker pull ghcr.io/praetorian-inc/noseyparker:latest
Le commit le plus récent est également disponible via le tag main.
docker pull ghcr.io/praetorian-inc/noseyparker-alpine:latest
Le commit le plus récent est également disponible via le tag main.
https://aur.archlinux.org/packages/noseyparker
Nosey Parker ne se compile pas nativement sous Windows (#121). Il est possible de l'exécuter sous Windows en utilisant WSL1 et la version Linux native.
Ceci a été testé avec plusieurs versions d'Ubuntu Linux et macOS sur x86_64 et aarch64.
Dépendances requises :
cargo : approche recommandée : installer depuis https://rustup.rscmake : nécessaire pour la compilation de la crate vectorscan-sys et d'autres dépendancesboost : nécessaire pour la compilation de la crate vectorscan-sys (version prise en charge >=1.57)git : nécessaire pour intégrer les informations de version dans le CLI noseyparkerpatch : nécessaire pour la compilation de la crate vectorscan-syspkg-config : nécessaire pour la compilation de la crate vectorscan-syssha256sum : nécessaire pour calculer les condensés (souvent fourni par le paquet coreutils)zsh : nécessaire pour les scripts de compilationcreate-release.zsh$ rm -rf release && ./scripts/create-release.zsh
En cas de succès, cela produira une arborescence de répertoires dans release avec les artefacts de publication.
Le programme en ligne de commande se trouvera dans release/bin/noseyparker.
L'exécution du binaire noseyparker sans arguments affiche l'aide de premier niveau et se termine.
Vous pouvez obtenir une aide abrégée pour une commande particulière en exécutant noseyparker COMMANDE -h.
Une aide plus détaillée est disponible avec la commande help ou l'option longue --help.
Les versions précompilées incluent également des pages de manuel qui rassemblent l'aide en ligne de commande en un seul endroit. Ces pages de manuel converties au format Markdown sont également incluses dans le dépôt ici.
Si vous avez une question à laquelle cette documentation ne répond pas, veuillez lancer une discussion.
Le datastore est un répertoire spécial que Nosey Parker utilise pour enregistrer ses résultats et maintenir son état interne.
Un datastore sera implicitement créé par la commande scan si nécessaire.
Chaque entrée scannée est appelée un blob. Chaque blob possède un identifiant de blob unique, qui est un condensé SHA-1 calculé de la même manière que le fait git.
Chaque blob a une ou plusieurs entrées de provenance qui lui sont associées. Une entrée de provenance est une métadonnée qui décrit comment l'entrée a été découverte, par exemple un fichier dans le système de fichiers ou un fichier dans l'historique d'un dépôt Git.
Nosey Parker est un système basé sur des règles qui utilise des expressions régulières.
Chaque règle a un seul motif avec au moins un groupe de capture qui isole le contenu correspondant du contexte environnant.
Vous pouvez lister les règles disponibles avec noseyparker rules list.
Un ensemble de règles est organisé en ruleset.
Le ruleset par défaut de Nosey Parker inclut des règles qui détectent des éléments ressemblant à des secrets.
D'autres rulesets sont disponibles ; vous pouvez les lister avec noseyparker rules list.
Lorsque le motif d'une règle correspond à une entrée, il produit une correspondance. Une correspondance est définie de manière unique par une règle, un identifiant de blob, un décalage de début en octets et un décalage de fin en octets ; ces champs sont utilisés pour calculer un identifiant de correspondance unique.
Les correspondances qui partagent une règle et des groupes de capture sont combinées en un finding. En d'autres termes, un finding est un groupe de correspondances. C'est l'unité de rapport de premier niveau de Nosey Parker.
Lors de l'utilisation de l'image Docker, remplacez noseyparker dans les commandes suivantes par une invocation Docker utilisant un volume monté :
docker run -v "$PWD":/scan ghcr.io/praetorian-inc/noseyparker:latest <ARGUMENTS>
Le conteneur Docker s'exécute avec /scan comme répertoire de travail, donc monter $PWD sur /scan dans le conteneur fera fonctionner la complétion par tabulation et les chemins relatifs dans votre invocation en ligne de commande.

Nosey Parker prend en charge nativement l'analyse des fichiers, des répertoires et de tout l'historique des dépôts Git.