Parfois, lors de l'installation d'un programme, une boîte de dialogue apparaît pour demander un mot de passe d'administrateur afin de permettre à l'installateur d'effectuer des "modifications". Cela semble correct, mais ne serait-il pas facile pour un installateur de falsifier cette demande et de renvoyer le mot de passe à l'auteur (et à l'IP, etc.) ? Existe-t-il un moyen de s'assurer que cette boîte de dialogue provient bien de l'OS ? (Et voir ce qui est exactement autorisé ?)
Réponse
Trop de publicités?
bot47
Points
7292
Je viens d'écrire ce script Apple qui teste si :
- SecurityAgent est en cours d'exécution.
- SecurityAgent affiche quelque chose.
- SecurityAgent vit au bon endroit.
-
SecurityAgent n'est pas modifié, ce qui signifie que la signature du code n'est pas endommagée.
tell application "System Events" set processList to get the name of every process set saWindows to {} if processList contains "SecurityAgent" then -- does it run? set saPath to POSIX path of application file of application process "SecurityAgent" if saPath is not "/System/Library/Frameworks/Security.framework/Versions/A/MachServices/SecurityAgent.bundle" then -- assume this location is protected enough to be geniune tell application "Finder" to display dialog "There is a SecurityAgent, but it's the wrong one!" with icon stop buttons {"OK"} return end if try -- is it signed set saSignature to do shell script "codesign -d /System/Library/Frameworks/Security.framework/Versions/A/MachServices/SecurityAgent.bundle/Contents/MacOS/SecurityAgent" on error tell application "Finder" to display dialog "Signature broken!" with icon stop buttons {"OK"} return end try set saWindows to every window of application process "SecurityAgent" end if if saWindows is {} then -- Does it display a dialog? tell application "Finder" to display dialog "No official password dialog is opened." buttons {"OK"} with icon stop return end if end tell display dialog "Seems legit." with icon note buttons {"OK"}