Az XML-RPC támadások a WordPress weboldalak egyik ismert fenyegetési formája, amely az XML-RPC interfészt célozza meg. Az XML-RPC egy protokoll, amely lehetővé teszi, hogy távoli alkalmazások, mint például mobilalkalmazások, hozzáférjenek és kommunikáljanak a WordPress weboldalakkal. Alapvető funkcionalitásai közé tartozik a távoli bejelentkezés, a bejegyzések publikálása, és a „pingback” funkciók. Az XML-RPC szolgáltatás a WordPress rendszerek része, és alapértelmezés szerint engedélyezett.

Hogyan működik az XML-RPC?

Az XML-RPC (Extensible Markup Language Remote Procedure Call) egy olyan protokoll, amely XML formátumú adatokat küld a szerver és a kliens között HTTP-n keresztül. A WordPress esetében ez különösen hasznos lehet távoli bejelentkezéshez, külső alkalmazásokkal való integrációhoz, illetve tartalom kezeléséhez külső eszközökön.

XML-RPC támadások típusai

  1. Brute Force (Jelszótörő) támadások:

    • Az XML-RPC egyetlen kérésben többször is képes hitelesítési kísérleteket végrehajtani. Ezt a támadók kihasználják úgy, hogy egyetlen kérésben több tucat vagy akár több száz felhasználónév-jelszó páros kipróbálására tesznek kísérletet. Ez azt jelenti, hogy a brute force támadások nehezebben észlelhetők, mivel egyetlen HTTP-kéréssel sok próbálkozás történhet.

    Példa brute force támadásra XML-RPC-vel:

    • A system.multicall metódust használják arra, hogy egyetlen kérésben több bejelentkezési próbálkozást végezzenek, csökkentve ezzel a szerverterhelést és a támadás nyomainak észlelését.
  2. DDoS támadások:

    • Az XML-RPC-n keresztüli DDoS (Distributed Denial of Service) támadásokat általában a pingback funkcióval hajtják végre. A támadó a pingback mechanizmust kihasználva más weboldalakat tud megszólítani és hamis kéréseket küldeni a célpont szerver felé. Ennek következtében a célpont weboldal terhelése megnőhet, ami akár elérhetetlenné is teheti azt.
  3. Pingback támadások:

    • A támadók a WordPress XML-RPC pingback funkcióját használják arra, hogy a szervereket más weboldalak ellen fordítsák, így egyfajta erősített támadást hoznak létre, amely több szerver bevonásával történik. Ez a funkció arra szolgál, hogy más WordPress oldalak értesítést küldjenek egymásnak, amikor egy hivatkozás történik, de ezt a támadók gyakran kihasználják.
  • Hogyan lehet megvédeni a weboldalt az XML-RPC támadások ellen?

    1. XML-RPC letiltása:

      • Ha nincs szükséged XML-RPC funkcióra (például nem használsz mobilalkalmazást vagy távoli publikálási eszközöket), akkor egyszerűen letilthatod azt.
        • .htaccess használatával:
          # XML-RPC letiltása
          <Files xmlrpc.php>
          order deny,allow
          deny from all
          </Files>
        • Plugin használatával: Telepítheted a Disable XML-RPC bővítményt, amely egyszerűen letiltja az XML-RPC szolgáltatást.
    2. XML-RPC korlátozása:

      • Ha használni szeretnéd az XML-RPC funkciókat, de korlátozni akarod a támadási lehetőségeket, korlátozhatod az XML-RPC használatát csak megbízható IP-címekre. Ezt az .htaccess vagy a nginx.conf fájlban teheted meg.
        • .htaccess példa:
          <Files xmlrpc.php>
          order deny,allow
          deny from all
          allow from 192.168.1.100
          </Files>
    3. Brute Force védelem:

      • Használj bővítményt a brute force támadások kivédésére, mint például a Wordfence, Sucuri vagy Loginizer, amelyek felismerik és blokkolják a brute force támadásokat, beleértve az XML-RPC-n keresztüli próbálkozásokat is.
    4. Rate Limiting (Kapcsolatkorlátozás):

      • A kapcsolatok számát korlátozhatod IP-címenként a CSF vagy más tűzfal segítségével, hogy megakadályozd a brute force támadások gyors ismétlését.
      • nginx példa:
        location /xmlrpc.php {
        limit_req zone=one burst=5 nodelay;
        }
    5. Pingback funkció letiltása:

      • A pingback funkció gyakori célpontja a DDoS támadásoknak. Ha nincs szükséged rá, letilthatod a pingback funkciót. Ezt manuálisan a témában vagy bővítmény használatával teheted meg, például a Disable XML-RPC Pingback bővítménnyel.

Hogyan ellenőrizheted, hogy webhelyed XML-RPC támadás alatt áll-e?

  • Naplóelemzés: Nézd meg a server access logokat, és keresd a tömeges kéréseket az xmlrpc.php-re. Például egy brute force támadás során egyetlen IP-címről sokszor próbálkoznak a system.multicall metódus használatával.
  • WordPress pluginok: Olyan bővítmények, mint a Wordfence vagy Sucuri, valós időben figyelik a forgalmat és értesítenek a gyanús aktivitásokról.

Hogyan ellenőrizheted, hogy webhelyed XML-RPC támadás alatt áll-e?

  • Naplóelemzés: Nézd meg a server access logokat, és keresd a tömeges kéréseket az xmlrpc.php-re. Például egy brute force támadás során egyetlen IP-címről sokszor próbálkoznak a system.multicall metódus használatával.
  • WordPress pluginok: Olyan bővítmények, mint a Wordfence vagy Sucuri, valós időben figyelik a forgalmat és értesítenek a gyanús aktivitásokról.

Összefoglalás

Az XML-RPC egy hasznos protokoll, de sok biztonsági kockázatot rejt magában, ha nem védjük megfelelően. A támadók gyakran használják brute force jelszótörő támadásokra, DDoS támadásokra és pingback kihasználásra. A legbiztonságosabb megoldás az XML-RPC letiltása, ha nincs rá szükség, de ha használni szeretnéd, mindenképpen védd meg korlátozásokkal, tűzfallal, brute force védelmi megoldásokkal és naplóelemzéssel.

A WordPress által használt XMLRPC fájl alkalmas indirekt módon a DDOS és Brute Force támadásokhoz.

A probléma kezelése és megszüntetése viszonylag egyszerű, a .htacces fájl végébe másoljuk be az alábbi sorokat, majd mentsük el:

# BEGIN protect xmlrpc.php <files xmlrpc.php> order allow,deny deny from all </files> # END protect xmlrpc.php

Amennyiben ez nem oldja meg a fennálló problémát, úgy mentsük le számítógépünkre a jelzett fájlt majd töröljük a szerverről azt.