10
janvier 2011

INSIA - Technologies UNIX : Cours N°2

Rédigé par  Matthieu CERDA  Aucun commentaire Mis à jour le 10/01/2011

Et c'est parti pour la seconde partie du cours de technologies UNIX !

Le cours commence par une introduction au fonctionnement des disques durs : HDD

On se porte ensuite sur l'étude des systèmes de fichiers de type UNIX, il faut donc définir les structures de base :

Un disque dur possède, dans le cas d'une table de type MBR :

  • Un MBR composé du code exécutable de boot ( Par exemple GRUB ou NTLDR )

  • Une table des partitions

  • Des partitions


Voici les structures de base d'un FS de type UNIX :

  • Table des i-nodes


Voici les types d'i-node utilisables :

  • - : fichier standard

  • d : répertoire

  • s : lien symbolique

  • b : périphérique de type block

  • c : périphérique de type char

  • p : pipe nommé (créé par exemple avec mknod)

  • s : socket nommé


Ainsi que des attributs :

  • UID

  • GID

  • Permissions : UGO - RWX

  • Bits spéciaux : SUID,SGID, Sticky


Voici un article résumant la partie du cours sur les structures des FS : i-node

Classé dans : INSIA Mots clés : aucun


03
janvier 2011

INSIA - Technologies UNIX : Cours N°1

Rédigé par  Matthieu CERDA  Aucun commentaire Mis à jour le 03/01/2011

Petit début en douceur : Qu'est ce qu'un semi-conducteur ?

On fait un petit topo sur l'historique de la micro informatique : Les premiers ordinateurs de Bell Labs de 1955, l'IBM 360 de 1964, les languages utilisés (COBOL/FORTRAN/ALGOL/ASM) non intéropérables.

Alors qu'IBM était roi du marché, DEC cherche a devenir "calife a la place du calife" et lance le VAX et la série PDP (7/10/11) utilisant LISP.

DEC a alors l'idée de proposer aux universités leurs ordinateurs (l'utilisateur de demain ce sont les étudiants), ce qui était très malin car ils y gagnaient un parc d'utilisateurs compétents qui débuggaient leurs utilisateurs et quelques contrats de maintenance.
L'intelligence artificielle, c'est une manière que modéliser les décisions d'un expert.

C'est alors que Ken Thompson, employé de Bell Labs, cherche a créer un ordinateur pouvant concurrencer Gary Kasparov aux échecs, et le nomma "Belle". Il crée alors Space Travel, programme pour se promener dans l'arborescence de l'ordinateur.

Chez General Electric, MULTICS est créé, mais en raison de la loi AntiTrust ils ne pouvaient pas faire de la micro informatique et le budget s'épuise. Dennis Ritchie cherche donc a récupérer le projet.

Niklaus Writh créé le PASCAL.

Le métro 14 est basé sur les théories de Dijkstra (preuves de programme) ? a approfondir !

Dijkstra a crée l'algorithmique qui a aidé a créer les languages récents

Dennis Ritchie trouve que le BCPL de l'époque ("B") était trop étriqué et cherche donc a créer le C.

Il se dit aussi qu'il fallait faire un language clair, portable, permettant d'utiliser les interfaces de la machine.

Une alliance se forme entre les universitaires, Ken Thompson, et Kernighan / Ritchie qui connaît les gens de Berkeley et les créateurs de MULTICS.

Ken Propose alors de créer UNICS.

Compilation en C :

  1. Analyse lexicale

  2. Analyse syntaxique

  3. Analyse contextuelle

  4. Compilation

  5. Edition de liens


Dennis voit que sur tous les PC de l'époque, très différends, il y avait le même type de programmes : compilateurs et éditeurs de liens.

Il se dit alors : Si mon compilateur C sort de l'assembleur au format local, c'est tout bon !

En 1969, UNIX Time Sharing System v1 sort sous le giron d'AT&T.

Bill Gates pompe UNIX et crée SCO-Unix via SCO.

Xerox fabrique le Star 8010, truc qui coûte un bras mais disposant de technologies révolutionnaires (Mail, Ethernet, GUI, souris), mais ça marche pas car trop cher, et IBM sort l'IBM PC.

Billou crée Xenix, c'est un échec car Xerox a déja Star.

Il se fait aussi jeter par IBM.

(et donc cela aboutit a DOS et la série Windows).

1981 , date importante : Abrogation de la loi antitrust (élection de Reagan).

Les entreprises veulent faire du pognon, et donc Bell/AT&T, bon prince, décide que Berkeley a aussi des droits sur les sources d'UNIX.

Deux branches se créent : BSD v1,2,3,4 et UNIX System V de Bell.

