rulururu

post Protéger (un peu) son identité sur le web

December 26th, 2013

Filed under: Sécurité — admin @ 16:19

Ce billet est un simple mémo, contenant des points techniquement évidents, mais qui échappent à beaucoup d’utilisateurs.

Si vous n’y comprenez rien et suivez simplement les quelques conseils proposés ici, vous pouvez espérer que la sécurité de vos connexions au web et la protection de votre identité seront améliorées (ou pas!).

Note : cette liste ne se prétend en aucun cas exhaustive (ni efficace, d’ailleurs). Si l’aimable lecteur a des améliorations à apporter, je prends les contributions avec joie !

Un peu de charabia pour commencer :

  1. Les navigateurs dits modernes envoient plein de données à leur éditeur “pour vous rendre service”. Ces fonctions sont souvent activées par défaut. Rappelons que Chrome est édité par Google, et que Firefox est financé par Google… Aussi ces deux navigateurs ont tendance à aller requêter à tout va les serveurs de la firme.
  2. Votre navigateur, par défaut, laisse n’importe quel site poser des Cookies. Ce comportement par défaut est très dommageable. Même un site que vous ne visitez pas directement (un hébergeur de publicité, par exemple) se retrouve à traquer vos comportements sur le Net. Il est également connu que la NSA (pour ne citer qu’elle) utilise les cookies de tiers pour nous traquer. Mon opinion est que nous ne pouvons plus, en tant qu’utilisateurs, laisser les cookies s’infiltrer à volonté dans nos navigateurs. Mis à part quelques domaines qu’il appartient à chacun de choisir, nous devons les refuser, ou, plus intelligemment, limiter drastiquement leur durée de vie.
  3. Certains sites proposent du HTTPs, mais vous laissent surfer en HTTP non chiffré, par défaut.
  4. Les navigateurs (et beaucoup de sites) activent javascript, qui est un langage complet coté client. Mais c’est le serveur que vous visitez (et parfois, un site partenaire) qui envoie à votre nagitateur le code à executer, ce qui pose des problèmes de sécurité.
  5. Edit 2014-01-17 Flash pose ses propres cookies, en dehors du champ de vision du navigateur

Voici donc mes bonnes pratiques (les numéros correspondent aux menaces ci-dessus) :

  1. Un peu de configuration propre au navigateur pour commencer.
    • Sur Firefox, dans la fenêtre de Préférences (ou Options), l’onglet Sécurité présente :
      • Bloquer les sites signalés comme étant des sites d’attaque
      • Bloquer les sites signalés comme étant des contrefaçons

      Pour ma part,je décoche toujours ces deux options, que je considère comme invasives!

    • Coté Chrome/Chromium, on a l’équivalent dans les préférences (il faut déployer les Préférences avancées…) :
      • Utiliser un service Web pour résoudre les erreurs de navigation
      • Utiliser un service de prédiction afin de compléter les recherches et les URLs saisies dans la barre d’adresse
      • Prédire les actions du réseau pour améliorer les performances de chargement des pages
      • Activer la protection contre le phishing et les logiciels malveillants

      À mes yeux, chacune de ces options est équivalente à “envoyer des requêtes chez nous pour traquer chaque caractère que vous tapez au clavier“, alors pour moi, c’est non merci!

    • Sur Firefox, installez Cookie Monster. Il s’agit du module le plus pratique et le moins gênant que j’ai trouvé pour protéger mes cookies. Pensez à interdire les cookies par défaut, dans les options du module. Si le manque de cookie est un problème pour certains sites, on peut dès lors les autoriser un à un, temporairement ou définitivement, via un simple clic sur l’icône présentée par l’extension. Pensez aussi à supprimer tous les cookies existants, au moment de l’installation du module, via la fenêtre d’options principale de Firefox.
    • Coté Chrome/Chromium,l’extension Vanilla Cookie Manager est tout simplement excellente, et constitue à mes yeux la référence : elle accepte tous les cookies, mais limite leur durée de vie à la session de navigation ; et elle maintient une whitelist de domaines pour lesquels on accepte des durées plus longues. Ce fonctionnement sollicite finalement très peu l’utilisateur, fournit les fonctionnalités qui dépendent souvent de l’acceptation de cookies, et réalise automatiquement un grand nettoyage à chaque redémarrage du navigateur.
  2. Disponible pour Chrome, Firefox et Opera, et complétement transparente à l’utilisattion, HTTPS-everywhere active HTTPs sur les [grands] sites connus pour proposer HTTPs en parallèle de HTTP.
  3. Est-il encore nécessaire de présenter Noscript, le module qui bloque par défaut Javascript, et le réactive (temporairement ou définitivement) sur base de whitelist ? Un must, même si beaucoup d’utilisateurs non avertis peuvent le trouver lourd à l’usage (effet “j’active javascript sur tous les sites que je visite”).
  4. Edit 2014-01-17 Pour gérer (effacer régulièrement) les Cookies Flash sur Firefox, l’extension BetterPrivacy
  5. Pendant que j’en suis à enfoncer les portes ouvertes, Adblock Plus est une évidence… Je crois qu’elle est disponible pour tous les navigateurs cités dans ce billet. Edit 2014-02-04 Penser aussi à étendre la liste de patterns d’Adblock plus, cela se fait tout simplement en ligne, avec easylist. Je pense qu’ajouter EasyPrivacy ainsi que peut être Fanboy’s Social Blocking List est un bon début !

 

