Ignorer les liens de navigation | |
Quitter l'aperu | |
Guide d'administration système : Services de sécurité |
Partie I Présentation de la sécurité
1. Services de sécurité (présentation)
Partie II Sécurité du système, des fichiers et des périphériques
2. Gestion de la sécurité de la machine (présentation)
3. Contrôle de l'accès aux systèmes (tâches)
4. Contrôle de l'accès aux périphériques (tâches)
5. Utilisation de l'outil de génération de rapports d'audit de base (tâches)
6. Contrôle de l'accès aux fichiers (tâches)
Utilisation des autorisations UNIX pour protéger les fichiers
Commandes d'affichage et de sécurisation des fichiers
Propriété des fichiers et des répertoires
Autorisations des fichiers UNIX
Autorisations de fichiers spéciales (setuid, setgid et sticky bit)
Modes d'autorisation de fichier
Utilisation des ACL pour protéger les fichiers UFS
Entrées d'ACL pour les fichiers UFS
Entrées d'ACL pour les répertoires UFS
Commandes pour l'administration des ACL d'UFS
Protection des fichiers (liste des tâches)
Protection des fichiers avec des autorisations UNIX (liste des tâches)
Affichage des informations de fichier
Modification du propriétaire d'un fichier local
Modification de la propriété de groupe d'un fichier
Modification des autorisations de fichier en mode symbolique
Modification des autorisations de fichier en mode absolu
Modification des autorisations de fichier spéciales en mode absolu
Protection de fichiers UFS à l'aide des ACL (liste des tâches)
Vérification de la présence d'une ACL dans un fichier
Ajout d'entrées d'ACL à un fichier
Modification d'entrées d'ACL sur un fichier
Suppression d'entrées d'ACL sur un fichier
Affichage des entrées d'ACL d'un fichier
Protection contre les programmes présentant des risques de sécurité (liste des tâches)
Recherche de fichiers avec des autorisations de fichier spéciales
Désactivation de l'utilisation de piles exécutables par les programmes
7. Utilisation d'Automated Security Enhancement Tool (Tâches)
Partie III Rôles, profils de droits et privilèges
8. Utilisation des rôles et des privilèges (présentation)
9. Utilisation du contrôle d'accès basé sur les rôles (tâches)
10. Contrôle d'accès basé sur les rôles (référence)
Partie IV Services cryptographiques
13. Structure cryptographique Oracle Solaris (présentation)
14. Structure cryptographique Oracle Solaris (tâches)
15. Structure de gestion des clés Oracle Solaris
Partie V Services d'authentification et communication sécurisée
16. Utilisation des services d'authentification (tâches)
19. Utilisation d'Oracle Solaris Secure Shell (tâches)
20. Oracle Solaris Secure Shell (référence)
21. Introduction au service Kerberos
22. Planification du service Kerberos
23. Configuration du service Kerberos (tâches)
24. Messages d'erreur et dépannage de Kerberos
25. Administration des principaux et des stratégies Kerberos (tâches)
26. Utilisation des applications Kerberos (tâches)
27. Service Kerberos (référence)
Partie VII Audit Oracle Solaris
28. Audit Oracle Solaris (présentation)
29. Planification de l'audit Oracle Solaris
30. Gestion de l'audit Oracle Solaris (tâches)
Un certain nombre de bogues de sécurité sont liés aux piles exécutables par défaut lorsque leurs autorisations sont définies sur lecture, écriture et exécution. Alors que les piles avec autorisations d'exécution sont autorisées, la plupart des programmes peuvent fonctionner correctement sans utiliser de piles exécutables.
La variable noexec_user_stack vous permet de spécifier si les mappages de pile sont exécutables. La variable est disponible à partir de la version Solaris 2.6. Par défaut, cette variable est définie sur zéro, à l'exception des applications 64 bits, et fournit le comportement conforme ABI. Si la variable est définie sur une valeur non nulle, le système marque la pile de chaque processus dans le système comme étant accessible en lecture et en écriture, mais non exécutable.
Une fois que cette variable est définie, un signal SIGSEGV est envoyé aux programmes qui tentent d'exécuter du code sur leur pile. Ce signal résulte généralement en un arrêt du programme à l'aide d'un core dump. Ces programmes génèrent également un message d'avertissement qui inclut le nom du programme concerné, l'ID de processus, et l'UID réel de l'utilisateur à l'origine de l'exécution du programme. Par exemple :
a.out[347] attempt to execute code on stack by uid 555
Le message est consigné par le démon syslog lorsque la fonctionnalité syslog kern est définie sur le niveau notice. Cet enregistrement est défini par défaut dans le fichier syslog.conf, ce qui signifie que le message est envoyé à la console et au fichier /var/adm/messages. Pour plus d'informations, reportez-vous aux pages de manuel syslogd(1M) et syslog.conf(4).
Le message syslog est utile pour l'observation de problèmes de sécurité potentiels. Le message identifie également les programmes valides qui dépendent des piles exécutable dont le bon fonctionnement est empêché par la définition de cette variable. Si vous ne voulez pas que les messages soient consignés, définissez la variable noexec_user_stack_log sur zéro dans le fichier /etc/system. Bien que les messages ne soient pas consignés, le signal SIGSEGV peut continuer d'entraîner l'arrêt du programme d'exécution à l'aide d'un core dump.
Vous pouvez utiliser la fonction mprotect() si vous souhaitez que les programmes marquent explicitement leur pile comme exécutable. Pour plus d'informations, reportez-vous à la page de manuel mprotect(2).
En raison de limitations matérielles, la capacité de détection et de signalement des problèmes de pile exécutable n'est pas disponible sur la plupart les systèmes x86. Les systèmes de la famille de produits AMD64 peuvent détecter et signaler les problèmes de pile exécutable.