Question: please give description too Set-UID. Do your attacks in Step I still work? Please describe and explain your observations 2.9 Task 9: Capability Leaking To

 please give description too Set-UID. Do your attacks in Step I
still work? Please describe and explain your observations 2.9 Task 9: Capability
please give description too

Set-UID. Do your attacks in Step I still work? Please describe and explain your observations 2.9 Task 9: Capability Leaking To follow the Principle of Least Privilege, Set-UID programs often permanently relinquish their root privileges if such privileges are not needed anymore. Moreover, sometimes, the program needs to hand over its control to the user, in this case, root privileges must be revoked. The setuid() system call can be used to revoke the privileges. According to the manual, "setuid() sets the effective user ID of the calling process. If the effective UID of the caller is root, the real UID and saved set-user-ID are also set". Therefore, if a Set-UID program with effective UID O calls setuid (n), the process will become a normal process, with all its UIDs being set to n. When revoking the privilege, one of the common mistakes is capability leaking. The process may have gained some privileged capabilities when it was still privileged; when the privilege is downgraded, if the program does not clean up those capabilities, they may still be accessible by the non-privileged process. In other words, although the effective user ID of the process becomes non-privileged, the process is still privileged because it possesses privileged capabilities. Compile the following program, change its owner to root, and make it a Set-UID program. Run the program as a normal user, and describe what you have observed. Will the file /etc/zzz be modified? Please explain your observation. #include #include #include void main() int fd; 1. Assume that /etc/zzz is an important system file, and it is owned by root with permission 0644. Before running this program, you should creat - the file /etc/zzz tirst. / Ed open(/etc/zaz", O_RDWR 1 O_APPEND); if (fd -- -1) printf("Cannot open /etc/zzz "); exit(0); ) /* Simulate the tasks conducted by the program +/ sleep (1); 1. After the task, the root privileges are no longer needed, it's time to relinquish the root privileges permanently. */ setuid (getuid()); /* getuid() returns the real uid */ if (fork()) { /* In the parent process */ close (fd); exit(0); } else { /* in the child process +/ /* Now, assume that the child process is compromised, malicious attackers have injected the following statements into this process / write (fd, "Malicious Data ", 15); close(fd)

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!