Planning conférences IIE++
Voici le planning prévisionnel des conférences IIE++. Notez qu'il ne s'agit là que des présentations en amphi, compléments de cours de 1A, voire 2A pour les parties système.
Il s'agit d'un ensemble d'exposés et présentations qui viendront en complément des enseignements dispensés à l'ENSIIE et qui mettront l'accent sur des démonstrations pratiques, des études de cas d'utilisation réelle de la théorie abordée en cours.
En aucun cas ces présentations ne remplacent le cours.
Elles vont même user et abuser des principes qui y auront été abordés.
En plus de ces conférences seront organisés les révisions d'avant partiels ainsi que des ateliers de programmation.
Des screencasts ou vidéos seront réalisées pour un maximum de présentation si la technique le permet. Les vidéos seront proposées au téléchargement après coup via cette page (prévoir 300 à 700 Mo par vidéo).
Cliquez sur un titre pour afficher le programme détaillé de chaque conférence (tout dérouler/enrouler)
+
"Le papa pingouin" (Octobre)
Fonctionnement de linux : organisation, configuration et approfondissements, utilisation avancée de la console
- Système de fichiers
- Gestion des droits
- Gestion des packages
- Différences notables selon les distributions
- Un terminal pour les gouverner tous
+
"Il est libre Max !" (Octobre - Novembre)
OS alternatifs et logiciels libres : sélection de logiciels pour survivre en pleine banquise, découverte de MacOSX (mais c'est pas libre !)
- Organisation, fonctionnement, configuration
- Pilotes
- Systèmes de fichiers
- Programmes
- Fonctionnalités différentes (interface graphique,
bureaux virtuels, gestion des utilisateurs...)
+
"L'art d'écrire du code illisible" (IAP2 - Novembre)
Ou comment s'assurer un emploi à vie : utilisation du préprocesseur, découpage de projet, outils de documentation
Trucs et astuces courants utilisés en programmation.
- Raccourcis utiles
- Ordre d'interprétation
- Macros du préprocesseur
- Type cast, dereferencing, jeux de pointeurs
- Conventions de codage
- Découpage de projet
- Documentation : utilisation de doxygen
- How To Write Unmaintainable Code
+
"Bash 2 en 1" : À quoi ça sert ? (ISI - Décembre)
Tâches Cron et services : comment ça marche, comment en faire ?
Pourquoi utiliser un langage de script ? Où en trouve-t-on dans le système linux ? Comment en écrire et les utiliser de manière sûre et intelligente ?
- Présentation des tâches cron, fonctionnement et utilisation.
- Présentation des scripts init.rd, créer des services.
+
HTML (IBD - Janvier)
Notions de base : faire le design d'un site simple avec HTML et CSS
- Les standards du Web
- Les balises de base
- Mise en page évoluée
- Utilisation des CSS
- Div, tableaux, frames et layers
+
PHP/MySQL (IBD - Janvier)
Comment réaliser un blog en une heure ? Le mémo PHP
- Conventions de codage (PEAR)
- Découpage des scripts
- API bases de données
- Intégration de scripts à un design HTML/CSS
+
Sécurité Web (IBD - Février)
Démonstration, exploitation de failles PHP/SQL et comment s'en prémunir, éviter les pièges classiques
Ce qu'il faut impérativement savoir sur la sécurité
des applications Web. Exemples d'exploitations de failles présentés en direct, suivis des explications du code source défectueux et les moyens de s'en prémunir.
- Attaques classiques
- Comment les éviter
- Exemple : exploitation de l'envoi de fichiers
- Exemple : XSS, cross-site scripting
- Exemple : SQL injection
- Exemple : remote inclusion
+
"AJAX, c'est propre" (IBD - Février)
Faire un chat en temps réel en utilisant PHP et Javascript
- Qu'est-ce qu'AJAX ? Présentation et malentendus
- Pourquoi utiliser AJAX, et comment le mettre en place ?
- Exemple d'implémentation d'un chat en temps réel
+
"J'ai plus de piles" (ISI - Février - Mars)
Sécurité des programmes C : exploitation de pile, démonstration d'un buffer overflow, écriture et injection de shellcodes
- Exemples de choses à faire et à ne pas faire.
- Rappels sur la structure de la pile d'appels
- Rappels sur les instrucitons assembleur
- Démonstration d'un buffer overflow
- Démonstration d'une attaque return-to-libc
- Remote code execution : démonstration triviale
+
"Chauffe Marcel" (IPM - Mars)
Assembleur : du bouton d'allumage au chargement du système
- Architectures matérielles, présentation et historique des différentes architectures disponibles (x86, x86-64, ARM, MIPS, PowerPC, SPARC).
-
Etude du démarrage d'une machine : du bouton d'allumage au chargement du noyau du système.
- BIOS principal
- Périphériques
- POST
- MBR et bootstrap, IPL ou bootloader
+
Assembleur en pratique (IPM - Mars)
Étude de consoles et émulateurs : architecture des consoles, structure des roms GBS, la PSP et l'assembleur MIPS
Etudes de cas d'utilisation intensive de langage d'assemblage.
- Architectures et conception de jeux sur consoles (exemple des anciennes consoles utilisant des cartouches)
- La PSP et son architecture MIPS
- Emulateurs de consoles : comment ils marchent, exemple
- (Si possible) Firmwares : étude du firmware d'un lecteur HD-DVD (X-Box 360)
+
"Ping ? Pong !" (ISI - Avril)
Protocoles réseaux : sniff et explications de traces avec ethereal
La démonstration utilisera deux ordinateurs en réseau, l'un pour afficher les captures en temps réel et faire les explications, l'autre pour l'utilisation des protocoles.
- Ethernet, ARP et DHCP : le démarrage d'une machine
- Les protocoles applicatifs : HTTP et compagnie
- Introduction à la sécurité : exemple d'insécurité
+
Concevoir un réseau (ISI - Avril)
Passerelles, proxys, firewalls, services : exemple d'Arise
Architectures distribuées, clusters et présentation des utilisations. Il s'agit de faire un inventaire des techniques existantes pour assurer une certaine qualité de service.
- Comment concevoir un réseau ?
- La séparation des services
- La redondance
- du système de stockage (RAID, DRBD)
- des services (Linux-HA, clustering, load-balancing)
- Le monitoring
- La virtualisation
- Exemple : le réseau d'Arise
+
"Le WEP c'est mal !" (ISI - Mai)
Sécurité réseau : firewalls, WiFi, VLANs et VPN : comment bien s'en servir, faits et malentendus
Notions de sécurité dans un réseau, les types d'attaques possibles (infection, DDoS, MitM), et mise en place d'un début de sécurité. La présentation utilisera deux ordinateurs pour démontrer les solutions présentées.
- Firewall : présentation d'IPTables
- Wifi : problèmes de sécurité, le cas du cryptage WEP
- VLAN : utilisation en entreprise
- VPN : utilisations courantes, présentation d'OpenVPN
+
BONUS : Sujet au choix pour réviser (Mai)
Un ou plusieurs sujets d'approfondissements / révisions à choisir par l'assistance lors de la présentation. Improvisation totale !
Systèmes
- Mémoire et processus
- Appels systèmes
- Systèmes de fichiers
- Fonctionnement de la pile
- Réseau
Bases de données
- Développement Web
- Programmation C
Assembleur
- Fonctions / routines
- Trucs et astuces
+
BONUS : Sujets techniques sur demande (à placer)
Sujets très techniques à présenter si un intérêt particulier est manifesté et à placer en fonction des modules d'ISI, d'IAP ou d'IBD.
- Etude du fonctionnement du noyau linux
- Démarrage : étude de init, après le bootloader
- Système de fichiers Ext2/Ext3 : organisation et
fonctionnement
- TCP/IP dans le noyau linux
- Fonctionnement des pipes
- Les modules noyau
- Fonctionnement de la MMU, gestion de la mémoire
- Fonctionnement du scheduler, gestion des processus
- Netfilter et iptables
- Virtualisation, machines virtuelles et hyperviseurs
(User-mode linux, Xen et autres VMM), utilisations typiques
- Pratique : configuration avancée d'un système linux,
compilation de noyau
-
Cryptographie : block siphers, stream ciphers, modes d'opération (TEA, AES, WEP, OFB, CBF...)
-
Fonctionnement des réseaux
- Etude détaillée de Ethernet, IP, TCP
- Le partage de connexion : routage et NAT
- Les protocoles liés au fonctionnement des réseaux
(ARP, DHCP, DNS)
- Protocoles applicatifs dans le détail : HTTP, FTP,
SMTP, POP
-
Programmation objet en PHP
- Avantages, modularité
- Bases de la programmation objet
- Les avantages de PHP 5 et PHP 6
- Présentation de Propergol (framework léger visant
la simplicité d'apprentissage et de mise en place)
- Présentation de Symfony-Project, Easy-PDO
- Autres langages de développement Web
- Présentation de Ruby on Rails (Dièse ?)
- Présentation de ASP.net (parrainage entreprise ?)