Construction et sécurisation d'un
système Linux embarqué
Frédéric AIME
faime@janua.fr
0 950 260 370
Différentes approches
●

Création d'une distribution “From Scratch”
–
–

Forte granularité

–

Parfaite maîtrise du projet...
Phases de construction d' n système
u
●

●

●

●

●

Optimisation de la procédure de démarrage du système
Réduction drasti...
Optimisation du démarrage
•

boot du système par LILO (LInux LOader) ou un programme
équivalent

•

chargement du noyau

•...
Construction d'un environnement
“Lightweight”
•

Utilisation de uclibc
•

Nécessite:
•
•

•

binutils
gcc

Remplacement de...
Optimisation du noyau
•

Sélection de l'architecture cible

•

Inventaire des drivers utiles
•

Supprimer tous les autres
...
Interfaces graphiques
•

De plus en plus fréquent
X Window System: parfois peu adapté car coûteux en ressources

•

•

•

...
Exemple d'environnement de
développement pour l'embarqué
*
ou
Station de développement
Cross GCC
Binutils architecture cib...
Sécurisation du système
●

Principes de sécurisation identiques à
l'informatique traditionnelle
–

La sécurité parfaite N'...
Sécurisation du système
●

Isoler applicatif du système
–

Environnement « chrooté »
●

●
●

●

Un environnement « virtuel...
Sécurisation du système
●

Noyau compilé dans l'esprit « SELinux »
–
–

●

SELinux : un ensemble de règles de configuratio...
Sécurisation du système
●

Définir les éléments qui peuvent être mis à jour
–
–

Modules « trustés »

–
●

Noyau
Applicati...
Sécurisation du système
●

Ce que fait Netfilter
–

Effectuer des filtrages de paquets, principalement
pour assurer des fo...
Prochain SlideShare
Chargement dans…5
×

Tv21 02-07 linuxembedded

325 vues

Publié le

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
325
Sur SlideShare
0
Issues des intégrations
0
Intégrations
15
Actions
Partages
0
Téléchargements
6
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Tv21 02-07 linuxembedded

  1. 1. Construction et sécurisation d'un système Linux embarqué Frédéric AIME faime@janua.fr 0 950 260 370
  2. 2. Différentes approches ● Création d'une distribution “From Scratch” – – Forte granularité – Parfaite maîtrise du projet – ● Nécessite un investissement intellectuel Conseillé si LINUX est stratégique Choix d'un produit commercial – – Cross compilation – ● Outils graphiques Support technique Mais – Granularité moindre – Coût de support parfois élevé
  3. 3. Phases de construction d' n système u ● ● ● ● ● Optimisation de la procédure de démarrage du système Réduction drastique de l'utilisation mémoire (utilisation de ucLibc et Busybox) Optimisation du noyau en fonction des fonctionnalités nécessaires (pilotes de périphériques, réseau ou non, etc...). Réduction et simplification du nombre de fichiers et répertoires de configuration comme /etc contenant la majorité des fichiers de config. Suppression du système de swap: un système embarqué est destiné à un usage bien défini et sera donc suffisamment dimensionné en mémoire vive pour éviter l'utilisation d'une partition de swap.
  4. 4. Optimisation du démarrage • boot du système par LILO (LInux LOader) ou un programme équivalent • chargement du noyau • lancement par le noyau du processus init (/sbin/init) • lecture du fichier /etc/inittab par le processus init. Ce fichier contient en général le nom du script de démarrage: # System initialization (runs when system boots). si:S:sysinit:/etc/rc.d/rc.S • le script en question poursuit l'initialisation du système
  5. 5. Construction d'un environnement “Lightweight” • Utilisation de uclibc • Nécessite: • • • binutils gcc Remplacement des commandes systèmes par busybox • Prend en charge la majorité des commandes usuelles Linux
  6. 6. Optimisation du noyau • Sélection de l'architecture cible • Inventaire des drivers utiles • Supprimer tous les autres • Optimisation en espace (option -Os de gcc) • Suppression des fonctionnalités inutiles
  7. 7. Interfaces graphiques • De plus en plus fréquent X Window System: parfois peu adapté car coûteux en ressources • • • • Reste cependant la référence dans le monde UNIX (plugins, etc...) XFree86 peut être optimisé en taille et ressources (Xkdrive, mode VESA...) Frame-buffer LINUX: accès aux modes graphiques sans X11 (en général mode VESA + quelques supports spécifiques) QTopia (ex Qt/Embedded ) • • Compatible source avec Qt: à la base de KDE et du navigateur OPERA • Utilise le frame-buffer LINUX • • • Déja éprouvé dans des solutions industrielles avec OPERA (Motorola, Sony mylo, sharp, volvo,...) Existe en version GPL ==> applications DOIVENT être GPL GTK+
  8. 8. Exemple d'environnement de développement pour l'embarqué * ou Station de développement Cross GCC Binutils architecture cible ucLibc architecture cible Filesystem cible: Base-layout ucLibc Busybox * en utilisant un sous-système permettant de faire fonctionner gcc, ex: cygwin
  9. 9. Sécurisation du système ● Principes de sécurisation identiques à l'informatique traditionnelle – La sécurité parfaite N'EXISTE PAS – Objectif : Rendre le plus complexe possible les « turnaround » – Contraintes particulières ● ● D'espace de stockage D'espace mémoire
  10. 10. Sécurisation du système ● Isoler applicatif du système – Environnement « chrooté » ● ● ● ● Un environnement « virtuel » et disjoint du système principal Exemple : serveur FTP, serveur WEB, ... Cantonner l'impact d'une brèche de sécurité à cet environnement Difficile à mettre en place dans certains cas – – Front-end web de configuration du système Utilisateurs applicatifs non privilégiés (non root)
  11. 11. Sécurisation du système ● Noyau compilé dans l'esprit « SELinux » – – ● SELinux : un ensemble de règles de configuration Mais reste un noyau standard avec éventuellement quelque patches Un module est capable de tout faire – Modules de noyau figés ● Phase de boot – – Chargement des modules connus echo off > /proc/modules en fin de phase de boot (<= linux-2.4.x)
  12. 12. Sécurisation du système ● Définir les éléments qui peuvent être mis à jour – – Modules « trustés » – ● Noyau Applicatifs S'assurer que l'on parle au bon serveur de mise à jour – Utilisation de certificats « clients » pour valider le serveur – Utilisation de signature numérique des paquets à mettre à jour
  13. 13. Sécurisation du système ● Ce que fait Netfilter – Effectuer des filtrages de paquets, principalement pour assurer des fonctions de Firewall (Filter) – Effectuer des opérations de NAT (Network Address Translation) – Effectuer des opérations de marquage des paquets (Mangle)

×