Pourquoi suis-je capable d’ouvrir Wireshark et de capturer des paquets dans macOS sans privilèges root ?


Vraiment une question géniale ! TL;DR...

Vous lui avez donné les privilèges root lorsque vous l'avez installé. Wireshark crée un groupe d'accès, vous y place et vous donne accès par ce biais.


La réponse plus longue...

Lorsque vous installez Wireshark, vous avez besoin d'un mot de passe administrateur. Wireshark utilise cette élévation pour installer un LaunchDaemon, qui est essentiellement un processus d'arrière-plan qui démarre au démarrage.

Ce daemon a des autorisations spéciales pour capturer des paquets de données réseau, et vous devez être root pour installer ce daemon (c'est-à-dire lorsque vous installez Wireshark) mais pas pour l'utiliser à chaque fois.

Les données qu'il capture ne nécessitent pas d'élévation supplémentaire pour être lues car c'est juste un fichier pcap. Plus d'informations à ce sujet ici - pcap - Wikipedia

Wireshark crée ce fichier plist dans le dossier LaunchDaemons:

Library/LaunchDaemons/org.wireshark.ChmodBPF.plist

  1. <?xml version="1.0" encoding="UTF-8" ?> 
  2.  
  3.  
  4.  
  5. Label 
  6. org.wireshark.ChmodBPF 
  7. RunAtLoad 
  8.  
  9. Program 
  10. /Library/Application Support/Wireshark/ChmodBPF/ChmodBPF 
  11.  
  12.  

/Library/Application Support/Wireshark/ChmodBPF/ChmodBPF is a script that sets up access for the local user (i.e. you, the person who installed Wireshark) with read access to BPF devices. Wireshark uses these devices to capture the network traffic. So if you have access to the BPF devices then you have access to read the data they capture.

More info and a good writeup - cse 2410 f 13 team 7

Any user given access to those BPF devices can read network data from them. Pour contrôler l'accès des utilisateurs, Wireshark met en place un groupe d'utilisateurs spécifiquement pour cela.

Si vous vérifiez les préférences système > Utilisateurs et groupes, il y aura un groupe access_bpf contenant la liste des utilisateurs qui ont la permission d'accéder au démon, et donc de capturer avec Wireshark. Vous pouvez ajouter ou supprimer des utilisateurs de ce groupe. Tout utilisateur de ce groupe peut obtenir un accès en lecture aux données réseau de caapture sans privilèges root spécifiques et ponctuels.

main-qimg-9ebefc700dc825cf694e55b4bfe172aa.