ProcessGUIDs are not necessarily unique, especially for non-PIEs
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 30/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- c
- Domínio
- operating-systems, security
Direção de pesquisa
Comece em ebpfKern/sysmonProcCreate.c, por volta das linhas 144-147, e rastreie como o ID da máquina, o horário de início do processo e o endereço do segmento de texto formam a ProcessGUID. Reproduza a colisão iniciando executáveis non-PIE dentro de um segundo e, em seguida, determine e documente uma representação de ProcessKey que evite ProcessGUIDs duplicadas para eventos ProcessCreate distintos.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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).
- Linguagem predominante
- C
- Estrelas
- 2.2k
- Forks
- 224
- Merge médio
- 4h 50min
- PRs com merge (30d)
- 3
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de microsoft/Sysmon-Linux
-
ProcessCreate: ParentImage is empty when the parent starts the process from a non-main threadAberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 68/100
microsoft/Sysmon-Linux#253 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 72/100
microsoft/Sysmon-Linux#252 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
microsoft/Sysmon-Linux#247 ·
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 12/100
microsoft/Sysmon-Linux#246 · 3 comentários ·
-
Sysmon service executable remains `(deleted)` after restart, causing repeated needrestart restarts and systemd start-limit-hitTalvez livre de novo @MarioHewardt assumiu há 31 dias e não há nenhum pull request aberto. Aberta
microsoft/Sysmon-Linux#244 · 1 responsável ·
Todas as issues de microsoft/Sysmon-Linux
Issues semelhantes
-
Issue-Bug Needs-Triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
ly05010419/MacNativeGames#2001 ·
Mantenedores costumam responder em até 1 dia
-
area/docdb kind/bug priority/medium status/awaiting-triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
yugabyte/yugabyte-db#37426 ·
Mantenedores costumam responder em até 1 dia
-
area/documentation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
obsproject/obs-studio#14184 ·
Mantenedores costumam responder em até 1 dia