Publications

Apprendre à lire sans prof ?

Je vous propose de lire un article plein d’espoir et qui donne le sourire, de Rue89. Il parle d’une expérience où des enfants éthiopiens ont appris à lire seul, grâce à des tablettes. J’aime quand les « nouvelles technologies » ont des effets bénéfiques comme cela 🙂

Apprendre à lire sans prof ? Les enfants éthiopiens y arrivent, par Yann Guégan via Rue89

Des enfants éthiopiens avec les tablettes distribuées par One Laptop Per Child (Matt Keller/OLPC)

Publicités

L’Usine Nouvelle : pour en finir avec le management

Saunier Duval est abonné à l’Usine Nouvelle et les magasines sont disponibles à côté de la machine à café. Ou comment transformer ses pauses en sessions lecture ! Ce matin, c’est la couverture du numéro du 7 Juin 2012 qui a retenu mon attention :

Usine Nouvelle

POUR EN FINIR AVEC LE MANAGEMENT
Tous égaux ? Des dirigeants tentent de dépasser le modèle taylorien à bout de souffle, en misant sur l’autonomie.

Un dossier de 5 pages est consacré à ce sujet, parlant de méthodes de management plus modernes, basées sur la suppression des niveaux intermédiaires de la hiérarchie, ce qui responsabilise et laisse plus de liberté à chaque employé, pour au final augmenter la qualité, l’amélioration et la productivité des entreprises.

Le dossier est introduit en citant Brian M.Carney et Isaac Getz, auteurs de Liberté & Cie, livre dans lequel ils développent cette théorie de libération des entreprises. Les auteurs proposent, sur le site dédié à leur livre, le dossier de l’Usine Nouvelle au format PDF, librement accessible.

A ne pas rater dans le dossier : le petit encart en page 3/5 avec un florilège de petites phrases de Jean-François Zobrist, fondateur de la fonderie Favi et fervent partisan de l’autonomie des salariés. Ma préférée :

Il y a le même taux d’imbéciles chez les ouvriers que chez les ingénieurs mais les seconds coûtent plus chers.

Le dossier est très intéressant, bien que le titre soit un brin aguicheur. Il s’agit ici de changer le management pour dynamiser les équipes et les entreprises pour produire mieux, créer plus et innover. Je vous conseille d’ailleurs aussi de lire l’article Peut-on innover sans travailler et investir autrement ? d’Aurélie Barbaux, journaliste à l’Usine Nouvelle, qui en Janvier 2012 concluait son article en évoquant les méthodes de Favi justement.


Code Injection Attacks on Harvard-Architecture Devices

Je vous conseille la lecture d’un article cosigné par Aurélien Francillon et Claude Castelluccia, tous les deux chercheurs à l’INRIA, montrant la faisabilité d’une attaque par injection de code sur un appareil utilisant une architecture de type Harvard. L’architecture Harvard est réputée protégée contre ce genre d’attaque car la mémoire programme et la mémoire vive sont physiquement séparées. Pour les besoins de l’article, les chercheurs attaquent un réseau de capteurs construits autour d’un micro-contrôleur AVR d’Atmel. Ils utilisent certes une faille qui semble évidente (buffer overflow), mais la mise en œuvre de l’attaque est impressionnante ! Ils font surtout la démonstration que l’infection peut être définitive et pas simplement temporaire comme l’avaient montré de précédentes publications. Une fois un capteur infesté, l’infection peut se propager d’elle-même aux autres capteurs et l’attaquant prend ainsi le contrôle du réseau tout entier.

ABSTRACT

Harvard architecture CPU design is common in the embedded world.
Examples of Harvard-based architecture devices are the Mica family
of wireless sensors. Mica motes have limited memory and can process
only very small packets. Stack-based buffer overflow techniques that
inject code into the stack and then execute it are therefore not
applicable. It has been a common belief that code injection is impossible
on Harvard architectures. This paper presents a remote code injection
attack for Mica sensors. We show how to exploit program vulnerabilities
to permanently inject any piece of code into the program memory
of an Atmel AVR-based sensor. To our knowledge, this is the first result
that presents a code injection technique for such devices.
Previous work only succeeded in injecting data or performing
transient attacks. Injecting permanent code is more powerful since
the attacker can gain full control of the target sensor.
We also show that this attack can be used to inject a worm that can propagate
through the wireless sensor network
and possibly create a sensor botnet. Our attack combines different techniques
such as return oriented programming and fake stack injection.
We present implementation details and suggest some counter-measures.

