Unit 5 Os
Unit 5 Os
Unit 5 Os
System Protection: Goals of protection, Principles and domain of protection, Access matrix,
Access control, Revocation of access rights.
System Security: Introduction, Program threats, System and network threats, Cryptography
for
security, User authentication, Implementing security defenses, Firewalling to protect systems
and
networks, Computer security classification.
Goals of Protection
Obviously to prevent malicious misuse of the system by users or programs.
See chapter 15 for a more thorough coverage of this goal.
To ensure that each shared resource is used only in accordance with
system policies, which may be set either by system designers or by system
administrators.
To ensure that errant programs cause the minimal amount of damage
possible.
Note that protection systems only provide the mechanisms for enforcing
policies and ensuring reliable systems. It is up to administrators and users to
implement those mechanisms effectively.
14.2 Principles of Protection
The principle of least privilege dictates that programs, users, and systems
be given just enough privileges to perform their tasks.
This ensures that failures do the least amount of harm and allow the least of
harm to be done.
For example, if a program needs special privileges to perform a task, it is
better to make it a SGID program with group ownership of "network" or
"backup" or some other pseudo group, rather than SUID with root
ownership. This limits the amount of damage that can occur if something
goes wrong.
Typically each user is given their own account, and has only enough
privilege to modify their own files.
The root account should not be used for normal day to day activities - The
System Administrator should also have an ordinary account, and reserve use
of the root account for only those tasks which need the root privileges
14.3 Domain of Protection
A computer can be viewed as a collection of processes and objects ( both
HW & SW ).
The need to know principle states that a process should only have access to
those objects it needs to accomplish its task, and furthermore only in the
modes for which it needs access and only during the time frame when it
needs access.
The modes available for a particular object may depend upon its type.
14.3.1 Domain Structure
The simplest approach is one big global table with < domain,
object, rights > entries.
Unfortunately this table is very large ( even if sparse ) and so
cannot be kept in memory ( without invoking virtual memory
techniques. )
There is also no good way to specify groupings - If everyone
has access to some resource, then it still needs a separate entry for
every domain.
14.5.2 Access Lists for Objects
#include
#define BUFFER_SIZE 256
With a firewall, however, access is contained, and any DMZ systems that are
broken into still are unable to access the company computers. Of course, a
firewall itself must be secure and attack-proof; otherwise, its ability to secure
connections can be compromised. Furthermore, firewalls do not prevent attacks
that tunnel, or travel within protocols or connections that the firewall allows.
A buffer-overflow attack to a web server will not be stopped by the firewall,
for example, because the HTTP connection is allowed; it is the contents of the
HTTP connection that house the attack. Likewise, denial-ofservice attacks can
affect firewalls as much as any other machines. Another vulnerability of
firewalls is spoofing, in which an unauthorized host pretends to be an
authorized host by meeting some authorization criterion. For example, if a
firewall rule allows a connection from a host and identifies that host by its IP
address, then another host could send packets using that same address and be
allowed through the firewall.
In addition to the most common network firewalls, there are other, newer kinds
of firewalls, each with its pros and cons. A personal firewall is a software layer
either included with the operating system or added as an application. Rather
than limiting communication between security domains, it limits
communication to (and possibly from) a given host.
A user could add a personal firewall to her PC so that a Trojan horse would be
denied access to the network to which the PC is connected. An application
proxy firewall understands the protocols that applications speak across the
network. For example, SMTP is used for mail transfer. An application proxy
accepts a connection just as an SMTP server would and then initiates a
connection to the original destination SMTP server. It can monitor the traffic as
it forwards the message, watching for and disabling illegal commands, attempts
to exploit bugs, and so on.
Some firewalls are designed for one specific protocol. An XML firewall, for
example, has the specific purpose of analyzing XML traffic and blocking
disallowed or malformed XML. System-call firewalls sit between applications
and the kernel, monitoring system-call execution. For example, in Solaris 10,
the "least privilege" feature implements a list of more than fifty system calls
that processes may or may not be allowed to make. A process that does not
need to spawn other processes can have that ability taken away, for instance.
Computer-Security Classifications
The U.S. Department of Defense Trusted Computer System Evaluation
Criteria specify four security classifications in systems: A, B, C, and D. This
specification is widely used to determine the security of a facility and to model
security solutions, so we explore it here.
The lowest-level classification is division D, or minimal protection. Division D
includes only one class and is used for systems that have failed to meet the
requirements of any of the other security classes. For instance, MS-DOS and
Windows 3.1 are in division D. Division C, the next level of security, provides
discretionary protection and accountability of users and their actions through
the use of audit capabilities.
Division C has two levels: Cl and C2. A Cl-class system incorporates some
form of controls that allow users to protect private information and to keep
other users from accidentally reading or destroying their data. A Cl
environment is one in which cooperating users access data at the same levels of
sensitivity. Most versions of UNIX are Cl class.
The sum total of all protection systems within a computer system (hardware,
software, firmware) that correctly enforce a security policy is known as a
trusted computer base (TCB). The TCB of a Cl system controls access between
users and files by allowing the user to specify and control sharing of objects by
named individuals or defined groups.
In addition, the TCB requires that the users identify themselves before they
start any activities that the TCB is expected to mediate. This identification is
accomplished via a protected mechanism or password; the TCB protects the
authentication data so that they are inaccessible to unauthorized users. A C2-
class system adds an individual-level access control to the requirements of a Cl
system.
For example, access rights of a file can be specified to the level of a single
individual. In addition, the system administrator can selectively audit the
actions of any one or more users based on individual identity. The TCB also
protects itself from modification of its code or data structures. In addition, no
information produced by a prior user is available to another user who accesses
a storage object that has been released back to the system.
Some special, secure versions of UNIX have been certified at the C2 level.
Division-B mandatory-protection systems have all the properties of a classC2
system; in addition, they attach a sensitivity label to each object. The Bl-class
TCB maintains the security label of each object in the system; the label is used
for decisions pertaining to mandatory access control.
For example, a user at the confidential level could not access a file at the more
sensitive secret level. The TCB also denotes the sensitivity level at the top and
bottom of each page of any human-readable output. In addition to the normal
user-namepassword authentication information, the TCB also maintains the
clearance and authorizations of individual users and will support at least two
levels of security. These levels are hierarchical, so that a user may access any
objects that carry sensitivity labels equal to or lower than his security
clearance.
For example, a secret-level user could access a file at the confidential level in
the absence of other access controls. Processes are also isolated through the use
of distinct address spaces. A B2-class system extends the sensitivity labels to
each system resource, such as storage objects.
Physical devices are assigned minimum and maximum security levels that the
system uses to enforce constraints imposed by the physical environments in
which the devices are located. In addition, a B2 system supports covert
channels and the auditing of events that could lead to the exploitation of a
covert channel. A B3-class system allows the creation of access-control lists
that denote users or groups not granted access to a given named object. The
TCB also contains a mechanism to monitor events that may indicate a violation
.
The mechanism notifies the security administrator aid, if necessary, terminates
the event in the least disruptive manner. The highest-level classification is
division A. Architecturally, a class-Al system is functionally equivalent to a B3
system, but it uses formal design specifications and verification techniques,
granting a high degree of assurance that the TCB has been implemented
correctly. A system beyond class Al might be designed and developed in a
trusted facility by trusted personnel.
The use of a TCB merely ensures that the system can enforce aspects of a
security policy; the TCB does not specify what the policy should be. Typically,
a given computing environment develops a security policy for certification and
has the plan accredited by a security agency, such as the National Computer
Security Center. Certain computing environments may require other
certification, such as that supplied by TEMPEST, which guards against
electronic eavesdropping. For example, a TEMPEST-certified system has
terminals that are shielded to prevent electromagnetic fields from escaping.
This shielding ensures that equipment outside the room or building where the
terminal is housed cannot detect what information is being displayed by the
terminal.