ProcessGUIDs are not necessarily unique, especially for non-PIEs
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 30/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- c
- Domaine
- operating-systems, security
Piste de recherche
Commencez dans ebpfKern/sysmonProcCreate.c autour des lignes 144-147 et suivez comment l’ID de la machine, l’heure de démarrage du processus et l’adresse du segment de texte forment la ProcessGUID. Reproduisez la collision en lançant des exécutables non-PIE dans un intervalle d’une seconde, puis déterminez et documentez une représentation de ProcessKey qui évite les ProcessGUIDs en double pour des événements ProcessCreate distincts.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
One can reliably create ProcessGUID collisions from different ProcessCreate events by launching non-Position Independent Executables (PIE) within a second. This has been an issue for me, trying to correlate events.
It looks like ProcessGUIDs are created by combining a few pieces of information:
- 32 bits for machine ID
- 32 bits for process start in Unix time in seconds
- 64 bits for the memory address of the end of the text segment, for a process. https://github.com/Sysinternals/SysmonForLinux/blob/main/ebpfKern/sysmonProcCreate.c#L144-L147
Although most executables on Linux distributions are compiled as PIE, it's not a guaranteed and it's not obvious that Sysmon GUID generation could produce duplicates in this scenario.
Perhaps instead of just using something like the text segment location, other data could be packed into the ProcessKey as well. There's 64 bits to work with and these addresses for PIEs will only have ~28 bits of randomness (measured on default Ubuntu systems with paxtest).
- Langage dominant
- C
- Étoiles
- 2.2k
- Forks
- 224
- Merge moyen
- 4 h 50 min
- PR mergées (30 j)
- 3
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de microsoft/Sysmon-Linux
-
ProcessCreate: ParentImage is empty when the parent starts the process from a non-main threadOuverte
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
microsoft/Sysmon-Linux#253 ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 72/100
microsoft/Sysmon-Linux#252 ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
microsoft/Sysmon-Linux#247 ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 12/100
microsoft/Sysmon-Linux#246 · 3 commentaires ·
-
Sysmon service executable remains `(deleted)` after restart, causing repeated needrestart restarts and systemd start-limit-hitPeut-être à nouveau libre @MarioHewardt l’a pris il y a 31 jours, et aucune pull request n’est ouverte. Ouverte
microsoft/Sysmon-Linux#244 · 1 personne assignée ·
Toutes les issues de microsoft/Sysmon-Linux
Issues similaires
-
Implement looks_size reporterOuverteenhancement good first issue help wanted
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
-
bug multiplayer status: planned
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
ChupathingyCE/chupathingyce#851 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 73/100
HigherOrderCO/Bend#2104 ·
-
Research radar digest 2026-W46Ouverteresearch-radar
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
good first issue help wanted program
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
hffgzktbcc-blip/ounce-core#297 ·
Les mainteneurs répondent en général sous 1 jour