Note : pour ceux qui veulent déprimer, voir ceci : HTTP Client Identification Mechanisms

post Réduire l’exposition au spam

May 5th, 2011

Filed under: Sécurité — gryzor @ 15:18

Une idée simple : nombre de serveurs sont en ligne pour des utilisations autres que de la messagerie SMTP.
Ces serveurs sont appelés à envoyer quelques emails par jour au maximum, par exemple pour des tâches planifiées comme logcheck, ou de la supervision basique.
Chaque serveur consiste cependant en une réserve de ressources pour les spammeurs, qui adorent exploiter, entre autres, les vulnérabilités web, pour installer leur backdoor et relayer leur spam.
Dès lors, une contre mesure préventive très simple : sans attendre d’être la cible d’une attaque, chaque administrateur peut très simplement limiter à une poignée le nombre d’emails qui peuvent sortir chaque jour.
Sous Linux, cela ressemblerait à quelque chose comme :
iptables -t filter -A OUTPUT -p tcp –dport 25 -m limit –limit 12/d –syn -j ACCEPT
iptables -t filter -A OUTPUT -p tcp –dport 25 –syn -j REJECT

post Spip et la sécurité

January 15th, 2011

Filed under: Sécurité — gryzor @ 17:02

Penchons nous sur un test, avec un oeil orienté “sécurité”, du célèbre CMS spip.
Je teste donc la version 2.1.8. Lors de l’installation, spip m’indique que quelques répertoires doivent offrir au processus “apache” les droits en écriture. Ce n’est pas délirant, dans la mesure où la publication se fait en ligne : je vais y injecter des images, etc.
J’applique donc la règle du “privilège le plus faible” traditionnelle des systèmes de fichiers unix : j’assigne à ces repertoires le groupe apache, et en accordant à ce groupe les droits en écriture :
chgrp www-data IMG/ tmp/ local/ config/
chmod g+w IMG/ tmp/ local/ config/
L’installation terminée, je crée une rubrique, un article, et j’y colle une photo pour voir le résultat.
Le résultat, le voici : une image est bien ajoutée dans le répertoire IMG/ avec les droits en 666.
De nombreux fichiers de spip sont automatiquement passés en droits 666 ou 777, dans les installations par défaut. Y compris des fichiers PHP executés par le serveur web.
Franchement, ça fait peur.
J’ai trouvé une solution simple : remettre un chmod global à une valeur plus saine de manière globale pour spip.
Éditez votre fichier ecrire/mes_options.php, et posez-y le code suivant :
define(‘_SPIP_CHMOD’, 0770);
ou mieux
define(‘_SPIP_CHMOD’, 0570);
Le serveur web aura ainsi les droits de lire les fichiers, et son groupe les droits de lire et modifier ces fichiers.

