Reference (anssi) | Rule Title | Description | Rationale | Variable Setting |
NT007(R02) | Uninstall the ssl compliant telnet server | The telnet daemon, even with ssl support, should be uninstalled. | telnet, even with ssl support, should not be installed. When remote shell is required, up-to-date ssh daemon can be used. | |
NT007(R03) | Uninstall the inet-based telnet server | The inet-based telnet daemon should be uninstalled. | telnet allows clear text communications, and does not protect any data transmission between client and server. Any confidential data can be listened and no integrity checking is made. | |
NT007(R03) | Uninstall the telnet server | The telnet daemon should be uninstalled. | telnet allows clear text communications, and does not protect any data transmission between client and server. Any confidential data can be listened and no integrity checking is made. | |
NT012(R03) | Enable systemd_timesyncd Service | The systemd_timesyncd service can be enabled with the following command: $ sudo systemctl enable systemd_timesyncd.service |
Enabling the systemd_timesyncd service ensures that this host
uses the ntp protocol to fetch time data from a ntp server.
Synchronizing time is essential for authentication
services such as Kerberos, but it is also important for maintaining accurate
logs and auditing possible security breaches.
Additional information on Ubuntu network time protocol is available at https://help.ubuntu.com/lts/serverguide/NTP.html.en. |
|
NT012(R03) | Install the ntp service | The ntpd service should be installed. | Time synchronization (using NTP) is required by almost all network and administrative tasks (syslog, cryptographic based services (authentication, etc.), etc.). Ntpd is regulary maintained and updated, supporting security features such as RFC 5906. | |
NT012(R03) | Enable the NTP Daemon | The ntpd service can be enabled with the following command: $ sudo systemctl enable ntpd.service |
Enabling the ntpd service ensures that the ntpd
service will be running and that the system will synchronize its time to
any servers specified. This is important whether the system is configured to be
a client (and synchronize only its own clock) or it is also acting as an NTP
server to other systems. Synchronizing time is essential for authentication
services such as Kerberos, but it is also important for maintaining accurate
logs and auditing possible security breaches.
The NTP daemon offers all of the functionality of ntpdate , which is now
deprecated. Additional information on this is available at
http://support.ntp.org/bin/view/Dev/DeprecatingNtpdate. |
|
NT28(R5) | Enable syslog-ng Service | The syslog-ng service (in replacement of rsyslog) provides syslog-style logging by default on Debian 8.
The syslog-ng service can be enabled with the following command:
$ sudo systemctl enable syslog-ng.service |
The syslog-ng service must be running in order to provide
logging services, which are essential to system administration. |
|
NT28(R5) | Ensure syslog-ng is Installed | syslog-ng can be installed in replacement of rsyslog.
The syslog-ng-core package can be installed with the following command:
$ sudo yum install syslog-ng-core |
The syslog-ng-core package provides the syslog-ng daemon, which provides system logging services. | |
NT28(R5) | Enable rsyslog Service | The rsyslog service provides syslog-style logging by default on Red Hat Enterprise Linux 7.
The rsyslog service can be enabled with the following command:
$ sudo systemctl enable rsyslog.service |
The rsyslog service must be running in order to provide
logging services, which are essential to system administration. |
|
NT28(R5) | Ensure rsyslog is Installed | Rsyslog is installed by default. The rsyslog package can be installed with the following command: $ sudo yum install rsyslog |
The rsyslog package provides the rsyslog daemon, which provides system logging services. | |
NT28(R5) | Ensure Users Re-Authenticate for Privilege Escalation - sudo !authenticate | The sudo !authenticate option, when specified, allows a user to execute commands using
sudo without having to authenticate. This should be disabled by making sure that the
!authenticate option does not exist in /etc/sudoers configuration file or
any sudo configuration snippets in /etc/sudoers.d/ . |
Without re-authentication, users may access resources or perform tasks for which they
do not have authorization.
When operating systems provide the capability to escalate a functional capability, it is critical that the user re-authenticate. |
|
NT28(R5) | Ensure Users Re-Authenticate for Privilege Escalation - sudo NOPASSWD | The sudo NOPASSWD tag, when specified, allows a user to execute
commands using sudo without having to authenticate. This should be disabled
by making sure that the NOPASSWD tag does not exist in
/etc/sudoers configuration file or any sudo configuration snippets
in /etc/sudoers.d/ . |
Without re-authentication, users may access resources or perform tasks for which they
do not have authorization.
When operating systems provide the capability to escalate a functional capability, it is critical that the user re-authenticate. |
|
NT28(R11) | IOMMU configuration directive | On x86 architecture supporting VT-d, the IOMMU manages the access control policy between the hardware devices and some of the system critical units such as the memory. | On x86 architectures, activating the I/OMMU prevents the system from arbritrary accesses potentially made by hardware devices. | |
NT28(R12) | Ensure /srv Located On Separate Partition | If a file server (FTP, TFTP...) is hosted locally, create a separate partition
for /srv at installation time (or migrate it later using LVM). If
/srv will be mounted from another system such as an NFS server, then
creating a separate partition is not necessary at installation time, and the
mountpoint can instead be configured later. |
Srv deserves files for local network file server such as FTP. Ensuring
that /srv is mounted on its own partition enables the setting of
more restrictive mount options, and also helps ensure that
users cannot trivially fill partitions used for log or audit data storage. |
|
NT28(R13) | Verify that local System.map file (if exists) is readable only by root | Files containing sensitive informations should be protected by restrictive
permissions. Most of the time, there is no need that these files need to be read by any non-root user
To properly set the permissions of /boot/System.map-* , run the command:
$ sudo chmod 0600 /boot/System.map-* |
The System.map file contains information about kernel symbols and
can give some hints to generate local exploitation. |
|
NT28(R15) | Disable unauthenticated repositories in APT configuration | Unauthenticated repositories should not be used for updates. | Repositories hosts all packages that will be intsalled on the system during update. If a repository is not authenticated, the associated packages can't be trusted, and then should not be installed localy. | |
NT28(R15) | Ensure that official distribution repositories are used | Check that official Debian repositories, including security repository, are configured in apt. | The Debian distribution deliver DSA (Debian Security Announce), through the official Debian security repository, to correct various vulnerabilities impacting the Debian packages. Using the official repositories is the best way to ensure that the Debian updates are integrated soon enough. | |
NT28(R23) | Disallow creating symlinks to a file you not own | To set the runtime status of the fs.protected_symlinks kernel parameter, run the following command: $ sudo sysctl -w fs.protected_symlinks=1If this is not the system default value, add the following line to a file in the directory /etc/sysctl.d : fs.protected_symlinks = 1 |
Disallowing such symlink mitigate vulnerabilities based on insecure file system
accessed by privilegied programs, avoiding an exploitation vector exploiting unsafe use of
open() or creat() . |
|
NT28(R23) | Disallow creating symlinks to a file you not own | To set the runtime status of the fs.protected_hardlinks kernel parameter, run the following command: $ sudo sysctl -w fs.protected_hardlinks=1If this is not the system default value, add the following line to a file in the directory /etc/sysctl.d : fs.protected_hardlinks = 1 |
Disallowing such hardlink mitigate vulnerabilities based on insecure file system
accessed by privilegied programs, avoiding an exploitation vector exploiting unsafe use of
open() or creat() . |
|
NT28(R23) | Restrict Exposed Kernel Pointer Addresses Access | To set the runtime status of the kernel.kptr_restrict kernel parameter, run the following command: $ sudo sysctl -w kernel.kptr_restrict=1If this is not the system default value, add the following line to a file in the directory /etc/sysctl.d : kernel.kptr_restrict = 1 |
Exposing kernel pointers (through procfs or seq_printf() ) exposes
kernel writeable structures that can contain functions pointers. If a write vulnereability occurs
in the kernel allowing a write access to any of this structure, the kernel can be compromise. This
option disallow any program withtout the CAP_SYSLOG capability from getting the kernel pointers addresses,
replacing them with 0. |
|
NT28(R46) | Enable syslog-ng Service | The syslog-ng service (in replacement of rsyslog) provides syslog-style logging by default on Debian 8.
The syslog-ng service can be enabled with the following command:
$ sudo systemctl enable syslog-ng.service |
The syslog-ng service must be running in order to provide
logging services, which are essential to system administration. |
|
NT28(R46) | Ensure syslog-ng is Installed | syslog-ng can be installed in replacement of rsyslog.
The syslog-ng-core package can be installed with the following command:
$ sudo yum install syslog-ng-core |
The syslog-ng-core package provides the syslog-ng daemon, which provides system logging services. | |
NT28(R46) | Enable rsyslog Service | The rsyslog service provides syslog-style logging by default on Red Hat Enterprise Linux 7.
The rsyslog service can be enabled with the following command:
$ sudo systemctl enable rsyslog.service |
The rsyslog service must be running in order to provide
logging services, which are essential to system administration. |
|
NT28(R46) | Ensure rsyslog is Installed | Rsyslog is installed by default. The rsyslog package can be installed with the following command: $ sudo yum install rsyslog |
The rsyslog package provides the rsyslog daemon, which provides system logging services. | |
NT28(R50) | Install the cron service | The Cron service should be installed. | The cron service allow periodic job execution, needed for almost all administrative tasks and services (software update, log rotating, etc.). Access to cron service should be restricted to administrative accounts only. | |
NT28(R50) | install the auditd service | The auditd service should be installed. | The auditd service is an access monitoring and accounting daemon, watching system calls to audit any access, in comparision with potential local access control policy such as SELinux policy. |