Correct xmlrpc php. Introduction à XML-RPC. Bloquer XML RPC.

La technologie XML-RPC est utilisée dans le système WordPress pour différentes copeaux agréables par type de pingbacks, de trackbakes, une gestion à distance du site sans entrer dans l'administration, etc. Malheureusement, les attaquants peuvent l'utiliser pour l'attaque DDO sur des sites. C'est-à-dire que vous créez de beaux projets WP intéressants pour vous-même ou pour commander et en même temps, sans rien savoir, vous pouvez faire partie du botnet pour DDOS`A. Connecter des dizaines et des centaines de milliers de sites, les mauvaises personnes créent une attaque puissante sur leur sacrifice. Bien que votre site souffre aussi, car La charge va à l'hébergement où elle est placée.

Les preuves d'une telle mauvaise activité peuvent être des journaux de serveur (Access.log in Nginx), contenant les lignes suivantes:

103.238.80.27 - "Poste /wp-login.php http / 1.0" 200 5791 "-" "-"

Mais retour à la vulnérabilité XML-RPC. Visuellement, il se manifeste dans une ouverture lente de sites sur votre serveur ou l'impossibilité de les télécharger en général (502 erreurs de passerelle Bad). Dans le support technique de My Hoster Fastvps confirma des suppositions et conseillée:

  1. Actualiser WordPress à la dernière version avec plugins. En général, si vous suivez, vous pouvez lire sur la nécessité d'installer le dernier 4.2.3. En raison de commentaires de sécurité critiques (comme versions précédentes). En bref, il est utile d'être mis à jour.
  1. Installez le plug-in Désactiver XML-RPC Pingback.

Déconnexion XML-RPC dans WordPress

Auparavant, il me semble que l'option ON / OFF XML-RPC était quelque part dans les paramètres système, mais je ne peux pas le trouver là-bas. Par conséquent, le moyen le plus simple de s'en débarrasser est d'utiliser le plugin correspondant.

Trouvez et téléchargez Désactiver XML-RPC Pingback ou l'installer directement à partir de l'administrateur d'administrateur. Vous n'avez pas besoin d'ajuster quelque chose de plus, le module commence immédiatement à fonctionner. Il supprime les méthodes pingback.ping et pingback.extensions.get.getbacks à partir de l'interface RPC XML. En outre, supprime le x-pingback des titres HTTP.

Dans l'un des blogs, j'ai également trouvé quelques options pour supprimer un arrêt XML-RPC.

1. Déconnectez XML-RPC dans le gabarit.

Pour ce faire, une chaîne est ajoutée au fichier de fichier theme fonctions.php:

Ordre nier, permet de nier de tout

Les deux dernières méthodes personnellement ne l'ont pas utilisée, car Désactivez le plug-in XML-RPC Pingback - Je pense que ce sera suffisant. Juste pour ceux qui n'aiment pas les installations supplémentaires, offraient des options alternatives.

Il y a quelques jours, j'ai remarqué que la charge de mes sites sur l'hébergement grandissait parfois. Si cela était généralement dans la région des 100-120 "perroquets" (CP), puis au cours des derniers jours, il a augmenté à 400-500 CP. Il n'y a rien de bien dans cela, car la bataille peut se traduire par un tarif plus coûteux et même couvrir l'accès aux sites du tout, j'ai donc commencé à comprendre.

Mais j'ai choisi une méthode qui vous permet de sauvegarder la fonctionnalité XML-RPC: Installation du plug-in Disable XML-RPC Pingback. Il ne supprime que les méthodes "dangereuses" pingback.ping et pingback.extensions.gettensions.gettings.gettingbacks, laissant la fonctionnalité XML-RPC. Après avoir installé le plugin, il vous suffit d'activer - aucune configuration supplémentaire n'est requise.

En cours de route, j'ai marqué tous les attaquants IP de file.htaccess mes sites pour bloquer l'accès. Il suffit de terminer à la fin du fichier:

Commandez tous nier du 5.196.5.116 37.59.120.214 92.222.35.159

C'est tout, maintenant nous avons protégé de manière sécurisée le blog d'autres attaques à l'aide de XMLRPC.PHP. Nos sites ont arrêté l'expédition par les demandes, ainsi que des attaques avec des sites tiers DDOS.

De midi, samedis sur mon serveur, où environ 25 sites sur WordPress seront hébergés, des freins sauvages ont commencé. Puisque j'ai réussi à survivre aux attaques précédentes (attaque 1 - il y a exactement un an, attaque 2 - mars) non remarquée, je n'ai pas immédiatement compris ce qui était le problème.

Lorsque j'ai compris, il s'est avéré que les mots de passe passaient + de nombreuses demandes à XMLRPC.

En conséquence, il était possible de couper cela, mais pas immédiatement. Cat Trois techniques simples, comment l'éviter.

Ces techniques sont très probablement connues de tout le monde, mais je suis venu pour un couple de rake, que je n'ai pas trouvé dans les descriptions - tout à coup, cela gagnera le temps à quelqu'un.

1. Démarrez le buste, limitez les tentatives de connexion Plugin - Mettez-le, car une autre protection accroche fortement le serveur, par exemple, lors de l'utilisation du plug-in Security Security de connexion, le serveur est décédé après une demi-heure, le plugin est très chargé de la base de données.

Dans le cadre, assurez-vous d'activer le test "pour proxy" - sinon il définira l'adresse IP de votre serveur pour tous et automatiquement tout bloquer.
Mise à jour, merci à DarkByte, les détails ci-dessous dans les commentaires - la case "pour proxy" uniquement si la définition ne fonctionne pas lorsque la "connexion directe" est activée.

2. Débranchez le fichier XML RPC - Désactiver le plug-in XML-RPC (activez-le simplement et tout).

3. Fermer WP-LOGIN.PHP - Si vous contactez le site via l'IP, le plugin ne fonctionne pas et les cornichons continuent de dab. Pour éviter cela, V.HTACCESS Ajouter:

Ordre nier, permet de nier de tout

Le fichier de connexion WP est copié, renommé tout nom étrange, par exemple Poletnormalny.php et à l'intérieur du fichier avec la transmission automatique toutes les inscriptions WP-Login.php sur Poletnormalny.php.
Tous, vous pouvez maintenant contacter l'administrateur dans votre fichier.

Après ces 3 étapes simples, les sites ont commencé à voler à nouveau et sont venus calmes.

Bien, soudainement intéressant

Une option pour voir ce que vous êtes attaqué. Ceci peut être vu dans les journaux Nginx (par exemple, voici le chemin d'accès de Debian / Var / Log / Nginx File Access.log).

Utilisation de XML-RPC en PHP pour publier des matériaux dans LiveJournal.com (LJ)

Pour commencer, vous devrez télécharger la bibliothèque XML-RPC. La version la plus réussie qui me semble distribué librement via Sourceforge »: Tous les exemples ci-dessous seront donnés pour cette bibliothèque version 2.2.

Qu'est-ce que XML-RPC? RPC est déchiffré comme appel de procédure à distance, respectivement, en russe, cela peut être traduit sous forme d'appel de procédure distant à l'aide de XML. La méthode de la procédure d'appel à distance est connue depuis longtemps et est utilisée dans des technologies telles que DCOM, SOAP, Corba. RPC est conçu pour créer des applications distribuées client-serveur. Cela permet de créer des applications qui fonctionnent dans des réseaux hétérogènes, par exemple sur des ordinateurs de divers systèmes, afin de rendre le traitement des données à distance et des applications distantes. En particulier, ce protocole bénéficie d'un site bien connu LiveJournal.com.

Considérez un exemple de la façon dont vous pouvez placer un enregistrement cyrillique (à savoir des problèmes souvent surgissent) dans LJ. Vous trouverez ci-dessous un code de travail avec des commentaires:

Nouveau xmlrpcval ($ nom, "chaîne)," mot de passe "\u003d\u003e nouveau xmlrpcval ($ mot de passe," chaîne), "événement" \u003d\u003e nouveau xmlrpcval ($ texte, "string)," sujet "\u003d\u003e nouveau xmlrpcval ($ subj "String"), "Linedings" \u003d\u003e Nouveau XMLRPCVal ("UNIX", "String"), "Année" \u003d\u003e Nouveau XMLRPCVal (année de dollars, "int"), "lun" \u003d\u003e nouveau xmlrpcval ($ lundi, "INT"), "jour" \u003d\u003e nouveau xmlrpcval ($ jour, "int"), "heure" \u003d\u003e nouvelle xmlrpcval (heure $ heure, "int"), "min" \u003d\u003e nouveau xmlrpcval ($ min, "int ")," ver "\u003d\u003e nouveau xmlrpcval (2," int ")); / * Basé sur le tableau Créer une structure * / $ post2 \u003d tableau (nouveau xmlrpcval ($ post, "struct")); / * Créez un message de serveur XML * / $ F \u003d nouveau xmlrpcmsg ("lj.xmlrpc.postevent", $ post2); / * Décrivez le serveur * / $ C \u003d nouveau xmlrpc_client ("/ interface / xmlrpc", "www.livejournal.com", 80); $ C-\u003e demande_charset_coding \u003d "utf-8"; / * Eventuellement, nous examinons le code XML de ce qui ira sur le serveur * / ECHO NL2BR (htmlenties ($ f-\u003e sériialize ())); / * Nous envoyons un message XML au serveur * / $ r \u003d $ c-\u003e envoyer ($ f); / * Analysez le résultat * / si (! $ R-\u003e code code ()) (/ * Le message est effectué avec succès et renvoyé le résultat XML * / $ v \u003d php_xmlrpc_decode ($ R-\u003e valeur ()); print_r ($ V);) sinon (/ * le serveur a renvoyé l'erreur * / Imprimer "une erreur est survenue:"; Imprimer "code:" .htmlspecialchars ($ R-\u003e code ()); Imprimer "Raison:" .htmlspecialchars ($ R-\u003e Fauxtring ()). "" \\ N ";)?\u003e

Dans cet exemple, une seule méthode LJ.XMLRPC.POSTEvent est considérée - une liste complète des commandes possibles et de leur syntaxe (en anglais) est disponible à l'adresse suivante:

Les pirates sont à la recherche de différentes manières de pirater vos sites. Dans l'historique des cas, si seul le site ne représente pas une sorte de valeur commerciale, elle gère les enfants d'essayer de somnake.

L'autre jour, les sites de mon hébergement, le mettre légèrement, "face". On a vu que Dos-Yat est certains des sites.

Et on voit principalement des statistiques de l'utilisation des ressources du serveur:

J'ai été surpris de savoir que toutes les ressources commerciales sur l'hébergement ne mentent pas. Quelle est la question, dos-it alors? Dans quel but?

Qu'est-ce qui est visible dans le diagramme?

Dans la première image, nous observons le démarrage du processeur. Il est mesuré à 100% par noyau. Quelque part 15.00 Greenwich Attack a commencé et dans la région 21.00 J'ai demandé à ce que le fournisseur ait quelque chose à voir avec cela. Ces Endage ont commencé à transférer l'hébergement sur un autre serveur maître. Apparemment, pour me donner la possibilité d'utiliser plus de ressources système. Les heures à 22h00 ont commencé à bouger, vérifiant l'intégrité des fichiers et d'autres procédures.

Je ne voulais pas vraiment gâcher - et je viens de me coucher, car, "matin dans la soirée de soir".

Que peut-on voir dans les journaux du serveur?

Les statistiques du matin ne montrent plus d'anomalies. Les sites sont toujours ouverts en temps et non immédiatement, c'est-à-dire Attaque continue. Si les statistiques ont tout écrit à partir de l'ancien serveur, ou c'était déjà les données du serveur principal ...

Par conséquent, je suis passé à l'étude des journaux pour savoir où "frappe".

Lorsque j'ai examiné les journaux, il est devenu clair que vous ne pouviez pas vous inquiéter - d'une manière utile Shkolota de la même adresse IP de /xmlrpc.php un de mes sites sur WordPress. Très probablement, il est engagé dans le mot de passe administrateur Brut-Forras.

Bien sûr, il y a peu d'agréable, depuis «couché» et tous les autres sites de serveurs virtuels. Et la chose est l'ennuyant que je n'utilise pas ces services XML sur aucun de vos sites WP.

Bloquer XML RPC.

La chose la plus simple que vous puissiez faire dans cette situation est de supprimer le fichier du dossier racine. /xmlrpc.php.. Le serveur ne trouve pas de violette, ne sera pas exécuté PHP, passer des ressources de mémoire et un temps de processeur. La solution est simple, mais pas belle. Tout d'abord, quelqu'un peut utiliser des capacités RPC. Par exemple, publiez des entrées sur le site via l'un des nombreux clients Weblog. Et deuxièmement, le fichier sera restauré après la prochaine mise à jour WP.

Si votre serveur s'exécute sur Apache, vous pouvez bloquer l'accès à xmlrpc.php.sans supprimer le fichier lui-même. Besoin d'ajouter les instructions suivantes au sommet de votre .htaccess. Fichier dans le répertoire racine du site sur WordPress. Il bloquera l'accès au fichier à partir de toutes les adresses.

# XML RPC DDOS Protection Ordre nier, permet de nier de tout

# XML RPC DDOS Protection

< FilesMatch "^(xmlrpc\.php)" >

Ordre nier, autoriser

Nier de tout

< / FilesMatch >

Dans mon cas, seule l'adresse IP de la source de demande peut être bloquée, car Utilisé la même adresse. Bloquer uniquement l'adresse IP du "Schooderser":

La commande permet de refuser le 85.93.93.157 Permettre à tous

< FilesMatch "^(xmlrpc\.php)" >

Commande Autoriser, nier

Nier à partir du 85.93.93.157

Permettre à tous

< / FilesMatch >

Mais si vous utilisez RPC, vous pouvez créer une liste blanche d'adresses qui ont accès au script. xmlrpc.php.

Commandez nier, autorisez #Ajouter votre adresse IP Autoriser de 127.0.0.1 Autoriser de xx.xx.xx.xx ... nier de tout

Avez-vous aimé l'article? Partager avec des amis: