Mi è stato assegnato un incarico per la mia classe di sicurezza informatica. Ci è stato dato un pezzo di codice per analizzare e determinare le vulnerabilità che potrebbe avere.
#!/bin/sh
# shell script to create a copy of the shadow file to the /tmp directory
echo > /tmp/shadowcopy
# allow only root access
chmod 600 /tmp/shadowcopy
# append the original file to the copy
cat /etc/shadow >> /tmp/shadowcopy
# Hint: the access permissions of a file in linux are verified when the file is opened.
# the process will keep the original permissions as long as it keeps the file open, even
# if permissions change.
Alcuni compagni di classe e ho determinato che questo script potrebbe soffrire di vulnerabilità legata alle condizioni della competizione se due processi separati tentano di aprire / tmp / shadowcopy.
Pensiamo anche che la vulnerabilità di comando di iniezione potrebbe essere possibile se il / tmp / shadowcopy viene modificato prima che inizi l'append.
Le nostre ipotesi su questo script di shell sono corrette? o ci manca una vulnerabilità importante che potrebbe essere sfruttata se lo script è usato?