Je reste tout de même estomaqué de voir un logiciel aussi populaire faire la bêtise monumentale du “chmod 777”, qui est comme chacun le sait réputée pour être la bêtise traditionnelle du newbie.
Pour référence, en sécurité, on ne doit JAMAIS positionner les droits 666 ou 777 sur un fichier, c’est une hérésie, et on a TOUJOURS une meilleure solution. La littérature à ce sujet ne manque pas : commencer par cet article sur la Séparation des privilèges

post La backdoor du FBI dans OpenBSD

December 19th, 2010

Filed under: Sécurité — gryzor @ 16:28

Et voici la nouvelle crise majeure de sécurité de l’information.
Le FBI est accusé d’avoir fait implanter une ou plusieurs backdoors dans la pile de chiffrement IPSEC d’OpenBSD.
10 années après les faits supposés, le responsable de cette opération se déclare délié de l’accord de confidentialité qu’il avait signé et en fait part à Theo de Raadt.

Plusieurs points intéressants :
* Ces allégations sont invérifiables. Du code de ce type est éminemment complexe à écrire et à auditer (cf la faille Debian SSH, énorme et restée béante pendant plusieurs mois). Une équipe s’est mise à auditer le code en question, mais qu’en conclure si ils trouvent des problèmes ? Cela pourrait aussi bien être un bug. Ils peuvent aussi bien ne pas en trouver, cela ne prouvera pas l’absence de faille.

* Ces allégations sont parfaitement crédibles. La pile IPSEC d’OpenBSD était la première implémentation ouverte (à code source ouvert et réutilisable), et a donc été reprise par de nombreux systèmes. Cela en faisait a priori une cible de choix.

* Surtout : une fois le code complétement audité : qui pourra certifier que cette stack IPSEC est enfin sûre ? OpenBSD est déjà réputé pour être l’un des systèmes les plus audités du monde ; une scrutation de plus est-elle de nature à changer quoi que ce soit à la confiance que l’on peut apporter à la sécurité de ce système ? De ce point de vue, cette crise est un non-événement, car elle ne change rien à cet état de fait.

Open source ou pas, la question de la confiance dans les systèmes de chiffrements – et dans la sécurité des systèmes en général – est de nouveau posée. Ce ne sont certes pas les audits réalisés dans les cadres légaux (comme les critères communs) qui y répondront!

Salutations enfin au courage de Theo de Raadt, qui sait parfaitement que faire pour assurer la confiance à moyen et à long terme. À défaut de certitudes sur la sécurité de l’OS, voici de quoi étayer une conviction sur les intentions de ceux qui gèrent ce projet.

Je vois une sortie de crise, qui à défaut d’être complète, serait intéressante : que Monsieur Gregory Perry publie toutes informations en sa possession sur ces fameuses failles intentionnelles. Personne ne pourra dès lors le traitera de menteur ; on pourra au plus douter qu’il ait tout divulgué…

post Technologies de vulnérabilités

October 26th, 2010

Filed under: Innovation,Sécurité — gryzor @ 22:54

