Posso usare 'lsof' per determinare in modo affidabile quale processo locale si è connesso alla mia porta aperta?

5

Supponiamo che io stia eseguendo un'applicazione server su 127.0.0.1:7646 e che un processo locale (possibilmente di proprietà di un altro utente) si colleghi ad esso, posso eseguire

lsof -Fp -i [email protected]:7646 -i [email protected]:<ClientPort>

che produce qualcosa di simile

p6429
f4
p6433
f5

dove p* sono i PID di entrambi i partecipanti / endpoint.

Ora la mia domanda è: posso fidarmi dell'output di lsof (ammesso che nessuno abbia modificato lsof -binary)? O in altri termini: Qualcuno senza autorizzazioni di root può manipolare l'output di lsof s per visualizzare un PID diverso?

Modifica: se questo dipende dalla piattaforma, sono specificamente interessato a macOS, Linux e FreeBSD.

    
posta K. Biermann 25.10.2018 - 14:32
fonte

1 risposta

1

Se ti fidi che l'utente che esegue lsof e specifichi il percorso completo (/ usr / bin / lsof?), dovresti essere in grado di fidarti dell'output. Se miri a far sì che lsof venga eseguito come utente che si connette al tuo server, è molto difficile impedire che un lsof nel loro percorso venga eseguito o che un alias catturi la chiamata per primo. Vedi anche 'netstat -A inet -A inet6 -alp'

Se sei veramente paranoico puoi controllare il database del gestore pacchetti (rpm, dpkg, ecc.) per assicurarti che il file binario non sia cambiato da installazione prima di chiamarlo (con il percorso completo).

    
risposta data 26.10.2018 - 00:13
fonte

Leggi altre domande sui tag