IBM réclame la paternité d'UNIX  et lance AIX.

C'est donc la foire et 5 branches d'UNIX sont là.

Les entreprises, qui ont l'argent, créent donc des organisation de normalisation, ce qui donne POSIX pasque la non opérabilité y'en a marre.

Ils normalisent donc le shell bourne, la libc compatible ANSI pour UNIX ...

AT&T crée le Korn shell.

Novell crée NetWare (IPX/SPX, Novell DOS7) puis UnixWare.

UNIX intègre TCP/IP en standard car ils ont bossé sur ARPANET.

--- Fin de la partie historique

On repasse a une vision plus technique des systèmes UNIX : On va s'intéresser aux noyaux monolithiques.

  • Un processus est une instance d'exécution d'un programme

  • Il se compose de :

  • 1 Segment de texte

  • 1 Segment de data : fct programme => Variables globales, fct programme => environnement, TFO (Table des Fichiers Ouverts), Table des signaux

  • 1 Segment de stack +1 pour chaque thread


On aborde le déroulement d'un programme et le fonctionnement des fonctions réentrantes par interruption (variable global = mal = bug), et le fonctionnement et état des processus présent => prêt => actif => présent / absent.

Classé dans : INSIA Mots clés : aucun


14
décembre 2010

INSIA - Cryptologie : Cours N°5

Rédigé par  Matthieu CERDA  Aucun commentaire Mis à jour le 14/12/2010

Wouhou enfin un autre cours de PKI \o/

