02Sécurité · Analyse statique

TrustSight

Analyse de sécurité fondée sur des preuves pour les packages AUR. Il n'exécute jamais de code, ne récupère jamais les sources et applique le principe fail-closed lorsque la couverture est incomplète.

Un résultat propre n’est pas une preuve de sécurité. C'est une déclaration sur la détection.

Python 3.11+Arch LinuxSQLiteEd25519libgit2
Dernier commit du dépôt

Chargement des derniers commits…

Règles documentées

257

URL sources

186K

Identités des responsables

36K

Version

v0.25.0

01

Problème

Les mises à jour du package AUR sont examinées par des humains lisant les différences PKGBUILD. Ce processus est lent, incohérent et rate les attaques structurelles : scripts shell redirigés, désactivation de la somme de contrôle, fautes de frappe, commandes obscurcies et reprises de main du responsable. Il n'existe aucun outil automatisé qui produit des preuves sans exécuter le package.

02

Pourquoi c'est dur

La contrainte dure est de ne jamais exécuter de code. L'analyse statique des PKGBUILD signifie raisonner sur les scripts shell, l'injection de commandes, le typosquatting et les modèles de comportement du responsable sans rien exécuter.

La détection de clusters à l'échelle du corpus ajoute une autre couche : le suivi d'environ 186 000 URL sources et de 36 000 identités de responsables pour détecter les premiers signaux observés, les détournements d'orphelins et la cadence de publication accélérée. L'outil doit échouer fermé ; les preuves incomplètes ne doivent pas silencieusement devenir confidentielles.

03

Modèle de sécurité

Invariants
Exécution PKGBUILDBLOCKED
Réseau arbitraireBLOCKED
Modification du systèmeBLOCKED
Perte de couvertureEXPLICIT
Analyse incomplèteFAIL-CLOSED
04

Catégories de détection

Injection de commandes

Scripts shell canalisés, commandes obscurcies, falsification de l'environnement de construction (LD_PRELOAD et pairs).

Chaîne d'approvisionnement

Somme de contrôle désactivée, swaps source URL, dépendances de build non épinglées, vérification GPG supprimée.

Typosquattage

Le nom du package et la source-URL modifient la distance par rapport aux domaines forge connus et aux packages populaires.

Signaux du responsable

Prise de contrôle non fiable, détournement d’orphelins, paquet obsolète réactivé, cadence de publication accélérée.

Détection de nouveauté

URL et responsables consultés pour la première fois par rapport à une base de données de départ signée d'environ 186 000 URL sources et d'environ 36 000 identités.

Charges utiles de sabotage

Bombes à fourche, effacement de disque, sabotage d'autorisation, mineurs de pièces ; distingue le bac à sable de construction du contexte système.

Attaques de codage

Remplacements de bidi Unicode, points de code homoglyphes et modèles d'instructions dirigés par les réviseurs.

Correspondance IOC

Indicateurs connus de mauvais par rapport aux lignes de base signées et fédérées du canal de publication.

05

Décisions clés

Analyse statique uniquement

N'exécute jamais les PKGBUILD, ne récupère jamais les URL, s'exécute avant makepkg. L'outil est un outil SAST de par sa conception.

Des preuves, pas des preuves

Chaque résultat est traçable à une ligne de différence spécifique, URL ou à un enregistrement de nouveauté. Le résultat est un rapport de preuves structuré, pas une porte.

Lignes de base signées

Les graines de nouveauté et les lignes de base IOC sont livrées en tant qu'actifs de version GitHub signés, vérifiés par rapport à une clé de distribution épinglée lors de l'importation.

Profondeur de dépendance configurable

Les dépendances AUR sont analysées comme des packages à part entière, à une profondeur configurable. Les lacunes de couverture restent explicites.

06

Écosystème

TrustSight est un noyau composé de cinq satellites indépendants : mesure, recherche, triage, site public et flux d'observateurs en direct.

07

Vérification

Le harnais transforme « un LLM trouvé N contournements » en une mesure reproductible, vérifiable et suivie par les coûts par rapport à une version épinglée.

Statuts du faisceau
détectérègle déclenchée
évasion_partielleune autre règle l'a attrapé
échec_closed_catchécart de couverture bloqué
by-passretourné UNFLAGGED
behavior_lostchaîne d'attaque non prouvée
08

Ce qu'il ne peut pas voir

  • Archives tar de versions amont malveillantes (audite le PKGBUILD, pas les binaires)
  • Attaques délibérément banales (pas de signal différentiel = invisible)
  • Attaques d'exécution (l'outil n'exécute jamais rien)
  • Attaques structurelles Zero Day (basées sur des modèles, calibrées sur le corpus)