CVE , Exploitation mémoire
|
|
|
- Étienne St-Germain
- il y a 10 ans
- Total affichages :
Transcription
1 mots-clés : CVE , Exploitation mémoire du SGDB MySQL Samir MEGUEDDEM (@ipv_) Synacktiv [email protected] CVE / Kingcope / RCE / Stack Buffer Overflow / GRANT statement e 1er décembre 2012, un hacker allemand du nom de Kingcope fait de nouveau L parler de lui en diffusant une série de vulnérabilités [DISCLO] sur le système de gestion de base de données MySQL. D après Kingcope, ces vulnérabilités permettent potentiellement d exécuter du code à distance, à condition de disposer d un compte utilisateur non privilégié. 1 Introduction MySQL est le moteur de base de données open source le plus déployé [MARKET]. Son succès repose sur son accessibilité (gratuit et documenté), sa facilité de déploiement (multi-plateforme), sa flexibilité (petites ou grandes bases de données), et ses nombreuses fonctionnalités (richesse de l API MySQL, sous-requêtes, procédures stockées, etc.). Du point de vue de l attaquant, MySQL est une cible bien connue pour plusieurs raisons : - la popularité du produit dans les environnements web ; - une API riche, qui facilite l évasion des filtres sécurité lors des injections SQL ; - une configuration souvent perfectible (ACL utilisateur, processus avec les droits administrateurs, etc.). Avec le rachat de MySQL par Oracle, certains développeurs ont décidé de créer MariaDB, un fork du projet MySQL. Une vulnérabilité sur MySQL aura de fortes chances d être également présente sur MariaDB (et vice-versa). l attaquant doit disposer d au moins un compte non privilégié sur le SGDB. Pour un développeur d exploit, la première étape est de reproduire le bug : my $dbh = DBI->connect( DBI:mysql:database=test;host= ;, user, secret, { RaiseError => 1}); $a = A x ; my $sth = $dbh->prepare( grant file on $a.* to user \@ % identified by secret ; ); Une analyse rapide permet de mettre en cause le nom de la base de données. Dans ce code, la commande GRANT attribue la permission FILE sur une longue chaîne représentant le nom de la base de données. Cette permission s applique uniquement à l utilisateur user, identifié par le mot de passe secret. Aussi surprenant que cela puisse paraître, cela déclenche le plantage immédiat du SGBD MySQL : Program terminated with signal 11, Segmentation fault. #0 0x in?? () Dans le cas d un binaire compilé avec le SSP (Stack Smashing Protector), le débordement de tampon est détecté : 2 Analyse du CVE **** stack smashing detected **** La recompilation en mode debug et l approche «pas à pas» permettent d incriminer la fonction acl_get : 2.1 Lancement de la preuve de concept L analyse du CVE démarre par la preuve de concept fournie par Kingcope. Puisque la vulnérabilité nécessite une authentification au serveur MySQL, gdb$ bt #0 0x08260b1c acl_get (host=0x0, ip=0x892aff , user=0x8940d58 test_mysql, db=0x895e808 a <repeats 200 times>..., db_is_pattern=0x1) at sql_acl.cc:1194 #1 0x081d7301 in check_access (thd=0x89277d0, want_access=0x1e73c3f, db=0x895e808 a <repeats 200 times>..., save_priv=0xb4f6d3dc, dont_check_ global_grants=0x1, no_errors=0x0, schema_db=0x0) at sql_parse.cc:5756 #2 0x081d3ab2 in mysql_execute_command (thd=0x89277d0) at sql_parse.cc: Misc N 67 - Mai/Juin 2013
2 #3 0x081d87e7 in mysql_parse (thd=0x89277d0, rawbuf=0x895b7d8 grant ALL on, a <repeats 187 times>..., length=0x1b90, found_semicolon=0xb4f6e198) at sql_parse.cc:6497 #4 0x081cd4db in dispatch_command (command=com_query, thd=0x89277d0, packet=0x89577a9 grant ALL on, a <repeats 187 times>..., packet_ length=0x1b91) at sql_parse.cc:1989 #5 0x081ccabd in do_command (thd=0x89277d0) at sql_parse.cc:1657 #6 0x081cbdaa in handle_one_connection (arg=0x89277d0) at sql_parse.cc:1242 #7 0xb7f9396e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #8 0xb7d7ca4e in clone () from /lib/tls/i686/cmov/libc.so.6 Dans cette backtrace, nous pouvons identifier la fonction clone qui est appelée à chaque nouvelle connexion d un client. Cette routine crée un nouveau thread dont le pointeur d instruction est initialisé à l adresse spécifiée en paramètre. Contrairement à un fork, plusieurs parties de la mémoire sont partagées avec le parent, cependant il dispose de son propre contexte d exécution et de sa propre pile. Les fonctions handle_one_connection et do_command vont initialiser des paramètres globaux et analyser les informations transmises par le client. À cette étape, ces fonctions traitent les données liées au protocole d échange MySQL (envoyées de manière transparente par le client MySQL). La fonction dispatch_command se chargera d appeler la bonne routine en fonction de la commande envoyée par le client. L analyse syntaxique de la requête démarre à partir de la fonction mysql_parse. Tout comme dispatch_command, la fonction mysql_execute_command se charge d appeler le composant principal de la requête (ici GRANT, une commande affiliée à la gestion des comptes de MySQL). Enfin, avant d arriver dans notre fonction vulnérable, la fonction check_access est sollicitée pour vérifier la légitimité de l utilisateur qui appelle la commande GRANT (système d ACL). L analyse et le traçage du flux d exécution nous permettent de mieux cerner le contexte d exécution dans lequel se trouve MySQL au moment d atteindre la fonction vulnérable acl_get. À ce stade, nous constatons un premier problème qui pourrait être gênant pour réaliser une exécution de code arbitraire. Lorsque nous inspectons notre nom de base de données, il se compose uniquement de caractères alphanumériques. Tous les autres caractères déclenchent une erreur de syntaxe. Nous en prenons bonne note et reviendrons dessus plus tard. 2.2 Analyse de la fonction vulnérable Le fichier sql_acl.cc contient la fonction acl_get qui semble être au cœur de la vulnérabilité. Cette fonction démarre par le code suivant : ulong acl_get(const char *host, const char *ip, const char *user, const char *db, my_bool db_is_pattern) { ulong host_access= ~(ulong)0, db_access= 0; uint i,key_length; char key[acl_key_length],*tmp_db,*end; acl_entry * entry; DBUG_ENTER( acl_get ); VOID(pthread_mutex_lock(&acl_cache->lock)); end=strmov((tmp_db=strmov(strmov(key, ip? ip : )+1,user)+1),db) ; [...] Ce code (dont vous remarquerez le peu d esthétisme) déclare des variables locales, puis imbrique plusieurs appels à la directive strmov. Pour plus de brièveté, les développeurs ont jugé bon d utiliser une condition ternaire. La macro strmov est déclarée de la manière suivante : #define strmov(a,b) stpcpy((a),(b)) Après analyse, le code peut être représenté par les lignes suivantes : p_key = strcpy(key, ip? ip : «); p_db = strcpy(p_key + 1, user); p_end = strcpy(p_db + 1, db); Le code crée une clé de cache pour optimiser l appel à cette fonction. La clé est la concaténation de l adresse IP, du nom d utilisateur, et du nom de la base de données. La taille du tampon est définie par ACL_KEY_LENGTH : #define ACL_KEY_LENGTH (IP_ADDR_STRLEN+1+NAME_LEN+1+USERNAME_LENGTH+1) #define IP_ADDR_STRLEN ( ) [...] #define NAME_LEN 64 /* Field/table name length */ #define USERNAME_LENGTH 16 Une allocation de 98 octets est réalisée sur la pile pour le tampon de destination nommé key. Aucune vérification n est réalisée sur la taille de la source, et la stack-frame de la fonction acl_get peut être réécrite, ce qui impacterait le flux d exécution du programme. À ce stade, nous pouvons tirer plusieurs observations : - La vulnérabilité nécessite un compte utilisateur (non privilégié). - Le nom de la base de données doit a priori être composé uniquement de caractères alphanumériques. - La fonction acl_get réalise des appels à des sousfonctions qui pourraient perturber le flux d exécution après réécriture de la stack-frame. - Certaines distributions (par exemple Ubuntu) compilent le projet MySQL avec SSP (Stack Smashing Protector), ce qui stoppe l exécution du programme lors de la sortie de la fonction acl_get en cas de débordement de tampon. En disposant de ces informations, nous pouvons faire planter le processus MySQL en spécifiant une chaîne d environ 128 octets. Cette valeur varie en fonction de la version et des paramètres de compilation utilisés. Cependant, l attaquant dispose d un compte, il peut donc identifier la version de MySQL utilisée afin de fiabiliser son exploit : Misc N 67 - Mai/Juin
3 CVE , Exploitation mémoire du SGDB MySQL mysql> SELECT compile_os; version_compile_os ubuntu (Ubuntu) x86_64 debian-linux-gnu Il est également possible de récupérer le contenu de la variable via le Server Greeting émis par le service MySQL lors de la réception d une connexion d un client. dans l espace U+0001 jusque U Ce qui signifie que l encodage UTF-8 de MySQL est d au moins un octet et peut atteindre au maximum trois octets. Pour tirer profit de l encodage, il est nécessaire de modifier les outils de ROP pour inclure des conditions sur les gadgets trouvés. Pour valider l adresse d un gadget vis-à-vis de l encodage UTF-8, il est possible d intégrer un vérificateur dans le générateur ROP. Voici deux exemples de règle : - Si chaque octet de l adresse est plus petit que 0x80, l adresse est valide. - Si les octets LSB (Least Significant Byte) de l adresse sont plus grands que 0x80 et identiques aux octets LSB d une séquence multi-octets, alors ils peuvent servir à construire une adresse valide. 2.3 Exploitation Contournement du jeu de caractères via UTF-8 Comme indiqué dans la documentation de MySQL [IDENTIFIER], le nom des objets tels qu une base de données, une table ou une colonne, est nommé «identifiant». En interne, un identifiant est représenté par une chaîne Unicode encodée en UTF-8 et celui-ci est soumis à des restrictions particulières. Le tableau suivant illustre ces restrictions : Figure 1 : Caractères autorisés dans les identifiants Les identifiants utilisent donc uniquement le jeu de caractères Unicode encodé par UTF-8 qui se traduit grossièrement par le schéma suivant : Figure 2 : Schéma d encodage L encodage UTF-8 [UTF8] peut être simplifié en deux parties : - l encodage de caractères sur un octet (table US-ASCII, U+0000->U+007F) ; - l encodage de caractères sur plusieurs octets (nommé multi-bytes sequence). Chaque encodage UTF-8 transpose un simple caractère en un ou plusieurs octets. L encodage UTF-8 d un seul symbole peut atteindre jusqu à six octets (séquence multioctets). Néanmoins, un caractère d identifiant doit être Figure 3 : Exemples d adresses ROP valides en UTF-8 Il est donc possible de créer une table de correspondance UTF-8, de l intégrer dans un générateur ROP et d appliquer les règles pour vérifier la validité de l adresse d un gadget Contournement SSP via le TCB Deux notions s opposent lorsqu il s agit de traiter des ressources systèmes. Le Forking Model (utilisé par exemple par VSFTPd ou Apache2-prefork) et le Threading Model (utilisé par exemple par MySQL ou Apache2-threaded). MySQL utilise un système de thread pour gérer ses clients, cela au travers de la bibliothèque pthread qui s appuie sur l appel système clone. Plusieurs dénominations existent pour l acronyme TCB dans la gestion des processus. Il définit ici le Thread Control Block [TCB], une structure créée à chaque nouveau thread, et dont voici les champs les plus importants : - Un pointeur vers le Dynamic Thread Vector (structure pointant vers les blocs TLS (Thread Local Storage) des Dynamic Shared Objects). - Un pointeur nommé sysinfo qui pointe vers les routines noyau exportées dans la section VDSO. Celle-ci contient l instruction sysenter. 0xb7fe2420 < kernel_vsyscall>: push ecx 0xb7fe2421 < kernel_vsyscall+1>: push edx 0xb7fe2422 < kernel_vsyscall+2>: push ebp 0xb7fe2423 < kernel_vsyscall+3>: mov ebp,esp 0xb7fe2425 < kernel_vsyscall+5>: sysenter - Le cookie SSP (nommé stack_guard) comparé lors de l épilogue à celui sauvegardé dans la pile (après le saved ebp) durant le prologue. 6 Misc N 67 - Mai/Juin 2013
4 Par défaut, le TCB est dans une zone mémoire mmaped bien distincte (en lecture-écriture et non contiguë à la pile principale). Néanmoins, les nouveaux threads sont créés dans une région mmaped dédiée aux clients contenant à la fois le TCB et les variables locales de toutes les fonctions du backtrace précédent. Lorsqu un client se connecte (fonction run_server_loop du fichier tools/mysql_manager.c), le serveur MySQL lui attribue un nouveau thread qui continuera l exécution dans la fonction process_connection : pthread_create(&th,&thr_attr,process_connection,(void*)thd) À cette occasion, une nouvelle pile mémoire dédiée au thread est créée. Pour accéder au TCB du thread courant, le code userland utilise le sélecteur gs. Pour contourner le SSP, nous allons réécrire le pointeur sysinfo utilisé par toutes les fonctions. Puisque le SSP lui-même fera appel à printf pour afficher son message d erreur, nous contrôlerons le flux d exécution (cet article [TCBLOCAL] a également présenté l astuce sur un binaire en local). Note Rappel du fonctionnement de la PLT/GOT et du handler VSYSCALL La Figure 4 présente le déroulement de l appel de la fonction : 1. La fonction my_funccontient un appel à la fonction printf. 2. La Procedure Linkage Table (PLT) va préparer l appel à printf en cherchant son adresse dans la Global Offset Table (GOT). 3. Si l adresse de printf n est pas initialisée dans la GOT (lazy binding), alors la fonction dl_runtime_resolve de la bibliothèque «ld» (le loader) est sollicitée. 4. Le loader résout l appel et l inscrit dans l entrée printf de la GOT. Les étapes 3 et 4 ne seront plus réalisées lors des prochains appels à printf. 5. La fonction printf est appelée. 6. Chaque appel système provenant d une fonction de la libc est réalisé par les étapes suivantes : - préparation des registres (numéro du syscall dans eax) ; - appel du handler VSYSCALL à l aide de gs ; call DWORD PTR gs:0x10 (l offset 0x10 correspond au champ sysinfo). 7. Le code exécute l instruction x86 sysenter qui sera traitée par le noyau. Figure 4 : Rappel du fonctionnement de la PLT/ GOT et du handler VSYSCALL Contournement ASLR via les zones non aléatoires Pour contourner les zones touchées par l ASLR (l ensemble des bibliothèques est soumis à l aléa), nous profitons des zones mémoire non impactées,.text et.data, du binaire. En effet, le projet n a pas été compilé avec les paramètres -fpie -fpie, de ce fait il est possible de retomber dans des gadgets de la section contenant le code exécutable. À ce titre, l élaboration de la table d adresses ROP se fera sur les critères suivants : - Lorsque nous contrôlons le flux d exécution, quels registres maîtrisons-nous? - Possédons-nous des gadgets pour lire, écrire et exécuter des adresses mémoire? - Devons-nous adapter les registres avant l usage de ces gadgets? - Devons-nous faire usage de gadgets temporaires (cas pratique de l utilisation de xchg, mov, etc.)? - Quelle est la fiabilité de ces gadgets? Sont-ils soumis à l ASLR? Misc N 67 - Mai/Juin
5 CVE , Exploitation mémoire du SGDB MySQL Contournement du bit NX via un ROP-Mprotect L approche classique pour contourner le bit NX (pour «No execute») est de réaliser un ret2libc [RET2LIBC] vers des fonctions utiles (system, execve, mprotect, le couple mmap/read, etc.). Cette technique requiert un ajustement minutieux des arguments sur la pile qui ne peut pas être appliquée ici. Il est également possible de réécrire une entrée de la GOT [GOTCTF] et de déclencher la fonctionnalité adéquate du programme (contenant des paramètres que l on maîtrise). Cependant, l aléa de la libc, ou une éventuelle option de compilation (full-relro règle la GOT en lecture seule), ne nous le permettra pas. Une technique d exploitation a été présentée en 2009 [GOTDEREF] : le GOT-Dereferencing. Puisque la GOT est située dans la section.data qui n est pas soumise à l aléa, il suffit de trouver des gadgets pour extraire un pointeur de fonction de la libc déjà appelé, de calculer la distance vers la fonction recherchée, et enfin de sauter dessus (regarder pour cela l exploit Wireshark [IPV]). De même, en fonction des versions de GCC et de la libc, d autres approches peuvent être envisagées (réécriture de certains pointeurs sensibles :.dynamic [DYN],.dtors [DTORS], etc.). Dans notre cas, nous utiliserons l appel système sys_mprotect après avoir réalisé un ET logique sur une adresse de la pile. Dans la version Red Hat (sans SSP), nous pouvons extraire le sysinfo dans un registre pour l utiliser comme passerelle vers sysenter. Dans la version Ubuntu, MySQL met aimablement l instruction sysenter à disposition dans la section.text. Il suffit donc de mettre un pivot vers notre ROP-chain dans le sysinfo, et de déclencher l appel à la routine _stack_check_fail de SSP [EXPLOIT]. 2.4 Autres voies d exploitation? L exemple du format string dans sudo (CVE ), publié début 2012, est assez parlant. Certaines personnes ont fait preuve d entrain pour son exploitation (exemple de l excellent article de longld [LONGLD]), même après les améliorations de plusieurs fonctionnalités de grsecurity qui se sont avérées être inutiles (pauvre Brad...). Ce qu il ne faut pas négliger, c est que l exploitation d une vulnérabilité peut être facilitée si des structures de données sensibles sont présentes dans la mémoire. sudo en est l exemple (astuce non présente dans l article de longld) ;). Dans le cas de MySQL, il peut être intéressant d investiguer la réécriture de valeurs sensibles dans la pile qui permettrait d obtenir les droits administrateur ou la permission FILE du SGDB. En enchaînant avec la fonctionnalité d UDF (User-Defined Function), un attaquant arrivera au même résultat : l obtention d un shell. Conclusion L analyse du CVE a permis de découvrir et mettre en pratique des techniques atypiques. En adaptant la recherche de gadget, il a été possible de contourner la restriction des caractères afin de placer notre charge utile en mémoire. De même, le modèle de Threading nous a fait découvrir une nouvelle technique d exploitation pour outrepasser SSP. De nos jours, de nombreuses protections userland sur Linux sont présentes, mais malgré cela, cette vulnérabilité nous montre que le développeur d exploit a encore une chance d arriver à ses fins. Remerciements Je tiens à remercier l équipe Synacktiv et André Moulu pour leur relecture. Références [DISCLO] Dec/4 [MARKET] marketshare/ [IDENTIFIER] en/identifiers.html [UTF-8] #Description [TCB] toolchain/tls.pdf [TCBLOCAL] [RET2LIBC] issue=58&id=4 [GOTCTF] quals-vuln500-write-up/ [GOTDEREF] pubs/acsac09.pdf [IPV] 14x-145-cve html [DYN] [DTORS] dtors.txt [LONGLD] exploiting-sudo-format-string-vunerability/ [EXPLOIT] /mysql-bof_CVE_2012_5611.py 8 Misc N 67 - Mai/Juin 2013
Architecture des ordinateurs
Architecture des ordinateurs Cours 7 17 décembre 2012 Archi 1/1 Fonctions, suite et fin Archi 2/1 Rappel Forme générale d un sous-programme (fonction) : etiquette sousprogramme: push ebp ; empile la valeur
Programmation assembleur : aperçu
Assembleur : Younès EL AMRANI. 1 Programmation assembleur : aperçu Programmation en assembleur : NASM Module M14 Semestre 4 Printemps 2010 Equipe pédagogique : Younès El Amrani, Abdelhakim El Imrani, Faissal
Structure d un programme
Architecture des ordinateurs Cours 6 Structure d un programme 3 décembre 2012 Archi 1/30 Programme en Assembleur Archi 2/30 Sections de données programme en assembleur = fichier texte (extension.asm) organisé
Logiciel de base. Première année ENSIMAG
Logiciel de base Première année ENSIMAG 1 Procédures, paramètres, pile En assembleur une fonction est une étiquette, c'est l'adresse de sa première instruction Lors de l'appel d'une fonction, la pile sert
Initiation à la sécurité
Initiation à la sécurité UE Systèmes informatiques 12 septembre 2011 Julien Raeis - http://raeis.iiens.net/ Présentation Ingénieur IIE 2005 Carrière dans la sécurité des systèmes Consultant en sécurité
Administration Réseau sous Ubuntu SERVER 12.10 Serveur DHCP
Installation d un serveur DHCP (Dynamic Host Configuration Protocol) sous Ubuntu Server 12.10 1 BERNIER François http://astronomie-astrophotographie.fr Table des matières 1. Comment le protocole DHCP alloue
Assembleur. Faculté I&C, André Maurer, Claude Petitpierre
Assembleur Faculté I&C, André Maurer, Claude Petitpierre INTRODUCTION Logiciel utilisé Faculté I&C, André Maurer, Claude Petitpierre MEMOIRE Mémoire Faculté I&C, André Maurer, Claude Petitpierre Mémoire
Compilation (INF 564)
Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation
Plan global Outils de développement et compilation. Plan. Objectifs des outils présentés. IDE, GCC/Clang, ASAN, perf, valgrind, GDB.
global Outils de développement et compilation IDE, GCC/Clang, ASAN, perf, valgrind, GDB Timothée Ravier LIFO, INSA-CVL, LIPN 1 re année cycle ingénieur STI 2013 2014 1 / 36 Objectifs des outils présentés
Sélection du contrôleur
Démo CoDeSys - 1 - 1. Configuration de l environnement de travail : Lancer le logiciel CoDeSys Fichier Nouveau Lors de la première utilisation, une boîte de dialogue apparaît permettant la sélection du
Qu est ce que Visual Guard. Authentification Vérifier l identité d un utilisateur
Qu est ce que Visual Guard Authentification Vérifier l identité d un utilisateur Autorisation Qu est-ce qu un utilisateur peut faire dans l application Audits et rapports Fonctionnalités d Audit et de
HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE
HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE Projet de semestre ITI soir 4ème année Résumé configuration OpenVpn sur pfsense 2.1 Etudiant :Tarek
Structure fonctionnelle d un SGBD
Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert
Manuel de System Monitor
Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig Traduction française : Yves Dessertine Traduction française : Philippe Guilbert Traduction française : Robin Guitton Relecture de la documentation
Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN http://www.oklabs.net
Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN http://www.oklabs.net : Champ Encodé SKWRITTEN() : Champ Variable défini Précédemment & définissant l état des champs à suivre ECT
Machines virtuelles. Brique ASC. Samuel Tardieu [email protected]. Samuel Tardieu (ENST) Machines virtuelles 1 / 40
Machines virtuelles Brique ASC Samuel Tardieu [email protected] École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles La compilation peut
Prototype de canal caché dans le DNS
Manuscrit auteur, publié dans "Colloque Francophone sur l Ingénierie des Protocoles (CFIP), Les Arcs : France (2008)" Prototype de canal caché dans le DNS Lucas Nussbaum et Olivier Richard Laboratoire
Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction
PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés
Bases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014
Mise en place d un service FTP sous Linux Bouron Dimitri 20/04/2014 Ce document sert de démonstration concise pour l installation, la configuration, la sécurisation, d un serveur FTP sous Linux utilisant
Les attaques par corruption de mémoire Synopsis Mickael Deloison 22/10/2008
Les attaques par corruption de mémoire Synopsis Ce document traite des failles permettant des attaques par corruption de mémoire, les attaques par buffer overflow (dépassement de buffer) étant les plus
Cours d initiation à la programmation en C++ Johann Cuenin
Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................
Architecture des ordinateurs
Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?
Synchronisation Mysql (Replication)
Synchronisation Mysql (Replication) [Petit avertissement : Bon, après relecture, je constate que c'est l'un des plus mauvais document que j'ai écrit. Mais bon, il est quand même utile ce torchon.] Nous
Procédure pas à pas de découverte de l offre. Service Cloud Cloudwatt
Procédure pas à pas de découverte de l offre Service Cloud Cloudwatt Manuel Utilisateur 03/07/2014 Cloudwatt - Reproduction et communication sont interdites sans autorisation 1/45 Contenu 1. Introduction...
Les failles Format String
Les failles Format String Concept et exploitation Warr 01/10/2010 Introduction Je rédige ce papier afin de combler un manque cruel (à mon sens) de documentation à propos de ces failles. L essentiel des
www.netexplorer.fr [email protected]
www.netexplorer.fr 05 61 61 20 10 [email protected] Sommaire Sécurité applicative... 3 Authentification... 3 Chiffrement... 4 Traçabilité... 4 Audits... 5 Sécurité infrastructure... 6 Datacenters...
Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet
Expérience d un hébergeur public dans la sécurisation des sites Web, CCK Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet Plan Introduction Sécurisation des sites Web hébergés a Conclusion Introduction
OPTENET DCAgent 2.01. Manuel d'utilisateur
OPTENET DCAgent 2.01 Manuel d'utilisateur SOMMAIRE 1. INTRODUCTION...1 2. INSTALLATION...2 3. ÉTABLISSEMENT DES PERMISSIONS...4 Pour de plus amples informations, reportez-vous aux annexes «Conditions requises
SQL MAP. Etude d un logiciel SQL Injection
Introduction Ce TP a pour but d analyser un outil d injection SQL, comprendre les vulnérabilités d une BD et de mettre en œuvre une attaque par injection SQL. Prise en main du logiciel SQLMap est un outil
Sommaire. 1 Introduction 19. 2 Présentation du logiciel de commerce électronique 23
1 Introduction 19 1.1 À qui s adresse cet ouvrage?... 21 1.2 Comment est organisé cet ouvrage?... 22 1.3 À propos de l auteur... 22 1.4 Le site Web... 22 2 Présentation du logiciel de commerce électronique
Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin
Sécurité des sites Web Pas un cours un recueil du net INF340 Jean-François Berdjugin Vulnérabilité Définition (wikipédia) : Dans le domaine de la sécurité informatique, une vulnérabilité est une faiblesse
Introduction aux buffer overflow, CS335
Introduction aux buffer overflow, CS335 http ://www.phrack.org/archives/49/p49-14 1. Smashing the stack for fun and profit by Aleph One November 1996 Aleph1 United Kingdom : www.aleph1.co.uk Mail : [email protected]
4. Utilisation d un SGBD : le langage SQL. 5. Normalisation
Base de données S. Lèbre [email protected] Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :
Service FTP. Stéphane Gill. [email protected]. Introduction 2
Stéphane Gill [email protected] Table des matières Introduction 2 Protocole ftp 2 Utilisation du client ftp 2 Installer un serveur vsftp 4 Configurer le service ftp 5 Le fichier /etc/services
Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC. Qui contacter pour commencer la mise en place d une configuration de test?
Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC Qui contacter pour commencer la mise en place d une configuration de test? CyberMUT Paiement - Paiement CIC Commerce Electronique mailto:[email protected]
Rappels d architecture
Assembleur Rappels d architecture Un ordinateur se compose principalement d un processeur, de mémoire. On y attache ensuite des périphériques, mais ils sont optionnels. données : disque dur, etc entrée
Le langage C. Séance n 4
Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de
Java et les bases de données
Michel Bonjour http://cuiwww.unige.ch/~bonjour CENTRE UNIVERSITAIRE D INFORMATIQUE UNIVERSITE DE GENEVE Plan Introduction JDBC: API SQL pour Java - JDBC, Java, ODBC, SQL - Architecture, interfaces, exemples
Big Data. Cyril Amsellem Consultant avant-vente. 16 juin 2011. Talend 2010 1
Big Data Cyril Amsellem Consultant avant-vente 16 juin 2011 Talend 2010 1 Big Data Architecture globale Hadoop Les projets Hadoop (partie 1) Hadoop-Core : projet principal. HDFS : système de fichiers distribués
Mysql. Les requêtes préparées Prepared statements
Mysql Les requêtes préparées Prepared statements Introduction Les prepared statements côté serveur sont une des nouvelles fonctionnalités les plus intéressantes de MySQL 4.1 (récemment sorti en production
Protocole SSH-2.0. Tuan-Tu, TRAN. Janvier 2009
Janvier 2009 1 2 Etablissement des clés de session Protection des données échangées 3 Identification par mot de passe Identification par clé publique Identification par hôte 4 Utilisations de Secure Shell
Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux
Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux Distribué par Le Projet Documentation d'openoffice.org Table of Contents 1) Préambule...3 2) Télécharger
WDpStats Procédure d installation
WDpStats Procédure d installation Table de matières WDpStats... 1 Procédure d installation... 1 Table de matières... 1 Résumé... 2 Réquisits... 2 Installation... 2 Difficultés... 6 Lancement... 7 wdpstats_install_oracle_fr.xml
MySQL - Réplication. Fichiers de relais et de statut de la réplication. Mise en place de la réplication
MySQL - Réplication Réplication MySQL MySQL supporte la réplication unidirectionnelle interne. Un serveur sert de maître, et les autres servent d esclaves. Le serveur entretient des logs binaires, ainsi
Conventions d écriture et outils de mise au point
Logiciel de base Première année par alternance Responsable : Christophe Rippert [email protected] Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette
Compromission d'un environnement VOIP Cisco Exploitation du Call Manager SSTIC 2013. Francisco. Juin 2013 LEXFO 1
Compromission d'un environnement VOIP Cisco Exploitation du Call Manager SSTIC 2013 Francisco Juin 2013 LEXFO 1 Plan Introduction Méthodologie Exploitation Démo Conclusion Juin 2013 LEXFO 2 Introduction
Sécurité des applications Retour d'expérience
HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet Netfocus Sécurité des applications Retour d'expérience Nicolas Collignon
Tutoriel XBNE Connexion à un environnement XBMC distant
Tutoriel XBNE Connexion à un environnement XBMC distant 1. Introduction... 3 2. Quelques notions d informatique... 4 2.1 Réseau informatique... 4 2.1.1 Adresse ip... 4 2.1.2 Fixer l adresse ip d un équipement...
Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement
Guillaume HARRY l Contenu sous licence Creative Commons CC-BY-NC-ND Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement P. 2 1. Introduction 2.
Programmation système I Les entrées/sorties
Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les
Le serveur web Apache
Le serveur web Apache Emmanuel Courcelle Lipm CNRS INRA Auzeville Emmanuel Courcelle Apache au Lipm Applications avec interface Web Applications bioinformatiques Wikis, CMS,... Serveur Web = apache sur
Installation d'un serveur FTP géré par une base de données MySQL
BTS INFORMATIQUE DE GESTION Option Administrateur de réseaux développement d applications COMPTE-RENDU D ACTIVITE ACTIVITE N 2 Nom et Prénom : Casanova Grégory Identification (objectif) de l activité Installation
MYXTRACTION. 2009 La Business Intelligence en temps réel
MYXTRACTION 2009 La Business Intelligence en temps réel Administration Qui sommes nous? Administration et management des profils Connecteurs Base des données Gestion des variables et catégories de variables
<Insert Picture Here> Solaris pour la base de donnés Oracle
Solaris pour la base de donnés Oracle Alain Chéreau Oracle Solution Center Agenda Compilateurs Mémoire pour la SGA Parallélisme RAC Flash Cache Compilateurs
DSI - Pôle Infrastructures
Département du Système d Information CONTEXTE DSI - Pôle Infrastructures SUJET Architecture cible pour un projet devant intégrer le SI de l'inserm référence PI01091V02V.doc version statut créé le 29/06/2006
SSH, le shell sécurisé
, le shell sécurisé Objectifs : 1. Présenter le protocole et les outils associés Sébastien JEAN Pourquoi 1/2? Les services standards ne supportent que peu de propriétés de sécurité souvent l identification,
Haka : un langage orienté réseaux et sécurité
Haka : un langage orienté réseaux et sécurité Kevin Denis, Paul Fariello, Pierre Sylvain Desse et Mehdi Talbi [email protected] [email protected] [email protected] [email protected] Arkoon Network
Le langage SQL Rappels
Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,
Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7
Cahier des charges driver WIFI pour chipset Ralink RT2571W sur hardware ARM7 RevA 13/03/2006 Création du document Sylvain Huet RevB 16/03/2006 Fusion des fonctions ARP et IP. SH Modification des milestones
Présentation du PL/SQL
I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur
Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions
Module Magento SOON Soon_AdvancedCache Rédacteur Hervé G. Lead développeur Magento [email protected] AGENCE SOON 81 avenue du Bac 94210 LA VARENNE ST HILAIRE Tel : +33 (0)1 48 83 95 96 Fax : +33 (0)1
CNAM 2010-2011. Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010
CNAM 2010-2011 Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010 Déploiement d une application dans le cloud. 1. Cloud Computing en 2010 2. Offre EC2
GlobalScape Secure FTP Server 3.0.2 Buffer Overflow
GlobalScape Secure FTP Server 3.0.2 Buffer Overflow [email protected] Traduction française: jerome[at]athias.fr http://www.athias.fr/jerome/doc/ Qu est-ce que le Serveur FTP Sécurisé GlobalScape?...
Cours Programmation Système
Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda [email protected] Février
Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt
Client sur un domaine stage personnes ressources réseau en établissement janvier 2004 Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt Lycée de Villaroy 2 rue Eugène Viollet Le Duc BP31 78041
Présentation du module Base de données spatio-temporelles
Présentation du module Base de données spatio-temporelles S. Lèbre [email protected] Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes
«clustering» et «load balancing» avec Zope et ZEO
IN53 Printemps 2003 «clustering» et «load balancing» avec Zope et ZEO Professeur : M. Mignot Etudiants : Boureliou Sylvain et Meyer Pierre Sommaire Introduction...3 1. Présentation générale de ZEO...4
Alexandre Buge Epitech 5 Promo 2004. Soutenance de stage du 01/03/2004 au 31/08/2004
Alexandre Buge Epitech 5 Promo 2004 Soutenance de stage du 01/03/2004 au 31/08/2004 15 Septembre 2004 Sommaire 1 Introduction : présentation de l entreprise 2 Développement au sein de Skyrecon Les API
Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.
: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL
Playing with ptrace() for fun and profit
sous GNU/Linux [email protected] EADS Corporate Research Center - DCR/STI/C SSI Lab SSTIC 2006 Il était une fois... Sous UNIX, ptrace() est le seul moyen de debuggage. User-space, Interface rigide
Performances. Gestion des serveurs (2/2) Clustering. Grid Computing
Présentation d Oracle 10g Chapitre VII Présentation d ORACLE 10g 7.1 Nouvelles fonctionnalités 7.2 Architecture d Oracle 10g 7.3 Outils annexes 7.4 Conclusions 7.1 Nouvelles fonctionnalités Gestion des
Les vulnérabilités du noyau. LECORNET Olivier LEGROS Bruno VIGIER Nicolas Promo 2005
Les vulnérabilités du noyau LECORNET Olivier LEGROS Bruno VIGIER Nicolas Promo 2005 27 Septembre 2003 Table des matières 1 Introduction 3 2 Fonctionnement du noyau 4 2.1 Les modes de fonctionnements............................
Easy to. report. Connexion. Transformation. Stockage. Construction. Exploitation. Diffusion
M y R e p o r t, L A S O L U T I O N R E P O R T I N G D E S U T I L I S AT E U R S E X C E L Connexion Transformation Stockage Construction Exploitation Diffusion OBJECTIF REPORTING : De la manipulation
BTS SIO 2012-2014. Dossier BTS. PURCHLA Romain
BTS SIO 2012-2014 Dossier BTS PURCHLA Romain 2012-2014 Lors d une création de serveur web plusieurs solution nous son proposé en voici quelques une. - LAMP (Linux, Apache, MySql, Php) La mise en place
Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique
Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation
1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :
GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours
Manuel d intégration API FTP SMS ALLMYSMS.COM
Manuel d intégration API FTP SMS ALLMYSMS.COM 29/01/2014 TABLE DES MATIERES 1. ENVOI DE SMS (SMS-MT PUSH)... 3 1.1. GENERALITES... 3 1.1.1. Adresse FTP... 3 1.1.2. Paramètres de connexion... 3 1.1.3. Remarques...
Manuel du client de bureau distant de KDE
Manuel du client de bureau distant de KDE Brad Hards Urs Wolfer Traduction française : Joëlle Cornavin Traduction française : Yann Neveu Relecture de la documentation française : Ludovic Grossard 2 Table
1/ Présentation de SQL Server :
Chapitre II I Vue d ensemble de Microsoft SQL Server Chapitre I : Vue d ensemble de Microsoft SQL Server Module: SQL server Semestre 3 Année: 2010/2011 Sommaire 1/ Présentation de SQL Server 2/ Architerture
SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)
SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients
Configuration d un firewall pour sécuriser un serveur WEB
Configuration d un firewall pour sécuriser un serveur WEB Contexte : Dans le cadre de la mise en place d un serveur intranet, il est demandé de sécuriser son accès et de le personnaliser en fonction de
ERESI : une plate-forme d'analyse binaire au niveau noyau. The ERESI team http://www.eresi-project.org
ERESI : une plate-forme d'analyse binaire au niveau noyau The ERESI team http://www.eresi-project.org ERESI: quelques rappels 7 années de développement Plusieurs contributeurs 5 logiciels, 14 bibliothèques
SECURIDAY 2012 Pro Edition
SECURINETS CLUB DE LA SECURITE INFORMATIQUE INSAT SECURIDAY 2012 Pro Edition [Application de notification en cas d incident] Roua TOUIHRI (RT3) Nesrine DRIWECH (RT3) Amira ABID(GL3) Chef Atelier : Aymen
COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA
COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA DEFINITION D UNE BIBLIOTHEQUE D ACCES A UNE BASE DE DONNEES Cet article s adresse aux administrateurs SAS en charge de la mise à disposition des
Description de SQL SERVER. historique
Description de SQL SERVER SQLServer est un SGBDR qui accepte et traite des requêtes concurrentes provenant de divers clients. Il envoie les réponses aux clients concernés via des API (Application Programming
Master Exploration Informatique des données DataWareHouse
Master Exploration Informatique des données DataWareHouse Binôme Ahmed BENSI Enseignant tahar ARIB SOMMAIRE I. Conception...1 1. Contexte des contrats...1 2. Contexte des factures...1 II. Modèle physique...2
Rappels Entrées -Sorties
Fonctions printf et scanf Syntaxe: écriture, organisation Comportement Données hétérogènes? Gestion des erreurs des utilisateurs 17/11/2013 Cours du Langage C [email protected] ibrahimguelzim.atspace.co.uk
HowTo Installer egroupware 1.2 sur SME Serveur 7.0
HowTo Installer egroupware 1.2 sur SME Serveur 7.0 Auteur: Stéphane Gauvin, [email protected] Contribution: N/A Version supportée: SME Serveur 7.0 License: GPL Dernière Mise à jour: 18/03/2006
Ordinateurs, Structure et Applications
Ordinateurs, Structure et Applications Cours 10, Les interruptions Etienne Tremblay Université Laval, Hiver 2012 Cours 10, p.1 Les interruptions du 8086 Une interruption interrompt l exécution séquentielle
SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste
Christian Soutou Avec la participation d Olivier Teste SQL pour Oracle 4 e édition Groupe eyrolles, 2004, 2005, 2008, 2010, is BN : 978-2-212-12794-2 Partie III SQL avancé La table suivante organisée en
Fiche Technique. Cisco Security Agent
Fiche Technique Cisco Security Agent Avec le logiciel de sécurité de point d extrémité Cisco Security Agent (CSA), Cisco offre à ses clients la gamme de solutions de protection la plus complète qui soit
PostgreSQL. Formations. Catalogue 2011. Calendrier... 8
Formations PostgreSQL Catalogue 2011 Administration PostgreSQL... 2 PostgreSQL Avancé... 3 PostgreSQL Réplication : Hot Standby... 4 Développer avec PostgreSQL... 5 Migration Oracle vers PostgreSQL...
Python - introduction à la programmation et calcul scientifique
Université de Strasbourg Environnements Informatique Python - introduction à la programmation et calcul scientifique Feuille de TP 1 Avant de commencer Le but de ce TP est de vous montrer les bases de
Vulnérabilités et sécurisation des applications Web
OSSIR 09/09/2002 Vulnérabilités, attaques et sécurisation des applications Web Pourquoi les firewalls sont impuissants [email protected] http://www.edelweb.fr http://www.chambet.com Page 1 Planning
Table des matières. Avant-propos... Préface... XIII. Remerciements...
Avant-propos... XI Préface... XIII Remerciements... XV Introduction... XVII Pourquoi faire un pentest?... XVII Pourquoi Metasploit?... XVII Un bref historique de Metasploit.... XVIII À propos de ce livre...
Tests de performance du matériel
3 Tests de performance du matériel Après toute la théorie du dernier chapitre, vous vous demandez certainement quelles sont les performances réelles de votre propre système. En fait, il y a plusieurs raisons
Dans le cadre de SECURIDAY 2010. Et sous le thème de Computer Forensics Investigation SECURINETS. Analyse des fichiers LOG. Tarek LABIDI (RT3)
Dans le cadre de SECURIDAY 2010 Et sous le thème de Computer Forensics Investigation SECURINETS Vous Présente l atelier : Analyse des fichiers LOG Chef Atelier : Tarek LABIDI (RT3) Mongia BEN HAMMOUDA
Cours CCNA 1. Exercices
Cours CCNA 1 TD3 Exercices Exercice 1 Enumérez les sept étapes du processus consistant à convertir les communications de l utilisateur en données. 1. L utilisateur entre les données via une interface matérielle.
