Posts

Si vous tenez un concours sur le web sans rien valider…

Contexte: Je suis finaliste pour le semi-concours Musique Plus “Geek Recherché” où le public est invité à influencer les juges en votant pour leur geek préféré.

Projet: Automatiser des votes, parce que je me dis que ça serait amusant et que c’est une façon comme une autre de prouver le geekness.

Analyse

2013-10-22 09-54-23On commence par vérifier quels appels JavaScript sont faits au moment où on clique sur le bouton pour voter à l’aide des “Developpers Tools” de Google Chrome (F12). On identifie alors 3 URL:

  • Gigya, un tiers parti qui fait de l’intégration sociale et qui expose un API bien documenté
  • M+ Backend, qui nous indique par le nom de la méthode qu’on a affaire à Atex Web CMS. L’étude de cas qu’ils ont réalisée pour Astral est une bonne lecture.
  • M+ Vote qui est juste un .php*

En faisant la même requête une deuxième fois, on remarque que certains paramètres changent d’une session à l’autre. Cela pourrait poser problème puisqu’il faut idéalement être capable de recréer la requête au complet.

Dans notre cas, on parle des paramètres “callback” et “_” des appels vers M+. Parce qu’on est vraiment geek et qu’on sait ces choses-là, on peut tout de suite ignorer callback parce que c’est un appel de retour pour jQuery. “_”, quant à lui, est en fait l’heure Unix (ou le epoch time) actuelle.

*Quand on a codé le jeudi 17 octobre, il n’y avait que deux appels. Je me suis rendu compte qu’ils avaient ajouté un troisième appel vers vote.musiqueplus.com en écrivant ce billet.

Solution 1

blobbChristof Graf a été le premier à arriver à une solution. Il a créé un petit programme en C# qui automatise les appels aux URLs en faisant varier la durée entre chaque appel. Il dirige alors son trafic vers le réseau TOR, qui anonymise le trafic et change d’adresse IP toutes les 10 minutes.  Cela a pour effet que M+ voit que les votes générés viennent d’adresses IP différentes et peut plus difficilement éliminer ces votes.

Défense: Retirer les votes où les IPs correspondent avec des TOR exit node.

Solution 2

J’ai moi-même écrit quelque chose de semblable en Python. Ma méthode utilise une liste de proxy et vote une fois pour chaque proxy.

Défense: Retirer les votes où les IPs correspondent avec des serveurs proxy ou juste retirer tous les IPs ne venant pas du Canada (je ne suis pas si populaire que ça en Chine).

Solution 3

mctraffic_code2SynneR y est allé un peu plus méchant, en utilisant une plateforme de publicité en ligne qui permet d’y insérer son propre html, McTraffics. Mais même si seuls les tags <img> et <a> sont permis, on peut quand même faire des appels vers des ressources JavaScript si les paramètres ne changent pas.

La méthode de SynneR a l’avantage d’utiliser des vraies machines avec des vrais IPs venant du Québec (et non pas des IPs potentiellement listés comme louche parce qu’on y trouve des web proxy ou des TOR exit node, contrairement à Chris et moi).

Défense: Ajouter un jeton anti-CSRF aux requêtes.

Dans tous les cas, nous n’avons pas pris la peine de modifier le paramètre “_” pour changer l’heure de nos votes. Alors assumant que M+ enregistre tous les paramètres lors du vote, tous les votes qui ont 1382063817115 ou 1382063676307 comme date/heure (au millième de seconde près) ne sont pas légitimes.

Conclusion

Ça nous semblait une belle opportunité de montrer que nous sommes geek. Ça n’est pas méchant: j’en parle, je documente, le vote des autres n’a pas été trafiqué et nous n’avons pas causés d’attaques de déni de service. Juste un petit projet entre chums un jeudi soir: rien de bien grave, quoi.

On en profite pour sensibiliser les gens au sujet des risques associés à exécuter un tel évènement sur Internet. Les futurs concours organisés par Musique Plus n’en seront que plus représentatifs. Au cours des prochains jours, je travaillerai avec M+ pour mitiger ce type “d’attaque” à l’avenir. Le code source des trois méthodes sera éventuellement rendu disponible.

À suivre…

Mises à jour

Comment je me sens comparé à mes collègues qui font carrière en sécurité

Comment je me sens comparé à mes collègues qui font carrière en sécurité

2013-10-24 13:05
J’ai envoyé un courriel au service de l’auditoire de Musique Plus pour leur demander si ils étaient intéressés à jaser pour mitiger un peu ce qu’on a fait avant que je libère le code. Je mentionne la politique de Rain Forest Puppy.

2013-10-24 14:07
“Votre message a été transféré aux personnes concernées.”

2013-10-31 17:00
Le “mainteneur” chez M+ ne m’a toujours pas contacté. Le code source qui a rendu ce billet possible est maintenant disponible.

Télécharger les vidéos sur le site de Musique Plus

