An Operating System (OS) is a software that controls and manages the computer hardware (like CPU, memory, etc.) and allows applications to run. A crucial task of the OS is to protect applications and system resources from malicious attacks, such as:
- Unauthorized access to sensitive information.
- Tampering with executable code.
- Spoofing or impersonation attacks.
Even single-user systems like PCs, tablets, or smartphones are vulnerable (can be attacked) For instance, malicious code can enter through Java applets or data from unsafe websites.
Aspects of OS Security
- Mandatory Security: Defined by policies strictly controlled by administrators.
Includes:
- Access Control Policies: Control who can access system resources.
- Authentication Policies: Define methods to verify user identity.
- Cryptographic Policies: Secure data using encryption techniques.
- Type Enforcement: Assigns minimal privileges to trusted applications to minimize risks.
- Discretionary vs. Mandatory Security:
- Discretionary Security: allows users to set their own security policies, which can lead to vulnerabilities if users are careless.
- Mandatory Security: ensures that security policies are controlled by the system administrator and cannot be bypassed by users.
OS Security Mechanism
Access Control: Divided into two components:
- Enforcer: Gathers and forwards data about access requests.
- Decider: Evaluates the request and enforces decisions based on established policies (such as whether to grant or deny access)
Challenges in OS Security
- Limited Multilayered Security: Many operating systems only have two levels of security: privileged (admin) and unprivileged (normal user). This can be a problem because some attacks can exploit these levels, and there aren’t many intermediate levels of protection. e.g., Windows NT.
- Mobile Code Threats: Mobile code (like Java programs) can be a security risk. Java’s Security Manager uses something called “sandboxing” to restrict unauthorized actions.
However, there are challenges:
- Java Virtual Machine (JVM) can accept invalid bytecode.
- JVM cannot protect itself from external tampering.
- Open vs. Closed Platforms
- Closed-box platforms: These are systems like ATMs or game consoles, which have limited access and often use cryptographic keys (like special passwords) to secure data.
- Open-box platforms Systems like PCs are more open, meaning anyone can install software or modify the system. This makes them more vulnerable to security risks since they don’t always have the same built-in security protections as closed platforms.