L’insécurité a son marché, et ses phénomènes d’adoption, analysables de manière très proche à celle dont on considère l’adoption d’une technologie de produits par le marché.
Microsoft constate une augmentation massive des attaques sur technologie Java.
(Source : arstechnica )
Le marché de l’insécurité s’étant structuré, les exploits se vendent, s’industrialisent et se propagent très rapidement. On est vraiment très loin des auteurs de virus “sympa” des années 90.
Cette fois-ci, Java est en cause. Tout simplement parce qu’il est devenu universel, installé partout, et en particulier des systèmes Desktop aux terminaux mobiles en tous genres y compris les téléphones dits intelligents, en passant par les serveurs web. Et parce qu’il est, semble-t-il, vraiment facile à attaquer. Et ce qui tourne dans une machine virtuelle Java est bien loin de la couche d’analyse des antivirus.
Java dispose de toutes les qualités requises : la puissance d’un language complet, la difficulté pour les administrateurs de comprendre les tenants et aboutissants en terme de sécurité, un panel d’applications écrites par tout un chacun sans la moindre notion de ce qu’est la sécurité. Et j’oubliais, Java et ses failles sont portables.
Considérons Java du point de l’utilisateur moyen, et regardons les processus à suivre en cas de découverte d’une faille critique dans les versions installées. L’utilisateur doit mettre à jour :
– son ordinateur de bureau
– son téléphone portable
– sa voiture / son gps
– sa webcam, son alarme de maison, …
– bientôt, son frigo
– et j’en oublie
Il peut également tenter de s’assurer que les services en ligne critiques qu’il utilise sont à jour.
Et je ne parle pas du niveau moyen et de la sensibilité à la sécurité du développeur web moyen sur technologie Java.
Quand Java aura été corrigé (est-ce vraiment faisable? je ne suis pas bien placé pour le savoir), ou en tous cas quand le marché se sera doté d’outils pour protéger un peu mieux ses applications Java, nul doute que ce marché de l’insécurité passera à une nouvelle technologie. Pourquoi pas pdf? Notoirement, pdf est un language très puissant, et encore très facile à attaquer. Son tour viendra sur le marché de l’insécurité de masse.
[Edit] : Adobe en est bien conscient, qui annonce le sandboxing de son reader pdf

post Sécurité des échanges chiffrés

July 19th, 2009

Filed under: Sécurité — gryzor @ 10:03

Il y a un peu plus d’un an, nous avons été frappés par la fameuse faille OpenSSL sur les systèmes Debian.
Pour résumer rapidement, l’espace de définition des clés de chiffrement s’est trouvé réduit de plusieurs milliards de milliards à 32767. Donc, si vous disposiez d’une clé SSL vulnérable, je n’avais que 32767 essais (maximum) à faire pour usurper votre identité sur votre système.

De manière assez curieuse, cette faille est restée très longtemps (presque 2 années!) en production sans que personne ne s’en aperçoive.

Cet article propose une chose que nous aurions pu faire avant (et que nous pouvons faire aujourd’hui) pour détecter ce problème beaucoup plus rapidement. Il s’agit simplement de s’appuyer sur l’audit public. Cette proposition est particulièrement pertinente pour l’utilisation de OpenSSH, mais doit probablement pouvoir s’élargir à d’autres usages.

Voici la proposition : modifier OpenSSH (ou OpenSSL?) pour qu’il compare chaque nouvelle clé publique reçue avec les clés déja connues. Si la clé reçue est la même qu’une clé déja connue, prévenir l’utilisateur.

Voilà, c’est tout.

Bien entendu, certaines personnes (et moi le premier) utilisent la même clé sur plusieurs systèmes. Les personnes qui font cela savent qu’ils le font, et ne seront pas perturbées par l’avertissement. En revanche, quand il s’agira d’une clé fraichement générée, je pense qu’il serait particulièrement intéressant d’être au courant que c’est la même clé.

Voilà, avec un tel système, je pense que 15 jours après la mise en production de la faille OpenSSL, la communauté se serait rendue compte que quelque chose ne tournait pas rond. Mieux vaut tard que jamais, je propose donc de modifier les outils pour lesquels ce type de process peut améliorer la sécurité (pour moi, au minimum, c’est le cas pour OpenSSH).

Les crédits de cette idée vont à X. Desurmont PhD.

post Nouvelle attaque web

August 31st, 2008

Filed under: Sécurité — gryzor @ 08:01

Le monde de la sécurité web est impressionnant. Il regorge d’attaques parfois bien tordues, et difficiles à comprendre, et une fois de temps en temps, on nous “découvre” une nouvelle technique. Cette fois-ci c’est CSRF. Le point particulier de ce genre d’attaque, c’est qu’il n’y a rien de nouveau à savoir, n’importe qui ayant fait un tout petit peu de web la maîtrise déja… mais jusqu’ici sans le savoir. Bref, si cela doit démontrer une chose, c’est que personne ne maîtrise [plus] la sécurité du web.