Je n’ai pas la télévision par câble: pas besoin puisque j’ai Internet! Seul notre serveur multimédia est branché sur l’écran du salon. Je suis quelques émissions “classiques” sur Radio-Canada et Musique Plus et, heureusement, les deux permettent l’écoute d’une partie de leur programmation sur le web. Cependant, ces sites ne sont pas du tout adaptés à la navigation “de salon” (sans clavier, sur un grand écran). Je dois donc me débrouiller pour télécharger les épisodes sur mon serveur afin de les écouter plus tard avec XBMC. Read more

Réduire le pourriel physique

Aussi loin que la communication électronique existe, il y a des messages publicitaires non sollicités. Si c’était un gros problème au milieu des années 1990, le 90% de spam sur la totalité des courriels échangés aujourd’hui [source] n’atteint plus vraiment leur cible.

Je reçois environ 15 de ces courriels indésirables par jour et ils sont TOUS détectés par les filtres antispam de Google.

Pourtant, chaque jour, ma boîte aux lettres physique se remplit de publicité et je dois prendre de mon temps pour déplacer ce papier gaspillé vers le recyclage.

Comment peut-on se protéger contre le spam physique?

Sacs de publicité

J’ai de la difficulté à comprendre pour quelle raison quelqu’un irait volontairement prendre connaissance du contenu d’un sac rempli de publicité. Pour moi, c’est un peu comme si quelqu’un m’envoyait un fichier .zip rempli de banderoles publicitaires.

J’ai leur numéro de téléphone; moi aussi j’vais les spammer!

J’ai pris la peine d’appeler au numéro apparaissant dans le bas des sacs en question pour poser LA question: “Est-ce que c’est possible de ne plus recevoir de sac?”

Non seulement c’est possible, mais en plus, le processus pour ne plus en recevoir est bien défini chez les compagnies qui distribuent cette plaie: on vous envoie un pictogramme autocollant qu’il faut poser près de votre porte ou boite aux lettres. Plutôt simple, mais j’aurais préféré ne pas dégrader visuellement ma porte de logement en y mettant ces vignettes.

Bref, deux appels téléphoniques et une semaine plus tard, je recevais ces lettres:

Victoire!

Ça fait maintenant 6 mois que les vignettes sont installées sur la porte du bâtiment et les livreurs respectent la consigne.

Si vous voulez aussi réduire quantité de pourriels physiques que vous recevez, je vous invite à communiquer avec ces compagnies qui en distribuent:

  • Québécor (Sac plus): +1-877-663-9002
  • Transcontinental (Publisac): +1-888-999-2272
  • Pages Jaunes: Site web

Connaissez-vous d’autres techniques pour réduire le spam physique?

Archiver ses connaissances

Le contenu de mon garde-robe

J’ai accumulé beaucoup de documentation papier au cours de mes 8 années d’études postsecondaire. Des livres, des notes de cours autant avec encre numérique sur Tablet PC que manuscrite. Inutile de dire que tous ces livres et cartables prennent un espace physique considérable.

Dans son état actuel, cette connaissance est presque perdue puisque je n’ai aucune façon d’indexer mon contenu afin de le retrouver facilement. Imaginez une bibliothèque sans système Dewey. Dans quel garde-robe, quelle boite, quel cartable, séparateur, quelle page, dans quel paragraphe se trouve mon information? Heureusement, s’il y a un domaine dans lequel les ordinateurs excellent, c’est bien l’indexion de contenu!

Les avantages de passer à un support numérique

  • L’accessibilité est bien meilleure: un fichier PDF est beaucoup plus simple à ouvrir qu’un cartable dans le fond d’une boite quelconque.
  • La recherche y est aussi grandement simplifiée. De plus, si je prends la peine de passer mes documents dans engin OCR (reconnaissance optique de caractères), j’aurai la possibilité de trouver réponse à mes questions très rapidement.
  • La durabilité du support numérique est supérieure au papier qui s’endommage avec le temps. Lorsqu’en concert avec une bonne stratégie de backup, les fichiers sont beaucoup plus résilients face aux accidents et désastres naturels.
  • La possibilité de partager ces documents est aussi un avantage inhérent au format numérique. Je pourrais rendre disponible pour téléchargement la totalité de mes notes manuscrites.

Méthodes de numérisation

Numériser des notes de cours, c’est facile. J’ai juste à aller la bibliothèque, mettre mon paquet de feuilles dans le feeder automatique, spécifier mon courriel et voilà! Un beau PDF dans ma boîte de réception.

Pour des livres, c’est un peu plus complexe car il faut couper la reliure afin d’avoir des feuilles mobiles. C’est une méthode destructive mais c’est la seule façon de faire à faible coût car les méthodes non destructives sont soit très complexes ou très dispendieuses. Comme mes livres ne sont pas des ouvrages précieux ou rare, je peux me passer de leur forme physique (et c’est un peu le but de l’opération ici).

L’aventure commencera donc par trouver un endroit qui offre un service de coupe. J’ai fini par aller chez Bureau en gros.

Le grosse tranche chez Bureau en Gros

Difficultés rencontrées

