WordPress pressi all. Kaitske oma kätega

15

WordPress – mugav platvorm artiklite avaldamiseks ja haldamiseks, mis põhineb tohutul hulgal erinevatel saitidel. Oma levimuse tõttu on see CMS häkkeritele pikka aega olnud maitsev suupiste.

Kahjuks ei taga põhiseaded piisavat kaitsetaset, mistõttu on palju auke katmata krediidiriski tõttu. Selles artiklis käsitleme tüüpilist WordPressi häkkimissaiti ja näitame, kuidas tuvastatud turvaauke parandada.

Tänapäeval on kõige populaarsem sisuhaldussüsteem WordPress. Selle osakaal on 60,4% CMS-mootoreid kasutavate saitide koguarvust. Neist statistika järgi 67,3% saitidest põhinevad tarkvara uusimal versioonil. Vahepeal leiti veebimootori kaheteistkümne aasta jooksul 242 erinevat tüüpi turvaauku (välja arvatud kolmandate osapoolte pistikprogrammides ja teemades leitud haavatavused). Kolmanda osapoole lisandmoodulite statistika on veelgi kurvem. Nii viis ettevõte läbi analüüsi 2350 Revisium Russified WordPressi mallis, mis võeti erinevatest allikatest. Selle tulemusena leidsid nad, et enam kui pooled (54%) olid nakatunud Web Shelliga, tagauksed, blackhat seo (“rämpspost") lingid ja skriptid sisaldasid kriitilisi turvaauke. Nii et istuge maha, Nüüd mõistame, kuidas WordPressi saidil auditit läbi viia ja leitud puudused kõrvaldada. Kasutatakse versiooni 4.

Indekseerimissait

Iga testi esimene samm on tavaliselt sihtmärgi kohta teabe kogumine. Ja siis väga sageli aitab see valesti seadistamine Indekseerimissait, mis võimaldab volitamata kasutajatel vaadata saidi teatud jaotiste sisu ja saada näiteks teavet installitud pistikprogrammide ja teemade kohta, samuti juurdepääsu konfidentsiaalsetele andmetele või andmebaaside varukoopiatele.. Kontrollimaks, millised kataloogid on väljastpoolt nähtavad, on lihtsaim viis Google’i eeliste kasutamiseks. Piisab, kui käivitada päring Google Dorks tüüpi site: example.com intitle: «index of» inurl: / wp-content /. Operaatori inurl: saate määrata järgmised kataloogid:

/wp-content/
/wp-content/languages/plugins
/wp-content/languages/themes
/wp-content/plugins/
/wp-content/themes/
/wp-content/uploads/

Kui saate vaadata faili / wp-content / plugins /, on järgmine samm installitud pistikprogrammide ja nende versioonide kohta teabe kogumine oluliselt lihtsustatud. Loomulikult saate indekseerimist takistada faili robots.txt abil. Nii et vaikimisi pole see WordPressi installipaketti kaasatud, on vaja luua ja visata end saidi juurkataloogi. Faili robots.txt loomise ja sellega töötamise juhendeid on üsna palju, nii et jätke see teema enda teada. Et anda vaid üks võimalikest valikutest:

User-Agent: *
Disallow: /cgi-bin
Disallow: /wp-login.php
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/
Disallow: /wp-content/plugins/
Disallow: /wp-content/themes/
Disallow: /?author=*
Allow: /

Kui üleslaaditavatesse kaustadesse salvestatud failid on konfidentsiaalne teave, lisage sellele loendi reale: Disallow: / wp-content / uploads /. Teisest küljest ei soovitata faili robots.txt paigutada linke kataloogidele, mis on loodud spetsiaalselt tundliku teabe salvestamiseks. Vastasel juhul hõlbustate sellega ründaja ülesannet, sest see on esimene koht, kus tavaliselt kõik otsivad "jammy".

WordPressi turbepluginad
Ühendage .htaccess

Tundlikule teabele juurdepääsu piiramiseks on parem kasutada faili .htaccess – see on konfiguratsioonifail, mida kasutab Apache veebiserver. Kaaluge faili võimalust ohutuse seisukohast. Sellega saate: keelata juurdepääsu kataloogidele ja failidele, lukustada mitmesuguseid SQL-i süstimisi ja pahatahtlikke skripte. Selle CMS WordPress 4.1 standardse .htaccess-faili jaoks peate veidi laiendama. Failide ja kaustade loendi sulgemiseks lisage:

Options +FollowSymLinks -Indexes
 
RewriteCond %{QUERY_STRING} base64_encode[^(]*([^)]*) [OR]

Blokeeri viited, mis sisaldavad kodeeringut Base64. Vabanege silti sisaldavatest linkidest <script>:

RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]

