WordPress painostuksen alla. Suojaa omilla käsilläsi

12

WordPress – kätevä alusta artikkeleiden julkaisemiseen ja hallintaan, joka perustuu valtavaan määrään erilaisia ​​sivustoja. Yleisyyteensä vuoksi tämä CMS on pitkään ollut maukas pala hakkereille.

Valitettavasti perusasetukset eivät tarjoa riittävää suojaustasoa, jolloin monet aukot jäävät kattamatta. Tässä artikkelissa käymme läpi tyypillisen "mallihakkerointisivuston" WordPressissä ja näytämme, kuinka tunnistetut haavoittuvuudet korjataan.

Nykyään WordPress-sisällönhallintajärjestelmä on suosituin. Sen osuus on 60,4 % CMS-koneita käyttävien kohteiden kokonaismäärästä. Näistä tilastojen mukaan 67,3% sivustoista perustuu ohjelmiston uusimpaan versioon. Samaan aikaan verkkomoottorin kahdentoista vuoden aikana löydettiin 242 erilaista haavoittuvuutta (pois lukien kolmannen osapuolen laajennuksista ja teemoista löytyneet haavoittuvuudet). Kolmannen osapuolen lisäosien tilastot ovat vielä surullisempia. Näin ollen yritys suoritti analyysin 2350 Revisium Russified -mallissa WordPressille, jotka oli otettu eri lähteistä. Tämän seurauksena he havaitsivat, että yli puolet (54 %) oli saastunut Web Shell, takaovet, blackhat seo ("roskaposti") -linkit ja komentosarjat sisälsivät kriittisiä haavoittuvuuksia. Joten istu alas, nyt aiomme ymmärtää, kuinka WordPress-sivuston auditointi suoritetaan ja löydetyt puutteet poistetaan. Käyttöön tulee versio 4.

Indeksointisivusto

Testin ensimmäinen askel on yleensä kerätä tietoja kohteesta. Ja sitten hyvin usein se auttaa väärin määrityksiä Indeksointisivusto, jonka avulla luvattomat käyttäjät voivat tarkastella sivuston tiettyjen osien sisältöä ja esimerkiksi saada tietoja asennetuista laajennuksista ja teemoista sekä pääsyn luottamuksellisiin tietoihin tai tietokantojen varmuuskopioihin.. Voit tarkistaa, mitkä hakemistot ovat näkyvissä ulkopuolelta, helpoin tapa hyödyntää Googlea. Riittää, kun suoritat Google Dorks -tyypin kyselyn site: example.com intitle: «index of» inurl: / wp-content /. Operaattorin inurl: Voit määrittää seuraavat hakemistot:

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

Jos näet / wp-content / plugins /, seuraava vaihe on kerätä tietoja asennetuista laajennuksista ja niiden versioista on huomattavasti yksinkertaisempaa. Luonnollisesti voit estää indeksoinnin käyttämällä tiedostoa robots.txt. Joten oletuksena se ei sisälly asennuspakettiin WordPress, sinun on luotava ja heittäydyttävä sivuston juurihakemistoon. Oppaat robots.txt-tiedoston luomiseen ja työskentelyyn on melko paljon, joten jätä tämä aihe itsellesi. Anna vain yksi mahdollisista vaihtoehdoista:

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: /

Jos latauskansioon tallennetut tiedostot ovat luottamuksellisia tietoja, lisää tälle listariville: Disallow: / wp-content / uploads /. Toisaalta robots.txt-tiedostoa ei suositella sijoittamaan linkkejä hakemistoihin, jotka on luotu erityisesti arkaluonteisten tietojen tallentamista varten. Muuten helpotat näin hyökkääjän tehtävää, koska tämä on ensimmäinen paikka, jossa yleensä kaikki etsivät "yammua".

Tietoturvalaajennukset WordPressille
Yhdistä .htaccess

Arkaluontoisten tietojen pääsyn rajoittamiseksi on parempi käyttää tiedostoa .htaccess – se on Apache Web Serverin käyttämä asetustiedosto. Harkitse tiedoston mahdollisuutta turvallisuuden kannalta. Sen avulla voit: estää pääsyn hakemistoihin ja tiedostoihin, lukita erilaisia ​​SQL-injektiota ja haitallisia skriptejä. Tätä CMS WordPress 4.1:n vakiomuotoista .htaccess-tiedostoa varten sinun on laajennettava hieman. Voit sulkea tiedostojen ja kansioiden luettelon lisäämällä:

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

Estä viittaukset, jotka sisältävät koodauksen Base64. Päästä eroon linkeistä, jotka sisältävät tunnisteen <script>:

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

Voit estää komentosarjoja, jotka yrittävät asettaa globaaleja muuttujia tai muuttaa _REQUESTmuuttujaa URL-osoitteen kautta:

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

Voit torjua SQL-injektion estopyynnöt URL-osoitteeseen, joka sisältää tiettyjä avainsanoja:

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]

Suodattaa tietyt käyttäjäagentit pilatakseen yleiset hakkerointityökalut:

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

Olisi mukavaa rajoittaa ja pääsyä kriittisiin tiedostoihin, jotka tallentavat kokoonpanon tai voivat vain antaa hyökkääjälle tietoja. Voit valita seuraavat ehdokkaat:

  • Wp-config.php, sisältää tietokannan nimen, käyttäjänimen, salasanan ja taulukon etuliitettä;
  • .htaccess;
  • Readme.html ja ru_RU.po, jotka sisältävät WordPress-version;
  • Install.php.

Tämä tehdään seuraavasti:

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

Nämä rivit sisältävän .htaccess-tiedoston tulee olla samassa hakemistossa kuin tiedosto on suojattu. Älä sitten salli käyttäjien luetteloimista (muista, hieman korkeammalle, puhuimme siitä, kuinka helppoa on saada käyttäjäluettelo?):

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

