7 votes

La fonction d'AppleScript "do shell script" permet-elle d'enregistrer l'historique ?

J'utilise fréquemment le do shell script dans AppleScript (AS) pour renvoyer certaines informations, y compris du texte crypté.

En voici un exemple :

set encrypted to (do shell script "echo 'my secret text' | openssl enc -aes-256-cbc -a -pass pass:Pass123")

Si elle est exécutée dans Terminal, cette commande est enregistrée dans l'historique et peut être consultée en tapant : history puis en appuyant sur la touche Retour clé.

Problème : L'exemple ci-dessus inclut le mot de passe en texte clair comme paramètre, et il apparaît dans l'historique (lorsqu'il est exécuté dans Terminal), d'où il peut facilement être copié et utilisé pour inverser la chaîne cryptée, sans aucune connaissance requise.

La fonction log do shell script "history" ne renvoie aucune donnée. De même, l'exécution de la commande history dans le terminal - après que l'exemple de chiffrement a été exécuté par AS, il n'affiche pas non plus la commande AS terminal dans cet historique. Dans l'ensemble, cela m'amène à penser que la commande AS a manifestement été exécutée à travers un shell différent. Sachant que le shell diffère pour chaque utilisateur (c'est-à-dire que mon compte ne peut pas voir l'historique du terminal d'un autre compte), la question suivante se pose.

Question : Cela signifie-t-il qu'il n'y a aucune trace de la commande AS dans les historiques et les journaux conservés par MacOS à quelque moment que ce soit ? Ou bien est-elle enfouie dans un endroit accessible où elle peut être lue, interprétée et où le cryptage peut être inversé ?

Bien qu'elle puisse donner à réfléchir et qu'elle soit ouverte à l'opinion, je pense qu'elle fait partie du domaine des questions auxquelles il est possible de répondre. Je suis intéressé par la réponse du point de vue de la sécurité et j'espère avoir une image plus claire de si / comment / où terminal enregistre les commandes AS - comme Terminal le fait avec la commande l'histoire .
Merci à tous.

3voto

user3439894 Points 52496

Si vous exécutez le programme suivant do shell script commande en script Éditeur :

do shell script "set"

Le tableau ci-dessous montre ce qui a été renvoyé.

Comme on peut le constater, il n'y a pas de l'histoire apparenté variables de l'interpréteur de commandes et à ce titre, pour faire court, il n'y a pas d'autres possibilités. historique des commandes être sauvés.

Si vous souhaitez en savoir plus, consultez le site web de la Commission européenne. HISTOIRE dans la section bash page de manuel,

Pour plus d'intérêt, d'autres historique des commandes Variables Shell, par exemple, HISTCONTROL , HISTFILE HISTFILESIZE , HISTIGNORE , HISTSIZE , HISTIGNORE , HISTSIZE y HISTTIMEFORMAT .


Il convient également de noter que lorsqu'un Exécuter le Shell script action dans un Automate flux de travail est exécuté, il en va de même, pour la même raison que pour la fonction do shell script commande en script Éditeur , non l'histoire apparenté variables de l'interpréteur de commandes sont définis.


Sortie de la set commande à partir d'un AppleScript do shell script commandement :

Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.HPRIi1Tsop/Render
BASH=/bin/sh
BASH_ARGC=()
BASH_ARGV=()
BASH_EXECUTION_STRING=set
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]=\"3\" [1]=\"2\" [2]=\"57\" [3]=\"1\" [4]=\"release\" [5]=\"x86_64-apple-darwin17\")
BASH_VERSION='3.2.57(1)-release'
DIRSTACK=()
EUID=501
GROUPS=()
HOME=/Users/me
HOSTNAME=mes-Mac.local
HOSTTYPE=x86_64
IFS='   
'
LOGNAME=me
MACHTYPE=x86_64-apple-darwin17
OPTERR=1
OPTIND=1
OSTYPE=darwin17
PATH=/usr/bin:/bin:/usr/sbin:/sbin
POSIXLY_CORRECT=y
PPID=4330
PS4='+ '
PWD=/
SHELL=/bin/bash
SHELLOPTS=braceexpand:hashall:interactive-comments:posix
SHLVL=1
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.WQb3vmbYE7/Listeners
TERM=dumb
TMPDIR=/var/folders/w0/lht0h70x06b8hdb5lx474pkc0000gn/T/
UID=501
USER=me
XPC_FLAGS=0x0
XPC_SERVICE_NAME=0
_=sh
__CF_USER_TEXT_ENCODING=0x1F5:0x0:0x0

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X