de Major Seed le 25 Juil 2014 21:20
Malheureusement, je n'y connais pas grand chose en PHP. Mes connaissances se limitent à mes cours de 2e année d'IUT + la mise en place d'un mediawiki au boulot. Mais comme je suis censé travailler dans la sécurité, je peux au moins essayer de donner des pistes.
La première chose à faire, c'est d'essayer d'identifier le composant qui est attaqué, ou à défaut la démarche qui est utilisée pour l'attaquer. Et l'unique façon d'obtenir plus d'information là-dessus, c'est d'aller chercher dans les logs : normalement, c'est la première chose que les attaques vont chercher à couper, histoire d'avoir le champ libre après. Donc l'idéal, ce serait d'activer tous les logs possibles de tous les composants (ou ceux soupçonnés d'être faillibles), et de les rendre le plus verbeux possible. Au pire, si les logs applicatifs par défaut ne suffisent pas, en ajouter soi-même de façon méthodique : loguer les débuts et fins de fonctions, et l'intégralité des saisies utilisateurs (paramètres POST et GET), ça pourra toujours aider si le problème vient des pages PHP.
Après, il faut identifier les cas d'utilisation du site et comparer les séquences dites normales avec les séquences contenues dans les logs : le but est de voir quelle est la partie précise du composant attaqué. Si une fonction termine avec un code retour atypique, si une fonction est exécutée alors qu'elle ne fait pas partie du cas d'utilisation, si les paramètres de la fonction ne sont pas au format attendu, ce sera toujours une information supplémentaire pour identifier la cause.
Pour finir, s'assurer que les différents produits ou librairies sont à jour : c'est con mais une faille Wordpress, si elle existe, persistera tant que la version ne changera pas. Il est également important de masquer le plus possible les messages d'erreur par défaut d'un framework et de le remplacer par des messages personnalisés moins bavards : en général, les messages par défaut des produits veulent bien faire et donnent des infos pour résoudre les problèmes, mais on trouve du coup assez facilement le numéro de version de telle ou telle chose, et ça permet d'aller facilement chercher des outils spécialement conçus pour attaquer la version en question. Du coup, installer une foule d'outils censés aider à améliorer la sécurité n'est pas toujours la meilleure solution : plus de produits tout fait = plus de failles potentielles. Le but pour l'instant est au contraire de restreindre au maximum les possibilités pour trouver rapidement la cause.
Euuh voilà, ce sont un peu les seuls premiers secours que je vois pour l'instant, si jamais ça peut servir.
Le meilleur moyen d'obtenir une réponse, c'est de poser la question.