NP Linux NoteTech 1 1 PDF
NP Linux NoteTech 1 1 PDF
NP Linux NoteTech 1 1 PDF
Secrtariat gnral de la dfense et de la scurit nationale Agence nationale de la scurit des systmes dinformation
Informations
Personnes ayant contribu la rdaction de ce document: Contributeurs Division assistance technique, Bureau audits et inspections Rdig par Laboratoire architectures matrielles et logicielles Approuv par SDE Date 5 juillet 2012
volutions du document : Version 1.0 1.1 Date 5 juillet 2012 26 juillet 2012 Nature des modications Version initiale Corrections mineures
Pour toute remarque: Contact Bureau Communication de lANSSI Adresse 51 bd de La Tour-Maubourg 75700 Paris Cedex 07 SP @ml Tlphone
communication@ssi.gouv.fr
01 71 75 84 04
Page 1 sur 7
Prambule
Ce document ne se veut pas une procdure gnrique de scurisation dun systme GNU/Linux, les bonnes pratiques appliquer dpendant de la fonction de la machine scuriser (serveur, poste client, passerelle, etc.). Les lments qui suivent ne sauraient donc aucunement avoir un caractre exhaustif. Il sagit simplement dnoncer les principaux axes de durcissement explorer. Ces derniers viennent en complment de principes de base applicables tout systme deploitation comme par exemple lapplication rgulire des correctifs. Il convient bien entendu dtudier lapplicabilit de chaque recommandation au cas despce considr. Il est par ailleurs fortement conseill davoir recours aux comptences dun expert du systme GNU/Linux pour la mise en oeuvre de ces bonnes pratiques.
Page 2 sur 7
notera en particulier quattribuer un bit setuid un programme qui na pas t dvelopp spcialement pour cela constitue gnralement une grave erreur. A ce titre, lorsquil est ncessaire de dlguer des privilges daccs via un excutable spcique, il est prfrable de raliser un contrle daccs par groupe en sappuyant sur le bit setgid, plutt quun contrle daccs par utilisateur reposant sur un bit setuid. Lorsquelles sont disponibles, il conviendra enn dactiver les options de certains programmes privilgis (par exemple dmons SSH ou IKE) permettant une rduction de privilges 3 ou une sparation de privilges 4 . De manire complmentaire, les mcanismes de contrle daccs obligatoires constituent un trs bon moyen de limiter les privilges de programmes. La dicult de mise en uvre de ces mcanismes rside souvent dans leur conguration. Cest particulirement le cas de SELinux. Certaines alternatives moins complexes que SELinux sont alors envisageables (Tomoyo, AppArmor, ACL grsecurity, etc.). Lutilisation des capacits (capabilites ) permet aussi de rduire le pouvoir de nuisance de programmes privilgis compromis. Ces capacits, qui consistent en une discrtisation des dirents privilges associs en gnral root, peuvent tre utilises de deux manires distinctes. Dune part, pour les distributions qui le supportent, le mcanisme des capacits de chiers (le capabilities ) ore une alternative mieux matrise lattribution de bit setuid root des excutables. Dautre part, certains programmes et dmons excuts par root orent optionnellement (par une option de compilation ou de conguration selon le cas) la possibilit de rduire leurs privilges au strict ncessaire - ces options doivent tre actives lorsquelles sont supportes. Enn, il est important de limiter de manire gnrale les programmes ralisant une analyse (parsing) sur des donnes non matrises de format complexe quelles soient issues du rseau ou locales appartenant un utilisateur non privilgi. En eet, les fonctions de parsing associs des formats complexes prsentent frquemment des vulnrabilits. titre dexemple, un navigateur web traite des donnes extrmement complexes et, il est impossible de garantir labsence de vulnrabilits dans les traitements eectus. Ainsi, un tel navigateur ne doit pas tre mis en uvre sur une machine autre quun poste client mme sous une identit non privilgie. Au niveau du noyau : Il est fortement recommand de mettre en uvre un noyau sur mesure vis--vis des priphriques matriels et des fonctions logiques dont aura besoin le systme. Par exemple, un serveur naura probablement pas besoin de wi, de bluetooth et de manire gnrale de toutes les piles protocolaires qui sont susceptibles de contenir des failles permettant un attaquant dobtenir des privilges noyau. Un serveur naura pas non plus besoin de supporter plusieurs modles de cartes rseau, de cartes graphiques, etc. On prfrera des noyaux non modulaires pour contrer des lvations de privilge via des modules malveillants. Faute de pouvoir dsactiver compltement le support des modules, on bloquera leur insertion dans le noyau au terme du dmarrage du systme 5 . Cette dernire recommandation sapplique galement dans les situations o la conguration dun noyau sur mesure est trop complexe mettre en uvre, soit parce que le parc de machines est trs htrogne, soit parce quon ne dispose pas des moyens humains ncessaires au suivi des mises jour du noyau. Un noyau de distribution gnrique jour peut en eet tre prfrable un noyau sur
3. Le programme rvoque ses privilges ds lors quil nen a plus besoin. 4. Les traitements les plus complexes sont relgus un programme esclave non privilgi. 5. crire 1 dans /proc/sys/kernel/modules_disabled.
Page 3 sur 7
mesure sur lequel les correctifs de scurit ne sont pas appliqus. Enn, la posture de mance lgard des fonctions de parsing, recommande plus haut, sapplique plus forte raison au niveau du noyau.
Il est aussi fortement recommand dappliquer des correctifs (patchs ) de durcissement du noyau lors de la recompilation de ce dernier. Il est par exemple ici question des protections gnriques du sous-systme de gestion de la mmoire servant protger le systme contre des attaques qui exploitent des vulnrabilits de type corruption mmoire (PaX), mais aussi des options de durcissement diverses proposes par grsecurity (masquage des entres de /proc, listes blanches dutilisateurs autoriss crer des sockets, durcissement de chroots, etc.). Dans tous les cas, une analyse ne des droits positionner sur les chiers devra tre eectue. En eet, labsence de rgles peut laisser la porte ouverte des lvations de privilges ! Il est notamment recommand de limiter autant que possible le nombre de chiers systmes sur lesquels lon attribue des droits dcriture tous les utilisateurs. On peut aisment raliser une revue des chiers prsentant cette caractristique avec la commande find /etc /usr /bin /sbin /var -type f -perm /o+w, an de sassurer que les recours cette conguration sont tous rellement ncessaires. Pour une analyse plus ne de la conguration des droits, il est galement possible de mettre en oeuvre des scripts spcialiss, comme ceux issus du paquetage Bastille Linux, qui sont en mesure de dtecter et ventuellement corriger un certain nombre derreurs classiques de conguration.
Page 5 sur 7
Pour pousser la scurisation un peu plus loin, il est possible dutiliser certaines distributions qui proposent la recompilation systmatique des logiciels pour matriser et durcir la chane de compilation des paquetages (imposer par exemple que les excutables soient relocalisables (CFLAGS="-fpie") pour que la randomisation dadresse (ASLR) puisse tre ecace, protger le systme contre les buer overow dans la pile (CFLAGS="-fstack-protector-all"), le durcir de manire gnrique (CFLAGS="-D_FORTIFY_SOURCE=2") ou encore scuriser le chargement dynamique (LDFLAGS="-Wl,-z, relro -Wl,-z, now")). Cela ncessite toutefois un suivi et une organisation rigoureuse. Une alternative moins lourde peut consister ne recompiler localement que certains paquetages dune distribution classique, par exemple ceux correspondant des dmons rseau exposs lextrieur. dfaut, on privilgiera les distributions rputes qui proposent une politique de mise jour de scurit claire et srieuse sur les distributions plus condentielles. Il est en eet souhaitable de rduire le plus possible la fentre temporelle entre la dcouverte dune faille dans un logiciel et le dploiement du correctifs dans la distribution considre.
Page 6 sur 7
Note : Certaines mesures ncessitent une certaine expertise technique et leur mise en uvre peut impacter la disponibilit du systme quil convient de bien apprcier au pralable. R2 Appliquer le principe de dfense en profondeur en : utilisant un pare-feu local ; implmentant un schma de partitionnement et les options de montage adapts au contexte demploi ; positionnant les droits en lecture, criture et excution sur les chiers aprs une analyse ne des besoins des utilisateurs mais aussi des services locaux. Une attention particulire sera porte sur les scripts lancs automatiquement ; chirant les donnes.
Note : L aussi, il convient de bien apprcier limpact de ces mesures avant de les mettre en uvre. R3 R4 Mettre en place des mesures de cloisonnement pour isoler les dirents lments applicatifs. Rdiger et appliquer les procdures dadministration scurises (enregistrement des donnes de connexion des exploitants, supervision, mises jour, sauvegardes, etc.). Dnir et mettre en place une politique de journalisation dvnements cohrente : distinguant dirents niveaux de criticit selon leur impact sur la scurit du systme ; permettant la remonte dalertes en fonction de ces niveaux.
R5
Page 7 sur 7