
Tests de sécurité offensifs propulsés par l'IA à l'aide d'agents autonomes, directement dans votre terminal.
<h1 align="center">Pensar Apex</h1> <p align="center"> Tests d'intrusion assistés par IA utilisant des agents autonomes — directement dans votre terminal. Exécutez des pentests blackbox et whitebox qui explorent, raisonnent et font remonter de véritables vulnérabilités. </p> <p align="center"> Vous souhaitez l'exécuter depuis le cloud ou l'intégrer à votre CI/CD ? Consultez <a href="https://docs.pensar.dev/console">Pensar Console</a>. </p> <p align="center"> <a href="https://www.npmjs.com/package/@pensar/apex"><img src="https://img.shields.io/npm/v/@pensar/apex?label=latest" alt="npm version"></a> <a href="https://www.npmjs.com/package/@pensar/apex"><img src="https://img.shields.io/npm/v/@pensar/apex/canary?label=prerelease&color=yellow" alt="npm prerelease version"></a> <!-- <a href="https://www.npmjs.com/package/@pensar/apex"><img src="https://img.shields.io/npm/dm/@pensar/apex" alt="npm downloads"></a> --> <a href="https://github.com/pensarai/apex/blob/canary/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue" alt="Apache 2.0 License"></a> <a href="https://docs.pensar.dev/apex"><img src="https://img.shields.io/badge/docs-docs.pensar.dev/apex-purple?logo=readthedocs&logoColor=white" alt="Documentation"></a> <a href="https://discord.gg/pensar"><img src="https://img.shields.io/badge/Discord-Join%20Us-5865F2?logo=discord&logoColor=white" alt="Discord"></a> </p> <!-- <p align="center"> <img src="https://raw.githubusercontent.com/pensarai/apex/canary/screenshot.png" alt="Pensar Apex Screenshot" width="800"> </p> --> ## Cas d'usage ### Développeurs - Exécutez `/pentest` avant de fusionner une PR — détectez les vulnérabilités aussi naturellement que vous lancez des tests - Obtenez des résultats exploitables avec des scores de gravité, des preuves et des correctifs suggérés — aucune compétence en sécurité requise - Intégrez à votre CI/CD via des commandes CLI headless ou Pensar Console ### Ingénieurs sécurité - Déployez des tests en essaim pilotés par agents sur de grandes surfaces d'attaque - Utilisez le mode `/operator` pour l'investigation manuelle, le chaînage d'exploits et la validation - Automatisez les workflows de test répétitifs grâce à une mémoire persistante qui s'accumule au fil des missions - Passez à l'échelle sur plusieurs équipes et projets via Pensar Console ## Installation | Méthode | Commande | | ------------------------------- | ---------------------------------------------------- | | **Installation rapide** (macOS/Linux) | `curl -fsSL https://pensarai.com/install.sh \| bash` | | **Homebrew** | `brew tap pensarai/tap && brew install apex` | | **npm** | `npm install -g @pensar/apex` | | **Windows** (PowerShell) | `irm https://www.pensarai.com/apex.ps1 \| iex` | ## Utilisation Ouvrez l'interface TUI d'Apex : ```bash pensar ``` ### CLI headless Exécutez des pentests sans la TUI pour le scripting, la CI ou l'intégration evalgate : ```bash # Pentest basique pensar pentest --target https://example.com # Avec réflexion étendue et mode piloté par tâches pensar pentest --target https://example.com --extended-thinking --task-driven # Whitebox (avec accès au code source) pensar pentest --target https://example.com --cwd ./my-app # Pentest ciblé avec des objectifs spécifiques pensar targeted-pentest --target https://example.com --objective "Test authentication bypass" ``` | Option | Commande | Description | | ------------------------------ | ------------------------- | ---------------------------------------------- | | `--target <url>` | pentest, targeted-pentest | URL cible (obligatoire) | | `--cwd <path>` | pentest | Chemin du code source pour le mode whitebox | | `--mode <mode>` | pentest | `exfil` pour le pivotement et l'extraction de flags | | `--model <model>` | pentest, targeted-pentest | Modèle IA (par défaut : sélection automatique) | | `--extended-thinking` | pentest | Active la réflexion étendue pour les modèles compatibles | | `--task-driven` | pentest | Active l'architecture pilotée par tâches (expérimental) | | `--prompt <text\|@file>` | pentest | Consignes personnalisées pour l'agent | | `--threat-model <text\|@file>` | pentest | Modèle de menace pour guider les tests | | `--objective <text>` | targeted-pentest | Objectif de test (répétable) | ### Inférence Hoonify Connectez **Hoonify** dans `/providers` ou définissez `HOONIFY_API_KEY`, puis sélectionnez un modèle découvert dans `/models`. Les commandes headless acceptent `--model-provider hoonify --model <catalog-model-id>`. Consultez [Configuration Hoonify](https://github.com/pensarai/apex/blob/canary/docs/hoonify.md) pour la découverte de modèles, les budgets de tokens et les vérifications en direct. ### Points de terminaison d'inférence personnalisés Apportez un point de terminaison compatible OpenAI et un jeton bearer via la configuration `customProviders` ou la variable d'environnement worker `APEX_CUSTOM_PROVIDERS`. Sélectionnez-le avec `--model-provider <id> --model <model>`, ou choisissez ses modèles déclarés dans le sélecteur `/models` de l'opérateur. Consultez [configuration d'inférence personnalisée](https://github.com/pensarai/apex/blob/canary/docs/custom-inference.md) pour les paramètres GLM, la configuration des jobs headless et un test de connexion en direct. ### Journalisation Apex achemine la journalisation diagnostique/opérationnelle via un logger structuré centralisé (`src/core/logger`). Il écrit du JSON sur une ligne vers **stderr** lorsque la sortie n'est pas un TTY — le gardant séparé du stdout du programme et facile à expédier vers un pipeline de logs (par ex. CloudWatch) — et une sortie colorée et lisible dans un terminal interactif. La sortie CLI/TUI destinée à l'utilisateur reste sur stdout. Définissez le niveau (du plus au moins verbeux : `debug` < `info` < `warn` < `error`, par défaut `info`) : ```bash pensar pentest --target https://example.com --log-level debug # ou --verbose / --quiet PENSAR_LOG_LEVEL=debug pensar ... # via l'environnement PENSAR_DEBUG=1 pensar ... # alias rétrocompatible pour debug ``` Ordre de résolution : option CLI → `PENSAR_LOG_LEVEL` → `PENSAR_DEBUG` → `info` par défaut. `PENSAR_LOG_FORMAT=json|pretty` force le format de sortie. Lorsqu'Apex s'exécute en tant qu'agent géré, `PENSAR_LOG_LEVEL` est fourni par l'environnement hôte. ### Traçage W&B Weave Diffusez des traces d'agent au niveau des étapes vers Weights & Biases Weave pour l'analyse et le fine-tuning : ```bash export WANDB_API_KEY=your-key export WANDB_ENTITY=your-entity # WANDB_PROJECT defaults to "apex-traces" pensar pentest --target https://example.com ``` Les traces incluent les étapes de raisonnement, les appels d'outils, l'utilisation des tokens et les points de contrôle d'état. Lorsque les identifiants ne sont pas définis, le traçage est silencieusement désactivé. ### OpenTelemetry (Observabilité) Apex émet des spans OpenTelemetry pour les exécutions d'agents, les appels LLM et les exécutions d'outils via `@opentelemetry/api`. Les spans sont des no-ops sauf si votre processus enregistre un SDK OpenTelemetry comme fournisseur de traceur global ; Apex ne fournit aucun SDK. Enregistrez un SDK avant d'importer le code Apex : - **Sentry** : installez `@sentry/node` ≥ 9.27 et ajoutez `Sentry.vercelAIIntegration()` à vos intégrations `Sentry.init`. - **N'importe quel backend OTel** (Honeycomb, Tempo, Datadog, etc.) : enregistrez `@opentelemetry/sdk-node` avec un exportateur OTLP. Les spans suivent les [conventions sémantiques OTel GenAI](https://opentelemetry.io/docs/specs/semconv/gen-ai/). Seule la forme du span (modèle, nombre de tokens, latence, noms d'outils) est capturée par défaut ; définissez `AI_TRACE_RECORD_PAYLOADS=true` pour enregistrer également les prompts, les E/S d'outils et les sorties. ## Conteneur Kali Linux (facultatif) Pour de **meilleures performances**, exécutez Apex dans le conteneur Kali Linux inclus avec des outils de pentest préconfigurés : ```bash cd container cp env.example .env # add your API keys docker compose up --build -d docker compose exec kali-apex bash ``` Dans le conteneur, exécutez : ```bash pensar ``` --- ### ⚠️ Utilisation responsable Ce dépôt contient des outils destinés uniquement à des **tests de sécurité autorisés**. Avant utilisation, veuillez lire et accepter la [Déclaration d'utilisation responsable](https://github.com/pensarai/apex/blob/canary/RESPONSIBLE_USE.md).