Le point le plus amusant avec CSRF, c’est qu’il s’appuie sur une fonctionnalité fondamentale du web, présente depuis les version les plus antiques de HTTP : la possibilité d’inclure et d’adresser des éléments depuis d’autres sites web. Depuis quelques années, nous nous moquons des institutions dont les avocats ont créé une charte Internet qui interdit la création de liens hypertextes ou l’inclusion d’image ou d’autres objets sans leur accord. Avec CSRF, la question se pose : et s’ils avaient eu raison ?!

post Sécurité du modèle de développement des Logiciels Libres (2ème partie : quelques attaques)

August 30th, 2008

Filed under: Sécurité — gryzor @ 15:56

La plupart des projets développés en Logiciels Libres s’appuient sur des communautés de développeurs, qui se créent et évoluent au fil du temps selon les intérêts et talents de chacun. La méritocratie à la base de la constitution de ces communautés est-elle bien suffisante pour garantir l’intégrité des développeurs qui rejoignent un projet ?

Il semble que les projets LL disposent de peu de critères objectifs et stricts pour décider d’accorder à un contributeur des droits d’écriture sur tout ou partie du code. Les système simplement basés sur le vote des membres en place sont attaquables, par exemple par des attaques sociales. Un attaquant peut tâcher de devenir sympathique aux yeux de quelques membres clés, et cela peut suffire, en manifestant sa présence sur un salon IRC, et en envoyant les bons patches au bon moment…

Mettons nous à la place de vendeurs de Logiciels propriétaires/privatifs, qui n’ont pour certains eu de cesse ces derniers temps que de décrier les Logiciels Libres pour défendre leur bifsteak. Les moyens mis en oeuvre par ces acteurs sont parfois douteux, comme on le voit plus ou moins couramment lors de certaines campagnes de lobbying auprès d’institutions politiques. Ces vendeurs/éditeurs disposent de moyens colossaux, et peuvent vouloir nuire à tel ou tel projet, voire vouloir discréditer le Logiciel libre dans son ensemble. Si j’étais à leur place, je considérerais que payer des “taupes” pour infiltrer des projets et y semer du code dormant sur la durée pourrait être un moyen relativement efficace de parvenir à mes fins.

À la place, notamment, des distributions Linux, je me méfierais.

Suggestions :

  • Formaliser un délai minimum et incompressible entre les premiers contacts avec un développeur et son admission au titre de commiteur
  • Formaliser une politique sur le volume de code envoyé avant de gagner le moindre droit de commit
  • Formaliser une procédure de parrainage
  • Exiger une preuve d’identité de chaque développeur (et pourquoi pas un jour mettre en place une liste noire centralisée d’indésirables ?)

Aucun de ces moyens ne suffit à garantir l’intégrité d’un développeur, mais leur application conjointe pourrait ralentir considérablement les agissements d’un attaquant.

post Sécurité du modèle de développement des Logiciels Libres (1ère partie : les bonnes nouvelles)

August 30th, 2008

Filed under: Sécurité — gryzor @ 15:34

Le développement de logiciels libres relève, dans la plupart des cas, d’une initiative communautaire.
Une communauté de développeurs s’agglomère autour d’un projet, de manière relativement naturelle, en fonction des intérêts et des compétences des contributeurs.
Ainsi, pour joindre un projet et contribuer à son développement, il faut :

  • s’y intéresser. Que ce soit de manière personnelle, ou pour le compte d’une entité qui pousse à le faire contre un intéressement matériel, par exemple.
  • l’intéresser. Il s’agit de la fameuse notion de méritocratie que nous trouvons dans nombre de grands projets.

Tout est question de confiance et de légitimité gagnée. Logiquement, un contributeur qui propose ses compétences sur un projet ne reçoit pas au départ une très grande confiance : ses patches sont relus et (éventuellement) appliqués par d’autres, on ne lui demande pas son avis pour les questions d’architecture.
Quand la sauce prend (après quelques patches*(semaines|mois|années)), le projet peut commencer à reconnaître ce contributeur, et à lui attribuer des fonctions officielles. C’est ainsi que l’on gagne son “droit de commit”.

Ce modèle permet aux acteurs de se connaître avant de s’accorder la confiance de modifier le coeur des projets en question.

