Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ore-mal-pkg-inspector — Détection de paquets malveillants multi-écosystème et scanner de sécurité de la chaîne d'approvisionnement | Kitploit
Outils/GitHubGitHub/rapticore/ore-mal-pkg-inspector
Analyse StatiqueScanners de VulnérabilitésAnalyse de CodeCollecte d'InformationsAnalyse de MalwareDevSecOpsRenseignement sur les MenacesSécurité de la Chaîne LogistiqueApprentissage et Éducation
GitHubrapticore/ore-mal-pkg-inspector

ore-mal-pkg-inspector

Détection de paquets malveillants multi-écosystème et scanner de sécurité de la chaîne d'approvisionnement

814il y a 3 moisPas encore vérifié
Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

OreWatch

Détection de paquets malveillants multi-écosystèmes et scanner de sécurité de la chaîne d'approvisionnement

Python Version License Status Ecosystems

Un outil de sécurité de niveau production pour détecter les paquets malveillants et les menaces de la chaîne d'approvisionnement dans les écosystèmes npm, PyPI, Maven, RubyGems, Go et Cargo. Il exploite la collecte automatisée de renseignements sur les menaces provenant de sources de sécurité fiables pour identifier les dépendances compromises dans vos projets.

OreWatch est le nom du produit et du paquet PyPI. Le chemin actuel du dépôt source utilise encore ore-mal-pkg-inspector.

Vidéos

Installation

https://github.com/rapticore/ore-mal-pkg-inspector/issues/2#issue-4215016110

OreWatch et Cursor

https://github.com/rapticore/ore-mal-pkg-inspector/issues/3#issue-4215017945

OreWatch et CodeX

https://github.com/rapticore/ore-mal-pkg-inspector/issues/4#issue-4215019385

OreWatch et Claude-Code

https://github.com/rapticore/ore-mal-pkg-inspector/issues/5#issue-4215021599


Table des matières

  • Le problème
  • La solution
  • Fonctionnalités clés
  • Pourquoi OreWatch ?
  • Démarrer ici
  • Démarrage rapide
    • Prérequis
    • Installation
    • Premier scan
  • Utilisation
    • Commandes de base
    • Utilisation avancée
    • Référence de la ligne de commande
    • Surveillance en arrière-plan
  • Guide d'adoption
  • Distribution
    • Déploiement macOS géré
  • Journalisation & débogage
  • Sortie & rapports
  • Intégration CI/CD
  • Dépannage
  • FAQ
  • Contribuer
  • Politique de sécurité
  • Feuille de route
  • Licence
  • Support
  • Remerciements

Le problème

Les attaques sur la chaîne d'approvisionnement sont désormais le principal vecteur de menace pour les compromissions logicielles. Rien qu'en 2024, des milliers de paquets malveillants ont été publiés sur npm, PyPI et d'autres registres de paquets, ciblant les développeurs avec du typosquattage, de la confusion de dépendances et des campagnes de malwares sophistiquées comme Shai-Hulud.

Le défi : Les organisations et les développeurs doivent :

  • Analyser les dépendances dans plusieurs écosystèmes de programmation
  • Rester à jour avec les renseignements sur les menaces en évolution rapide provenant de multiples sources
  • Détecter non seulement les paquets malveillants connus mais aussi les indicateurs de compromission (IoCs)
  • Intégrer l'analyse de sécurité dans les flux de développement existants
  • Répondre rapidement aux menaces nouvellement découvertes

La lacune : Les solutions existantes sont souvent :

  • Limitées à un seul écosystème (npm uniquement, PyPI uniquement, etc.)
  • Dépendantes de la maintenance manuelle de listes de menaces
  • Dépourvues de capacités de détection d'IoC
  • Difficiles à intégrer dans des pipelines automatisés
  • Des outils propriétaires en boîte noire sans transparence

La solution

OreWatch répond à ces défis en fournissant :

Couverture multi-écosystèmes complète : Un outil unique pour les paquets npm, PyPI, Maven, RubyGems, Go et Cargo

Renseignements automatisés sur les menaces : Collecte et fusionne dynamiquement les données provenant de sources de recherche en sécurité fiables

Détection active d'IoC : Identifie les motifs d'attaque Shai-Hulud et d'autres indicateurs de code malveillant au-delà de la simple correspondance de noms de paquets

Prêt pour CI/CD : Conçu pour une intégration transparente dans GitHub Actions, GitLab CI, Jenkins et autres plateformes d'automatisation

Open Source et transparent : Visibilité complète sur la logique de détection, les sources de données et la méthodologie d'analyse


Fonctionnalités clés

Support multi-écosystèmes Analyse les paquets npm, PyPI, Maven, RubyGems, Go et Cargo avec une détection automatique de l'écosystème à partir de la structure du projet.

Base de données unifiée de renseignements sur les menaces Vérifie par rapport aux bases de données de paquets malveillants collectées dynamiquement à partir de sources de recherche en sécurité fiables.

Détection automatique de l'écosystème Identifie intelligemment les écosystèmes à partir de la structure des répertoires, des noms de fichiers, et peut analyser plusieurs écosystèmes en une seule exécution.

Détection des indicateurs de compromission (IoC) Analyse les motifs d'attaque Shai-Hulud (variantes originales et 2.0), les hooks malveillants, les workflows suspects et les fichiers de payload connus.

Intégration Shai-Hulud Recoupe les paquets npm avec la liste complète des paquets affectés par Shai-Hulud provenant d'OreNPMGuard.

Rapports JSON structurés Génère des rapports JSON lisibles par machine avec des métadonnées explicites sur les données de menace et des emplacements de fichiers de type SARIF pour les résultats.

Formats d'entrée flexibles Prend en charge les fichiers de dépendances standards (package.json, requirements.txt, etc.) et les listes de paquets génériques (texte, JSON, YAML).

Journalisation prête pour la production Niveaux de verbosité configurables avec les options --verbose et --debug pour le dépannage et les pistes d'audit.

Sûr et rapide Opérations en lecture seule sans modification de votre code, optimisé pour l'analyse rapide de grandes bases de code.


Pourquoi OreWatch ?

vs. outils mono-écosystème La plupart des scanners de sécurité se concentrent sur un seul gestionnaire de paquets. OreWatch offre une protection unifiée sur six écosystèmes majeurs, essentielle pour les environnements de développement polyglottes modernes.

vs. listes de menaces manuelles Les listes de paquets malveillants statiques deviennent rapidement obsolètes. Nos collecteurs automatisés récupèrent quotidiennement des renseignements actualisés sur les menaces provenant de plusieurs sources faisant autorité.

vs. détection par nom de paquet uniquement Vérifier uniquement les noms de paquets ne permet pas de détecter les attaques sophistiquées. La détection d'IoC identifie les motifs de code malveillant même dans les paquets pas encore sur les listes noires.

vs. audits de sécurité manuels Les révisions manuelles des dépendances sont chronophages et sujettes aux erreurs. L'analyse automatisée permet une validation continue de la sécurité dans chaque build.

vs. outils commerciaux en boîte noire Les outils propriétaires manquent de transparence dans la logique de détection. En tant que projet open source, chaque règle de détection et source de données est vérifiable.

Histoire d'origine OreWatch est né du développement d'OreNPMGuard, un scanner spécialisé pour les attaques Shai-Hulud sur npm. Au cours de ce projet, nous avons reconnu le besoin d'une couverture multi-écosystèmes plus large au-delà de npm. En décembre 2025, nous avons extrait et amélioré les capacités de détection multi-écosystèmes dans cet outil autonome, tout en maintenant l'accent d'OreNPMGuard sur npm tout en permettant à OreWatch de servir la communauté plus large des développeurs sur tous les principaux écosystèmes de paquets.


Démarrer ici

Si vous adoptez OreWatch pour la première fois, choisissez le chemin le plus petit qui correspond à votre flux de travail :

Je veux...Utilisez ce cheminCommencez par
analyser un dépôt maintenantCLI scanorewatch /path/to/project
protéger le développement local en arrière-planmoniteur singletonorewatch monitor quickstart /path/to/project --client claude_code
utiliser OreWatch depuis Cursor, Claude Code ou Codexpont MCPorewatch monitor quickstart /path/to/project --client <cursor|claude_code|codex>
intégrer avec VS Code, PyCharm ou XcodeAPI localhostorewatch monitor quickstart /path/to/project --client vscode
obtenir des alertes macOS visibles et une interface de révision nativeapplication barre de menusorewatch monitor menubar
valider les builds dans CICLI scan ponctuelorewatch . --strict-data

Séquence recommandée pour une première exécution pour la plupart des développeurs :

  1. Installez OreWatch avec pip install . ou le paquet publié.
  2. Exécutez orewatch monitor quickstart /path/to/project --client <votre-client>.
  3. Vérifiez le démon avec orewatch monitor status.
  4. Si vous êtes sous macOS, lancez orewatch monitor menubar pour les notifications et une interface locale.

Si vous souhaitez un guide d'installation plus court avec des commandes copiables, utilisez docs/adoption-guide.md.


Démarrage rapide

Prérequis

  • Python 3.14 ou supérieur
  • pip pour installer les dépendances
  • Git pour cloner le dépôt
  • Connexion Internet pour la configuration initiale des renseignements sur les menaces
  • OpenSSL pour la génération, la publication et la vérification de clés de snapshots signés dans les flux de travail de snapshots du moniteur

Installation

OreWatch peut être installé via pipx (recommandé), Homebrew (macOS), pip, ou depuis les sources. Toutes les méthodes produisent la commande CLI orewatch.

Option 1 — pipx (Recommandé)

pipx installe OreWatch dans son propre environnement isolé tout en rendant la commande orewatch disponible globalement. C'est la meilleure option pour la plupart des développeurs.```bash

Install pipx if you don't have it

python3.14 -m pip install --user pipx python3.14 -m pipx ensurepath