Le cours commence par l'étude d'un document sur la sécurisation des WLAN dans une grande entreprise télécom multinationale.

  • On note qu'il n'y a qu'un leader et 4 éditeurs/co-éditeurs, en revanche il y a une grande quantité de contributeurs de plusieurs grands noms de l'IT (Transpac, Equant et Orange) qui sont la pour s'assurer de sa qualité.

  • La table des matières montre les grands temps dans le projet, définition du scope, objectifs a remplir et enfin les technologies proposées.

  • Technologies listées : WPA/RSN 802.11i/802.1x/IPSec/PKI

  • Le scope pose le problème suivant : <X> est une entreprise multinationale très hétérogène ayant intégré beaucoup de petits groupes, le wifi est une "hot issue" (un truc peu apprécié mais qu'il vaut mieux intégrer pour pouvoir le contrôler tant que c'est encore possible).

  • On distingue plusieurs zones : Corporate, Corporate roaming (support du roaming et la VoWIP (Voice over Wireless IP), Home (désigné en tant qu'accès distant et hors propos du document), Public (accès depuis un réseau extérieur, hors propos), Visitor corporate, External Visitor ("removes temptation to attach unauthorised equipment to the corporate network", mais il vaut mieux utiliser la solution 3G maison).

  • On remarque que des solutions maison sont déja semblables au niveau des besoins.

  • On cherche a rester aussi sécurisé possible : WIDS (rogue AP, clients compromis), Management de bandes radio (on évite que les ondes n'aillent pas trop loin, antennes dirigées vers le bâtiment et brouilleurs dehors), Sécurisation des composants du réseau RF (SSH obligatoire ou tunneling).

  • Sécurité opérationnelle : logging, recurring audit and accountability, gestion des incidents, identification claire des rôles de monitoring (création d'une "police du wifi").


Les clients sont soumis aux restrictions suivantes :

  • Un firewall personnel obligatoire, pas de connexions doubles, authentification par port 802.1x, chiffrement/intégrité des données forts, échange de clés sécurisé, no SSID-broadcast, authentification bi-facteur (un truc physique et un mdp, smart card), protection des identifiants utilisateurs, management centralisé des utilisateurs (alerte si deux utilisateurs identiques connectés a des endroits différends), mots de passe forts absolument obligatoires, motd détaillé et définition claire des droits de l'utilisateur (bannières et chartes).


Les visiteurs eux sont soumis aux restrictions suivantes :

  • Filtrage de trafic, séparation du trafic et management du service public, protection des identifiants, contrôle d'accès, management centralisé des comptes invités, "Terms and conditions of usage", Mécanisme de verrouillage automatisé (mots de passe échoués trop souvent, brute force), limitation de bande passante, sécurisation et authentification du portail captif.


On remarque que la solution proposée est :

WPA/TKIP/EAP-TLS/Certif-Token/Certificat Machine

au contraire de la solution idéale : WPA2-802.11i-RSN/EAP-TLS/Certificat utilisateur/Certificat machine

Anecdote marrante : on ne peut pas utiliser une photo du prof sur téléphone portable pour se logguer sur sa machine via webcam, ça marche pas. (AVEC SON AUTORISATION !!!)

Nous étudions ensuite un rapport publié par le SGDN ( TrueCrypt faillible ?, dcssi-cspn-cible_2008-03fr.pdf est le rapport draft, tc_dcssi.pdf le rapport complet ) :

  • On cherche a savoir si TrueCrypt est fiable En et Hors Machine.

  • TrueCrypt chiffre lui même intelligemment ses headers sur le disque. Il est donc impossible sans la clé de savoir avec certitude que c'est bien un volume truecrypt, car en plus le point d'entrée est placé aléatoirement.

  • On peut aussi chiffrer le disque système (mais en ce cas le bootstrap est détectable).

  • On peut surchiffrer le disque entier, afin de laisser une partition cachée (en fonction du mot de passe entré, on a accès a l'une ou l'autre.)

  • Le fonctionnement peut utiliser soit une clé ou bien une clé + un fichier.

  • Idée : utiliser clé + fichier et définir une séquence dans laquelle utiliser le fichier

  • Il y a un risque de compromission de la clé maître avec l'utilisation du swap.


Se renseigner sur Keynectis / OpenTrust / IDEALX, et tester TrueCrypt.

08
décembre 2010

ZALGO

Rédigé par  Matthieu CERDA  3 commentaires Mis à jour le 08/12/2010

He Waits Behind The Wall, in a palace of tortured glass, served by legions forged from the tears of the sleepless dead and clad in armor carved from the suffering of mothers. In his right hand he holds a dead star, and in his right hand he holds the Candle Whose Light Is Shadow. His left hands are stained with the blood of Am Dhaegar. He sings the song that ends the earth. The hivemind that confounds the living, and perpetuates the torture of the damned. He takes the eyes, the window of the soul, removes the ability to feel...anything but pain. Once the eyes have been removed, the soul is removed. The living husk is testament to cruelty and everlasting doom. He cannot be stopped, as fear cannot be stopped. He is inseparable from reality, as he exists beyond the veil...waiting.

Lire la suite de ZALGO

Classé dans : IRL Mots clés : aucun


06
décembre 2010

INSIA – CCNA : Cours N°1

Rédigé par  Matthieu CERDA  Aucun commentaire Mis à jour le 06/12/2010

Un exemple de configuration type Cisco pour un routeur, avec une sécurisation de base :
[code lang="shell"]
# configure terminal
# --- GENERAL ---
(config)# hostname FAI
(config)# enable secret class
(config)# line console 0
# --- VTYs ---
(config-line)# password cisco
(config-line)# login
(config-line)# logging synchronous
(config-line)# exec-timeout 3 30
(config-line)# exit
(config)# line vty 0 15
(config-line)# password cisco
(config-line)# login
(config-line)# exec-timeout 3 30
(config-line)# logging synchronous
(config-line)# exit
(config)# banner motd "Avez-vous les droits ?"
# --- INTERFACE ETHERNET ---
(config)# interface fa0/0
(config-if)# description Réseau client 1
(config-if)# ip address 192.168.10.254 255.255.255.0
(config-if)# no shutdown
(config-if)# exit
# --- INTERFACE SERIE ---
(config)# interface se0/0
(config-if)# description Réseau FAI 1 DCE 64000 Kbps
(config-if)# clock rate 64000
(config-if)# bandwith 64 # En Kbps !
(config-if)# encapsulation hdlc # Par défaut
(config-if)# ip address 200.200.200.5 255.255.255.252
(config-if)# no shutdown
(config-if)# exit
# --- ROUTAGE RIP ---
(config)# router rip
(config-router)# network X.X.X.X
(config-router)# exit
(config)# exit
%SYS-5-CONFIG_I: Configured from console by console
[/code]

Un exemple de configuration type Cisco pour un switch, avec une sécurisation de base :
[code lang="shell"]
# configure terminal
(config)# interface Vlan 1
(config-if)# ip address 192.168.10.253 255.255.255.0
(config-if)# no shutdown
(config-if)# exit
# --- INTERFACE ETHERNET - VLANs ---
(config)# interface fa0/0.100
(config-if)# description Réseau client VLAN 100
(config-if)# encapsulation dot1Q 100 # VLAN 100
(config-if)# bridge-group 1
(config-if)# exit
[/code]

Debuggage :

  • En cas d'interface up / down, penser a :



  1. Vérifier l'encapsulation

  2. Vérifier si l'on est DCE ou DTE et si la commande clock rate est réglée en conséquence (show controller s0/0, vérifier le message CLOCK STOPPED)

Classé dans : INSIA Mots clés : aucun


« précédente page 3 sur 6 suivante »