Ouverture du Panoptique Numérique
Présentation générale
Le site web du LOL a un nouvel espace, encore dégoulinant de peinture : le Panoptique Numérique ! Ça se trouve ici.
L'idée est de faire un traitement (actif et passif) sur le visiteur uniquement dans l'espace du Panoptique : si le visiteur n'y entre pas, il ne sera pas concerné.
Le principe est qu'à partir des logs bruts du LOL (qui du coup ne seront plus en l'état en lecture publique de façon directe, mais sur simple demande[1]) on filtre pour ne garder que ce qui concerne le Panoptique; le résultat étant un nouveau log
C'est à partir de ce log, et d'autres données qui seront collectées chez le visiteur via javascript et autre, que sera fait le mining.
Alors, comment ça marche concrètement ?
Les logs bruts de l'apache sont mis à jour toutes les 24 heures, vers 11h00. Entre temps, ils sont figés (on peut donc taper dedans comme on veut). Lors de la mise à jour, le fichier est réécrit complètement (comprendre que ce n'est pas un append sur les données).
Dans /panoptique/ se trouve un script PHP qui va lire le fichier des logs bruts, le parcourir ligne par ligne pour trouver ce qui concerne le panoptique, et écrire cela dans le nouveau fichier de log (qui est donc dédié au panoptique).
Le script PHP appelé toutes les 24 heures. Si on le lance plusieurs fois de suite dans la journée, il réécrira donc plusieurs fois les mêmes données (les mêmes causes produisent les mêmes effets, on est cohérents sur ce coup ;).
Si quelqu'un avait la joyeuse idée de lancer plusieurs fois le script en parallèle, les instances supplémentaires se suicideraient à cause du lock en écriture sur le fichier de log expurgé. Mais ça, OSEF car c'est pas prévu pour, et de toute façon une simple nouvelle invocation ensuite suffit à tout reconstruire.
Voilà voilà, donc ça avance pas mal, et il y a des idées marrantes qui arrivent (genre mise en abîme en utilisant les logs pour faire de la publication). On mettra bientôt en ligne les premiers traitements effectués sur les logs d'apache, en attendant de mettre en place le reniflage plus intrusif du visiteur.
Notes
[1] à creuser, on sait pas encore quoi en faire, mais on a des idées floues (comme les vendre à des entreprises russes faisant du SPAM :)
Lancement du projet LOLog
Concepts & principes
Tous les sites web et services internet, ou presque, collectent des informations sur leur activité : qui fait quoi, quand, et comment. L'idée du projet LOLog est plurielle :
- surveiller les gens qui surveillent le LOL en train de les surveiller;
- réfléchir sur la nature de l'adresse IP et des traces d'activité : est-ce que ce sont des informations personnelles, nominatives, à implications purement technique, autre chose ?
- montrer et expliquer ce à quoi ont accès les informaticiens quand on se connecte à leur site web;
- faire du mining rigolo sur les données pour voir si on peut en sortir des trucs.
Le projet LOLog a ses notes sur le wiki.
Remarques en vrac:
- le LOL collecte et publie les logs des gens qui se connectent au site web du LOL;
- actuellement, la justice dit que l'adresse IP n'est pas une donnée nominative, on peut donc en faire (presque) ce qu'on veut. Est-ce que la loi doit évoluer ?
- avec IPv6 et sa flopée d'adresses, on découple encore plus la relation entre le système physique et le système logique. Une IP qui n'identifie pas une personne l'identifie encore moins… ou plus, c'est selon, avec les fonctionnalités de géolocalisation propres à IPv6;
- les entreprises récupèrent aussi ces info pour leur site web, et ne se privent pas de les analyser pour mieux connaître leur clientèle;
- on peut songer à un traitement style Panopticlick de l'EFF.
Premiers traitements
Liste des IP qui ont chargé les logs du LOL
L'idée est de récupérer les IP qui ont chargé les logs du LOL
curl --silent http://labolyon.fr/labolyon.fr.log | grep "GET /labolyon.fr.log" | cut --fields 1 --delimiter ' ' | sort | uniq --count | while read nombre ip; do printf "$nombre : $ip \t"; resolveip --silent $ip; done
Liste des IP qui se sont connectées au site web du LOL
L'idée est de récupérer les IP qui ont consulté le site web du LOL
curl --silent http://labolyon.fr/labolyon.fr.log | cut --fields 1 --delimiter ' ' | sort | uniq --count | while read nombre ip; do printf "$nombre : $ip \t"; resolveip --silent $ip; done