Install OreWatch

pipx install --python python3.14 orewatch

If you want the macOS menu bar app on a fresh install, use this instead:

pipx install --python python3.14 'orewatch[mac-menubar]'

Verify

orewatch --help

Optional macOS menu bar app

orewatch monitor menubar

root@kitploit:~
Si vous avez déjà installé `orewatch` avec pipx et souhaitez ajouter plus tard l'application de la barre de menus macOS, injectez les liaisons Cocoa dans le même environnement pipx :```bash
pipx inject orewatch pyobjc-framework-Cocoa

Mise à niveau :```bash pipx upgrade orewatch

root@kitploit:~
**Désinstallation:**```bash
pipx uninstall orewatch

Option 2 — Homebrew (macOS)

Pour les utilisateurs de macOS qui préfèrent les installations gérées par Homebrew :```bash

Add the OreWatch tap

brew tap rapticore/tap

Install

brew install rapticore/tap/orewatch

Verify

orewatch --help

Optional macOS menu bar app

orewatch monitor menubar

root@kitploit:~
**Mise à niveau:**```bash
brew update && brew upgrade orewatch

Désinstallation :```bash brew uninstall orewatch brew untap rapticore/tap # optional — removes the tap

root@kitploit:~
> **Remarque :** Le Homebrew formulaire inclut les liaisons Cocoa requises par
> `orewatch monitor menubar`. Si une ancienne installation Homebrew signale
> `ModuleNotFoundError: No module named 'AppKit'`, exécutez
> `brew update && brew reinstall rapticore/tap/orewatch` pour que le formulaire reconstruise
> son environnement Python isolé avec la prise en charge de la barre de menus.

#### Option 3 — pip

Utilisez `pip` pour les pipelines CI, les images Docker, ou lorsque vous gérez vos propres
environnements virtuels :```bash
# Install into an active Python 3.14 virtualenv or user site
python3.14 -m pip install orewatch

# Pin a version for reproducible CI builds
python3.14 -m pip install orewatch==1.3.0

# If you want the macOS menu bar app on a fresh install, use this instead:
# python3.14 -m pip install 'orewatch[mac-menubar]'

# Verify
orewatch --help

Mise à niveau:```bash python3.14 -m pip install --upgrade orewatch

root@kitploit:~
#### Option 4 — Source Checkout (Contributeurs)```bash
# Clone the repository
git clone https://github.com/rapticore/ore-mal-pkg-inspector.git
cd ore-mal-pkg-inspector

# Create and activate a Python 3.14 virtual environment (recommended)
python3.14 -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install in editable mode for development
python -m pip install -e .

# Verify
orewatch --help

Vérification après installation

Après avoir installé avec n'importe quelle méthode, confirmez qu'OreWatch fonctionne :```bash

Check the CLI is accessible

orewatch --help

List supported manifest filenames

orewatch --list-supported-files

Run a quick scan on the current directory

orewatch .

root@kitploit:~
#### Notes sur les plateformes

| Plateforme | Source Python | Remarques |
|---|---|---|
| **macOS** (Homebrew Python) | `brew install [email protected]` | Recommandé pour les utilisateurs de Homebrew |
| **macOS** (pyenv) | `pyenv install 3.14` | Idéal pour les configurations multi-versions |
| **Ubuntu / Debian** | `sudo apt install python3.14` ou pyenv | Vérifiez que votre distribution fournit 3.14+ |
| **Fedora / RHEL** | `sudo dnf install python3.14` ou pyenv | — |
| **Windows (WSL)** | pyenv ou paquet système | Windows natif non testé |

> **Python 3.14 est requis.** OreWatch utilise des fonctionnalités de langage introduites dans
> Python 3.14. Les versions plus anciennes échoueront au moment de l'importation.

#### Dépannage de l'installation

| Symptôme | Correctif |
|---|---|
| `command not found: orewatch` | Assurez-vous que le répertoire d'installation est dans votre `PATH`. Pour pipx : exécutez `pipx ensurepath` et redémarrez votre shell. |
| `ModuleNotFoundError` à l'import | Vous avez peut-être plusieurs versions de Python. Vérifiez que l'environnement d'exécution derrière `orewatch` est Python 3.14+ et réinstallez avec l'interpréteur correspondant. |
| L'installation pipx échoue avec des erreurs de résolveur | Mettez à niveau pipx : `python3.14 -m pip install --upgrade pipx` |
| Homebrew `orewatch` introuvable après installation | Exécutez d'abord `brew tap rapticore/tap`, puis réessayez l'installation. |
| Permission refusée lors de l'installation pip | Utilisez `pip install --user orewatch` ou installez dans un environnement virtuel. |

_Remarque : Si les données de menace locales sont manquantes ou obsolètes, les analyses de paquets préparent un candidat de mise à jour en direct et ne le promeuvent qu'après le passage des portes d'anomalie. Si le candidat semble suspect, OreWatch conserve le dernier jeu de données connu comme bon actif._

_CLI installée :_ `orewatch`
_Alias de compatibilité :_ `ore-mal-pkg-inspector`

### Premier scan

**Scannez un répertoire de projet :**```bash
# Auto-detect ecosystem and scan current directory
orewatch .

# Scan specific project path
orewatch /path/to/your/project

# With verbose output to see progress
orewatch /path/to/your/project --verbose

Sortie attendue :``` Detected multiple ecosystems: npm, pypi Scanning all detected ecosystems...

Scanning npm... Found 2 dependency file(s) for npm Parsing: package.json Parsing: package-lock.json

Scanning pypi... Found 1 dependency file(s) for pypi Parsing: requirements.txt

Extracted 45 unique package(s) across 2 ecosystem(s)

Checking 45 package(s) against malicious databases... Checking 30 npm package(s)... Checking 15 pypi package(s)...

Scanning for Indicators of Compromise...

Generating report...

============================================================ SCAN REPORT SUMMARY

Ecosystem: npm, pypi Total Packages Scanned: 45 Malicious Packages Found: 0 IoCs Found: 0

✅ No malicious packages or IoCs detected

HTML report saved to: scan-output/malicious_packages_report_20251231_120000.html JSON report saved to: scan-output/malicious_packages_report_20251231_120000.json

root@kitploit:~
Si vous souhaitez qu'OreWatch continue de surveiller le projet après cette première analyse, poursuivez avec [Surveillance en arrière-plan](#background-monitoring) ou allez directement à [docs/adoption-guide.md](https://github.com/rapticore/ore-mal-pkg-inspector/blob/main/docs/adoption-guide.md).

---

## Utilisation

### Commandes de base

**Analyser un répertoire (Détection automatique de l'écosystème) :**```bash
# Current directory
orewatch .

# Specific directory
orewatch /home/user/projects/my-app

# With an absolute path
orewatch /home/user/projects/backend-api

Analyser des fichiers de dépendances spécifiques :```bash

Ecosystem auto-detected from filename

orewatch --file package.json orewatch --file requirements.txt orewatch --file pom.xml orewatch --file Gemfile orewatch --file go.mod orewatch --file Cargo.toml

root@kitploit:~
**Forcer un écosystème spécifique :**```bash
# Override auto-detection
orewatch /path/to/project --ecosystem npm
orewatch /path/to/project --ecosystem pypi
orewatch /path/to/project --ecosystem maven
orewatch /path/to/project --ecosystem rubygems
orewatch /path/to/project --ecosystem go
orewatch /path/to/project --ecosystem cargo

Analyser les listes génériques de paquets :```bash

Text file (one package per line) - must specify ecosystem

orewatch --file packages.txt --ecosystem pypi

JSON file with package array

orewatch --file packages.json --ecosystem npm

YAML file

orewatch --file packages.yaml --ecosystem npm

root@kitploit:~
### Utilisation avancée

**Chemin de sortie personnalisé :**```bash
# Save to custom location
orewatch /path/to/project --output /tmp/scan_report.json

# Save to specific subdirectory
orewatch /path/to/project --output reports/security/$(date +%Y%m%d).json

Contrôle du scan IoC :```bash

Full scan (packages + IoCs) - default behavior

orewatch /path/to/project

Skip IoC scanning for faster package-only checks

orewatch /path/to/project --no-ioc

Only scan for IoCs, skip package database checking

orewatch /path/to/project --ioc-only

root@kitploit:~
**Mode silencieux :**```bash
# Generate report without console summary (useful for scripts)
orewatch /path/to/project --no-summary