Bien entendu, les procédures diffèrent selon les projets. Très souvent, tout ceci est extrêmement informel. Mais pour certains gros projets, les choses ont été quelque peu structurées. Le projet Apache, par exemple,

  • fait voter les membres pour déterminer si une personne devrait gagner des droits de commit
  • exige la signature papier d’un accord au sujet de la propriété intellectuelle du projet : http://www.apache.org/licenses/icla.pdf.

post Naviguer de manière sécurisée

July 13th, 2008

Filed under: Sécurité — gryzor @ 16:43

Comme l’ont souligné plusieurs conférences du SSTIC, la sécurité des navigateurs web les plus utilisés est catastrophique. Je ne parle même pas d’internet explorer, le sujet a été exploré de multiples fois. Firefox n’est pas en reste : les worms, bankers et derniers virus en tous genre commencent à le gérer, ce qui souligne bien qu’il est vulnérable, d’une manière ou d’une autre à des attaques (cf la conférence du SSTIC sur Anserin).

Certaines recherches (EDIT : et la pratique) ont montré que Firefox est extrêmement perméable à des attaques visant l’utilisateur final : il est possible d’installer des extensions “fantômes”, c’est à dire que l’utilisateur de firefox n’a aucun moyen de détecter qu’une extension a été installée : aucune confirmation n’est demandée, l’extension n’apparaît pas dans la liste…

Par ailleurs, les extensions Firefox ne sont aucunement bridées : il s’agit de code qui tourne avec les privilèges système de l’utilisateur qui a lancé firefox, ni plus ni moins : une extension peut donc modifier à la volée les pages web avant affichage, envoyer des données confidentielles sur un canal caché, par exemple.

Le tableau n’est donc pas brillant, et les “protections” positionnées par certains sites web sensibles (comme celui de votre banque) ne sont pas de nature à [me] rassurer, puisque, bien sûr, éminement contournables!

Les mesures que je m’auto-préconise sont donc désormais :

– Rester en veille pour voir peut-être un jour l’émergence d’un navigateur conçu dès le départ pour être sécurisé

– Dans l’immédiat, utiliser des navigateurs alternatifs “spécialisés” pour les tâches sensibles. On peut citer, parmi d’autres, Konqueror, epiphany. Avec un peu de chance, ces navigateurs sont trop peu utilisés pour être ciblés par les auteurs de malware (en tous cas, de malware de masse…). Bien que je n’aie pas spécialement plus confiance dans leur design (parfois très proche de firefox d’ailleurs…), j’espère tomber dans une “niche”.

– Dans le même registre, mais de manière un peu plus stricte, s’appuyer sur la sécurité et le système de privilèges sous-jacent : créer des utilisateurs systèmes dédiés à mes tâches “sécurisée” comme payer mes impôts, me connecter sur le site de ma banque… Peut-être un système à trois niveaux pourrait-il se révéler intéressant :

  • un compte utilisateur pour le surf en zone non maîtrisée, dont je nettoyerais le profil à chaque démarrage du navigateur
  • un compte pour surfer sur les sites dont j’ai l’habitude, mais auxquels je n’accorde pas une grande confiance, dont j’auditerais la configuration aussi souvent que possible. Cette approche est cependant très limitée du fait de la mode du web 2.0… les sites web intègrent des “contenus” venant de leurs utilisateurs ou d’autres sites web…
  • enfin, un compte pour les applications sensibles. Avec la même restriction que ci-dessus, mais je me permets d’espérer que les administrateurs du site web de ma banque garderont la clairvoyance de ne pas passer leurs applications en Web 2.0…

– Utiliser des extensions pour améliorer la sécurité de Firefox, comme NoScript. Mais je reste persuadé que cela revient à appliquer des emplâtres sur une jambe de bois.

– Essayer d’auditer régulièrement la configuration de Firefox de chaque utilisateur de mes systèmes, et notamment les extensions installées/activées. J’en dirai un peu plus à ce sujet prochainement car j’ai des choses sur le feu …

ruldrurd
Next Page »
Powered by WordPress, Web Design by Laurentiu Piron
Entries (RSS) and Comments (RSS)