WordPress 5.2 -julkaisu, joka tukee digitaalisen allekirjoituksen päivitysten tarkistamista

Lähettäjä web-sisällönhallintajärjestelmän julkaisu WordPress 5.2. Julkaisu on huomionarvoinen valmistumisensa vuoksi kuuden vuoden eepos täytäntöönpanoa varten mahdollisuuksia päivitysten ja lisäysten tarkistaminen digitaalisella allekirjoituksella.

Tähän asti päivityksiä asennettaessa WordPressiin tärkein turvallisuustekijä on ollut luottamus WordPressin infrastruktuuriin ja palvelimiin (latauksen jälkeen tiiviste varmistettiin lähteen varmentamatta). Jos projektin palvelimet vaarantuivat, hyökkääjät pystyivät korvaamaan päivityksen ja jakamaan haitallista koodia WordPress-pohjaisille sivustoille, jotka käyttävät automaattista päivityksen asennusjärjestelmää. Aiemmin käytetyn luotetun toimitusmallin mukaisesti tällainen korvaaminen jäisi käyttäjiltä huomaamatta.

Ottaen huomioon sen tosiasian Mukaan projekti w3techs alusta WordPress on käytössä 33.8 prosentilla verkon sivustoista, tapaus olisi katastrofin mittakaavassa. Samaan aikaan infrastruktuurin vaarantumisen vaara ei ollut hypoteettinen, vaan aivan todellinen. Esimerkiksi useita vuosia sitten yksi turvallisuustutkijoista osoittanut haavoittuvuus, joka antoi hyökkääjän suorittaa koodinsa api.wordpress.org-palvelinpuolella.

Digitaalisten allekirjoitusten tapauksessa päivitysjakelupalvelimen hallintaan saaminen ei johda käyttäjäjärjestelmien vaarantumiseen, koska hyökkäyksen suorittamiseksi on lisäksi hankittava erikseen tallennettu yksityinen avain, jota käytetään allekirjoittamiseen. päivitykset.

Päivitysten lähteen tarkistamisen digitaalisella allekirjoituksella vaikeutti se, että tuki tarvittaville salausalgoritmeille ilmestyi PHP:n standardijakelussa suhteellisen hiljattain. Tarvittavat salausalgoritmit ilmestyivät kirjaston integroinnin ansiosta libsodium pääjoukkueeseen PHP 7.2. Mutta PHP:n vähimmäistukena versiona WordPressissä julisti julkaisu 5.2.4 (WordPress 5.2 - 5.6.20 jälkeen). Digitaalisten allekirjoitusten tuen salliminen johtaisi PHP:n vähimmäistuetun version vaatimusten huomattavaan nousuun tai ulkoisen riippuvuuden lisäämiseen, mitä kehittäjät eivät voi tehdä, koska PHP-versiot ovat yleisiä isännöintijärjestelmissä.

Tie ulos oli suunnittelu ja Libsodiumin kompaktin muunnelman sisällyttäminen WordPress 5.2:een - Sodium Compat, joka toteuttaa PHP:ssä vähimmäisjoukon algoritmeja digitaalisten allekirjoitusten tarkistamiseksi. Toteutus jättää paljon toivomisen varaa suorituskyvyn suhteen, mutta ratkaisee täysin yhteensopivuusongelman ja mahdollistaa myös lisäosien kehittäjien aloittaa nykyaikaisten salausalgoritmien toteuttamisen.

Digitaalisten allekirjoitusten luomiseen käytetään algoritmia Ed25519, kehitetty Daniel J. Bernsteinin panoksella. Päivitysarkiston sisällöstä lasketulle SHA384-tiivistearvolle luodaan digitaalinen allekirjoitus. Ed25519:llä on korkeampi suojaustaso kuin ECDSA:ssa ja DSA:ssa, ja se osoittaa erittäin nopean vahvistuksen ja allekirjoituksen luomisen. Ed25519:n murtumislujuus on noin 2^128 (keskimäärin Ed25519:n hyökkäämiseen tarvitaan 2^140 bittiä), mikä vastaa algoritmien, kuten NIST P-256 ja RSA, vahvuutta 3000 bitin avainkoon tai RSA:n kanssa. 128-bittinen lohkosalaus. Ed25519 on myös immuuni hash-törmäyksille, välimuistin ajoitushyökkäyksille ja sivukanavahyökkäyksille.

