+SYS.1.3 Linux and Unix Servers
---+SYS.1.3.G1. Unauthorised Collection of System and User Information
---+SYS.1.3.G2. Exploitability of the Script Environment
---+SYS.1.3.G3. Dynamic Loading of Jointly Used Libraries
---+SYS.1.3.G4. Software from Third-Party Sources
---+SYS.1.3.A2 Careful Allocation of IDs (B)
---+SYS.1.3.A3 No Automatic Integration of Removable Drives (B)
---+SYS.1.3.A4 Protection from Exploitation of Vulnerabilities in Applications (B)
---+SYS.1.3.A5 Secure Installation of Software Packages (B)
---+SYS.1.3.A6 Managing Users and Groups (S)
---+SYS.1.3.A8 Encrypted Access via Secure Shell (S)
---+SYS.1.3.A10 Preventing Further Intrusion When Vulnerabilities Are Exploited (S)
---+SYS.1.3.A14 Preventing Unauthorised Collection of System and User Information (H)
---+SYS.1.3.A16 Additional Prevention of Further Intrusion When Vulnerabilities Are Exploited (H)
---+SYS.1.3.A17 Additional Kernel Protection (H)

SYS.1.3 Linux and Unix Servers

Introduction

The operating systems Linux and Unix are often used on server systems. Examples of classic Unix systems include the BSD series (FreeBSD, OpenBSD, and NetBSD), Solaris, and AIX. Linux, on the other hand, is a functional Unix system rather than a classic Unix system. This means that the Linux kernel is not based on the original source code from which the various Unix derivatives developed. This module considers all the operating systems in the Unix family, including Linux as a functional Unix system. Since the configuration and operation of Linux and Unix servers are similar, Linux and Unix are jointly referred to in this module as "Unix servers" and "Unix-like".

Linux is free software that is developed by the open-source community. This means anyone can use, copy, distribute, or modify it. In addition, there are providers that compile and maintain the various software components for distribution and offer further services. For Linux servers, the distributions Debian, Red Hat Enterprise Linux / CentOS, SUSE Linux Enterprise / openSUSE, or Ubuntu Server are often used. In addition, there are Linux distributions tailored to special purposes and devices, such as OpenWRT for routers.

The services offered on a Unix server are often central, which means they are particularly exposed. For this reason, Unix servers are not only critical for business processes; they are also frequently the focus of attacks. As a result, the availability and protection of Unix servers is of particular importance.

Objective

The objective of this module is to protect information that is provided and processed by Unix servers. The requirements of the module mainly apply to Linux servers, but can be generally adapted to Unix servers. Requirements are formulated on how to configure and operate these operating systems independently of the intended purpose of the server in question.

Scoping and Modelling

Module SYS.1.3 Linux and Unix Servers must be applied to all servers on which Linux- or Unix-based operating systems are used.

The module contains basic specifications for creating and operating Unix servers. It specifies and adds specific features of Unix systems to the aspects included in module SYS.1.1 General Server.

Security requirements of possible server functions such as web servers (APP.3.2 Web Servers) or e-mail servers (see APP.5.3 General E-Mail Clients and Servers) are covered in separate modules; they are not addressed here. One exception is the Unix-specific server service SSH, which is also dealt with in this module. Similarly, the topic of virtualisation is not addressed in this module, but in SYS.1.5 Virtualisation.

Useful Resources

NIST Special Publication 800-123, "Guide to General Server Security" (July 2008), is offered by the National Institute of Standards and Technology (NIST).

1. Přehled

Název Standard
SYS.1.3.A2 Careful Allocation of IDs (B)

Each login name, each user ID (UID), and each group ID (GID) MUST ONLY be used once. Every user MUST be a member of at least one group. Every GID mentioned in the /etc/passwd file MUST be defined in the /etc/group file. Every group SHOULD only contain the users that are absolutely necessary. In networked systems, care MUST also be taken to ensure that user and group names (UIDs and GIDs) are assigned consistently in the system network if there is a possibility that the same UIDs or GIDs could be assigned to different user or group names on the systems during cross-system access.

SYS.1.3.A3 No Automatic Integration of Removable Drives (B)

Removable media such as USB pen drives or CDs/DVDs MUST NOT be integrated automatically.

SYS.1.3.A4 Protection from Exploitation of Vulnerabilities in Applications (B)

ASLR and DEP/NX MUST be activated in the kernel and used by applications to make it harder to exploit vulnerabilities in applications. Security functions of the kernel and of the standard libraries (such as heap and stack protection) MUST NOT be disabled.

SYS.1.3.A5 Secure Installation of Software Packages (B)

If software to be installed is to be compiled from source code, it MUST ONLY be unpacked, configured, and compiled using an unprivileged user account. The software to be installed MUST NOT then be installed in the root file system of the server in question in an uncontrolled manner.

If the software is compiled from the source text, the selected parameters SHOULD be documented appropriately. Based on this documentation, it SHOULD be possible to compile the software in a transparent and reproducible manner at any time. All further installation steps SHOULD also be documented.

SYS.1.3.A6 Managing Users and Groups (S)

The corresponding management tools SHOULD be used for managing users and groups. The configuration files /etc/passwd, /etc/shadow, /etc/group, and /etc/sudoers SHOULD NOT be edited directly.

SYS.1.3.A8 Encrypted Access via Secure Shell (S)

Only Secure Shell (SSH) SHOULD be used to create an encrypted and authenticated interactive connection between two IT systems. All other protocols whose functions are covered by Secure Shell SHOULD be disabled completely. For authentication, users SHOULD primarily use certificates instead of passwords.

SYS.1.3.A10 Preventing Further Intrusion When Vulnerabilities Are Exploited (S)

Services and applications SHOULD be protected with individual security architecture (e.g. with AppArmor or SELinux). In addition, chroot environments and LXC or Docker containers SHOULD be taken into account here. It SHOULD be ensured that the standard profiles and rules provided are activated.

SYS.1.3.A14 Preventing Unauthorised Collection of System and User Information (H)

Information output for users regarding the operating system and access to protocol and configuration files SHOULD be limited to the required minimum. Moreover, confidential information SHOULD NOT be provided as parameters when commands are issued.

SYS.1.3.A16 Additional Prevention of Further Intrusion When Vulnerabilities Are Exploited (H)

The use of system calls SHOULD be limited to those absolutely necessary, particularly for exposed services and applications. The standard profiles and/or rules (e.g. of SELinux or AppArmor) SHOULD be checked manually and, if necessary, adapted to an organisation's own security policies. If necessary, new rules and profiles SHOULD be drawn up.

SYS.1.3.A17 Additional Kernel Protection (H)

Specially hardened kernels (e.g. grsecurity, PaX) and appropriate protective safeguards such as memory protection or file system protection SHOULD be implemented to prevent exploitation of vulnerabilities and propagation in operating systems.

1.1 Odkazy

1.2 Identifikované požadavky

1.3 Související regulace

2. Identifikované požadavky

Požadavky
Zdroj Požadavek

3. Související regulace

Regulace
Zdroj Regulace

Propojené úkoly