Mitä muuta? Voit päästää sisään vain tietyistä IP-osoitteista. Voit tehdä tämän luomalla .htaccess-tiedoston wp-adminissa seuraavilla säännöillä:

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

Menetelmä ei ole kovin joustava ja soveltuu vain, jos työskentelet rajoitetun määrän kiinteitä IP-osoitteita kanssa. Muussa tapauksessa on suositeltavaa asettaa salasana kansion wp-admin paneelille hosting-palvelun kautta (jos tämä toiminto on).

WWW

Perishable Pressin sääntöjoukko 5G Blacklist ja 6G Blacklist beta, jonka avulla voit käsitellä WordPressin yleisiä haitallisia URL-pyyntöjä.

Lisätoimenpiteet

Edellä sanotun lisäksi voidaan lisätä seuraavat suositukset. Käytä ensin vain WordPressin ja sen komponenttien uusimpia versioita – tämä poistaa tunnetut haavoittuvuudet. Toiseksi, poista laajennukset ja teemat, jotka voidaan myös proekspluatirovat. Kolmanneksi lataa WordPress-teemat ja -laajennukset luotettavista lähteistä, kuten kehittäjien sivustoilta ja WordPressin viralliselta sivustolta. Kotitietokoneen lisäksi sinun on säännöllisesti tarkistettava verkkoresurssi Web Antivirus, esimerkiksi AI-Bolit. Jos sinulla on pääsy web-palvelimeen, tunnelma tiedostojen ja hakemistojen käyttöoikeuksista. Yleensä WordPress asettaa täydet oikeudet asennusvaiheessa, mutta tarvittaessa voidaan asettaa manuaalisesti chmod. Hakemistolle – chmod 755 tiedostoille – chmod 644. Varmista, että 777:n oikeudet kohdistetaan vain niille laitteille, jotka sitä tarvitsevat (joskus se on tarpeen joidenkin laajennusten normaalin toiminnan kannalta). Jos WordPress lakkasi toimimasta normaalisti, kokeile käyttöoikeuksia: kokeile ensin 755, sitten 766 ja lopuksi 777. Kaikki htaccess-tiedostot paljastavat chmod 444:n (vain luku). Jos sivusto ei enää toimi, kokeile arvoja 400, 440, 444, 600, 640, 644.

Siirrä tiedosto wp-config.php. Tämä tiedosto sisältää tietoja asetuksista, MySQL:stä, taulukon etuliitteestä, salaisista avaimista ja paljon muuta. Siksi on tarpeen siirtää tiedostoon ei ollut saatavilla Internetistä. Jos sivusto ei ole kansiossa public_html, vedä tiedosto wp-config.php yllä olevaan kansiotasoon, jolloin WordPress löytää sen automaattisesti juurihakemistosta (koskee, jos tässä CMS:ssä on vain yksi isännöintisivusto).

Monimutkaistaaksesi casting shell, poista kyky muokata säikeitä konsoli WordPress. Tee tämä lisäämällä seuraava rivi tiedostoon wp-config.php:

define ('DISALLOW_FILE_EDIT', true) ;

Toinen heikko kohta – tiedosto install.php (kansiossa wp-admin). Siksi on parempi poistaa, estää tai muuttaa. Tee jokin seuraavista:

  1. Poista tämä tiedosto – asennuksen jälkeen sitä ei enää tarvita.
  2. Estä pääsy tiedostoon .htaccessin kautta.
  3. Nimeä alkuperäinen tiedosto install.php (esim. install.php.old) ja luo uusi tiedosto install.php, jossa on seuraava sisältö:
<?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>

Sen lisäksi, että tämä komentosarja ilmoittaa sivuston vierailijoille, se toimii seuraavasti:

  • Lähettää asiakkaalle ja hakukoneille tilakoodin 503 ("Palvelu ei saatavilla");
  • Määrittää aikavälin, jonka kuluessa asiakkaat ja hakukoneet voivat palata sivustolle (säädettävä parametri);
  • Ilmoita sähköpostilla tietokannassa olevasta ongelmasta asianmukaisia ​​toimia varten.

Se, että aiemmissa WordPressin versioissa (< = 2.7.1) virheellisin MySQL (esim. DDoS-attack) CMS mahdollistaa uudelleenasennuksen. Lisäksi se voi tapahtua ja vikoja / vaurioita yksi taulukoita WordPress. Erityisesti hyökkäys on mahdollista, kun vahingoittunut taulukko ks29so_options (WordPress 2.6.2:ssa) tai ks29so_users (WordPress 2.0.3 ja 2.0.11). Toisin sanoen WP:n eri versioissa eri taulukot asennusohjelman päätarkistuksessa – se voi olla joko taulukko ks29so_options tai ks29so_users.

Irrota lopuksi uusien käyttäjien rekisteröinti, jos se ei ole välttämätöntä. Jos kuitenkin tarjoaa online-rekisteröinnin, huolehdi siitä, että uudet käyttäjät rekisteröinnin jälkeen saavat minimaaliset oikeudet.

Hyödyllisiä linkkejä
Sulkeminen

WordPress – melko suuri ja monimutkainen tuote plussine ja huonoine puolineen. Valitettavasti oletuskokoonpanossa sen turvallisuus on kyseenalainen, koska jopa normaalin skriptkidisin läsnä ollessa suora käsi ja Internet pystyy murtamaan suojan. Siksi suosittelemme, että tarkistat resurssin samalla tavalla kuin teimme artikkelissa. Ja jos löydät puutteita – korjaa ne, jotta hyökkääjän mahdollisuus vaarantaa resurssi minimiin.

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