Ignorer les liens de navigation | |
Quitter l'aperu | |
Administration d'Oracle Solaris : services de sécurité Oracle Solaris 11 Information Library (Français) |
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. Service d'analyse antivirus (tâches)
5. Contrôle de l'accès aux périphériques (tâches)
6. Utilisation de l'outil de génération de rapports d'audit de base (tâches)
7. 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
Protection des fichiers (tâches)
Protection des fichiers avec des autorisations UNIX (liste des tâches)
Procédure d'affichage des informations de fichier
Procédure de modification du propriétaire d'un fichier
Procédure de modification de la propriété de groupe d'un fichier
Procédure de modification des autorisations de fichier en mode symbolique
Procédure de modification des autorisations de fichier en mode absolu
Procédure de modification des autorisations de fichier spéciales en mode absolu
Protection contre les programmes présentant des risques de sécurité (liste des tâches)
Procédure de recherche de fichiers avec des autorisations de fichier spéciales
Procédure de désactivation de l'utilisation de piles exécutables par les programmes
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. Attributs de sécurité dans Oracle Solaris (référence)
Partie IV Services cryptographiques
11. Structure cryptographique (présentation)
12. Structure cryptographique (tâches)
13. Structure de gestion des clés
Partie V Services d'authentification et communication sécurisée
14. Authentification des services réseau (tâches)
17. Utilisation de Secure Shell (tâches)
19. Introduction au service Kerberos
20. Planification du service Kerberos
21. Configuration du service Kerberos (tâches)
22. Messages d'erreur et dépannage de Kerberos
23. Administration des principaux et des stratégies Kerberos (tâches)
24. Utilisation des applications Kerberos (tâches)
25. Service Kerberos (référence)
Partie VII Audit dans Oracle Solaris
Programmes pour lire et écrire des données sur la pile. D'une manière générale, ils s'exécutent à partir de portions de mémoire en lecture seule qui sont spécifiquement désignées pour ce code. Certaines attaques provoquant des tampons sur la pile jusqu'au débordement tentent d'insérer un nouveau code sur la pile et forcent le programme à l'exécuter. Ces attaques peuvent être mises en échec en supprimant les autorisations d'exécution de la Suppression de droits d'exécution la mémoire de la pile. C'est-à-dire que la plupart de ces programmes peuvent fonctionner correctement sans utiliser les piles exécutables.
Les processus 64 bits ont toujours des piles non exécutables. La variable noexec_user_stack vous permet de spécifier si les piles des processus 32 bits sont exécutables. Pour se conformer à l'interface SPARC ABI 32 bits, la valeur par défaut est zéro, ce qui indique que la pile est 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écutables dont le bon fonctionnement est empêché par la définition de la variablenoexec_user_stack. 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). Vous pouvez également compiler votre programme avec -M /usr/lib/ld/map.noexstk pour rendre la pile non exécutable indépendamment du paramètre à l'échelle du système.