Description
I have a lab assignment and a project that I need help in
Unformatted Attachment Preview
CIT-315: Operating Systems Administration
College of Technological Innovation
CIT315: Operating System
In-Course Project
Project Title: Security, Protection & AI in Operating System
Level of Collaboration: GROUP (2 or 3 students)
Marks: 100
Instructor: Dr. Babar Shah
Penalty for Late Submission
After the Deadline, work accepted as ‘Late Submission’ will be marked but the maximum grade that
can be awarded is C. Work submitted more than one week after the deadline will be given a Nil
response (NR), i.e., a 0 grade. The only exceptions to this rule are when the instructor has given
permission for the work to be handed in late or you have been ill and produced appropriate
certification.
Learning Outcomes Covered in this Project:
Analyze existing formal and informal security and protection methods for various operating systems.
1. INTRODUCTION
1
1.1. Background of Security and Protection
Many companies/organizations/institutions possess valuable information they want to secure
closely. Among many things, this information can be technical, commercial, financial, or legal.,
etc. among others. Most of this information is stored on computers. Similarly, home computers
increasingly have valuable data on them, too. Many people keep their financial information, bank
account details, and credit card numbers on their computers. Furthermore, any user’s hard disk
these days is full of important photos, videos, and movies.
As more and more information is stored in computer systems, the need to protect it is becoming
increasingly important. Guarding the information against unauthorized usage is therefore a major
concern of all operating systems.
1.2 Artificial Intelligence Techniques for OS Security and Protection
Artificial Intelligence (AI) and operating systems (OS) are fundamental components in the world
of computing, and they often intersect in various ways.
Operating systems provide the foundational environment on which AI algorithms and
applications run. AI applications, whether machine learning, natural language processing, or
computer vision, need a stable and efficient OS to execute.
Artificial Intelligence techniques play a crucial role in enhancing the security and protection of
operating systems.
1.3. Objectives for this procurement
At a broad level, this exercise aims to examine computer security and protection as it applies to
operating systems. Unfortunately, guarding the information against unauthorized usage is also
becoming increasingly difficult due to the widespread acceptance of system bloat (and the
accompanying bugs) as a normal phenomenon.
2. SCOPE AND SCALE OF THIS PROJECT
The issues relating to operating system security have changed radically in the past few decades. Up
until early 1990, few people had a computer at home and most computing was done at companies,
universities, and other organizations on multiuser computers ranging from large mainframes to
minicomputers. Nearly all of these machines were isolated, and not connected to any networks.
Therefore, security was almost entirely focused on how to keep the users out of each other’s hair.
Elaborate models and mechanisms were developed to ensure no user could get access rights to which
he or she was not entitled.
Sometimes the models and mechanisms involved classes of users rather than just individuals. For
example, on a military computer, data had to be marked as top secret, secret, confidential, or public.
All these themes were thoroughly investigated, reported on, and implemented over a period of
decades.
2
With the rise of personal computers, tablets, smartphones, and the Internet, the situation changed.
While today’s encryption techniques are more sophisticated, the principle is the same: without
knowledge of the key, the adversary should not be able to read the message. Unfortunately, this does
not always work, because the network is not the only place where security is required. Breaking into
someone’s computer is not always easy but much easier than it should be. The problem is caused
by bugs in the software on the computer.
3. Security and Protection
3.1. Security
Security requires not only an adequate protection system but also consideration of the external
environment within which the system operates. A protection system is ineffective if user
authentication is compromised, or a program is run by an unauthorized user.
Computer resources must be guarded against unauthorized access, malicious destruction or
alteration, and accidental introduction of inconsistency. These resources include information
stored in the system (both data and code), as well as the CPU, memory, disks, tapes, and
networking that are the computer. Security breaches can cause the following.
• Breach of confidentiality. This type of violation involves the unauthorized reading of data
(or theft of information). Typically, a breach of confidentiality is the goal of an intruder.
Capturing secret data from a system or a data stream, such as credit card information or
identity information for identity theft, can result directly in money for the intruder.
•
Breach of integrity. This violation involves unauthorized modification of data. Such
attacks can, for example, result in the passing of liability to an innocent party or
modification of the source code of an important commercial application.
•
Breach of availability. This violation involves the unauthorized destruction o data. Some
crackers would rather wreak havoc and gain status or bragging rights than gain financially.
Website defacement is a common example of this type of security breach.
•
Theft of service. This violation involves the unauthorized use of resources. For example,
an intruder (or intrusion program) may install a daemon on a system that acts as a file
server.
•
Denial of service. This violation involves preventing the legitimate use of the system.
Denial-of-service (DOS) attacks are sometimes accidental. The original Internet worm
turned into a DOS attack when a bug failed to delay its rapid spread.
In this project, the students start by examining ways in which resources may be accidentally or
purposely misused.
3
3.2. Protection
The processes in an operating system must be protected from one another’s activities. To provide
such protection, in this project, the student can use various mechanisms to ensure that only
processes that have gained proper authorization from the operating system can operate on the files,
memory segments, CPU, and other resources of a system. Protection refers to a mechanism for
controlling the access of programs, processes, or users to the resources defined by a computer
system. This mechanism must provide a means for specifying the controls to be imposed, together
with a means of enforcement. We distinguish between protection and security, which is a measure
of confidence that the integrity of a system and its data will be preserved.
As computer systems have become more sophisticated and pervasive in their applications, the need
to protect their integrity has also grown. Modern protection concepts have evolved to increase the
reliability of any complex system that makes use of shared resources. Operating system need to
provide protection for several reasons such as.
•
Mischievous,
•
Intentional violation of an access restriction by a user.
•
Need to ensure that each program component active in a system uses system resources
only in ways consistent with stated policies.
•
Protection can improve reliability by detecting latent errors at the interfaces between
component subsystems.
The role of protection in a computer system is to provide a mechanism for the enforcement of the
policies governing resource use. These policies can be established in a variety of ways. Some are
fixed in the system’s design, while others are formulated by the management of a system. Still
others are defined by the individual users to protect their own files and programs. A protection
system must have the flexibility to enforce a variety of policies.
4. Requirements
•
Operating Systems such as Microsoft Windows, Apple macOS, Linux, Android, UNIX and
Apple’s iOS,
•
Operating system algorithms for password encryption to provide security.
•
Operating system algorithms to maintain its protection matrix.
•
Artificial Intelligence
•
Securely capturing and analyzing network traffic.
References:
1. Modern Operating Systems, 4th Edition By Andrew S. Tanenbaum and Herbert Bos
2. Operating System Concepts, 9th Edition by Abraham Silberschatz, Peter Baer Galvin and Greg
Gagne
4
Project Deliverables
This project consists of three parts:
1. Part 1. Security in the operating system
2. Part 2. Protection in the operating system
3. Part 3. AI Techniques for OS Security and Protection
➢ Title page, Contents, Introduction (8 to 10 lines), References
➢ You need to achieve all the requirements and select the operating systems of your choice. Explore
the algorithms of the operating system for security and protection. Furthermore, discusses the AI
techniques used for providing more reliable OS security and protection. Write a detailed report
covering all the three parts of the project.
Part 1. OS Security
Write a detailed report covering the following OS security topics.
• Identify Security Risks and Threats: Conduct a thorough analysis to identify potential
security risks and threats associated with the chosen operating system.
• Research Security Mechanisms: Study various security mechanisms and techniques
relevant to the selected OS for providing security to the system. These may include
firewalls, antivirus software, encryption, secure boot processes, access controls, and
more.
• Propose Security Enhancements: Based on the above topics, investigate the chosen
OS’s current security level and suggest how it might be strengthened.
Part 2. OS Protection
Write a detailed report covering the following OS protection topics.
• Domain of Protection: Provide an overview of the chosen operating system domain of
protection by highlighting the boundaries within which a set of protection policies,
mechanisms, and controls are applied to ensure the protection, integrity, and
confidentiality of a system’s resources and data.
• Identify Protection Risks and Threats: Conduct a thorough analysis to identify
potential protection risks and threats associated with the chosen operating system.
• Research Protection Mechanisms: Study various protection algorithms relevant to the
selected OS for providing protection to the system. Discuss all the subsections of the
algorithm with a diagram.
• Propose Protection Enhancements: Based on the above topics, investigate the chosen
OS’s current protection level and suggest how it might be strengthened.
5
Part 3. AI Techniques for OS Security and Protection
Artificial Intelligence (AI) techniques play a crucial role in enhancing the security and
protection of operating systems. Organizations can significantly enhance their security
posture by incorporating these AI techniques into the OS’s security and protection
infrastructure to detect better, respond to, and mitigate security/protection threats and
vulnerabilities.
Implementing AI for enhancing operating system security and protection involves utilizing
machine learning, deep learning, and other AI techniques to identify, prevent, and respond
to security and protection threats effectively.
• Explore at least five different AI techniques and applications that are utilized for
securing and protecting operating systems. Elaborate your discussion with diagrams
and examples.
6
Spring-2023
Operating Systems- CIT-315
Lab. Assignment
The Lab. Assignment is worth 15% of the total score. It consists of three parts. Part 1 will be
dedicated to Processes and Linux commands for process management. Part 2 will cover File System
& File Management. Part 3 will be Memory Management and Mass Storage.
Objectives of this assignment are:
Learn and practice Linux commands used for process management and checking resource usage.
Instructions:
• For each question insert a screenshot of the output and provide an explanation where
required.
• Username must be your name (first name and ID or first name and last name)
Student Name
Student ID#
Instructor: Dr. Babar Shah
Note: In case of one day late submission, you’ll lose 3% of the total lab percentage.
Two days late submission will incur a 6% penalty. Any work that is three or
more than three days late will receive a 10% reduction in lab grade.
Part 1:
• Practice With Commonly Used Linux and Process management (35 Marks)
Introduction
• Working using the command-line interface, you need to issue commands.
• Shell is a software (interface) between the user and the kernel, through which the user
issues commands to the system to perform some tasks. The shell interprets the
commands. An example of a shell is a Bash shell.
• To access the shell, keep the machine on and type in the search bar the word “terminal”
or “term”.
• Standard prompt: user’s login name, and the current working directory, represented
by the tilde (~) (user’s home directory)
• Commands, in general, are of three parts, space must separate these parts.
command [options] [arguments]
‐
‐
Argument is the target on which the action is to be performed.
Options are used to modify the command’s effects and they are preceded by a
hyphen “-“. It is possible to have several options in the same command.
Important Note: Linux is case sensitive
Examples:
ls — command with no options and argument
ls -l –command with one option and no argument
ls -al — command with 2 options and no argument
ls /etc — command with no options and with argument “/etc”
ls -al /etc –command with two options “a” and “l” and one argument “/etc”
Once you lunch the VM (can use VMware workstation or Oracle VM virtual box or VM player),
get a terminal and write down what you get in your case (user’s login name, and the current
working directory)
a. To learn more about any command, you can use one of the following commands.
o man command (e.g., man ls) to get a LINUX manual page related to that command. You can
then navigate using the keyboard.
Look at the name, synopsis, and description.
o
info command (e.g., info ls)
o
–help command (e.g., ls –help)
1- Practice the most used commands
1. Type the pwd command in the terminal.
What the pwd command will do? Explain the output of the pwd command?
Now type PWD command in the terminal. Explain the output.
2. Type the commands man ls and ls –help. Discuss the difference between the two commands?
3. Type cd /downloads and press Enter, and then type pwd and press Enter.
Is your current directory the same as in Q1?
Why or why not? Discuss.
4. Type cd and press Enter.
What happens when you use the cd command with and without arguments? Explain with an
example.
5. Type ls and press Enter, and then type ls -l and press Enter.
How the outputs of ls and ls –l are different from each other?
Discuss all the fields of ls -l commands.
• Process Management Commands
When booting the system, the kernel starts its activities and initiates the process init, which in turn
starts system services most of them as daemons.
As seen in the lectures, each process has a unique ID-pid. The process init has PID =1. The kernel
keeps track of all processes in the system, their state, and resources used by these processes. In this
part of the lab. we will practice commands that help us in running processes background and
foreground, getting information about processes and resources used.
2-1 Running processes background and foreground.
Start your virtual machine and open the terminal.
1.
Type in FireFox and then press enter. What do you get?
In case you receive an error then correct the error and type again. Write down the error type.
2.
Be in the terminal and type the command ps then press enter. Did you manage to type the
command? Did you get an output? Explain.
3.
Type the command xterm then press enter. Discuss the output you get.
4.
In the terminal open in step 1 type the command ps. Did you manage to progress and see the
output of that command? If Yes the explain and if NO then explain accordingly.
In the terminal open in step 1, press CTRL+C. What happened?
5.
Now, in the terminal open in step 1 type the command xterm & then press enter. What did
you get as a result?
NOTE: Keep all terminals open.
•
Displaying Process information, operations on processes, and statistics on resources
•
The ps command: process snapshot, lists processes running on the system
o With no arguments, lists any child process of the current shell (terminal) as well as
the BASH shell itself
The output of the command:
TTY (TeleTYpe) -indicating a non-GUI-based virtual terminal
TIME: CPU time used by the process to execute.
CMD: the command (process)
o Adding the option -f displays full information about a process. User who started
that process (UID), PPID (Parent Process ID) that started that process, STIME:
time the command started (if ran for more than 24 hours will display the date).
Time is total CPU usage, C (CPU or scheduling information)
o Adding x or -e, will display all processing running on the system (? indicates no
controlling terminal)
o With aux option (not preceded by -) will display more information like USER (ID
of user who owns that process), %CPU (CPU usage in % by that process),
%MEM (memory usage in %), VSZ (virtual memory size), RSS (Resident Set
Size: amount of memory the process is using in kB, START Time when the process
started.)
• The top command provides dynamic information (updated each 2 to 3 seconds) about
processes and resources. Top is one of the most used commands for troubleshooting.
The output consists of two parts. The first part contains overall information such as
summary of processes running on the system, CPU statistics, physical memory (RAM)
statistics, and virtual memory statistics). For the CPU it shows
‐
us: Amount of time the CPU spends executing processes for people in “user
space.”
‐
sy: Amount of time spent running system “kernel space” processes.
‐
ni: Amount of time spent executing processes with a manually set nice value.
‐
id: Amount of CPU idle time.
‐
wa: Amount of time the CPU spends waiting for I/O to complete.
‐
hi: Amount of time spent servicing hardware interrupts.
‐
si: Amount of time spent servicing software interrupts.
‐
st: Amount of time lost due to running virtual machines (“steal time)
The second part displays the list of processes with more details like CPU and memory
utilization, owner of processes, priority, etc. Note that top tool can order processes
according to CPU usage or other properties. The information includes:
‐
PID: Process ID.
‐
‐
‐
‐
‐
‐
‐
‐
USER: The owner of the process.
PR: Process priority.
NI: The nice value of the process.
VIRT: Amount of virtual memory used by the process.
RES: Amount of resident memory used by the process.
SHR: Amount of shared memory used by the process.
S: Status of the process. (See the list below for the values this field can take).
D
Uninterruptible sleep (usually IO)
R
Running or runnable (on run queue)
S
Interruptible sleep (waiting for an event to complete)
T
Stopped, either by a job control signal or because it
is being traced.
W
paging (not valid since the 2.6.xx kernel)
X
dead (should never be seen)
Z
Defunct (“zombie”) process, terminated but not
reaped by its parent.
‐
%CPU: The share of CPU time used by the process since the last update.
‐
%MEM: The share of physical memory used.
Stop the top command by pressing the letter q
•
The free command displays memory (physical and virtual memory) statistics we use the
command free (note can use free -k to get it in kilobytes or -m in megabytes and -g in
gigabytes)
•
The jobs command displays all jobs launched in the current terminal
•
The pstree command outputs a process list arranged in a tree-like pattern showing the
parent/child relationships between processes.
•
The kill command terminates a process: use the command kill PID
6. In terminal 1 type the command ps then press enter.
How many processes are there and what are their respective IDs?
Write the process name and their ID.
7. Be in terminal 2 and type the command ps then press enter (note: here ppt/1 and in first terminal
ppt/0 if another terminal is open, we will have ppt/2, and so on.). What are the processes and
their respective IDs?
8. In terminal 1, type the command ps -l then press enter. Show the output of the command.
Select one process from the output and give all the details. Explain.
9. In terminal 1, type the command ps -s then press enter. Show the output of the command.
Select one process from the output and give all the details. Explain.
10. In terminal 1, type the command ps -t then press enter. Show the output of the command.
Select one process from the output and give all the details. Explain.
11. Type the command ps aux then press enter. Give a screenshot of the first part of the output.
Select one of the processes (a line in the output) and interpret each part of information related
to that process.)
There is one process with PID equal to 1. What is the name of that process?
12. Be in terminal 1 and type the command top then press enter
a. How much CPU is spent executing user processes?
b. How much CPU is spent executing system processes?
c. Select one process from the list and explain each part of the information.
d. How much memory is used?
e. Give the PID of the first process in the sleeping status.
f. Stop the top command by pressing the letter q.
13. Display memory statistics (physical and virtual memory, respectively) in megabytes. What
is the total size of the physical memory and what is the amount used?
14. Be in terminal 1 and type the command jobs then press enter. How many total processes are
there? How many background processes?
15. Be in terminal 1 and type the command ps tree then press enter. From the result obtained,
identify the part of the process tree related to the processes you created.
Note: In case you get an error then correct the error and execute the command again. Discuss the
error type.
16. Use terminal 1 to find PID of Firefox then terminate it using the kill command.
Inter-Process communication:
An example of inter-process communication is using the pipe operator ‘|’.
ProcessSender | ProcessReceiver.
Note: This is uni-directional (one-way communication); the pipe passes the output of ProcessSender
to ProcessReceiver.
17. Type the command top | less then press enter. This command directs the results obtained from
the command top to the process less. The command less displays a file’s contents and the user
can navigate back and forth. Use page-down and page-up.) press q to stop it.
Part 2: Practice File Systems and File Management (35 Marks)
NOTE: If you get an error after executing the command then correct and re-execute it.
Be in your home directory by typing the command cd then press enter.
1.
Create two directories within your home directory and name them NET256 and CIT315,
respectively.
Confirm the directories were created.
2.
Change to the directory CIT315. Check what is your current working directory. Discuss the
permission of CIT315 directory.
3.
Create multiple directories Assignment, Project, Lecture and Lab within the current directory
(CIT315).
Confirm the directories.
4.
In the current working directory “CIT315”, create an empty file name it openSUSE.
5.
List the contents of the current directory in both listing and long listing format.
Discuss the difference between listing and long listing.
6.
Change to the directory Assignment by typing the command cd CIT315/Assignment then press
enter. In case of error, make corrections.
7.
Type the command to check your current working directory. What command do you type?
8.
Change to your home directory, what command do you type?
9.
Change to the directory NET256 using the absolute path.
Discuss the difference between relative and absolute path with an example.
10. Create a file with the name assignment. What command do you type for creating the file?
11. Change to the directory CIT315.
12. List the contents of the directory CIT315 with detailed information about each file.
Explain all the details of one file.
13. What are the file permissions of the directory Assignment?
Explain the file permissions.
14. What are the file permissions of the file OpenSUSE?
15. Rewrite the file permissions of the file OpenSUSE in the numeric notation.
Explain the command.
16. Rewrite the file permissions of the Project in the numeric notation.
17. Change the file permissions of the file Lab to be readable by all users, writable by only owner
and group users, and executable by all users.
Explain the command.
18. Change permission of NET256 to be readable, writable by the owner, and readable by the
group and other users.
19.
Part 3: Mass Storage Management (30 Marks)
1. Have a terminal open, then type the command lsblk then press enter. How many disks
do you have? How many partitions? Discuss.
2. Be the root (type su then press enter. Then type your password) Type parted -l then
press enter.
What is the output? What is the total size of the disk? How many partitions?
Discuss all.
3. Type the command fdisk -l in the terminal. Explain the output.
4. Create a disk partition: type the command fdisk/dev/sda (sda is the label of the disk
drive) then press enter. (Note: in case of any error correct and re-run the command)
Explain the error type.
5. From the menu type n then press enter. Identify the first and last sector and enter
accordingly.
6. Save the changes (partition table) by typing w and then pressing enter.
7. Quit typing q then press enter.
8. Check the partition table now (typing parted -l ) and show the output.
Explain the output.
9. Create a filesystem for the new disk partition: typing mkfs -t /dev/xxxx (xxxx is
label of the created partition) then press enter.
Explain the output.
10. Type the command parted -l then press enter to see the difference of the output with
the output of question 2.
Explain the difference.
Purchase answer to see full
attachment