Skriptide vastu võitlemiseks, mis üritavad määrata globaalseid muutujaid või muuta _REQUESTmuutujat URL-i kaudu:

RewriteCond %{QUERY_STRING} GLOBALS (=|[|%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST (=|[|%[0-9A-Z]{0,2})

Teatud võtmesõnu sisaldava URL-i SQL-i sisestamise blokeerimise päringute vastu võitlemiseks:

RewriteCond %{query_string} concat.*( [NC,OR]
RewriteCond %{query_string} union.*select.*( [NC,OR]
RewriteCond %{query_string} union.*all.*select [NC]
RewriteRule ^(.*)$ index.php [F,L]

Levinud häkkimistööriistade elu rikkumiseks filtreerib teatud kasutajaagendid:

SetEnvIf user-agent «Indy Library» stayout=1
SetEnvIf user-agent «libwww-perl» stayout=1
SetEnvIf user-agent «Wget» stayout=1
deny from env=stayout
Kaitseb faile

Oleks tore piirata ja juurdepääsu kriitilistele failidele, mis salvestavad konfiguratsiooni või võivad lihtsalt anda ründajale teavet. Saate valida järgmised kandidaadid:

  • Wp-config.php, sisaldab andmebaasi nime, kasutajanime, parooli ja tabeli eesliidet;
  • .htaccess;
  • Readme.html ja ru_RU.po, mis sisaldavad WordPressi versiooni;
  • Install.php.

Seda tehakse järgmiselt.

<Files file_name>
Order Allow,Deny
Deny from all
</Files>

Neid ridu sisaldav fail .htaccess peaks asuma samas kataloogis, kus fail on kaitstud. Seejärel ärge lubage kasutajate loendit (pidage meeles, natuke kõrgemal, me rääkisime sellest, kui lihtne on kasutajate loendit hankida?):

RewriteCond %{QUERY_STRING} author=d
RewriteRule ^ /? [L,R=301]

Niisiis, mida veel? Sissepääsu saab lubada ainult määratud IP-aadressidelt. Selleks looge oma wp-adminis .htaccess-fail järgmiste reeglitega:

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Access Control"
AuthType Basic
order deny,allow
deny from all
allow from 178.178.178.178  # IP Home computer
allow from 248.248.248.248  # IP Work computer

Meetod ei ole eriti paindlik ja on rakendatav ainult siis, kui töötate piiratud arvu fikseeritud IP-aadressidega. Vastasel juhul on soovitatav hostimise kaudu määrata kausta wp-admin paneeli parool (kui see funktsioon on olemas).

WWW

Perishable Pressi 5G musta nimekirja ja 6G musta nimekirja beeta reeglistik, mis võimaldab teil toime tulla WordPressi levinud pahatahtlike URL-i päringutega.

Lisameetmed

Lisaks ülaltoodule võib lisada järgmised soovitused. Esiteks kasutage ainult WordPressi ja selle komponentide uusimaid versioone – see kõrvaldab teadaolevad haavatavused. Teiseks eemaldage pistikprogrammid ja teemad, mida saab ka proekspluatirovat. Kolmandaks laadige WordPressi teemad ja pistikprogrammid alla usaldusväärsetest allikatest, näiteks arendajate saitidelt ja WordPressi ametlikult saidilt. Lisaks koduarvutile peate perioodiliselt kontrollima oma veebiressurssi Web Antivirus, näiteks AI-Bolit. Kui teil on juurdepääs veebiserverile, on failide ja kataloogide juurdepääsuõigused. Tavaliselt määrab WordPress täielikud õigused installifaasis, kuid vajadusel saab selle käsitsi seadistada chmod. Kataloogi jaoks – chmod 755 failide jaoks – chmod 644. Veenduge, et 777 õigused määratakse ainult neile rajatistele, mis seda vajavad (mõnikord on see vajalik mõne pistikprogrammi normaalseks tööks). Kui WordPress lakkas normaalselt töötamast, katsetage juurdepääsuõigustega: esmalt proovige 755, seejärel 766 ja lõpuks 777. Et kogu htaccess-fail paljastaks chmod 444 (ainult lugemiseks). Kui sait enam ei tööta, proovige katsetada väärtustega 400, 440, 444, 600, 640, 644.

Teisaldage fail wp-config.php. See fail sisaldab teavet sätete, MySQL-i, tabeli prefiksi, salajaste võtmete ja muu kohta. Seetõttu on vaja üle kanda faili ei olnud Internetist saadaval. Kui sait ei asu kaustas public_html, siis lohistage fail wp-config.php ülaloleval kaustatasemel ja WordPress leiab selle automaatselt juurkataloogist (kehtib, kui sellel CMS-il on ainult üks hostimissait).

Ülekandmise kesta keerulisemaks muutmiseks keelake WordPressi konsooli lõimede redigeerimise võimalus. Selleks sisestage faili wp-config.php järgmine rida:

define ('DISALLOW_FILE_EDIT', true) ;

Teine nõrk koht – fail install.php (kaustas wp-admin). Seetõttu on parem eemaldada, blokeerida või muuta. Tehke üks järgmistest:

  1. Lihtsalt kustutage see fail – pärast installimist pole see enam vajalik.
  2. Keela juurdepääs failile .htaccessi kaudu.
  3. Nimetage algne fail install.php ümber (nt install.php.old) ja looge uus fail install.php järgmise sisuga:
<?php header("HTTP/1.1 503 Service Temporarily Unavailable"); ?>
<?php header("Status 503 Service Temporarily Unavailable"); ?>
<?php header("Retry-After 3600"); // 60 minutes ?>
<?php mail("[email protected]", "Database Error", "There is a problem with teh database!"); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en"xmlns="http://www.w3.org/1999/xhtml"lang="en">
<head>
<meta http-equiv="Content-Type"content="text/html; charset=utf-8" />
<title>Error Establishing Database Connection</title>
</head>
<body>
<h1>Error Establishing Database Connection</h1>
<p>We are currently experiencing database issues. Please check back shortly. Thank you.</p>
</body>
</html>

Lisaks saidi külastajate teavitamisele teeb see skript järgmist:

  • saadab kliendile ja otsingumootoritele olekukoodi 503 (“Teenus pole saadaval”);
  • Määrab ajavahemiku, mille jooksul kliendid ja otsingumootorid saavad saidile naasta (reguleeritav parameeter);
  • Andmebaasiga seotud probleemist teavitage e-posti teel, et saaksite asjakohaseid toiminguid teha.

Asjaolu, et WordPressi varasemates versioonides (< = 2.7.1) koos vigadega MySQL (näiteks DDoS-rünnak) CMS võimaldab uuesti installida. Lisaks võib see juhtuda ja WordPressi ühe tabeli rike / kahjustamine. Eelkõige on rünnak võimalik siis, kui kahjustatud tabel on ks29so_options (WordPressi versioonis 2.6.2) või ks29so_users (WordPressi versioonides 2.0.3 ja 2.0.11). See tähendab, et WP erinevates versioonides installija põhikontrollis on erinevad tabelid – see võib olla kas tabel ks29so_options või ks29so_users.

Lõpuks katkestage uute kasutajate registreerimine, kui see pole vajalik. Kui aga pakub veebis registreerimist, hoolitsege selle eest, et uued kasutajad saaksid pärast registreerimist minimaalsed privileegid.

Kasulikud lingid
Sulgemine

WordPress – üsna mahukas ja kompleksne toode oma plusside ja miinustega. Kahjuks on vaikekonfiguratsioonis selle ohutus küsitav, kuna isegi tavalise skriptkidisega sirge käe ja Interneti olemasolul suudab kaitse läbi murda. Seetõttu soovitame tungivalt ressurssi kontrollida samal viisil, nagu tegime artiklis. Ja kui leiate vigu – parandage need, et minimeerida ründaja võimalusi ressurssi kahjustada.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More