En France, nous avons droit à la Hadopi, la "Haute Autorité pour la Création, la DistributionDiffusion des Œuvres, du Savoir et la Protection des ayants-droits sur Internet."
Je sais pas si les artistes arrivent à mieux remplir leurs frigo et si la culture est accessible à tous ou si ce sont juste de riches qui parviennent à s'enrichir encore plus.

 

 

namethese.png
source: Quantum Diaries
Parce que le savoir est relatif et à toute son importance


Ce que je sais en tout cas, c'est que pour mener leur mission à bien et s'assurer qu'internet ne soit plus utilisé pour télécharger illégalement, la Hadopi a décidé de responsabiliser le titulaire de l'abonnement internet face à un défaut de sécurisation.
Sauf que là, la Hadopi veut punir le titulaire au bout de trois avertissement par une coupure de la ligne pendant au minimum un mois, parce qu'il n'a pas réussi à sécuriser sa connexion.
Bon ben entendu, on ne va pas punir Sony, Sarkozy, les banquiers, les techniciens des centrales nucléaires iraniennes... Et ne pensez pas qu'ils veulent juste vous mettre à poil.

Enfin, si vous lisez cet article, je pense que vous êtes plus intéressés par la sécurité que la Hadopi et ses histoires de piratage. Entrons donc dans le vif du sujet.

 

 

 

 

Internet et la sécurité

Les ordinateurs, prévus à l'origine pour faire fonctionner de gros systèmes dans des entreprises, se sont forgés une place dans les foyers grâce aux progrès technologiques et à leurs polyvalence: jeux, traitement de texte, tableurs, retouche d'images, lecteur multimédia, connexions en réseau local.

 

 

 

 

ancien-imac.jpg
(Ancien modèle d'iMac - source)

 


Mais c'est surtout l'arrivée du réseau mondial Internet qui les ont rendu plus populaires.

Celui-ci a en effet de gros arguments: le savoir et les idées d'une personne pouvaient alors êtres transmises vers une audience mondiale, limités par la seule barrière physique de la langue.  Le courrier électronique, les groupes de discussionla messagerie instantanée, les sites web, les forums... n'ont alors cessé de se développer.

Hors, si les ordinateurs n'avaient à l'origine pas besoin d'une grande sécurité, étant isolé dans leurs entreprise et foyer, celle-ci s'est révélé indispensable avec Internet et l’arrivée des hacker et crackers, débutants ou vrais experts.

Le hacker, souvent confondu avec le cracker, se caractérise par l'informaticien qui cherche à agir pour le bien d'autrui.
Son but sera donc

 

 

 

  • D'informer l'utilisateur des risques de sécurité
  • D'améliorer la sécurité des systèmes existants
  • D'aider le peuple et les journalistes en proposant des systèmes anonymes, cryptés et décentralisés...

Le cracker lui se caractérise par l'informaticien qui cherche à agir uniquement pour lui.
Son but sera:

 

 

  • D'utiliser des systèmes anonymes pour agir sans se faire repérer et identifier.
  • De causer des dommages en détruisant des données ou du matériel
  • De dérober des données, souvent dans un but lucratif
  • D'usurper une identité...

Avec l'arrivée des tablettes, plus simple d'utilisation pour Mme Michu, qui n'a plus à savoir comment insérer un CD d'installation, la sécurité s'est faussement accrue en en empêchant certes les logiciels tiers d’accéder trop facilement à tout le système, mais en autorisant le vendeur à faire ce qu'il veut, ce qui est gênant en cas de piratage et même dangereux quand c'est volontaire.Les serveurs avec leurs bases de données deviennent aussi la proie des crackers.

 

 

 

Le piratage

ATTENTION: le faite de s'introduire dans un système informatique est illégal et est puni par la loi.
Si vous voulez acquérir des connaissances en piratage, vous ne pourrais le faire que sur le matériel vous appartenant, ou uniquement dans le cadre d'un audit de sécurité (renseignez-vous sur le sujet).

On va parler de trois cas que j'ai pu rencontrer.

 

 

 

Premier cas: défaçage de blog.

C'est arrivé à un ami, qui utilisait un blog basé sur Nucleus et qui n'avais pas été mis à jour suite à la découverte d'une faille de sécurité.
Le hacker ayant simplement recherché l’exploit permettant d'utiliser la faille de sécurité, puis recherché sur google les blogs qui utilisent une version qui n'est pas à jour.
Il a ensuite utilisé l'exploit pour défaçer le site web
Lire l'article

 

 

 

Second cas: faille Cross Site Scripting

J'avais découvert par hasard qu'un site contenait une faille de type Cross Site Scripting.
Des entrées de formulaires ne filtraient pas le caractère <, et permettaient donc d'afficher du code javascript sur le site.
Je les ai contacté par e-mail et ils ont pu corriger rapidement la faille de sécurité.

Attention par contre: si vous trouvez une faille de sécurité par hasard, et même si vous ne l'exploitez pas, faites attention en contactant la société gérant le site web.
Car même si vous n'avez rien fait de moralement répréhensible, elle pourrait tenter de vous attaquer.
Il peut être intéressant dans ce cas de passer par un intermédiaire comme zataz qui vous protégera et qui saura traiter le cas correctement (il vaut mieux être équipé en huissier et avocat)

 

 

 

 

Troisième cas: défaçage de site.

 

 

Attention, c'est du lourd. Un jour, je reçois le mail suivant avec un fichier en attache:

auth.png

Oui, il a bien mis dans l'URL la variable "auth" que le visiteur peut modifier à loisir.

Après un gros facepalm, je lui demande si je peux récupérer le reste du site pour vérifier si c'est bien ça la faille.
auth2.png
Fausse alerte, la variable "auth" était juste là pour indiquer au visiteur que le mot de passe est incorrect dans l'interface de connexion.

Je regarde les autres fichier pour voir s'il n'y aurais pas un problème et ...
auth3.png
$_GET['id'] est le contenu de la variable transmise dans l'URL. Donc si j'ai: monsite.com/repertoire/page.php?id=42 ma variable $_GET['id'] aura la valeur 42.
Sauf qu'il n'a absolument pas protégé sa requête contre les injections SQL.


Après avoir récupéré le fichier access.log, j'ai vu de belles requêtes. Vous pouvez regarder un extrait (j'ai retiré le nom de domaine)
Problème trouvé, faille comblée, je pensais que s'en était fini là.
On y voies donc les injections sql, et même l'utilisation d'un logiciel qui cherche toutes les pages d'administration qui pourraient exister.

