Most accurate CIS Benmark level is CIS Controls v8 IG 1 Mapped Recommendations
http://und.edu/cio/it-security/policy/_files/docs/cis-ibm-aix-7-1-benchmark-v1-1-0.pdf
https://www.scribd.com/document/298646787/Cis-Ibm-Aix-7-1-Benchmark-v1-1-0
https://github.com/prench/Hardening-CIS/tree/master
https://github.com/lyonys/AIX-Host-Review/blob/master/aix_host_review_1.0.sh
link to AIX security check scripts
Description | command | recommended value |
---|---|---|
Utilisation d'AIX Expert pour renforcer la configuration du système d'exploitation AIX lors de sa configuration initiale | N/A | Utiliser AIX Expert |
Politique de mots de passe locale et du domaine - Nombre minimal de caractères requis pour la définition d'un nouveau mot de passe, non présents au sein de l'ancien mot de passe | “lssec -f /etc/security/user -s default -a mindiff lsuser -R LDAP ALL” | default mindiff=3 |
Politique de mots de passe locale et du domaine - Durée de vie minimale des mots de passe utilisateurs, en nombre de semaines | “lssec -f /etc/security/user -s default -a minage lsuser -R LDAP ALL” | default minage=1 |
Politique de mots de passe locale et du domaine - Durée de vie maximale des mots de passe utilisateurs, en nombre de semaines | “lssec -f /etc/security/user -s default -a maxage lsuser -R LDAP ALL” | default maxage=13 |
Politique de mots de passe locale et du domaine - Longueur minimale pour les mots de passe utilisateurs | “lssec -f /etc/security/user -s default -a minlen lsuser -R LDAP ALL” | default minlen=8 |
Politique de mots de passe locale et du domaine - Nombre minimal de caractères correspondant à des lettres alphabétiques | “lssec -f /etc/security/user -s default -a minalpha lsuser -R LDAP ALL” | default minalpha=2 |
Politique de mots de passe locale et du domaine - Nombre minimal de caractères ne correspondant pas à des lettres alphabétiques | “lssec -f /etc/security/user -s default -a minother lsuser -R LDAP ALL” | default minother=2 |
Politique de mots de passe locale et du domaine - Nombre de répétitions maximal pour un caractère donné | “lssec -f /etc/security/user -s default -a maxrepeats lsuser -R LDAP ALL” | default maxrepeats=2 |
Politique de mots de passe locale et du domaine - Période de temps (en semaines) pendant laquelle un utilisateur ne peut pas réutiliser un mot de passe précédent | “lssec -f /etc/security/user -s default -a histexpire lsuser -R LDAP ALL” | default histexpire=13 |
Politique de mots de passe locale et du domaine - Nombre de mots de passe utilisés précédemment qu'un utilisateur ne peut pas réutiliser | “lssec -f /etc/security/user -s default -a histsize lsuser -R LDAP ALL” | default histsize=20 |
Politique de mots de passe locale et du domaine - Nombre de semaines après maxage lorsque l'utilisateur sera en mesure de réinitialiser son mot de passe | “lssec -f /etc/security/user -s default -a maxexpired lsuser -R LDAP ALL” | default maxexpired=2 |
Connexion interactive - Interval de temps, en secondes, à partir duquel une connexion interactive est stoppée dès lors que l'utilisateur n'a pas été en mesure de s'authentifier sur le système | lssec -f /etc/security/login.cfg -s default -a logininterval | default logininterval=300 |
Connexion interactive - Nombre maximal de tentatives d'authentification en erreur à partir duquel une connexion interactive est stoppée | lssec -f /etc/security/login.cfg -s default -a logindisable | default logindisable=10 |
Connexion interactive - Délai de déverrouillage automatique d'une connexion préalablement stoppée, en minutes | lssec -f /etc/security/login.cfg -s default -a loginreenable | default loginreenable=360 |
Connexion interactive - Nombre maximal de secondes pendant lesquelles un mot de passe doit être entré par un utilisateur cherchant à s'authentifier | lssec -f /etc/security/login.cfg -s usw -a logintimeout | usw logintimeout=30 |
Connexion interactive - Nombre maximal de secondes d'attente entre chaque tentative d'authentification erronée | lssec -f /etc/security/login.cfg -s default -a logindelay | default logindelay=10 |
Connexion interactive - Nombre maximal de tentatives d'authentification en erreur à partir duquel un compte utilisateur sera verrouillé | lssec -f /etc/security/user -s default -a loginretries | default loginretries=3 |
Stockage des mots de passe utilisateurs - Algorithme de chiffrement utilisé pour stocker les mots de passe des utilisateurs du système | lssec -f /etc/security/login.cfg -s usw -a pwd_algorithm | usw pwd_algorithm=ssha256 |
Connexion interactive - définir un interpréteur de commandes non valide pour le compte système daemon | “lsuser -a login rlogin daemon Analyse du fichier /etc/security/passwd” | daemon login=false rlogin=false |
Connexion interactive - définir un interpréteur de commandes non valide pour le compte système bin | “lsuser -a login rlogin bin Analyse du fichier /etc/security/passwd” | bin login=false rlogin=false |
Connexion interactive - éfinir un interpréteur de commandes non valide pour le compte système sys | “lsuser -a login rlogin sys Analyse du fichier /etc/security/passwd” | sys login=false rlogin=false |
Connexion interactive - définir un interpréteur de commandes non valide pour le compte système adm | “lsuser -a login rlogin adm Analyse du fichier /etc/security/passwd” | adm login=false rlogin=false |
Connexion interactive - éfinir un interpréteur de commandes non valide pour le compte système nobody | “lsuser -a login rlogin nobody Analyse du fichier /etc/security/passwd” | nobody login=false rlogin=false |
Connexion interactive - définir un interpréteur de commandes non valide pour le compte système uucp | “lsuser -a login rlogin uucp Analyse du fichier /etc/security/passwd” | uucp login=false rlogin=false |
Connexion interactive - définir un interpréteur de commandes non valide pour le compte système lpd | “lsuser -a login rlogin lpd Analyse du fichier /etc/security/passwd” | lpd login=false rlogin=false |
Connexion à distance - Empêcher le compte root de se connecter interactivement | lssec -f /etc/security/user -s root -a rlogin | root rlogin=false |
Comptes utilisateurs - Identification des comptes utilisateurs locaux ayant le droit de s'authentifier sur le système (non désactivés) | “Analyse du fichier /etc/passwd Analyse du fichier /etc/security/passwd” | Un nombre restreint d'utilisateurs locaux devraient être présents |
Comptes utilisateurs - Présence de comptes utilisateurs locaux bénéficiant de privilèges élevés | Analyse du fichier /etc/group | Seuls des utilisateurs légitimes doivent être membres du groupe system |
Groupes utilisateurs - Présence de groupes utilisateurs locaux ne semblant pas être utilisés | Analyse du fichier /etc/group | Absence de groupes utilisateurs non utilisés |
Elévation de privilèges - Restreindre l'utilisation de l'utilitaire su | lssec -f /etc/security/user -s root -a sugroups -a su | root sugroups=<Groupe spécifique> su=true |
Connexion interactive - Présence de comptes utilisateurs non utilisés | egrep 'uucp|nuucp|lpd|printq' |/etc/passwd | * Valeur vide * |
Services systèmes non nécessaires - Prévenir l'utilisation des “Super” démons | Analyse du contenu des fichiers /etc/rc.tcpip et /etc/inetd.conf | “Fichier /etc/rc.tcpip:Services mentionnés doivent être commentés” | |
Services systèmes non nécessaires - qdaemon (service d'impression) | lsitab qdaemon | * Valeur vide * | |
Services systèmes non nécessaires - lpd (service d'impression) | lsitab lpd | * Valeur vide * | |
Services systèmes non nécessaires - piobe (service d'impression) | lsitab piobe | * Valeur vide * | |
Services systèmes non nécessaires - dt (environnement graphique CDE) | lsitab dt | * Valeur vide * | |
Services systèmes non nécessaires - rcnfs (lance les services NFS) | lsitab rcnfs | * Valeur vide * | |
Services systèmes non nécessaires - rcp | ls -l /usr/bin/rcp | awk {print $1} | ———- |
Services systèmes non nécessaires - rlogin | ls -l /usr/bin/rlogin | awk {print $1} | ———- |
Services systèmes non nécessaires - rsh | ls -l /usr/bin/rsh | awk {print $1} | ———- |
Services systèmes non nécessaires - rlogind | ls -l /usr/sbin/rlogind | awk {print $1} | ———- |
Services systèmes non nécessaires - rshd | ls -l /usr/sbin/rshd | awk {print $1} | ———- |
Services systèmes non nécessaires - tftpd | ls -l /usr/sbin/tftpd | awk {print $1} | ———- |
Services systèmes non nécessaires - communauté SNMP | grep | #communityblank*private etc/snmpd.conf | #community private 127.0.0.1 255.255.255.255 readWrite | |
---|---|---|---|---|
Contrôle des accès réseaux - Utilisation de TCP Wrappers | cat /etc/hosts.deny | ALL: ALL | ||
Configuration - Désactivation des connexions de type “séries” | lsitab -a | egrep respawn:/usr/sbin/getty | on:/usr/sbin/getty | cons:0123456789:respawn:/usr/sbin/getty /dev/console |
Service non nécessaire - i4ls | lsitab i4ls | * Valeur vide * | ||
Service non nécessaire - rcncs | lsitab rcncs | * Valeur vide * | ||
Service non nécessaire - httpdlite | lsitab httpdlite | * Valeur vide * | ||
Service non nécessaire - pmd | lsitab pmd | * Valeur vide * | ||
Service non nécessaire - writesrv | lsitab writesrv | * Valeur vide * | ||
Service non nécessaire - FTP | cat /etc/ftpusers | cat: cannot open /etc/ftpusers | ||
Connexion Interactive - Présence d'une bannière d'avertissement post authentification | cat /etc/motd | Présence d'une bannière dissuasive | ||
Tâches planifiées - Présence d'un fichier at.allow afin de restreindre la possibilité de créer une tâche planifiée via at | cat /var/adm/cron/at.allow |
adm” |
Tâches planifiées - Présence d'un fichier cron.allow afin de restreindre la possibilité de créer une tâche planifiée via Cron | cat /var/adm/cron/cron.allow |
adm” |
Connexion interactive - Tous les comptes utilisateurs locaux doivent avoir un mot de passe | pwdck -n ALL | * Valeur vide * | |
Recherche de fichiers sensibles - présence de fichiers .netrc | find / -name “.netrc” -print | * Valeur vide * | |
Recherche de fichiers sensibles - présence de fichiers .rhosts | find / -name “.rhosts” -print | * Valeur vide * | |
Authentification - présence d'entrées non commentées au sein du fichier hosts.equiv | grep -v | \s*# /etc/hosts.equiv | * Valeur vide * |
---|---|---|---|
TCP/IP - Refuser les paquets IPV4 de type “source-routed” | no -a | grep ipsrcrouteforwardblank=blank0 | ipsrcrouteforward = 0 |
TCP/IP - Refuser les paquets IP de type Redirect | no -a | grep ipignoreredirectsblank=blank1 | ipignoreredirects = 1 |
TCP/IP - Bloquer les attaques de type “SYN Flood” | no -a | grep clean_partial_connsblank=blank1 | clean_partial_conns = 1 |
TCP/IP - Empêcher le système AIX d'envoyer des paquets “source-routed” | no -a | grep ipsrcroutesendblank=blank0 | ipsrcroutesend = 0 |
TCP/IP - Refuser le routage des paquets TCP / IP | no -a | grep ipforwardingblank=blank0 | ipforwarding = 0 |
TCP/IP - Refuser le transfert des paquets TCP/IP redirigés | no -a | ipsendredirectsblank=blank0 | ipsendredirects = 0 |
TCP/IP - Empêcher le système AIX d'envoyer des paquets “source-routed” IPv6 | no -a | grep ip6srcrouteforwardblank=blank0 | ip6srcrouteforward = 0 |
TCP/IP - Refuser l'envoi de broadcast ciblé | no -a | grep directed_broadcastblank=blank0 | directed_broadcast = 0 |
TCP/IP - Refuser la découverte de la valeur de transmission maximale (MTU) pour TCP | no -a | grep tcp_pmtu_discoverblank=blank0 | tcp_pmtu_discover = 0 |
TCP/IP - Refuser la réponse aux requêtes ICMP de type broadcast | no -a | grep bcastpingblank=blank0 | bcastping = 0 |
TCP/IP - Refuser les réponses aux requêtes ICMP de type NetMask | no -a | grep icmpaddressmaskblank=blank0 | icmpaddressmask = 0 |
TCP/IP - Refuser la découverte de la valeur de transmission maximale (MTU) pour UDP | no -a | grep udp_pmtu_discoverblank=blank0 | udp_pmtu_discover = 0 |
TCP/IP - Refuser les paquets de type “source-routed” #1 | no -a | grep ipsrcrouterecvblank=blank0 | ipsrcrouterecv = 0 |
TCP/IP - Refuser les paquets de type “source-routed” #2 | no -a | grep nonlocsrcrouteblank=blank0 | nonlocsrcroute = 0 |
TCP/IP - Protéger le système contre certaines attaques connues (fake SYN, fake RST, fake data) | no -a | grep tcp_tcpsecureblank=blank7 | tcp_tcpsecure = 7 |
TCP/IP - Pourcentage de ressources mémoires alloué aux processus réseaux | no -a | grep sockthreshblank=blank60 | sockthresh = 60 |
TCP/IP - Autoriser la fenêtre de congestion TCP à être supérieure à 64 KB | no -a | grep rfc1323blank=blank1 | rfc1323 = 1 |
TCP/IP - Taille de la mémoire tampon pour l'envoi de données via TCP | no -a | grep tcp_sendspaceblank=blank262144 | tcp_sendspace = 262144 ou valeur supérieure |
TCP/IP - Taille de la mémoire tampon pour la récéption de données via TCP | no -a | grep tcp_recvspaceblank=blank262144 | tcp_recvspace = 262144 ou valeur supérieure |
TCP/IP - Taille maximale pour les segments TCP/IP | no -a | grep tcp_mssdfltblank=blank1448 | tcp_mssdflt = 1448 |
TCP / IP - Refuser les requêtes clientes NFS qui ne proviennent pas d'une plage de ports légitimes | nfso -a | egrep (portcheck | nfs_use_reserved_ports)blank=start1 |
nfs_use_reserved_ports = 1” |
Comptes utilisateurs - Suppression du compte guest | lsuser guest | * Valeur vide * |
Permissions fichiers - Les permissions paramétrées par défaut lors de la création d'un fichier / dossier doivent être suffisamment restrictives | lssec -f /etc/security/user -s default -a umask | default umask=27 | |
Services systèmes non nécessaires - Désactiver les “core dumps” | lssec -f /etc/security/limits -s default -a core -a core_hard | default core=0 core_hard=0 | |
Audit - une partition /audit doit être créée et montée | df -k /audit | La partition /audit a été créée et est montée | |
Audit - activation automatique des stratégies d'audit à la création des comptes utilisateurs | lssec -f /usr/lib/security/mkuser.default -s user -a auditclasses | user auditclasses = general,SRC,cron,tcpip, etc. | |
Audit - définition d'une tâche qui vérifie l'espace libre sur la partition /audit | crontab -l | Présence d'une tâche planifiée | |
Audit - lancement du service d'audit | lsitab audit | audit:2:boot:audit start > /dev/console 2>&1 | |
Audit - refuser les messages syslog provenant du réseau | ps -ef | grep syslogd | /usr/sbin/syslogd -r |
Audit - les stratégies d'audit du système sont correctement configurées | Contenu du fichier /etc/security/audit/config | N/A | |
Audit - la configuration de syslog est adéquate | Contenu du fichier /etc/syslog.conf | N/A | |
Connexion interactive - la configuration du service SSH est sécurisée | Contenu du fichier /etc/ssh/sshd_config | N/A | |
Elévation de privilèges - Restreindre l'utilisation de l'utilitaire sudo | Contenu du fichier /etc/sudoers | N/A | |
Recherche de fichiers sensibles - présence de fichiers .shosts | find / -name “.shosts” -print | * Valeur vide * | |
Authentification - présence d'entrées non commentées au sein du fichier shosts.equiv | ls /etc/shosts.equiv | /etc/shosts.equiv not found | |
Système de fichiers - Permissions restrictives | ls -l /etc/ssh/sshd_config | awk {print $1 “ ” $3 “ ” $4 “ ” $9} | -rw——- root system /etc/ssh/sshd_config |
Système de fichiers - Permissions restrictives | ls -l /etc/ssh/ssh_config | awk {print $1 “ ” $3 “ ” $4 “ ” $9} | -rw-r–r– root system /etc/ssh/ssh_config |
Interface graphique - présence de CDE | lslpp -L | grep -i CDE | * Valeur vide * |
Interface graphique - présence de CDE | lsitab dt | * Valeur vide * | |
Interface graphique - présence de CDE | ls -l /usr/dt/bin/dtaction | /usr/dt/bin/dtaction not found | |
Interface graphique - présence de CDE | ls -l /usr/dt/bin/dtappgather | /usr/dt/bin/dtappgather not found | |
Interface graphique - présence de CDE | ls -l /usr/dt/bin/dtprintinfo | usr/dt/bin/dtprintinfo not found | |
Interface graphique - présence de CDE | ls -l /usr/dt/bin/dtsession | /usr/dt/bin/dtsession not found | |
Interface graphique - présence de CDE | grep | Dtlogin.requestPort:start /etc/dt/config/Xconfig | grep: can't open /etc/dt/config/Xconfig |
---|---|---|---|
Interface graphique - présence de CDE | egrep dtsession\*saverTimeout: | dtsession\*lockTimeout: /etc/dt/config/*/sys.resources | egrep: can't open /etc/dt/config/*/sys.resources |
Interface graphique - présence de CDE | egrep Dtlogin\*greeting.labelString | Dtlogin\*greeting.persLabelString: /etc/dt/config/*/Xresources | egrep: can't open /etc/dt/config/*/Xresources |
Interface graphique - présence de CDE | ls -l /etc/dt/config/Xconfig | awk {print $1 “ ” $3 “ ” $4 “ ” $9} | /etc/dt/config/Xconfig not found |
Interface graphique - présence de CDE | ls -l /etc/dt/config/Xservers | /etc/dt/config/Xservers not found | |
Interface graphique - présence de CDE | ls -l /etc/dt/config/*/Xresources | awk {print $1 “ ” $3 “ ” $4 “ ” $9} | /etc/dt/config/*/Xresources not found |
Système de fichiers - Permissions restrictives | ls -l /etc/security/passwd | -rw——- root | |
Système de fichiers - Permissions restrictives | ls -ld /etc/security | drwxr-x— root security /etc/security | |
Système de fichiers - Permissions restrictives | ls -l /etc/group | -rw-r–r– root security /etc/group | |
Système de fichiers - Permissions restrictives | ls -l /etc/passwd | -rw-r–r– root security /etc/passwd | |
Système de fichiers - Permissions restrictives | ls -ld /etc/security/audit | drwxr-x— root audit /etc/security/audit | |
Système de fichiers - Permissions restrictives | ls -ld /audit | drwxr-x— root audit /audit | |
Système de fichiers - Permissions restrictives | ls -l /smit.log | -rw-r—– root system /smit.log | |
Système de fichiers - Permissions restrictives | ls -l /var/adm/cron/log | -rw-rw—- root cron /var/adm/cron/log | |
Système de fichiers - Permissions restrictives | ls -ld /var/spool/cron/crontabs | drwxrwx— root cron /var/spool/cron/crontabs | |
Système de fichiers - Permissions restrictives | ls -l /var/adm/cron/at.allow | N/A | |
Système de fichiers - Permissions restrictives | ls -l /var/adm/cron/cron.allow | N/A | |
Système de fichiers - Permissions restrictives | ls -l /etc/motd | -r–r–r– bin bin /etc/motd | |
Système de fichiers - Permissions restrictives | ls -l /var/adm/ras | awk {print $1 “ ” $3 “ ” $4 “ ” $9} | Fichiers non “world readable” |
Système de fichiers - Permissions restrictives | ls -l /var/ct/RMstart.log | -rw-r—– root system /var/ct/RMstart.log | |
Système de fichiers - Permissions restrictives | ls -l /var/tmp/dpid2.log | -rw-r—– root system /var/tmp/dpid2.log | |
Système de fichiers - Permissions restrictives | ls -l /var/tmp/hostmibd.log | -rw-r—– root system /var/tmp/hostmibd.log | |
Système de fichiers - Permissions restrictives | ls -l /var/tmp/snmpd.log | -rw-r—– root system /var/tmp/snmpd.log | |
Système de fichiers - Permissions restrictives | ls -ld /var/adm/sa | drwxr-xr-x adm adm /var/adm/sa | |
Configuration - Suppression du chemin courant du chemin usuel (PATH) pour le compte root | “su - root -c echo /usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/java5/jre/bin:/usr/java5/bin |
” | * Valeur vide * et absence d'entrées de type “.” ou “::” du PATH |
Système de fichiers - Partitionnement système | mount | N/A |
Recherche de fichiers sensibles - présence de fichiers SUID | find / \{ -fstype jfs -o -fstype jfs2 \} \{ -perm -04000 -o -perm -02000 \} -type f -ls | * Valeur vide * |
Recherche de fichiers sensibles - présence de fichiers “world writable” | find / \{ -fstype jfs -o -fstype jfs2 \} \{ -type -d -o -type f\} -perm -o+w -ls | * Valeur vide * |
Vulnérabilités - Vulnérabilités connues impactant la version du logiciel utilisée et pour lesquelles des codes d'exploitation ont été rendus publics | Recherche de vulnérabilités en utilisant des ressources publiques connues | N/A |
Sécurisation des flux LDAP en utilisant TLS / SSL | Utilisation de LDAPS | N/A |
Vérification des tâches planifiées via at et cron | crontab -l | Absence de tâche planifiée sensible |
Permissions des fichiers utilisés via SUDO | ls -al | Le compte utilisateur dont l'identité est usurpée au travers de l'utilitaire sudo doit être le seul à bénéficier des privilèges lecture / écriture pour les programmes appelés |
Comptes utilisateurs du domaines autorisés à se connecter au système |
Paramètre SYSTEM sous default:” | Par défaut, seuls les utilisateurs LDAP explicitement autorisés devraient pouvoir se connecter au système AIX |
Comptes utilisateurs du domaines disposant de privilèges élevés | lsgroup -R LDAP all | Seuls des utilisateurs légitimes doivent être membres du groupe system |
echo "TMOUT=600; TIMEOUT=600; export TMOUT TIMEOUT" >> /etc/security/.profile echo "TMOUT=600; TIMEOUT=600; export TMOUT TIMEOUT" >> /etc/profile chsec -f /etc/security/login.cfg -s default -a herald="Unauthorized use of this system is prohibited.\n\nlogin:" chsec -f /etc/security/login.cfg -s usw -a mkhomeatlogin=true echo "******************************************************************************* * * * IT IS AN OFFENSE TO CONTINUE WITHOUT PROPER AUTHORIZATION. * * * * This system is for the use of authorized users only. Individuals using * * this computer system without authority, or in excess of their authority, * * are subject to having all of their activities on this system monitored and * * recorded by system personnel. In the course of monitoring individuals * * improperly using this system, or in the course of system maintenance, the * * activities of authorized users may also be monitored. Anyone using this * * system expressly consents to such monitoring and is advised that if such * * monitoring reveals possible evidence of criminal activity, system * * personnel may provide the evidence of such monitoring to law enforcement * * officials. * * * *******************************************************************************" > /etc/motd