La sécurité

Qu’est-ce que la sécurité ?

Les risques par ordre de priorité :

  1. Probléme entraînant une perte des données ;
  2. Accès de la partie privée a des personnes non autorisées ;
  3. Introduction de code parasite dans les forums (defacage, redirection)
  4. Détournement/Abus des ressources du serveur.
    • Ex : détournement des formulaires de contact pour spammer, dénis de service

La problématique actuelle

Les critères sûr/pas sûr sont imposés par le marché des consultants de sécurité :
Ex : une injection réussi de JS dans un forum sera considérée comme une preuve de faille, sans s’occuper de savoir si un mécanisme postérieur les nettoie sans avertissement.

La popularité de SPIP crée une attraction qui incite les consultants à s’intéresser plus à SPIP et à rechercher les failles.

Politique actuelle

Sécuriser les risques d’injections JS dans les espaces publics, mais pas dans les espaces privés.
La gestion des problèmes de sécurité (injection SQL/PHP) nécessite une grande rigueur qui n’a pas été appliquée dès le début du developpement de SPIP : il faut tout reprendre.

Les injections SQL

Pour traiter les pb d’injections SQL en améliorant la lisibilité du code (repérer d’un coup d’œil si une requète est sécurisée ou non), il est proposé d’utiliser une syntaxe du type printf :
spip_query('SELECT * FROM spip_articles WHERE id_article=%d',$id_article)
Cette syntaxe permet de repérer au 1er coup d’œil si une requête est sécurise ou non.

La communication

Par ailleurs, pour gérer cet aspect il est proposé :

  • De créer une Mailing-list à cercle restreint pour gérer la sécu ;
  • De créer une page spécifique sur spip.net, multilingue, avec toutes les releases sécurité, les messages d’annonce, une page de contact, et la reprise des annonces de spip-annonce

Il est évoqué la possibilité d’avoir un canal de push de ce type d’information à travers l’interface d’admin (RSS puis message style « une important mise à jour est disponible pour votre version de SPIP »). Ce point ne fait pas l’unanimité, et il est évoqué le risque de déresponsabiliser l’admin du site en cas de non avertissement.

Discussion

5 discussions

  • 1

    Bonjour,
    je viens de tomber sur cette liste de faille

    http://www.frsirt.com/english/product/3665

    Savez vous si ces failles ont été corrigées ?

    En vous remerciant

    Emmanuel

    • oui, bien sûr. Et on ne dira jamais assez qu’il faut installer une nouvelle version de SPIP quand elle paraît.

    Répondre à ce message

  • Par ailleurs, pour gérer cet aspect, il est proposé de ...

    -  De créer une page spécifique sur spip.net, multilingue, avec toutes les releases sécurité, les messages d’annonce, une page de contact, et la reprise des annonces de spip-annonce

    ...en prenant malgré tout le risque ainsi de prévenir gentiement tous les pirates chasseurs de failles qu’il existe un trou et de leur livrer sur un plateau d’argent (par le patch correctif, en fait) la méthode à employer sur un site non patché pour entrer sans frapper :/

    Parce qu’avec le nombre de gens qui modifient SPIP jusqu’au coeur du noyau, je n’en vois pas beaucoup succeptible de réinstaller un spip entier à chaque fois qu’on découvre une faille Cross Site Script.

    A moins de développer une contrib externe chargée de « vérifier » avant upload la stratégie de sécurité du spip qu’on s’apprète à mettre en ligne (vérif de tous les champs de formulaire, voir si on peut y faire passer un code à risque, analyse de la structure php en fonction des préconisations de sécurité du W3C (ou php.net, en l’occurence...)

    Enfin, mi j’y connais pas grand chose en programmation aussi brute mais j’avoue que je me pose la question assez régulièrement quand je dois commencer à pondre du code perso dans SPIP :/

    Répondre à ce message

  • Vous parlez d’injection sql, c’est une chose, mais quid des attaques css et xss sur les formulaires ?

    Alvin

    Répondre à ce message

  • Par ailleurs, pour gérer cet aspect il est proposé :

    -  De créer une Mailing-list TECHNIQUE à cercle restreint pour gérer la sécu ;

    -  De créer une page spécifique sur spip.net, multilingue, avec toutes les releases sécurité, les messages d’annonce, une page de contact, et la reprise des annonces de spip-annonce

    -  De créer une équipe qui puisse préparer les communications de la liste spip-ann (intéroger les devs sur les problèmes rencontrés / clarifier le message / indiquer clairement quelle version impactée etc etc... )

    Répondre à ce message

  • 2

    Afficher dans l’espace privé un message : « Votre site SPIP n’est pas à jour : vous prenez le risque de vous faire pirater. Pour mettre à jour votre site SPIP veuillez aller sur la page http://www.spip.net/download » ne dédouane en rien le webmaster, au contraire : ça le responsabilise. Il sait que, du coup, il prend des risques.

    • Oui c’est vrai. Mais, a contrario, une crainte évoquée au cours de la discussion, est que dans des conditions ou le message ne s’afficherait pas (problème lié a la configuration du serveur, intranet ...), le webmaster se dedouane en invoquant le fait qu’il n’a pas été alerté par SPIP.
      C’est donc un choix a faire en pesant le pour et le contre. De toute façon ce ne peut être qu’un dispositif complémentaire, et il y a d’autres mesures plus prioritaires a mettre en place.
      On pourra donc rediscuter ce point quand il n’y aura plus que ca a faire :-)

    • Une méthode simple serait d’ajouter, à côté de « adresse webmestre », un bouton « s’inscrire à la liste spip-ann », avec un commentaire bien tourné

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?
  • [Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom

Dernière modification de cette page le 3 janvier 2008