เมื่อมัลแวร์ชิ้นหนึ่งได้รับสิทธิ์เข้าถึงบัญชีของผู้ใช้แล้วมันสามารถ:
1.สร้าง bash alias (ในเชลล์ปัจจุบันและใน~/.bashrc) ไปยังคำสั่งที่จะทำการ[sudo] password for $USER:พรอมต์และขโมยรหัสผ่านของผู้ใช้
alias sudo='echo -n "[sudo] password for $USER: " && \
read -r password && \
echo "$password" >/tmp/sudo-password'
2.ในทำนองเดียวกันมันสามารถวางไฟล์ปฏิบัติการที่มีชื่อsudoไว้~/.binและปรับเปลี่ยนPATHตัวแปรเพื่อให้ได้เอฟเฟกต์เดียวกัน:PATH="$HOME/.bin:$PATH"
3.จับการกดปุ่มผ่านเซิร์ฟเวอร์ X ดูคำsudoแล้วลองข้อความระหว่างการEnterกดปุ่มสองครั้งถัดไปเป็นรหัสผ่าน
4.สิ่งที่คล้ายกันสามารถทำได้ในสภาพแวดล้อมใด ๆ (คอนโซลWayland , X) $LD_PRELOADใช้เช่น
5.หากมัลแวร์ติดไวรัสเชลล์ที่ใช้sudoและsudoแคชข้อมูลรับรองมัลแวร์สามารถตรวจสอบอย่างต่อเนื่องว่าเป็นไปได้หรือsudoไม่ที่จะไม่มีรหัสผ่าน:
while : ; do
echo | sudo -S echo "test" &>/dev/null && break
sleep 10
done
sudo echo "We now have root access"
การป้องกัน:
ที่ 1 และ 2\/bin/sudoใช้ \ละเว้นชื่อแทนและละเว้น/bin/… $PATHหรือเพิ่มชื่อแทนเช่น: ssudo="\/bin/sudo"และใช้ssudoแทนsudoเสมอ ดูเหมือนว่าไม่น่าเป็นไปได้ที่ไวรัสจะฉลาดพอที่จะแมปชื่อแทนนี้ได้
3.หลีกเลี่ยงการพิมพ์รหัสผ่านของคุณเมื่อใช้ X11 ใช้คอนโซลเสมือนหรือเวสตันแทน
5.ชุดในtimestamp_timeout=0/etc/sudoers
วิธีเดียวที่จะขจัดโอกาสที่sudoรหัสผ่านจะถูกดมกลิ่นได้อย่างสมบูรณ์ดูเหมือนจะหลีกเลี่ยงได้ทั้งหมด ให้ล็อกอินเป็นรูทไปยังคอนโซลเสมือนแทน
อ้างอิงจาก Alexander Peslyak : "การใช้งานที่ปลอดภัยเพียงอย่างเดียวสำหรับ su [และ sudo] คือการเปลี่ยนจากบัญชีที่มีสิทธิพิเศษมากกว่ามาเป็นบัญชีที่มีสิทธิ์น้อยกว่า ... "
ในบันทึกด้านข้าง sudo มีวิธีการรับมือบางอย่าง:
sudoอ่านจากttyแทนstdinดังนั้นalias sudo='tee -a /tmp/sudo-password | sudo'จะหยุดพักsudo(แต่จะจับรหัสผ่าน)