Lab: OS BootUp in Computer Security
Table of Contents
- 1. Background
- 2. Abstract
- 3. Educational Objectives
- 4. Lab for 2017 Fall CEG 4420/6420
- 5. Task: From Legitimate Init to User Login
- 6. Task: Knoppix Bootup
- 7. Task: Kali Bootup
- 8. Task: Power On to OS Loader Selection
- 9. Task: OS Loader to OS Kernel Selection
- 10. Task: OS Kernel to Process init
- 11. End
1 Background
- Required Reading: BootUp in Computer Security
- Required Reading and Lab: USBD Multi-Boot Linux
2 Abstract
Abstract: This article describes labs based on OS BootUp which discusses how a computer system boots from powering up to user login prompt. Our focus is on what + how things can "go wrong" from a security point of view. This discussion is specific to Linux and Intel x86/x86-64. But similar steps are valid for other computer systems. So that a technique is understood, we often gloss over the details, even if it is at the risk of precision, but not at the level of "whole truth".
3 Educational Objectives
Student should be able to
- Describe how a computer system boots from power-on.
- Recognize the possibilities for Trojans.
- Recognize unneeded daemons.
- Develop a proper secure boot configuration
4 Lab for 2017 Fall CEG 4420/6420
[This page collects several possible lab tasks. Each semester, we select a subset.]
- Task: From Legitimate Init to User Login
- Task: Power On to OS Loader Selection
- Task: OS Loader to OS Kernel Selection
- Task: OS Kernel to Process init
5 Task: From Legitimate Init to User Login
Objective: Study the booting sequence ending at login prompt.
- Freshly reboot into your choice of (HDD installed) Linux. Wait for the GUI to show.
- Save the output of
ps
with flags that show all processes with the greatest amount of detail. You will notice several gaps in the process id numbers. - Consider process ids in the ranges of 1 to 100, and 900 to 1000. Note the missing pids. Among the missing ids, explain the details of <i>at least five</i> processes from the range 1 to 100 and another five from 900 to 1000 that must have come to life, performed their duties, and terminated.
- Be aware that the bash shell has many built in commands such as
echo
that do not cause process creation. - Among the currently running processes, identify <i>all</i> the daemon processes, and how and where from they were invoked.
- The specific names of script files in the current installation of Linux are not necessarily rc.multiuser etc as indicated in the sections above. Find and correct all such names.
6 Task: Knoppix Bootup
- Describe the bootup details of Knoppix. Focus on how it detects the hardware you have (almost always) correctly.
7 Task: Kali Bootup
- Describe the bootup details of Kali Linux.
8 Task: Power On to OS Loader Selection
- [Devious.] Suggest how an Alternate OS Loader can be installed and made effective. That is, instead of invoking the OS Boot Loader you thought you installed, another one has taken over.
- This should not be easy to detect.
- Nevertheless, Outline how this can be detected.
9 Task: OS Loader to OS Kernel Selection
- Use your MultiBoot Linux USBD.
- Install at least two different kernels. Need not be rogue kernels. Make them selectable via the (legitimate) OS Boot Loader (e.g., Grub).
- On a HDD installed Linux, this happens all the time.
10 Task: OS Kernel to Process init
- Describe how the kernel selects the init program. Doe the kernel log this info somewhere?
- [Devious.] Plant an alternate, fully functional but rogue,
init
. - Did the kernel know it is invoking an alternate init, possibly a rogue init? How can you discover the rogue init?