WordPress 5.2:n julkaisussa digitaalisen allekirjoituksen vahvistus kattaa vain suuret alustapäivitykset toistaiseksi eikä estä päivitystä oletusarvoisesti, vaan vain ilmoittaa käyttäjälle ongelmasta. Päätettiin, ettei estoa ole heti otettu käyttöön oletusarvoisesti täyden tarkistuksen ja ohituksen tarpeen vuoksi mahdollisia ongelmia. Jatkossa on tarkoitus lisätä myös digitaalisen allekirjoituksen varmistus teemojen ja lisäosien asennuslähteen tarkistamiseksi (valmistajat voivat allekirjoittaa julkaisut omalla avaimellaan).

WordPress 5.2:n digitaalisten allekirjoitusten tuen lisäksi voidaan huomioida seuraavat muutokset:

  • "Sivuston kunto" -osioon on lisätty kaksi uutta sivua yleisten määritysongelmien virheenkorjausta varten, ja on toimitettu lomake, jonka avulla kehittäjät voivat jättää virheenkorjaustiedot sivuston ylläpitäjille.
  • Lisätty "valkoisen kuoleman näytön" toteutus, joka näytetään kohtalokkaiden ongelmien varalta ja auttaa järjestelmänvalvojaa korjaamaan laajennuksiin tai teemoihin liittyviä ongelmia vaihtamalla erityiseen kaatumispalautustilaan;
  • Lisäosien yhteensopivuuden tarkistusjärjestelmä on otettu käyttöön, joka tarkistaa automaattisesti mahdollisen lisäosan käyttömahdollisuuden nykyisessä kokoonpanossa ottaen huomioon käytetyn PHP-version. Jos laajennus vaatii uudemman PHP-version, järjestelmä estää automaattisesti tämän laajennuksen sisällyttämisen.
  • Lisätty tuki JavaScript-koodia käyttävien moduulien käyttöönotolle webpack и Baabel;
  • Uusi privacy-policy.php-malli on lisätty, jonka avulla voit mukauttaa tietosuojakäytäntösivun sisältöä;
  • Lisätty wp_body_open koukkukäsittelijä teemoille, jonka avulla voit lisätä koodin välittömästi body-tunnisteen jälkeen;
  • PHP-version vähimmäisvaatimukset on nostettu 5.6.20:een, laajennuksilla ja teemoilla on nyt mahdollisuus käyttää nimiavaruuksia ja anonyymejä toimintoja;
  • Lisätty 13 uutta kuvaketta.

Lisämaininta voidaan tehdä havaitseminen kriittinen haavoittuvuus WordPress-laajennuksessa WP Live Chat (CVE-2019-11185) Haavoittuvuus mahdollistaa mielivaltaisen PHP-koodin suorittamisen palvelimella. Laajennusta käytetään yli 27 2 sivustolla vuorovaikutteisen chatin järjestämiseen vierailijan kanssa, mukaan lukien yritysten, kuten IKEA, Adobe, Huawei, PayPal, TeleXNUMX ja McDonald's, sivustot (Live Chatia käytetään usein ärsyttävien ponnahduskeskustelujen toteuttamiseen työntekijöille puhumista tarjoavien yritysten sivustoilla).

Ongelma ilmenee tiedostojen palvelimelle lataamisen koodissa, ja sen avulla voit ohittaa kelvollisten tiedostotyyppien tarkistuksen ja ladata PHP-komentosarjan palvelimelle ja suorittaa sen sitten suoraan verkon kautta. Mielenkiintoista on, että samanlainen haavoittuvuus (CVE-2018-12426) tunnistettiin Live Chatissa jo viime vuonna, mikä mahdollisti PHP-koodin lataamisen kuvan varjolla määrittämällä Content-type-kenttään eri sisältötyypin. Osana korjausta lisättiin lisätarkistuksia sallittujen luetteloon ja MIME-sisältötyyppiin. Kuten kävi ilmi, nämä tarkastukset on toteutettu väärin ja ne voidaan helposti ohittaa.

Erityisesti ".php"-tunnisteella varustettujen tiedostojen suora lataaminen on kiellettyä, mutta monien palvelimien PHP-tulkkiin liittyvä ".phtml"-laajennus ei ollut mustalla listalla. Valkoinen lista sallii vain kuvien lataamisen, mutta se voidaan ohittaa määrittämällä kaksoistunniste, kuten ".gif.phtml". Ohitaaksesi MIME-tyypin tarkistuksen tiedoston alussa, ennen tagin avaamista PHP-koodilla riitti määrittää merkkijono "GIF89a".

Lähde: opennet.ru

Lisää kommentti