Outil CLI
bcoles/kasld avatar
bcoles/kasld

kasld : analyse pratique de bcoles/kasld

KASLD dérandomise la disposition de la mémoire virtuelle et physique du noyau Linux à partir d'un processus local, en utilisant tout ce que permettent son avantage, ses privilèges, sa configuration et son confinement.

546 étoiles56 forksCMIT
GitHub

En bref

De quoi s’agit-il ?
KASLD derandomizes the Linux kernel's virtual and physical memory layout from a local process, using whatever its vantage, privilege, configuration, and confinement, allows. Périmètre, usage documenté et points à vérifier.
À qui s’adresse-t-il ?
kasld convient aux équipes dont le besoin correspond au périmètre décrit dans le README. Avant de l'adopter, exécutez `make` puis `./build/<arch>/kasld -j`, en lisant `docs/limitations.md`, observez la sortie et vérifiez les permissions, les erreurs et les ressources consommées.
Puis-je l’utiliser commercialement ?
Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 1 jour.
En quel langage est-il écrit ?
Principalement C, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Ce que KASLD récupère

KASLD récupère la disposition mémoire virtuelle et physique du noyau Linux depuis un processus local, principalement la base texte du noyau. Son moteur d'inférence combine des preuves de dizaines de techniques indépendantes avec les invariants connus de l'architecture. Le résultat est une fenêtre de placement résiduelle, rapportée comme le nombre d'emplacements survivants et des bits d'entropie. Le README précise qu'il s'agit d'une borne supérieure de la protection que KASLR conserve depuis ce point de vue, et non d'une garantie que la base est hors d'atteinte. Sur un noyau moderne entièrement corrigé, la récupération complète est souvent impossible, mais l'ensemble de contraintes est rarement vide.

Architectures prises en charge et prérequis de compilation

Les cibles prises en charge sont x86 (i386+ et amd64), ARM (armv6, armv7, armv8, aarch64), MIPS (mipsbe, mipsel, mips64el), PowerPC (ppc, ppc64), RISC-V (riscv32, riscv64), LoongArch (loongarch64) et s390. La compilation exige un compilateur supportant la macro _GNU_SOURCE, car le code utilise des interfaces non portables comme MAP_ANONYMOUS, getline() et popen(). Le démarrage rapide du README suppose des paquets de type Debian : libc-dev, make, gcc, binutils, git. Après le clonage et l'exécution de make, le binaire build/<arch>/kasld est autonome et peut être déployé sur un système cible.

Exécuter KASLD

Le démarrage rapide documenté est : `sudo apt install libc-dev make gcc binutils git`, puis `git clone https://github.com/bcoles/kasld`, `cd kasld`, `make` et `./build/<arch>/kasld`. Le répertoire de compilation contient le binaire et un dossier components/ avec les composants de fuite. KASLD suppose peu de privilèges par défaut et utilise de manière opportuniste ce que le point de vue du processus en cours d'exécution accorde. Sur une architecture sans KASLR, le moteur localise l'adresse de chargement choisie par le chargeur d'amorçage.

Modes de sortie

Le mode texte par défaut affiche un aperçu réponse-d'abord : la cible, le nombre de composants exécutés et un tableau de la base d'image virtuelle, de la base d'image physique et de la base de mappage direct avec leurs espaces de recherche. `-v` ajoute des journaux détaillés par composant, la configuration système, l'analyse KASLR et les cartes mémoire. `-j` émet du JSON lisible par machine avec la vue structurée complète et l'évaluation du durcissement. `-1` fournit une seule ligne utilisable dans un pipeline, `-m` formate pour les suiveurs de problèmes, et `-H` ajoute l'évaluation du durcissement aux rapports texte ou Markdown. Le README renvoie à docs/usage.md pour l'interface complète et le mode explain.

Le modèle de point de vue

Ce que KASLD peut récupérer dépend de trois axes indépendants : privilèges, groupes et capacités ; configuration système comme kptr_restrict, dmesg_restrict, perf_event_paranoid, BPF non privilégié et verrouillage du noyau ; et confinement par namespaces ou seccomp. Chaque axe contrôle les sources de fuite indépendamment, donc plus de privilèges n'est pas un sur-ensemble de moins de privilèges. Par exemple, un conteneur avec CAP_SYS_RAWIO peut lire /proc/kcore, tandis que root ne peut pas lire /proc/kallsyms sous kptr_restrict=2. Les sorties détaillée et JSON rapportent le point de vue détecté, y compris conteneur, confinement, oracles lisibles et fuites contrôlées par capacité accessibles depuis les capacités actuelles.

Documentation, limites et licence

L'index de documentation du dépôt couvre une introduction à KASLR, l'utilisation, l'interprétation des résultats, les techniques de contournement, l'exploitation, l'empreinte et la détection, l'architecture, la contribution, les tests et la reproductibilité. Le README renvoie à docs/limitations.md pour la signification d'un résultat négatif ou partiel, et décrit le résultat comme sound-but-not-complete ; il ne reproduit pas les détails de ce document. KASLD est sous licence MIT. Certains composants de fuite adaptent du code de preuve de concept tiers ; chaque fichier crédite sa source dans son en-tête, et THIRD-PARTY-NOTICES.md liste chaque élément avec sa licence ou sa base de réutilisation. Le texte de la licence MIT accorde le droit d'utiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et vendre des copies, et déclare que le logiciel est fourni tel quel, sans garantie.

Vérifier kasld sur son chemin réel

Pour qualifier bcoles/kasld, partez de `make` puis `./build/<arch>/kasld -j`, en lisant `docs/limitations.md` et conservez la sortie complète. Comparez le résultat attendu par le README avec les journaux, les erreurs, les permissions requises et la consommation de ressources. Ce contrôle doit utiliser le scénario décrit par kasld, car le dépôt ne permet pas d’inférer une compatibilité avec des environnements ou des versions qui ne sont pas nommés. Les points absents de la documentation restent à confirmer dans le code et dans la configuration du projet.

Conclusion éditoriale

kasld convient aux équipes dont le besoin correspond au périmètre décrit dans le README. Avant de l'adopter, exécutez `make` puis `./build/<arch>/kasld -j`, en lisant `docs/limitations.md`, observez la sortie et vérifiez les permissions, les erreurs et les ressources consommées. Les garanties non écrites dans le dépôt ne doivent pas être supposées.

Sources officielles

  1. Official README
  2. Project repository
  3. Release notes
Notes de la communauté

Notes de la communauté