Code Injection Attacks on Harvard-Architecture Devices, par Aurélien Francillon et Claude Castelluccia.


Volatiles Are Miscompiled, and What to Do about It

Je vous conseille la lecture d’un excellent article rédigé par deux chercheurs de l’Université de l’Utah, à Salt Lake City, USA :  Volatiles Are Miscompiled, and What to Do about It. Eric Eide et John Regehr se sont rendus compte lors de leurs travaux que leur compilateur générait un code assembleur incorrect à partir d’un code en C contenant le mot-clé volatile. Ils ont alors évalué 13 compilateurs pour vérifier leur comportement en présence de ce mot faisant penser à un oiseau et ont constaté que tous y perdaient des plumes, générant des codes assembleurs qui ne faisaient pas du tout ce que les codes C demandaient ! L’article retrace leurs observations, décrit leurs méthodes de tests et propose des solutions pour éviter ou contourner ces mauvaises compilations.

ABSTRACT
C’s volatile qualifier is intended to provide a reliable link between
operations at the source-code level and operations at the memorysystem
level. We tested thirteen production-quality C compilers
and, for each, found situations in which the compiler generated
incorrect code for accessing volatile variables. This result is disturbing
because it implies that embedded software and operating
systems—both typically coded in C, both being bases for many
mission-critical and safety-critical applications, and both relying
on the correct translation of volatiles—may be being miscompiled.
Our contribution is centered on a novel technique for finding
volatile bugs and a novel technique for working around them. First,
we present access summary testing: an efficient, practical, and automatic
way to detect code-generation errors related to the volatile
qualifier. We have found a number of compiler bugs by performing
access summary testing on randomly generated C programs. Some
of these bugs have been confirmed and fixed by compiler developers.
Second, we present and evaluate a workaround for the compiler
defects we discovered. In 96% of the cases in which one of
our randomly generated programs is miscompiled, we can cause the
faulty C compiler to produce correctly behaving code by applying
a straightforward source-level transformation to the test program.

Au cas où l’abstract ne vous aurait pas suffit, voici un exemple tiré de l’introduction de l’article qui vous mettra l’eau à la bouche et vous fera lire l’article !

/* linker will map to the proper I/O register */
extern volatile int WATCHDOG;
void reset_watchdog()
{
    WATCHDOG = WATCHDOG; /* load, then store */
}

Compilé avec GCC pour IA32 :

reset_watchdog:
    movl WATCHDOG, %eax
    movl %eax, WATCHDOG
    ret

Compilé avec GCC pour MSP430 :

reset_watchdog:
    ret

Oui, il y a un os avec ce chien de garde !

Bonne lecture !

 

 

 


Linux Pratique HS : la programmation avec Python

Le magazine Linux Pratique vient de sortir un hors-série consacrée à la programmation en Python. Je m’intéresse à Python depuis début décembre, j’entends beaucoup de bien à son sujet et j’avais décidé de regarder de plus près à quoi ressemble ce langage au nom de serpent. Ce Linux Pratique HS m’en donne justement l’occasion. J’en ai déjà lu la moitié et je dois dire que je suis impressionné par la puissance des opérations de bases notamment avec les listes et les dictionnaires. Le module de gestion des arguments en ligne de commande, construisant l’aide automatiquement et automatisant les vérifications et actions à faire à la réception des arguments est tout simplement génial !

Si vous souhaitiez découvrir le langage Python, c’est le moment !

 

Linux Pratique HS numero 23Introduction et notions de base
Python, c’est quoi ?
Les bases de Python

Les bonnes pratiques
Le slicing et les structures de liste
Les fonctions et les modules
Analyser des chaînes de caractères à l’aide des expressions régulières
Utiliser les arguments de la ligne de commandes

La gestion des fichiers
Manipulation de fichiers en Python
Lire et écrire des fichiers XML
Créer et exploiter des archives avec Python

La programmation orientée objet
La programmation orientée objet en Python – épisode 1 : la théorie
La programmation orientée objet en Python – épisode 2 : la pratique

Cas pratiques
Rédiger et envoyer un e-mail avec Python 3.2
Du SQL dans vos fichiers : le module sqlite3
Le Python qui jouait à la bataille navale