Est-ce que sudo et gksudo sont sécuritaires?

J'ai remarqué après avoir exécuté une command sudo dans le terminal ou exécuté une application administrative qui utilise gksudo , il ne requestra plus le mot de passe pour un time (quelque chose comme 5 minutes).

Supposons maintenant que l'un des programmes (qui ne s'exécute pas en tant que root) que j'utilise a un exploit de jour zéro (comme le browser Web ou ses plugins). Et un attaquant parvient à exécuter du code arbitraire en mon nom.

Est-il possible pour un attaquant de faire sudo ou gksudo sans l'invite de mot de passe avant l'expiration du mot de passe et de prendre le contrôle de mon système?

Oui, un attaquant qui exécute du code en tant qu'user peut faire tout ce que vous pouvez faire vous-même. Il peut même changer le process de votre shell de sorte que lorsque vous pensez que vous exécutez sudo, vous exécutez le programme de l'attaquant qui enregistre simplement votre mot de passe root en mode silencieux.

Ptys / ttys n'offrent aucune security lorsqu'ils sont détenus par le même user, contrairement à une autre réponse ici.

Non, ce ne sera pas le cas.

sudo maintient le jeton d'access par son nom tty (ou pty), puisque le browser et votre émulateur de terminal s'exécutent sur différents ptys, il n'utilisera pas le même jeton.

Un moyen simple de le find, de faire fonctionner sudo dans un terminal et de le lancer à nouveau dans un autre, vous serez à nouveau invité à entrer le mot de passe (voir / var / db / sudo)

"Est-il possible pour un attaquant de faire sudo ou gksudo sans l'invite de mot de passe avant l'expiration du mot de passe et de prendre le contrôle de mon système?"

Oui.

L'attaque la plus simple provient d'un shell interactif et vous-même ne verrouillez pas votre écran lorsque vous vous éloignez de votre keyboard.

Si vous êtes inquiet, changez la ligne

 Defaults timestamp_timeout=90 

dans votre /etc/sudoers , cela change le timeout de 5 minutes.