Contrôles des données de menaces:```bash

Force a staged live refresh of the default core sources before scanning

orewatch /path/to/project --latest-data

Fail if any requested ecosystem only has partial or missing threat data

orewatch /path/to/project --strict-data

Include experimental sources during collection

orewatch /path/to/project --latest-data --include-experimental-sources

Print the exact dependency filenames the scanner recognizes

orewatch --list-supported-files

root@kitploit:~
**Analyse par lots :**```bash
# Scan multiple projects
for dir in ~/projects/*/; do
    echo "Scanning $dir"
    orewatch "$dir" --output "reports/$(basename $dir).json"
done

Référence de la ligne de commande

Options du scanner

OptionCourtDescriptionValeur par défaut
--file-fChemin vers un fichier spécifique à analyser (ignore la détection de répertoire)Aucun
--ecosystem-eForcer l'écosystème : npm, pypi, maven, rubygems, go, cargoDétection automatique
--output-oChemin de sortie personnalisé pour le rapport JSON principal ; OreWatch écrit également un rapport HTML frèrescan-output/malicious_packages_report_{timestamp}.json
--no-summaryNe pas afficher le résumé du rapport dans la consoleFalse
--no-iocIgnorer l'analyse des IoC (Indicateurs de compromission)False
--ioc-onlyAnalyser uniquement les IoC, ignorer la vérification des paquetsFalse
--latest-dataForcer une actualisation en direct par étapes et une promotion filtrée par anomalies avant l'analyseFalse
--strict-dataÉchouer si un écosystème demandé possède des données de menace partielles ou manquantesFalse
--include-experimental-sourcesInclure les collecteurs expérimentaux lors de l'actualisation des données de menaceFalse
--list-supported-filesAfficher les noms exacts des fichiers manifestes de dépendances pris en charge et quitterFalse
--verbose-vAfficher les journaux de niveau INFO (messages de progression)False
--debugAfficher les journaux de niveau DEBUG (diagnostics détaillés)False

Surveillance en arrière-plan

Le dépôt inclut désormais un moniteur d'arrière-plan local qui maintient les données de menace à jour, surveille les projets opt-in pour les modifications de manifestes et de workflows, exécute des analyses différées et enregistre des notifications pour les résultats nouveaux ou aggravés. La configuration et l'état appartenant au moniteur sont stockés en dehors du dépôt, dans des répertoires appartenant à l'utilisateur, de sorte qu'un dépôt cloné ne peut pas préinitialiser le comportement du moniteur.

OreWatch traite désormais le moniteur comme un singleton par utilisateur. Un seul démon peut surveiller de nombreux projets n'importe où sur le disque et servir de nombreux clients Claude Code, Codex, Cursor, VS Code, JetBrains / PyCharm et Xcode simultanément.

Configuration complète du moniteur

1. Installer et amorcer le moniteur singleton```bash

First project + first client

orewatch monitor quickstart /path/to/project --client claude_code

root@kitploit:~
`monitor quickstart` est le flux recommandé pour la première exécution. Il :

- installe ou rafraîchit le service moniteur singleton
- démarre le moniteur si nécessaire
- ajoute le projet cible à la liste de surveillance
- affiche le bloc de démarrage pour le client sélectionné

Si vous préférez installer le moniteur d'abord et configurer les clients plus tard :```bash
orewatch monitor install
orewatch monitor install --ide-bootstrap
orewatch monitor install --service-manager launchd --no-start

2. Vérifier que le moniteur est en bon état```bash orewatch monitor status orewatch monitor connection-info orewatch monitor doctor

root@kitploit:~
Utilisez ces commandes pour des tâches légèrement différentes :

- `monitor status` affiche si le démon singleton et l'API sont en cours d'exécution
- `monitor connection-info` affiche l'URL de l'API de bouclage, le chemin du jeton, le répertoire home du moniteur et les clients bootstrap supportés
- `monitor doctor` affiche les chemins exacts de la configuration, de la base de données d'état, des journaux et des données partagées sur les menaces

**3. Ajoutez chaque projet que vous souhaitez que le singleton surveille**```bash
orewatch monitor watch add /path/to/project-a
orewatch monitor watch add /path/to/project-b
orewatch monitor watch list
orewatch monitor watch remove /path/to/project-b

Un démon OreWatch peut surveiller tous ces projets à la fois. Vous n'avez pas besoin d'un moniteur distinct par dépôt ou par espace de travail IDE.

Recettes d'intégration des clients

OreWatch prend en charge deux transports d'intégration :

ClientTransportCommande d'amorçageNotes
Claude CodeMCPorewatch monitor ide-bootstrap --client claude_codePont MCP de première classe
CodexMCPorewatch monitor ide-bootstrap --client codexPont MCP de première classe
CursorMCPorewatch monitor ide-bootstrap --client cursorPont MCP de première classe
VS CodeLocal APIorewatch monitor ide-bootstrap --client vscodeAucune extension intégrée ; utilisez l'API localhost
JetBrains / PyCharmLocal APIorewatch monitor ide-bootstrap --client jetbrainsAucun plugin intégré ; utilisez l'API localhost
XcodeLocal APIorewatch monitor ide-bootstrap --client xcodeIdéal pour les résultats/notifications et les dépôts multilingues

Les commandes d'amorçage affichent l'une de ces formes :```json { "mcpServers": { "orewatch": { "command": "/absolute/path/to/orewatch", "args": [ "monitor", "mcp" ] } } }

root@kitploit:~
Quand `orewatch monitor ide-bootstrap --client <client>` parvient à résoudre le script console local, il émet désormais ce chemin absolu au lieu de `orewatch` nu. Si vous avez une configuration MCP plus ancienne qui contient encore `"command": "orewatch"`, régénérez-la et remplacez l'ancienne entrée.```json
{
  "orewatch": {
    "baseUrl": "http://127.0.0.1:48736",
    "tokenPath": "/path/to/api.token"
  }
}
Cursor, Claude Code, and Codex

Ces clients utilisent tous le même pont MCP local :```bash orewatch monitor mcp

root@kitploit:~
Configuration recommandée :

1. Exécutez `orewatch monitor quickstart /path/to/project --client <cursor|claude_code|codex>` une fois.
2. Copiez le bloc MCP imprimé dans le client MCP correspondant.
3. Ouvrez un projet surveillé dans ce client.
4. Laissez le client appeler OreWatch via MCP pour :
   - `orewatch_health`
   - `orewatch_check_dependency_add`
   - `orewatch_check_manifest`
   - `orewatch_override_dependency_add`
   - `orewatch_list_active_findings`
   - `orewatch_list_notifications`

Notes :

- `monitor mcp` est un serveur stdio. Si vous le lancez manuellement, il semblera inactif en attendant un client MCP.
- Le pont MCP vérifie l'API locale au démarrage et peut démarrer automatiquement le moniteur singleton lorsque `auto_start_on_client` est activé.
- Pour un démarrage fiable de l'IDE, installez le moniteur d'arrière-plan une fois avec `monitor install` pour que le démon soit déjà disponible avant que le pont MCP ne démarre.

##### VS Code

Les intégrations VS Code doivent utiliser l'API singleton localhost plutôt que le pont MCP.

Configuration recommandée :

1. Exécutez `orewatch monitor quickstart /path/to/project --client vscode`.
2. Copiez `baseUrl` et `tokenPath` depuis `orewatch monitor ide-bootstrap --client vscode`.
3. Intégrez ces valeurs dans votre extension, tâche ou assistant VS Code local.
4. Appelez l'API lors des événements dependency-add, manifest-save et alert-refresh.

Utilisation recommandée de l'API pour une intégration VS Code :

- appelez `POST /v1/check/dependency-add` avant les flux d'installation/ajout du gestionnaire de paquets
- appelez `POST /v1/check/manifest` lorsqu'un manifeste pris en charge est sauvegardé ou explicitement revérifié
- interrogez `GET /v1/findings/active` et `GET /v1/notifications` pour afficher les détections en arrière-plan

##### JetBrains / PyCharm

JetBrains et PyCharm utilisent le même contrat d'API localhost que VS Code.

Configuration recommandée :

1. Exécutez `orewatch monitor quickstart /path/to/project --client jetbrains`.
2. Copiez le bloc API depuis `orewatch monitor ide-bootstrap --client jetbrains`.
3. Utilisez `baseUrl` et `tokenPath` retournés dans un plugin JetBrains, un outil externe ou un assistant local.
4. Affichez à la fois les décisions synchrones de dépendances et les alertes d'arrière-plan stockées dans l'IDE.

Utilisation recommandée de l'API pour une intégration JetBrains :

- vérifiez les ajouts de dépendances avec `POST /v1/check/dependency-add`
- revérifiez `package.json`, `requirements.txt`, `pyproject.toml`, `pom.xml`, `Gemfile`, `go.mod`, `Cargo.toml`, et les manifestes pris en charge associés avec `POST /v1/check/manifest`
- récupérez `GET /v1/findings/active` et `GET /v1/notifications` pour des panneaux d'alerte ou fenêtres d'outils persistants

##### Xcode

Les intégrations Xcode doivent également utiliser l'API singleton localhost, mais il y a une limite importante : OreWatch ne parse pas encore les manifestes de dépendances Apple natifs comme `Package.resolved`, `Podfile.lock` ou `Cartfile`. Aujourd'hui, l'intégration Xcode est idéale pour :

- afficher les résultats d'arrière-plan et les notifications dans un assistant, un script ou une application compagnon
- les dépôts multi-langages ouverts dans Xcode qui contiennent également des manifestes pris en charge comme `package.json`, `pyproject.toml` ou `Cargo.toml`
- les équipes qui souhaitent l'application de la barre de menus macOS et les alertes du Centre de notifications tout en travaillant dans Xcode

Configuration recommandée :

1. Exécutez `orewatch monitor quickstart /path/to/project --client xcode`.
2. Copiez le bloc API depuis `orewatch monitor ide-bootstrap --client xcode`.
3. Utilisez `baseUrl` et `tokenPath` retournés depuis un script de phase de build, un processus assistant ou une intégration Xcode personnalisée.
4. Interrogez `GET /v1/findings/active` et `GET /v1/notifications` pour des alertes visibles par l'utilisateur.
5. Si l'espace de travail Xcode contient des manifestes non-Apple pris en charge, appelez `POST /v1/check/manifest` pour ces fichiers dans le cadre de votre flux de travail.

Statut actuel de l'intégration :

- Claude Code, Codex et Cursor : pont MCP de première qualité inclus dans ce dépôt
- VS Code : contrat d'API local documenté, mais aucune extension officielle fournie pour le moment
- JetBrains / PyCharm : contrat d'API local documenté, mais aucun plugin officiel fourni pour le moment
- Xcode : API locale et intégration barre de menus documentées, mais aucune extension Xcode officielle et aucun analyseur de manifeste Apple natif pour le moment

#### Quand OreWatch trouve quelque chose

Lorsque le moniteur d'arrière-plan détecte un paquet compromis ou un IoC dans un projet surveillé, OreWatch :

- écrit des rapports JSON et HTML gérés par le moniteur dans le répertoire `reports/` du moniteur singleton
- stocke le résultat actif dans la base de données d'état du moniteur
- stocke une entrée de notification avec un message actionnable
- émet un avertissement dans le terminal si les notifications terminal sont activées
- sur macOS, privilégie l'application de la barre de menus singleton comme canal de popup lorsqu'elle est en cours d'exécution
- garde l'alerte la plus récente digne d'attention épinglée en haut du menu déroulant de la barre de menus pour un examen rapide
- sinon, utilise une notification de bureau directe au mieux si les notifications de bureau sont activées
- peut envoyer une notification webhook optionnelle pour les environnements distants ou sans tête

Utilisez l'interface de revue CLI intégrée pour inspecter ces alertes :```bash
orewatch monitor findings
orewatch monitor findings --project /path/to/project --min-severity high
orewatch monitor notifications
orewatch monitor notifications --project /path/to/project
orewatch monitor package-updates
orewatch monitor package-updates --check

L'API locale et le pont MCP exposent les mêmes données pour les IDE et les agents :

  • API:
    • GET /v1/findings/active
    • GET /v1/notifications
    • GET /v1/package-updates
    • POST /v1/package-updates/check
  • MCP:
    • orewatch_list_active_findings
    • orewatch_list_notifications
    • orewatch_list_package_updates
    • orewatch_check_package_updates

C'est le chemin pris en charge pour que les IDE, les clients MCP et les agents de codage révèlent les détections en arrière-plan après la fin de l'analyse d'origine.

Les avis de mise à jour de paquets sont en mode notification uniquement. OreWatch signale les versions plus récentes des dépendances de projet surveillées et d'OreWatch lui-même, mais ne modifie pas les manifestes, les fichiers de verrouillage ou les paquets installés.

Application native de barre de menus macOS

OreWatch inclut désormais une application native de barre de menus macOS pour les personnes souhaitant une interface utilisateur locale visible plutôt que de se fier uniquement aux commandes CLI, à l'interrogation MCP ou aux popups du Centre de notifications au mieux.

Installez les liaisons Cocoa optionnelles dans le même runtime qui fournit la commande orewatch. Choisissez la commande qui correspond à votre méthode d'installation :```bash

pip / source-checkout install

python3.14 -m pip install 'orewatch[mac-menubar]'

existing pipx install

pipx inject orewatch pyobjc-framework-Cocoa

Homebrew install

brew install rapticore/tap/orewatch

root@kitploit:~
Ensuite, lancez l'application de la barre de menus :```bash
orewatch monitor menubar

Par défaut, monitor menubar relance l'application en arrière-plan et rend immédiatement la main à votre invite de shell. Utilisez orewatch monitor menubar --foreground seulement lorsque vous voulez explicitement la garder attachée au terminal pour le débogage.

L'application de la barre de menus se rattache au même moniteur singleton. Elle ne démarre pas une deuxième instance de moniteur. Si le moniteur n'est pas déjà installé et en cours d'exécution, l'application l'installera/démarrera lors du premier lancement.

Homebrew installe les liaisons Cocoa dans l'environnement isolé libexec d'OreWatch. Si orewatch monitor menubar signale No module named 'AppKit', rafraîchissez la formule avec brew update && brew reinstall rapticore/tap/orewatch. Pour les installations pip, pipx et source, les liaisons optionnelles doivent encore être ajoutées au même environnement Python qui fournit la commande orewatch.

Lorsque les notifications de bureau sont activées sur macOS, le watcher singleton maintient désormais une application de barre de menus singleton active et l'utilise comme surface de popup principale. Cela évite de dépendre uniquement d'un appel osascript détaché du démon et vous offre une interface native persistante pour les nouvelles découvertes.

La version actuelle de la barre de menus est prioritaire sur l'icône. L'abréviation OW et les anciens libellés d'icône OreWatch doivent être considérés comme des références héritées ; l'application privilégie désormais l'icône de marque incluse et ne revient au texte compact ou aux badges que lorsque macOS ne peut pas afficher l'image ou a besoin d'un compteur d'alertes.

Ce que l'application de la barre de menus macOS vous offre :

  • un élément d'état persistant dans la barre de menus qui privilégie l'icône de marque incluse, avec un retour au texte compact ou aux badges d'alerte si nécessaire
  • un état d'alerte rouge/compact pour les alertes nouvellement détectées qui reste visible jusqu'à ce que vous ouvriez le menu
  • un résumé en direct des résultats actifs et de la sévérité la plus élevée
  • une section Mises à jour de paquets de première classe avec les mises à jour des dépendances du projet, l'état de mise à jour d'OreWatch, le statut de la dernière vérification et des commandes suggérées copiables
  • notifications récentes dans un menu déroulant natif
  • popups natifs du Centre de notification pour les alertes de moniteur nouvellement stockées
  • une action Add Workspace Folder... qui inscrit un projet dans le watcher singleton et lance un scan rapide initial
  • interrupteurs de configuration intégrés pour les notifications de bureau, les notifications de terminal, le keepalive de la barre de menus et les popups pilotés par la barre de menus
  • actions en un clic pour ouvrir les rapports, l'accueil du moniteur et le journal du moniteur
  • actions en un clic pour ouvrir le fichier de configuration du moniteur et le dossier de configuration
  • actions de menu pour vérifier les mises à jour de paquets, rafraîchir le renseignement sur les menaces, lancer des scans rapides/complets, et démarrer/redémarrer/arrêter le moniteur singleton

Flux Mac recommandé :

  1. Exécutez orewatch monitor quickstart /path/to/project --client claude_code une fois.
  2. Installez les liaisons optionnelles dans le même environnement que orewatch.
  3. Lancez orewatch monitor menubar.
  4. Gardez l'application de la barre de menus en cours d'exécution pour une surface de révision native persistante pendant que vos IDE et agents de codage continuent d'utiliser MCP ou l'API locale.

Guide d'adoption

Pour un déploiement plus facile, utilisez la documentation ciblée au lieu de lire l'intégralité du README du début à la fin :

  • docs/adoption-guide.md : le chemin le plus court pour l'adoption par les développeurs locaux
  • docs/local-api.md : contrat exact de l'API localhost et MCP
  • docs/e2e-testing.md : workflow de contribution et de validation

Ordre d'adoption recommandé :

  1. Commencez avec un dépôt et un utilisateur.
  2. Activez le moniteur singleton avec monitor quickstart.
  3. Connectez un client : Cursor, Claude Code, Codex, VS Code, PyCharm ou Xcode.
  4. Confirmez que les résultats apparaissent dans orewatch monitor findings et orewatch monitor notifications.
  5. Sur macOS, ajoutez monitor menubar pour que les utilisateurs disposent d'une surface de révision persistante et d'une livraison par popup.
  6. Une fois l'adoption locale stable, ajoutez des scans CI et des webhooks optionnels.

Opérations quotidiennes

Commandes opérationnelles courantes :```bash

Background service lifecycle

orewatch monitor start orewatch monitor restart orewatch monitor stop orewatch monitor uninstall

Run the daemon in the foreground

orewatch monitor run

Launch the native macOS menu bar UI

orewatch monitor menubar

Trigger immediate scans

orewatch monitor scan-now orewatch monitor scan-now /path/to/project

Review detections and alerts

orewatch monitor findings orewatch monitor notifications

Reclaim disk space — prune accumulated backup manifests and orphaned staging

orewatch monitor cleanup orewatch monitor cleanup --keep-backups 5 --staging-max-age-seconds 3600

root@kitploit:~
**Actions manuelles d'instantané et de signature :**```bash
# Generate a signing keypair
orewatch monitor snapshot keygen /tmp/ore-keys

# Build and apply local threat-data snapshots
orewatch monitor snapshot build /tmp/ore-snapshot \
  --private-key /tmp/ore-keys/snapshot_signing_private.pem \
  --public-key /tmp/ore-keys/snapshot_signing_public.pem
orewatch monitor snapshot apply /tmp/ore-snapshot/manifest.json \
  --public-key /tmp/ore-keys/snapshot_signing_public.pem

# Publish a hosted snapshot channel
orewatch monitor snapshot publish /tmp/ore-snapshots \
  --base-url https://example.com/ore-snapshots \
  --channel stable \
  --private-key /tmp/ore-keys/snapshot_signing_private.pem \
  --public-key /tmp/ore-keys/snapshot_signing_public.pem

Comportement du moniteur :

  • Les analyses rapides sont axées sur les paquets et s'exécutent selon un planning et après des modifications génériques des manifestes.
  • Les analyses complètes incluent la détection d'IoC et s'exécuent chaque nuit, sur demande manuelle, et après des modifications de workflow ou de fichiers payload.
  • Sur Linux, la configuration par défaut est ~/.config/orewatch/singleton/ et l'état par défaut est ~/.local/state/orewatch/singleton/.
  • Sur macOS, la configuration par défaut est ~/Library/Application Support/OreWatch/singleton/ et l'état par défaut est ~/Library/Application Support/OreWatch/State/singleton/.
  • Les données de menaces partagées résident désormais dans le répertoire d'état singleton à threat-data/final-data/.
  • monitor doctor affiche les chemins exacts config_path, state_db, log_file, final_data_dir et le répertoire des modèles de service pour le moniteur singleton.
  • Les écrasements de politique par projet peuvent être stockés dans .ore-monitor.yml à la racine du projet.
  • monitor install installe désormais un service launchd ou systemd au niveau utilisateur lorsque disponible, et revient au mode arrière-plan local sinon.
  • monitor quickstart /path/to/project --client claude_code est le flux de première exécution le plus simple pour une configuration d'agent LLM local.
  • --workspace-root /path/to/workspace est toujours accepté pour une version comme alias de compatibilité obsolète, mais il ne modifie plus l'identité du moniteur, l'emplacement du jeton ou le nommage du service.
  • En mode auto, si la configuration native launchd ou systemd échoue, OreWatch revient désormais au mode arrière-plan local au lieu d'abandonner l'installation.
  • monitor install --ide-bootstrap affiche des extraits d'amorçage copiables pour Claude Code, Codex, Cursor, VS Code, JetBrains / PyCharm et Xcode.
  • monitor connection-info affiche l'URL de base de l'API loopback, le chemin du jeton, la portée/répertoire personnel du moniteur singleton et si le démon est déjà en cours d'exécution.
  • monitor ide-bootstrap réaffiche les extraits d'amorçage MCP/API actuels sans rien réinstaller.
  • monitor mcp exécute un pont MCP local qui expose les vérifications de dépendances d'OreWatch à Claude Code, Codex et Cursor.
  • monitor findings, monitor notifications et monitor package-updates fournissent l'interface d'examen intégrée pour les détections en arrière-plan et les avis de mise à jour.
  • monitor menubar lance une application native de la barre de menus macOS soutenue par le moniteur singleton et le magasin de résultats.
  • monitor mcp est un serveur stdio, donc il attendra un client MCP après le démarrage. Il écrit désormais l'état de préparation et de démarrage automatique sur stderr, pas sur stdout.
  • Pour le démarrage d'IDE ou de client MCP, utilisez monitor install de sorte que le démon d'arrière-plan soit déjà disponible lorsque le client lance monitor mcp ou appelle l'API.
  • make test-e2e-clients prépare l'espace de travail synthétique et exécute la matrice de clients MCP/API multi-écosystèmes pour Claude Code, Codex et Cursor.
  • Les installations open-source/communautaires utilisent par défaut les mises à jour en direct avec contrôle d'anomalies à partir des flux centraux en amont (openssf et osv). Les données candidates sont mises en scène dans le répertoire d'état du moniteur appartenant à l'utilisateur, vérifiées pour des baisses/suppressions anormales, puis promues dans les bases de données actives.
  • Les installations gérées/entreprises peuvent plutôt utiliser un descripteur de canal signé ou un manifeste configuré dans le fichier de configuration du moniteur appartenant à l'utilisateur via snapshots.channel_url ou snapshots.manifest_url, et le moniteur les vérifie avec snapshots.public_key_path.
  • Les workflows d'instantanés signés nécessitent actuellement openssl sur la machine locale.
  • Les directives de test d'intégration client multi-écosystèmes sont documentées dans docs/e2e-testing.md.

Surface d'intégration locale :

  • OreWatch expose désormais une API locale uniquement sur 127.0.0.1:48736 par défaut lorsque le démon moniteur est en cours d'exécution.
  • L'API utilise un jeton bearer par utilisateur stocké dans le répertoire de configuration du moniteur à api.token avec des permissions propriétaire uniquement.
  • Les requêtes directes à 127.0.0.1:48736 sans Authorization: Bearer <token> retourneront correctement 401 Unauthorized.
  • Les clients agent et IDE doivent découvrir le moniteur via orewatch monitor connection-info plutôt que de deviner les chemins, et doivent envoyer le project_path réel sur lequel ils opèrent dans les requêtes de vérification de dépendances.
  • Claude Code, Codex et Cursor peuvent utiliser le pont MCP intégré, qui expose orewatch_health, orewatch_check_dependency_add, orewatch_check_manifest, orewatch_override_dependency_add, orewatch_list_active_findings, orewatch_list_notifications, orewatch_list_package_updates et orewatch_check_package_updates.
  • Les intégrations VS Code, JetBrains / PyCharm et Xcode doivent appeler la même API localhost pour les vérifications d'ajout de dépendance, les revérifications de manifeste, les résultats actifs, les notifications récentes et les avis de mise à jour de paquets.
  • Les formes exactes des requêtes et réponses sont documentées dans docs/local-api.md.

Configuration optionnelle de mise à jour en direct avec contrôle d'anomalies :```yaml live_updates: enabled: true mode: gated bootstrap_from_live: true block_on_core_source_failure: false max_drop_ratio: 0.40 max_drop_absolute: 200 max_removal_ratio: 0.25 max_removal_absolute: 100 warn_growth_ratio: 5.0 warn_growth_absolute: 2000

root@kitploit:~
Comportement clé :
- Les candidats en direct sont d'abord construits dans une zone de préparation ; ils ne remplacent pas les bases de données actives pendant la collecte.
- Les chutes importantes, les régressions d'écosystème, les écosystèmes vides et les suppressions massives bloquent la promotion.
- Les pannes de source principale ne sont par défaut qu'un avertissement pour les mises à jour en direct open-source ; les chutes et suppressions au niveau de l'écosystème bloquent toujours les mauvaises promotions.
- Les anomalies avec avertissement uniquement sont enregistrées dans le statut et les rapports mais n'empêchent pas la promotion.
- Les candidats rejetés conservent le dernier jeu de données connu comme bon actif lorsqu'il en existe déjà un.
- Le bootstrap initial à partir des flux en direct est autorisé si au moins une source principale réussit et que le candidat produit des données d'écosystème utilisables.

**Configuration facultative du webhook de notification :**```yaml
notifications:
  desktop: true
  terminal: true
  webhook_url: https://hooks.example.com/orewatch
  webhook_format: generic
  webhook_timeout_ms: 5000
  webhook_headers:
    Authorization: Bearer change-me

Définissez webhook_format: slack lorsque vous ciblez un webhook entrant Slack. Dans ce mode, OreWatch envoie une charge utile text simple.


Distribution

Le projet dispose désormais de deux surfaces de distribution distinctes :

  1. Le code CLI et moniteur
  2. Les instantanés de données de menace consommés par le moniteur

Ils doivent être distribués séparément.

Distribution de paquet recommandée

Meilleur défaut pour les développeurs : publiez le scanner comme un paquet Python normal sur PyPI et recommandez l'installation avec pipx.

Pourquoi c'est le meilleur choix :

  • Le projet est un CLI Python et un moniteur en arrière-plan, donc une roue universelle plus une distribution source est l'artefact de publication le plus direct.
  • pipx offre aux développeurs une installation isolée au niveau utilisateur sans polluer les environnements virtuels du projet.
  • Le CI peut toujours installer la même version avec python3.14 -m pip install orewatch==<version>.
  • Cela permet de garder le chemin de mise à niveau du CLI simple tout en laissant les mises à jour des données de menace au canal d'instantanés signé.

Forme de publication recommandée :

  • Publiez les artefacts sdist et la roue universelle sur PyPI.
  • Exposez le point d'entrée de la console orewatch.
  • Conservez ore-mal-pkg-inspector comme alias de compatibilité temporaire.
  • Documentez pipx install --python python3.14 orewatch pour les installations locales des développeurs.
  • Documentez python3.14 -m pip install orewatch==<version> pour le CI et l'automatisation verrouillée.

Canal secondaire disponible : le tap Homebrew est maintenant actif pour les utilisateurs macOS qui préfèrent les installations gérées par Brew :```bash brew install rapticore/tap/orewatch

root@kitploit:~
Homebrew reste une couche de commodité par dessus la version publiée sur PyPI, et non l'artefact de publication principal.

**Meilleure option pour les contributeurs :** gardez le flux actuel de source-checkout :```bash
git clone https://github.com/rapticore/ore-mal-pkg-inspector.git
cd ore-mal-pkg-inspector
python3.14 -m venv .venv
source .venv/bin/activate
python -m pip install -e .

Déploiement macOS géré

Si vous déployez OreWatch avec Kandji, Jamf Pro, Intune, Munki, ou un autre système de distribution de logiciels macOS, le modèle recommandé diffère du chemin pipx pour développeurs.

Réalité actuelle du produit :

  • aujourd'hui, le dépôt fournit un paquet Python, pas un paquet d'installation macOS notarié de première partie
  • pour les flottes gérées, l'artefact recommandé est un .pkg plat signé construit autour de la roue OreWatch publiée
  • les instantanés de données de menaces doivent toujours être distribués séparément du paquet d'application/runtime

Modèle de déploiement d'entreprise recommandé :

  1. Installation sur l'appareil
    • déployer un .pkg signé qui installe l'environnement d'exécution OreWatch et un shim CLI orewatch stable
    • inclure éventuellement l'extra mac-menubar si vous voulez l'application native de la barre de menus sur les Mac gérés
  2. Activation utilisateur
    • exécuter orewatch monitor quickstart /path/to/project --client <client> ou un bootstrap équivalent en contexte utilisateur
    • cette étape est séparée car le moniteur d'OreWatch est intentionnellement par utilisateur et utilise un LaunchAgent utilisateur ainsi qu'une configuration/jeton/état appartenant à l'utilisateur
  3. Mises à jour continues
    • mettre à jour le paquet d'exécution selon votre cycle de vie logiciel normal
    • mettre à jour les instantanés de données de menaces indépendamment via le canal d'instantanés signé ou le chemin de mise à jour en direct

Pourquoi cette séparation est importante :

  • les outils MDM sont bons pour installer du code sur la machine
  • le moniteur d'OreWatch, le jeton API et le service launchd sont limités à l'utilisateur, ils doivent donc être créés dans le contexte de l'utilisateur connecté plutôt que forcés à partir d'une installation de paquet au niveau machine

Forme de paquet recommandée pour macOS géré :

  • un runtime dédié sous un chemin stable tel que /Library/Application Support/OreWatch/runtime
  • un shim stable tel que /usr/local/bin/orewatch
  • des métadonnées de paquet versionnées pour que les plateformes MDM puissent détecter proprement les mises à niveau
  • signature de code et notarisation si votre politique de flotte l'exige

Conseils spécifiques aux fournisseurs :

  • Kandji
    • utiliser une application personnalisée avec un paquet d'installation (.pkg)
    • préférer .pkg à .dmg ou .zip pour OreWatch car le runtime n'est pas une application glisser-déposer
    • utiliser Self Service ou une étape d'intégration orientée utilisateur pour la première activation du moniteur
  • Jamf Pro
    • télécharger le .pkg en tant que paquet et le déployer avec une politique ou Self Service
    • garder l'activation utilisateur séparée du déploiement du paquet machine sauf si vous avez une étape de bootstrap en contexte utilisateur délibérée
  • Microsoft Intune
    • utiliser une application LOB macOS avec un .pkg signé
    • Intune est plus strict que les autres canaux : il attend un vrai .pkg, signé avec un certificat Developer ID Installer, et le paquet doit contenir une charge utile
  • Munki
    • publier le .pkg ainsi que les métadonnées du paquet et traiter OreWatch comme tout autre logiciel macOS géré
    • Munki est un bon choix quand vous voulez un dépôt de paquets et une adoption optionnelle de type Self Service
  • Autres systèmes
    • tout système de distribution de paquets capable de déployer un paquet macOS plat normal et éventuellement d'exécuter une étape de bootstrap utilisateur peut prendre en charge OreWatch

Pour un guide de déploiement plus complet, voir docs/managed-rollout.md.

Distribution recommandée des instantanés

Les instantanés de données de menaces ne doivent pas être intégrés dans le paquet Python. Ils changent selon une cadence différente et sont déjà pris en charge en tant qu'artefacts hébergés signés.

Par défaut open-source/communautaire : consommer openssf et osv directement via le chemin de mise à jour en direct avec détection d'anomalies. Par défaut entreprise : publier des instantanés signés versionnés sur un hébergement HTTPS statique et laisser les clients les rafraîchir indépendamment.

Cibles d'hébergement recommandées :

  • Actifs des versions GitHub
  • S3 ou Cloudflare R2 derrière HTTPS
  • Tout bucket statique derrière un CDN qui sert des fichiers versionnés immuables

Structure d'instantané recommandée :

  • versions/<version>/manifest.json
  • versions/<version>/*.db
  • channels/stable.json

Modèle de confiance recommandé :

  • Conserver la clé de signature privée hors ligne
  • Ne fournir que la clé de vérification publique avec la configuration ou le paquet client
  • Vérifier chaque descripteur de canal et manifeste avant téléchargement/application

Modèle global recommandé

Pour une version de production, la configuration la plus propre est :

  • Distribuer l'application en tant que paquet PyPI
  • Installer localement avec pipx
  • Installer en CI avec pip
  • Distribuer les données de menaces sous forme de canaux d'instantanés signés via HTTPS
  • Considérer l'extraction de la source comme un chemin de développement, pas comme l'installation principale pour l'utilisateur final

Journalisation et débogage

Par défaut, le scanner n'affiche que les avertissements, les erreurs et le résumé final. Pour le dépannage ou le suivi détaillé de la progression, utilisez les indicateurs de journalisation :

Mode verbeux

Voir les messages de progression et les statistiques de collecte :```bash orewatch /path/to/project --verbose

root@kitploit:~
**La sortie inclut:**
- Résultats de détection d'écosystèmes
- Progression de l'analyse des fichiers
- Comptes d'extraction de paquets
- Détails de requête de base de données
- Progression de l'analyse des IoC

**Exemple:**```
INFO: Detected ecosystems: npm, pypi
INFO: Loaded database for npm: 15234 malicious packages
INFO: Loaded database for pypi: 8421 malicious packages
INFO: Extracted 45 packages from 3 files
INFO: Checking 30 npm packages against database...
INFO: Checking 15 pypi packages against database...
INFO: IoC scan complete: 0 indicators found

Mode de débogage

Consultez les informations de diagnostic détaillées pour le dépannage :```bash orewatch /path/to/project --debug

root@kitploit:~
**Output includes :**
- Tous les messages de niveau INFO
- Les chemins de fichiers analysés
- Les détails d'exécution des requêtes SQL
- Les calculs de hachage
- Les résultats de correspondance de motifs
- Les informations d'état interne

**Cas d'utilisation :**
- Enquêter sur les raisons pour lesquelles un paquet n'a pas été détecté
- Déboguer les problèmes de détection automatique d'écosystème
- Signaler des problèmes avec un contexte détaillé
- Auditer le comportement du scanner

### Journalisation pour les collecteurs

Les collecteurs de renseignements sur les menaces prennent également en charge les modes verbeux et de débogage :```bash
cd collectors

# See collection progress
python3 orchestrator.py --verbose

# Debug data source issues
python3 orchestrator.py --debug

Remarque : Tous les journaux vont vers stderr, gardant stdout propre pour la sortie du rapport JSON. Cela permet de rediriger les résultats du scanner vers d'autres outils sans interférence des messages de journal.


Sortie et Rapports

Structure du rapport

Les rapports sont enregistrés dans le répertoire scan-output/ par défaut (ou un chemin personnalisé avec --output). OreWatch écrit un rapport JSON lisible par machine et un rapport HTML associé stylisé avec le même nom de base. L'artefact JSON inclut des métadonnées de disponibilité des données de menace et utilise des objets physicalLocation de style SARIF pour les résultats de packages, mais ce n'est pas un document SARIF 2.1.0 complet.

Exemple de rapport :

root@kitploit:~
{
    "_type": "report",```json
{
  "scan_timestamp": "2025-12-31T12:00:00Z",
  "ecosystem": "npm",
  "scanned_path": "/path/to/project",
  "total_packages_scanned": 150,
  "data_status": "complete",
  "sources_used": ["openssf", "osv"],
  "experimental_sources_used": [],
  "missing_ecosystems": [],
  "malicious_packages_found": 2,
  "iocs_found": 3,
  "malicious_packages": [
    {
      "name": "malicious-pkg",
      "version": "1.0.0",
      "severity": "critical",
      "sources": ["threat-intel-db", "research-community"],
      "description": "Malicious code executes unauthorized operations",
      "detected_behaviors": ["malicious_code", "data_exfiltration"]
    }
  ],
  "iocs": [
    {
      "type": "malicious_bundle_js",
      "path": "node_modules/suspect-pkg/bundle.js",
      "hash": "46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09",
      "severity": "CRITICAL",
      "variant": "original",
      "description": "Known malicious payload file from Shai-Hulud attack"
    },
    {
      "type": "malicious_postinstall",
      "path": "package.json",
      "pattern": "node bundle.js",
      "severity": "CRITICAL",
      "variant": "original",
      "description": "Malicious postinstall hook executes payload"
    }
  ]
}

Champs de données de menace :

  • data_status : complete, partial, failed ou not_applicable
  • sources_used : sources qui ont contribué des données de menace utilisables pour les écosystèmes demandés
  • experimental_sources_used : sources expérimentales incluses dans les données d'analyse
  • missing_ecosystems : écosystèmes demandés pour lesquels aucune base de données de menace de paquet utilisable n'était disponible
  • promotion_decision : vide pour les analyses de données existantes, sinon promoted, bootstrapped ou rejected
  • kept_last_known_good : true lorsqu'un candidat en direct a été rejeté mais que l'ensemble de données actif précédent est resté utilisable
  • anomalies : anomalies d'avertissement/bloc déclenchées lors d'une tentative de rafraîchissement en direct

Comprendre les résultats

Niveaux de sévérité :

  • CRITIQUE : Code malveillant connu avec des exploits actifs ou exfiltration de données
  • ÉLEVÉ : Indicateurs forts d'intention malveillante ou de typosquattage
  • MOYEN : Modèles suspects ou vulnérabilités potentielles
  • FAIBLE : Préoccupations mineures ou constatations informatives

Actions recommandées :

  1. Résultats critiques/élevés : Supprimez immédiatement les paquets affectés et enquêtez sur l'impact
  2. Examinez les IoCs : Vérifiez si un code malveillant a été exécuté (journaux, activité réseau)
  3. Mettez à jour les dépendances : Remplacez les paquets malveillants par des alternatives légitimes
  4. Analysez à nouveau : Vérifiez la correction avec une analyse de suivi
  5. Signalez : Envisagez de signaler aux mainteneurs du registre de paquets

Intégration CI/CD

GitHub Actions

Analyse de sécurité de base :```yaml name: Security Scan - Malicious Packages on: [push, pull_request]

jobs: malicious-package-scan: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4

root@kitploit:~
  - name: Set up Python
    uses: actions/setup-python@v5
    with:
      python-version: '3.14'

  - name: Install OreWatch
    run: |
      git clone https://github.com/rapticore/ore-mal-pkg-inspector.git scanner
      cd scanner
      pip install .

  - name: Scan for malicious packages
    run: |
      cd scanner
      orewatch ${{ github.workspace }} --latest-data

  - name: Upload scan report
    uses: actions/upload-artifact@v4
    if: always()
    with:
      name: security-scan-report
      path: scanner/scan-output/
root@kitploit:~
**Avancé avec échec à la détection :**```yaml
      - name: Scan and fail on malicious packages
        run: |
          cd scanner
          orewatch ${{ github.workspace }} --latest-data --output report.json

          # Check if malicious packages were found
          MALICIOUS_COUNT=$(jq '.malicious_packages_found' report.json)
          IOC_COUNT=$(jq '.iocs_found' report.json)

          if [ "$MALICIOUS_COUNT" -gt 0 ] || [ "$IOC_COUNT" -gt 0 ]; then
            echo "🚨 SECURITY ALERT: Malicious packages or IoCs detected!"
            echo "Malicious packages: $MALICIOUS_COUNT"
            echo "IoCs found: $IOC_COUNT"
            exit 1
          fi

GitLab CI```yaml

malicious-package-scan: image: python:3.14 stage: security before_script: - git clone https://github.com/rapticore/ore-mal-pkg-inspector.git scanner - cd scanner && pip install . script: - orewatch $CI_PROJECT_DIR --latest-data --strict-data --output scan-report.json artifacts: paths: - scan-report.json when: always allow_failure: false

root@kitploit:~
### Jenkins Pipeline```groovy
pipeline {
    agent any

    stages {
        stage('Setup Scanner') {
            steps {
                sh '''
                    git clone https://github.com/rapticore/ore-mal-pkg-inspector.git scanner
                    cd scanner
                    python3.14 -m pip install .
                '''
            }
        }

        stage('Security Scan') {
            steps {
                sh '''
                    cd scanner
                    orewatch ${WORKSPACE} --latest-data
                '''
            }
        }
    }

    post {
        always {
            archiveArtifacts artifacts: 'scanner/scan-output/*.json', fingerprint: true
        }
    }
}

Hook Pre-commit

Ajouter dans .git/hooks/pre-commit :```bash #!/bin/bash

echo "Running malicious package scan..."

cd /path/to/ore-mal-pkg-inspector orewatch $PROJECT_DIR --no-summary

if [ $? -ne 0 ]; then echo "❌ Malicious packages or IoCs detected! Commit blocked." echo "Review the scan report in scan-output/" exit 1 fi

echo "✅ Security scan passed"

root@kitploit:~
---

## Dépannage

### Problèmes Courants

#### Erreur « Base de données introuvable »

**Symptôme :**```
ERROR: No usable threat data available for requested ecosystems: npm

Cause: La collecte de données de menace a échoué, les métadonnées sont incomplètes, ou les écosystèmes demandés n'ont pas encore de bases de données locales utilisables.

Solution:```bash

Force recollection and require a complete result for the requested ecosystems

orewatch /path/to/project --latest-data --strict-data

root@kitploit:~
**Remarque :** Si cela persiste, vérifiez la connectivité réseau, les permissions du système de fichiers, et si vous avez intentionnellement demandé des sources expérimentales.

#### "Aucun paquet détecté" Avertissement

**Symptôme :**```
WARNING: No packages detected in /path/to/project

Causes et solutions possibles :

  1. Mauvais répertoire : Assurez-vous de scanner le répertoire de projet correct. ```bash ls /path/to/project # Verify package.json or requirements.txt exists
    root@kitploit:~
  2. Manifeste non pris en charge ou inattendu : Imprimer les noms de fichiers exacts pris en charge ```bash orewatch --list-supported-files
    root@kitploit:~
  3. Permissions de fichiers: Assurez-vous que les fichiers sont lisibles ```bash ls -la /path/to/project/package.json
    root@kitploit:~

Erreurs de connexion lors de la mise à jour

Symptôme:``` ERROR: Error downloading npm: <urlopen error [Errno -3] Temporary failure in name resolution>

root@kitploit:~
**Solutions:**

1. **Vérifier la connexion internet:**   ```bash
   ping google.com
  1. Réessayer avec augmentation du délai d'attente: Edit collectors/config.yaml: ```yaml osv: timeout: 600 # Increase from default 300
    root@kitploit:~
  2. Utilisez les données en cache : Si vous avez déjà téléchargé des données : ```bash python3 orchestrator.py --skip-build # Skip download, rebuild from cache
    root@kitploit:~

Erreurs d'autorisation refusée

Symptôme:``` ERROR: Error creating directory collectors/raw-data: Permission denied

root@kitploit:~
**Solution:**```bash
# Ensure proper ownership
sudo chown -R $USER:$USER /path/to/ore-mal-pkg-inspector

# Or run from user-writable location
cd ~/
git clone https://github.com/rapticore/ore-mal-pkg-inspector.git
cd ore-mal-pkg-inspector

OreWatch utilise trop d'espace disque

Symptôme : ~/Library/Application Support/OreWatch (macOS) ou $XDG_STATE_HOME/orewatch (Linux) a atteint des dizaines de gigaoctets.

Cause (avant 1.2.3) : Chaque promotion de mise à jour en direct archivait une copie complète des bases de données de données de menace précédentes (~300 Mo) sans rétention. Un moniteur de longue durée accumulait un instantané par cycle indéfiniment.

Correctif : Mettez à niveau vers 1.2.3 ou ultérieur. Les sauvegardes sont maintenant des manifests SHA-256 d'environ 1 Ko, la rétention par défaut est de 30 sauvegardes les plus récentes, et une commande de nettoyage explicite est disponible :```bash

Apply the configured retention policy now (default: keep 30 manifests,

remove staging entries older than 1 hour).

orewatch monitor cleanup

Reclaim everything except the most recent 5 backups and purge staging.

orewatch monitor cleanup --keep-backups 5 --staging-max-age-seconds 0

Tune retention in monitor config (live_updates section):

retain_backups: # how many backup manifests to keep

staging_max_age_seconds: # stale candidate-* staging cutoff

root@kitploit:~
#### Faux positifs

**Symptôme :** Paquet légitime signalé comme malveillant.

**Étapes :**

1. **Vérifier la constatation :** Examiner les détails du rapport, y compris la gravité et la description

2. **Vérifier la version :** La version signalée peut être spécifique :   ```bash
   orewatch /path/to/project --verbose
  1. Signaler un faux positif : Si le faux positif est confirmé :
    • Ouvrir un ticket sur https://github.com/rapticore/ore-mal-pkg-inspector/issues avec les détails

Mode Débogage pour Investigation

Activer la journalisation détaillée :```bash

Scanner debug mode

orewatch /path/to/project --debug 2> debug.log

Collector debug mode

cd collectors python3 orchestrator.py --debug 2> collector-debug.log

root@kitploit:~
**Consultez les logs :** Vérifiez `debug.log` pour la trace d'exécution détaillée incluant :
- Chemins de fichiers scannés
- Requêtes SQL exécutées
- Résultats de correspondance de motifs
- Traces de pile d'erreurs

---

## FAQ

### À quelle fréquence dois-je mettre à jour les renseignements sur les menaces ?

**Recommandation :**
- **Environnements de production/CI :** Mises à jour automatisées quotidiennes
- **Postes de développement :** Mises à jour hebdomadaires au minimum
- **Après des actualités de sécurité :** Mise à jour immédiate lorsque de nouvelles menaces sont annoncées

Les paquets malveillants sont publiés en continu. Les mises à jour quotidiennes garantissent les dernières protections.

### Comment mettre à jour les données de renseignement sur les menaces ?

Exécutez le scanner avec l'option `--latest-data` pour forcer une mise à jour :```bash
orewatch /path/to/project --latest-data

Pour les mises à jour automatisées dans les CI/CD, planifiez des analyses périodiques avec le drapeau --latest-data (par exemple, quotidiennement). Ajoutez --include-experimental-sources uniquement si vous souhaitez explicitement inclure les données dérivées de Phylum dans la reconstruction.

Remarque : Les premières analyses collectent automatiquement les données, donc les mises à jour manuelles ne sont nécessaires que pour rafraîchir les bases de données existantes.

D'où proviennent les données de menaces ?

Les bases de données par défaut sont construites à partir des sources de menaces principales du projet :

  • openssf
  • osv

Le scanneur peut également inclure l'ensemble des sources expérimentales du projet :

  • phylum avec --include-experimental-sources

socketdev est présent dans le dépôt en tant qu'espace réservé désactivé et ne fait pas partie du chemin de collecte par défaut.

Pour les détails techniques sur les sources de données, la collecte et le traitement, voir ARCHITECTURE.md.

Cet outil modifie-t-il mon code ou mes dépendances ?

Non. OreWatch effectue des opérations en lecture seule. Il :

  • ✅ Lit les fichiers de dépendances
  • ✅ Interroge les bases de données de menaces
  • ✅ Analyse les motifs de fichiers
  • ✅ Génère des rapports

Il ne jamais :

  • ❌ Modifie les fichiers de paquets
  • ❌ Installe ou supprime des paquets
  • ❌ Modifie la configuration du projet
  • ❌ Exécute le code des paquets

Que faire si mon paquet est signalé comme malveillant ?

Mesures à prendre :

  1. Vérifiez la découverte : Consultez le rapport pour les détails et la sévérité
  2. Examinez les preuves : Étudiez la description et les comportements détectés
  3. Vérifiez les versions : Déterminez si des versions spécifiques sont concernées
  4. Si légitime :
    • Signalez un faux positif aux responsables de la source de données
    • Ouvrez un ticket sur notre GitHub avec les détails
  5. Si vraiment malveillant :
    • Supprimez immédiatement le paquet
    • Examinez les commits récents pour des dommages
    • Vérifiez les journaux pour une activité suspecte
    • Mettez à jour vers une alternative sûre

Puis-je l'utiliser hors ligne ?

Partiellement.

Analyse hors ligne : ✅ Oui, une fois les bases de données initialisées```bash

Online: Initial setup (one-time - runs automatically on first scan)

orewatch /path/to/project

Offline: Subsequent scans work with local databases

orewatch /path/to/project

root@kitploit:~
**Mises à jour hors ligne :** ❌ Non, la collecte de renseignements sur les menaces nécessite un accès à Internet pour récupérer les données des sources de sécurité.

**Environnements isolés (airgap) :** Vous pouvez :
1. Télécharger les bases de données sur une machine connectée à Internet
2. Transférer les fichiers SQLite dans le répertoire `final_data_dir` singleton affiché par `orewatch monitor doctor`
3. Exécuter des analyses hors ligne avec des données potentiellement obsolètes

### En quoi cela se compare-t-il à npm audit ou pip-audit ?

**Objectifs différents :**

**npm audit / pip-audit :**
- Se concentrent sur les vulnérabilités CVE connues
- Vérifient les versions de paquets par rapport aux bases de données d'avis
- Maintenus par les équipes des registres de paquets

**OreWatch :**
- Se concentre sur les paquets malveillants (pas seulement les vulnérables)
- Détecte le typosquatting, les malwares, les attaques sur la chaîne d'approvisionnement
- Couverture multi-écosystèmes
- Détection d'IoC pour les menaces actives

**Meilleure pratique :** Utilisez les **deux** :```bash
# Check for vulnerabilities
npm audit
pip-audit

# Check for malicious packages
orewatch /path/to/project

Cela fonctionne-t-il avec les registres de paquets privés ?

Analyse des dépendances : ✅ Oui, l'analyseur lit vos fichiers de dépendances, quelle que soit la provenance des paquets.

Renseignement sur les menaces : ⚠️ Limité. Nos bases de données couvrent les registres publics (npmjs.com, pypi.org, etc.). Les paquets malveillants sur les registres privés ne seront pas détectés, sauf si vous ajoutez des données de menaces personnalisées.

Données de menaces personnalisées : Vous pouvez étendre les bases de données avec vos propres listes de paquets malveillants. Contactez-nous pour obtenir des conseils sur ce cas d'utilisation avancé.

Quel est l'impact sur les performances ?

Temps d'analyse :

  • Petits projets (< 50 paquets) : < 5 secondes
  • Projets moyens (50-500 paquets) : 5-30 secondes
  • Grands projets (500+ paquets) : 30-120 secondes

Facteurs :

  • L'analyse des IoC ajoute 10 à 50 % de surcharge (désactivez avec --no-ioc si inutile)
  • La première exécution peut être plus lente car les bases de données sont chargées en mémoire

Conseils d'optimisation :```bash

Scan specific files instead of entire directory

orewatch --file package.json

root@kitploit:~
---

## Contribuer

Nous accueillons volontiers les contributions ! Que vous signaliez des bogues, suggériez des fonctionnalités ou contribuiez du code, votre aide améliore OreWatch pour tout le monde.

**Signaler des bogues ou demander des fonctionnalités :**
- GitHub Issues : https://github.com/rapticore/ore-mal-pkg-inspector/issues

**Contribuer du code :**
- Voir [CONTRIBUTING.md](https://github.com/rapticore/ore-mal-pkg-inspector/blob/main/CONTRIBUTING.md) pour des directives détaillées sur la configuration de développement, le style de code, les tests et le processus de pull request

**Questions ou discussions :**
- GitHub Discussions : https://github.com/rapticore/ore-mal-pkg-inspector/discussions

---

## Politique de sécurité

La sécurité est notre priorité absolue. OreWatch est un outil de sécurité, et nous prenons les vulnérabilités au sérieux.

### Signaler des vulnérabilités de sécurité

**N'ouvrez PAS de GitHub Issues publiques pour les vulnérabilités de sécurité.**

Signalez plutôt en privé :

**E-mail :** [email protected]

**Inclure :**
- Description de la vulnérabilité
- Étapes pour reproduire
- Impact potentiel
- Correctif suggéré (le cas échéant)
- Vos coordonnées pour le suivi

### Calendrier de réponse

- **Accusé de réception :** Sous 48 heures
- **Évaluation initiale :** Sous 7 jours
- **Délai de correction :** Varie selon la gravité
  - Critique : 7 à 14 jours
  - Élevé : 14 à 30 jours
  - Moyen/Faible : 30 à 60 jours

### Bonnes pratiques de sécurité

Lorsque vous utilisez OreWatch :

**À faire :**
- ✅ Exécuter avec le moindre privilège (pas de root/admin requis)
- ✅ Mettre à jour régulièrement les renseignements sur les menaces
- ✅ Examiner rapidement les rapports d'analyse
- ✅ Intégrer dans CI/CD pour une protection continue
- ✅ Maintenir l'outil à jour vers la dernière version

**À ne pas faire :**
- ❌ Ignorer les résultats d'analyse sans investigation
- ❌ Désactiver l'analyse des IoC dans les environnements de production
- ❌ Partager des fichiers de base de données provenant de sources non fiables
- ❌ Exécuter avec des privilèges élevés inutilement

### Divulgation des vulnérabilités

Nous suivons une divulgation coordonnée :
1. Vulnérabilité signalée en privé
2. Correctif développé et testé
3. Avis de sécurité publié
4. Divulgation publique après la disponibilité du correctif

### Tableau d'honneur de la sécurité

Nous reconnaissons les chercheurs en sécurité qui divulguent de manière responsable les vulnérabilités :

*La liste sera tenue à jour à mesure que les rapports seront reçus*

---

### Demandes de la communauté

Votez ou suggérez des fonctionnalités :
- **GitHub Discussions :** https://github.com/rapticore/ore-mal-pkg-inspector/discussions
- **Demandes de fonctionnalités :** https://github.com/rapticore/ore-mal-pkg-inspector/issues

### Contribuer à la feuille de route

Nous priorisons les fonctionnalités en fonction de :
- L'impact sur la sécurité
- La demande de la communauté
- La pérennité de la maintenance
- L'alignement avec les objectifs du projet

Pour influencer la feuille de route :
1. Ouvrir une demande de fonctionnalité avec un cas d'utilisation détaillé
2. Participer aux discussions
3. Contribuer des implémentations (les PR sont les bienvenues !)

---

## Feuille de route

OreWatch est utilisable aujourd'hui pour :

- analyses CLI locales dans npm, PyPI, Maven, RubyGems, Go et Cargo
- un moniteur d'arrière-plan par utilisateur pour de nombreux projets
- intégrations MCP pour Cursor, Claude Code et Codex
- intégrations API localhost pour VS Code, JetBrains / PyCharm et les assistants Xcode
- barre de menus macOS avec revue et notifications contextuelles

Priorités à court terme :

- premiers exemples d'intégration ou plugins légers pour VS Code et JetBrains / PyCharm
- workflows de notification utilisateur plus solides au‑delà des popups locales
- gestion de politique de projet plus claire depuis la CLI et l'interface utilisateur
- documentation enrichie sur les rapports d'analyse et l'adoption

Priorités à moyen terme :

- workflows d'analyse de projet plus étendus depuis le moniteur et la surface MCP
- meilleures directives de déploiement au niveau organisationnel
- canaux de livraison et d'escalade d'alertes externes plus robustes
- expérience utilisateur IDE plus approfondie au lieu d'une simple guidance d'intégration via API

Limite actuelle connue :

- L'intégration Xcode est actuellement la meilleure pour la visibilité des alertes et les dépôts multilingues. OreWatch n'analyse pas encore les manifests natifs Apple tels que `Package.resolved`, `Podfile.lock` ou `Cartfile`.

Direction à plus long terme :

- prise en charge native des manifests de l'écosystème Apple
- intégrations éditeur propriétaires plus solides
- parité d'expérience utilisateur système d'exploitation plus large au‑delà du chemin actuel de la barre de menus macOS

Voir [docs/roadmap.md](https://github.com/rapticore/ore-mal-pkg-inspector/blob/main/docs/roadmap.md) pour la vue plus axée sur l'adoption.

---

## Licence

Licence MIT

Copyright (c) 2025 Rapticore

Permission est accordée, gratuitement, à toute personne obtenant une copie
de ce logiciel et des fichiers de documentation associés (le "Logiciel"), de traiter
le Logiciel sans restriction, y compris sans limitation les droits
d'utiliser, copier, modifier, fusionner, publier, distribuer, sous‑licencier et/ou vendre
des copies du Logiciel, et de permettre aux personnes à qui le Logiciel est
fourni de le faire, sous réserve des conditions suivantes :

L'avis de copyright ci‑dessus et cet avis d'autorisation doivent être inclus dans toutes
les copies ou parties substantielles du Logiciel.

LE LOGICIEL EST FOURNI "EN L'ÉTAT", SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU
IMPLICITE, Y COMPRIS MAIS SANS S'Y LIMITER LES GARANTIES DE QUALITÉ MARCHANDE,
D'ADÉQUATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON. EN AUCUN CAS LES
AUTEURS OU TITULAIRES DU DROIT D'AUTEUR NE POURRONT ÊTRE TENUS RESPONSABLES DE TOUTE
RÉCLAMATION, DOMMAGE OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS LE CADRE D'UNE ACTION
CONTRACTUELLE, DÉLICTUELLE OU AUTRE, DÉCOULANT DE, OU EN LIEN AVEC LE LOGICIEL OU SON
UTILISATION, OU D'AUTRES INTERACTIONS AVEC LE LOGICIEL.

---

## Support

### Obtenir de l'aide

**Documentation :** Vous la lisez ! Commencez ici pour la plupart des questions.

**GitHub Discussions :** Pour les questions, idées et interactions avec la communauté :
- https://github.com/rapticore/ore-mal-pkg-inspector/discussions

**GitHub Issues :** Pour les rapports de bogues et demandes de fonctionnalités :
- https://github.com/rapticore/ore-mal-pkg-inspector/issues

**E-mail :** Pour les vulnérabilités de sécurité et demandes privées :
- [email protected]

### Support professionnel

Pour les organisations nécessitant :
- Intégrations personnalisées
- Support avec SLA
- Assistance pour déploiement privé
- Flux de renseignements sur les menaces personnalisés

Contact : [email protected]

---

## Remerciements

### Origine du projet

Ce projet a été extrait du dépôt [OreNPMGuard](https://github.com/rapticore/OreNPMGuard) pour maintenir une orientation claire du projet tout en élargissant les capacités.

**OreNPMGuard** (décembre 2025) se spécialise dans la détection des attaques npm Shai‑Hulud avec plus de 738 paquets affectés et une analyse approfondie des IoC. Au cours de son développement, nous avons reconnu le besoin d'une protection plus large multi‑écosystème, ce qui a conduit à la création d'OreWatch en tant qu'outil autonome au service de la communauté des développeurs dans tous les grands écosystèmes de paquets.

### Projets connexes

- **[OreNPMGuard](https://github.com/rapticore/OreNPMGuard)** - Scanner npm spécialisé pour Shai‑Hulud
---

**Construit par l'équipe de recherche en sécurité de Rapticore**

*Protéger les chaînes d'approvisionnement logicielles, une analyse à la fois.*
Télécharger l’outil