SECURITY
Security in distributed systems
Agenda
introduction
Secure channels
Access control
Security management
INTRODUCTION
security is one of the most important principles since security need to be pervasive through the
system.
SECURITY IN DISTRIBUTED SYSTEM refers to the measures and mechanism put in place to
protect the integrity confidentiality and availability of data and resources within a network of
interconnected nodes
Security policies decides the security goals of a computer system and these goals are achieved
through various security mechanism
GOALS OF COMPUTER SECURITY
[Link]
information within the system must be accessible only to authorized users.
[Link]
• INFORMATION Give to the users must be used only for the purpose for which was given
[Link]
• The user must be able to verify that the data obtained is from expected sender only.
[Link]
• Information must be protected from unauthorized access.
POTENTIAL THREATS AND ATTACKS ON COMPUTER SECURITY
THREAT: is a possible danger that might exploit a vulnarabilty to breach security
and thus cause possible harm.
ATTACK: Is any attempt to destroy, expose, alter, disable,still or gain unauthorized
aaccess or to make unauthorized use of an asset.
TYPES OF THREATS
[Link]
Unauthorized user gaining access to a service or data e.g.
eavesdropping, illegal copying
[Link]
Services or data becoming unavailable, unusable, destroyed e.g.
intentional file corruption, denial of service attacks.
[Link]
Unauthorized changing of data or service so that it no longer adheres to
its original specification.
[Link]
Additional data or activity is generated that would normally not exist
e.g. adding entry to password, file or database, breaking into a system
by replaying previously sent messages
SECURITY POLICY AND MECHANISMS
• Security policies describes what actions the entities in a system are
allowed to take and which ones are prohibited.
• Security mechanisms implement security policies. The following
techniques are used:
• Encryption- provides a means to implement confidentiality, since it
transforms the data into some think which attacker can not
understand.
• Authentication- to verify whether the user, client, server etc. are
authentic. Users are authenticated by password.
• authorization_- to check as a whether the client is authorized to perfo
a specific task.
• Auditing- tools are used to trace which client accessed, what
information and when they did so.
TYPES OF ATTACKS
Passive attacks
Intruder access unauthorized information from a computer system
but not cause harm to the system.
• browsing- intruders attempt to read stored files, traverse message
packet on the network, access other process memory.
• Inferencing- the intruder records and analysis past activities and
access methods and uses this information to draw inferences.
• Masquerading- an intruder masquerades as an authorized user or a
program to gain access to unauthorized data or resource.
Active attack
Virus- is a small comuter program that needs to be executed by either
running it or having it loaded from a boot sector of a disc.
An intruder writes auseful program and attaches the virus to it, such as
when the program executed the virus is also executed.
Worm- a worm is a small piece of software that uses computer network
and security holes to replicate itself.
criteria virus Worm
program Program fragment Compete program
Existence and Does not exist nor Exists and executes
execution can execute independent
independently, needs
a host program
spread From one program to From one computer
another to another
Some of active attacks types are listed below;
• Logic bomb
• Integrity attack
• Authenticity attack
• Delay attack
• Replay attack
• Denial attack
FOCUS OF CONTROL
There are three approaches that can be followed to protect a distributed
application:
• Protection against invalid operation on secure data- protecting data
that is associated with the application, i.e. insure data integrity
• Protection against unauthorized invocations- specifying which
operations can be invoked and by whom and when the data resources
are accessed.
• Protection against unauthorized users- specifying which users should
be allowed to access the application irrespective of the operation to
be performed.
• -Roles are defined for the users and once that role is verified, access
to the resources is either granted or denied.
SECURE CHANNELS
A secure channel protects senders and receivers from against;
1. fabrication
2. modification
3. Interception
To have a secure communication we should have:
1. An authentication of communicating parties.
2. Ensure data integrity and confidentiality.
In distributed systems, ensuring security is crucial to protect data and
communication between different components. One of the key aspects
of security in distributed systems is the use of secure channels. Secure
channels are encrypted communication pathways that allow for the
secure transfer of data between different nodes in a distributed system.
Key Aspects of Secure Channels:
Encryption: Secure channels use encryption algorithms to encode data transmitted between nodes.
This ensures that even if the communication is intercepted, the data remains confidential and secure.
Authentication: Secure channels also involve authentication mechanisms to verify the identity of the
communicating parties. This helps prevent unauthorized access and ensures that only trusted entities
can exchange data.
Integrity: Another important aspect of secure channels is data integrity. By using techniques like
message authentication codes (MACs) or digital signatures, secure channels can detect any tampering
or modification of data during transmission.
Secure Protocols: Implementing secure protocols such as SSL/TLS for web-based communication or
IPsec for network-level security is essential for establishing secure channels in distributed systems.
End-to-End Encryption: To enhance security further, end-to-end encryption can be employed, where
data is encrypted at the source and decrypted only at the destination, ensuring that intermediaries
cannot access sensitive information.
Key Management: Proper key management practices are crucial for maintaining the security of secure
channels. This includes securely generating, storing, and exchanging encryption keys to prevent
unauthorized access.
Secure Communication Patterns: Adopting secure communication patterns like point-to-point
encryption or mutual authentication can strengthen the security of distributed systems by reducing
vulnerabilities to attacks.
Benefits of Secure Channels in Distributed Systems:
Confidentiality: Secure channels ensure that sensitive information remains confidential
during transmission, protecting it from eavesdropping or interception.
Data Integrity: By verifying the integrity of transmitted data, secure channels prevent
unauthorized modifications or tampering, maintaining the trustworthiness of information
exchanged between nodes.
Authentication: Secure channels enable entities to authenticate each other securely,
establishing trust relationships and preventing impersonation or unauthorized access.
Access control
Access control is a crucial aspect of security in distributed systems. It
refers to the process of regulating who can access what resources within
a system and what actions they can perform. Implementing effective
access control mechanisms is essential to prevent unauthorized users
from gaining access to sensitive data or functionalities in a distributed
environment.
Types of Access Control:
Discretionary Access Control (DAC): In DAC, the owner of a resource has
the discretion to control access permissions for that resource. This
model is based on the concept of access rights associated with
individual users or groups.
Mandatory Access Control (MAC): MAC is a more rigid access control
model where access permissions are determined by a central authority
based on security labels assigned to both subjects (users) and objects
(resources).
Role-Based Access Control (RBAC): RBAC assigns permissions to roles
rather than individual users. Users are then assigned roles based on
their responsibilities within the organization, simplifying access
management.
Attribute-Based Access Control (ABAC): ABAC evaluates various
attributes associated with the user, resource, and environment to make
access control decisions dynamically.
Challenges in Access Control in Distributed Systems:
Scalability: Ensuring efficient access control mechanisms that can scale
with the size and complexity of distributed systems is a challenge.
Consistency: Maintaining consistent access control policies across
multiple nodes and services in a distributed environment can be
complex.
Interoperability: Integrating different access control mechanisms used
by various components in a distributed system while ensuring seamless
interoperability is crucial.
Dynamicity: Adapting access control policies to changing system
requirements and user roles dynamically poses a challenge in
distributed systems.
Best Practices for Access Control in Distributed Systems:
Least Privilege Principle: Users should only be granted the minimum
level of access required to perform their tasks, reducing the risk of
unauthorized actions.
Centralized Policy Management: Implementing a centralized policy
management system can help maintain consistency and simplify access
control administration.
Encryption and Authentication: Utilizing strong encryption protocols and
robust authentication mechanisms can enhance the security of access
control in distributed systems.
Regular Auditing and Monitoring: Continuous monitoring and auditing of
access control activities can help detect anomalies or unauthorized
accesses promptly.
SECURITY MANAGEMENT
Security management in distributed systems is a critical aspect that
involves implementing measures to protect the system from
unauthorized access, data breaches, and other security threats. Here
are some key points to consider regarding security management in
distributed systems:
Access Control: Implementing access control mechanisms is essential to
ensure that only authorized users can access the resources within the
distributed system. This can involve using authentication methods such
as passwords, biometrics, or multi-factor authentication.
Encryption: Encrypting data both in transit and at rest is crucial for
maintaining the confidentiality and integrity of information within a
distributed system. Secure communication protocols like SSL/TLS can be
used to encrypt data in transit, while encryption algorithms like AES can
be employed for data at rest.
Authentication: Strong authentication mechanisms are necessary to
verify the identity of users and ensure that they have the necessary
permissions to access specific resources within the distributed system.
This can include techniques such as digital certificates, tokens, and
public key infrastructure (PKI).
Auditing and Logging: Keeping detailed logs of system activities and
user actions can help in monitoring for suspicious behavior, detecting
security incidents, and conducting forensic investigations in case of a
breach. Regular auditing of logs is essential for maintaining the security
of a distributed system.
Firewalls and Intrusion Detection Systems (IDS): Deploying firewalls to
monitor and control incoming and outgoing network traffic can help
prevent unauthorized access to the distributed system. Additionally,
intrusion detection systems can be used to detect and respond to
potential security threats in real-time.
Security Policies: Establishing clear security policies and guidelines is
crucial for defining roles and responsibilities related to security
management within a distributed system. Regular training and
awareness programs can help ensure that users understand and adhere
to these policies.
Patch Management: Keeping software and systems up-to-date with the
latest security patches is essential for addressing known vulnerabilities
and reducing the risk of exploitation by attackers.A robust patch
management process should be implemented as part of security
management practices.
Disaster Recovery Planning: Developing a comprehensive disaster
recovery plan is important for ensuring business continuity in the event
of a security incident or system failure within a distributed environment.
Regular testing of backup systems and procedures is critical to minimize
downtime.