En réalité, l’opération s’est avéré plus complexe que prévue (surprise). J’ai utilisé un livre de 1104 pages pour mon premier test et je me suis heurté à plusieurs problèmes.

  • La taille maximale du courriel. Le scanneur peut envoyer des PDF par courriel, mais la taille du PDF ne doit pas excéder la taille maximale permise. Dans mon cas, j’ai procédé par paquet de 100 pages recto-verso, ce qui me faisait des fichiers d’environ 17 Mb. Ça m’a fait 11 fichiers séparés que j’ai dû assembler au final. La numérisation du livre a pris 45 minutes.
  • Le format de page non standard et la rotation des pages. C’est surement une mauvaise utilisation du scanneur de ma part, mais mon fichier résultat était au format était au format 8.5×11 alors qu’en réalité, le livre faisait une demie page. La rotation des pages était aussi un problème. Les pages pairs avaient une rotation de 90 degrés d’un sens et les pages impairs avaient une rotation de 90 degrés de l’autre. Rien de grave, simplement quelques ajustements mineurs que FoxIt PhantomPDF a su bien gérer.
  • OCR plus long que prévu. Ça ne sert à rien d’avoir une copie numérique si le texte reste une image. La reconnaissance optique des caractères a pris un bon deux heures avant de terminer.
  • Bookmarks. J’étais motivé et je voulais recréer la table des matières dans les bookmarks pour faciliter la navigation à l’intérieur du fichier. Ça m’a pris une demi-heure pour faire le tout.

Conclusion

C’est un processus long qui nécessite plus de temps et de travail que ce que je m’attendais au départ. Je suis tout de même très satisfait du résultat. Cette connaissance est maintenant beaucoup plus facile d’accès et j’ai réduit la quantité de mes biens physiques. Ce n’est évidemment pas encore à la portée de tous, mais je crois que mon professeur d’économie va être content d’enfin pouvoir enfin transporter sa référence en tout temps sur son iPad.

Ce qu’il reste du livre

Téléchargements

Téléphonie IP

Je suis toujours surpris à chaque fois que quelqu’un me montre sa facture de téléphone fixe. J’ai du mal a comprendre comment on peut exiger 30$ / mois pour une ligne fixe standard de base (aucune option n’est incluse à ce prix là — La facture de mes parents atteint 45$). Lorsque transportée de façon numérique, la voix prend 8 kbps et peut même descendre a un impressionnant 1 kbps avec un bon codec optimisé pour la voix comme G.729. Pour vous mettre en contexte, l’affichage d’une seule page Facebook est d’environ 700 kb; il faudrait donc parler plus de 10 minutes pour équivaloir à un affichage. Sachant qu’on paie déjà pour le service internet et que ce type d’audio ne laisse pas de trace sur la consommation mensuelle, comment peut-on justifier un tel prix pour un service de téléphonie?

Personnellement, je fais affaire avec voip.ms, une entreprise québécoise, pour ma téléphonie IP depuis plus de 2 ans et je ne retournerai jamais à la ligne fixe classique.

DéavantagesAvantages

  • Se base sur le réseau Internet
  • Besoin d’un téléphone IP (hardware ou software) ou d’un adapteur VoIP additionnel
  • Besoin d’être un peu geek pour l’installer
  • Service 911 optionnel disponible au coût de 1.50$ / mois

  • Très faible coût (genre 0.01$ / minute facturé aux 6 secondes ou 5$ / mois pour illimité)
  • Inclut afficheur, boite vocale, redirection et beaucoup plus!
  • Un appel en Amérique du Nord est considéré comme un appel local
  • Permet d’enregistrer vos conversations (pratique quand vous appelez les services à la clientèle)
  • Utilisation possible par plusieurs personnes, sur plusieurs appareils (potentiellement mobiles) simultanément

Adapteur VoIP par Cisco

Vous pouvez même conserver votre numéro de téléphone! (pas disponible dans toutes les villes)

On pourrait pousser ce raisonnement sur les appareils mobiles: je paie 30$ / mois pour le plan de données de mon téléphone intelligent. Pourquoi la voix qui me coute autant ne pourrait pas passer par le canal des données? Pour le moment, les Bell, Rogers et Telus de ce monde ne peuvent pas discriminer le trafic et l’utilisation que vous faites de vos Internets mobiles. Ils ne peuvent donc pas m’empêcher d’installer un Softphone (téléphone logiciel) sur mon mobile et ainsi éviter complètement d’utiliser leur canal de voix. D’ici quelques années, lorsque la technologie VoIP sera plus grand public, ces compagnies de cellulaires n’auront pas le choix de s’adapter à cette réalité… ou de faire du lobbyisme pour leur permettre de contrôler ce qui passe dans les tubes (voir mon billet sur le net neutrality pour plus d’information à ce sujet).

Entre temps, je vous suggère de jeter un coup d’oeil aux alternatives VoIP à votre facture téléphonique. L’adapteur VoIP à 60$ se rentabilise bien quand on économise par la suite 25$ / mois!