Et pourtant, le délir continue.
Si on regarde bien dans le fichier access.log, on voie clairement dans le champ user-agent qu'il utilise ...
... Internet Explorer 8!
disgusted-mother-of-god.png


J'ai aussi récupéré l'URL d'une image envoyée par le hacker sur la page de défacage et pointant vers cette image : /public/up312971987391.jpg
Donc le cracker à comme pseudo "Morrocan-alien", et si on faisait une recherche sur google?
http://www.experienzia.com/Newsletter/
"always able te break the security"
http://www.semia-autun.com/
"hacking is my game"
Bon
Point commun entre toutes les pages hackées?
la MÊME faille, la même injection SQL.
Donc son "always", j'en doute très fortement.

http://www.atcoroglio.it/interni/aziend.php?id_azi=1
"hello admin"
"this is just a minor warning"
"just to let you know how weak your"
"security is"
Bon, vous remarquez les problèmes de formatage de page?
Regardez la source de la page, et vous devriez voir rapidement un :
"urn:schemas-microsoft-com:office:word"
OhCrap.png
Il utilise des documents MICROSOFT WORD pour insérer son texte dans des pages web!!!

Un script kiddie qui utilise Word et IE8? Manquerait plus qu'il installe OpenOffice comme pare-feu.

 

Conclusion :

Si vous créez un programme local, il n'y a généralement pas trop de risque, l'utilisateur cherchant rarement à causer des dommages à sa propre machine. Par contre, si votre programme doit traiter des fichiers téléchargés ou se connecter à internet, faites attention à les traiter avec prudence.
Si vous créez un programme/site pour un serveur, le risque sera plus grand et il vous faudra à tout prix respecter cette règle:
NE FAITES CONFIANCE A PERSONNE.
Le visiteur vous envoie une requête? un fichier? dites-vous qu'il peut contenir n'importe-quoi, c'est le visiteur qui choisit ce qu'il vous envoie.
Il convient donc de traiter avec la plus grande prudence les variables $_GET, $_POST, $_FILES, $_COOKIE, $argc, $agrv... et de ne pas oublier que si vous comptez afficher du texte dans une page web, Un javascript contenu dans celui-ci pourrait aussi être exécuté.

J'expliquerai dans un prochain article comment sécuriser son code PHP.

Bonux:

http://hmm-la-bd.eu
Cliquez sur le bouton admin en haut à droite
Regardez l'URL
testez
...