Lëshimi i WordPress 5.2 me mbështetje për kontrollimin e përditësimeve me nënshkrim dixhital

prezantuar lëshimi i sistemit të menaxhimit të përmbajtjes në ueb WordPress 5.2. Lëshimi shquhet për përfundimin e tij epike gjashtëvjeçare mbi zbatimin mundësitë duke kontrolluar përditësimet dhe shtesat duke përdorur një nënshkrim dixhital.

Deri më tani, gjatë instalimit të përditësimeve në WordPress, faktori kryesor i sigurisë ishte besimi në infrastrukturën dhe serverët e WordPress (pas shkarkimit, hash-i kontrollohej pa verifikuar burimin). Nëse serverët e projektit komprometoheshin, sulmuesit ishin në gjendje të mashtronin një përditësim dhe të shpërndanin kodin me qëllim të keq midis faqeve të bazuara në WordPress që përdorin një sistem instalimi automatik të përditësimeve. Në përputhje me modelin e shpërndarjes së besimit të përdorur më parë, një zëvendësim i tillë do të kishte kaluar pa u vënë re nga ana e përdoruesve.

Duke marrë parasysh faktin se të dhëna i projektit w3techs, platforma WordPress përdoret në 33.8% të faqeve në rrjet, incidenti do të kishte marrë përmasat e një fatkeqësie. Në të njëjtën kohë, rreziku i kompromisit të infrastrukturës nuk ishte hipotetik, por mjaft real. Për shembull, disa vite më parë një nga studiuesit e sigurisë demonstruar një dobësi që lejoi një sulmues të ekzekutonte kodin e tij në anën e serverit të api.wordpress.org.

Në rastin e nënshkrimeve dixhitale, marrja e kontrollit mbi serverin e shpërndarjes së përditësimeve nuk do të çojë në kompromis të sistemeve të përdoruesve, pasi për të kryer një sulm, do t'ju duhet gjithashtu të merrni një çelës privat të ruajtur veçmas, me të cilin nënshkruhen përditësimet.

Zbatimi i kontrollit të burimit të përditësimeve duke përdorur një nënshkrim dixhital u pengua nga fakti se mbështetja për algoritmet e nevojshme kriptografike u shfaq në paketën standarde PHP relativisht kohët e fundit. Algoritmet e nevojshme kriptografike u shfaqën falë integrimit të bibliotekës Libsodium te ekipi kryesor PHP 7.2. Por si versioni minimal i mbështetur i PHP në WordPress deklaruar lëshimi 5.2.4 (nga WordPress 5.2 - 5.6.20). Mundësimi i mbështetjes për nënshkrimet dixhitale do të çonte në një rritje të konsiderueshme të kërkesave për versionin minimal të mbështetur të PHP ose shtimin e një varësie të jashtme, gjë që zhvilluesit nuk mund ta bënin duke pasur parasysh përhapjen e versioneve PHP në sistemet pritëse.

Zgjidhja ishte zhvillimi dhe përfshirja e një versioni kompakt të Libsodium në WordPress 5.2 - Natriumi Compat, në të cilin një grup minimal algoritmesh për verifikimin e nënshkrimeve dixhitale zbatohet në PHP. Zbatimi lë shumë për të dëshiruar për sa i përket performancës, por zgjidh plotësisht problemin e përputhshmërisë dhe gjithashtu lejon zhvilluesit e shtojcave të fillojnë zbatimin e algoritmeve moderne kriptografike.

Një algoritëm përdoret për të gjeneruar nënshkrime dixhitale Ed25519, zhvilluar me pjesëmarrjen e Daniel J. Bernstein. Një nënshkrim dixhital gjenerohet për vlerën hash SHA384 të llogaritur nga përmbajtja e arkivit të përditësimit. Ed25519 ka një nivel më të lartë sigurie se ECDSA dhe DSA, dhe demonstron shpejtësi shumë të lartë të verifikimit dhe krijimit të nënshkrimit. Rezistenca ndaj hakerimit për Ed25519 është rreth 2^128 (mesatarisht, një sulm në Ed25519 do të kërkojë operacione 2^140 bit), që korrespondon me rezistencën e algoritmeve të tilla si NIST P-256 dhe RSA me një madhësi kyçe prej 3000 bit. ose shifror blloku 128-bit. Ed25519 gjithashtu nuk është i ndjeshëm ndaj problemeve me përplasje hash dhe nuk është i ndjeshëm ndaj sulmeve të kohës së cache-së ose sulmeve të kanalit anësor.

Në versionin e WordPress 5.2, verifikimi i nënshkrimit dixhital aktualisht mbulon vetëm përditësimet kryesore të platformës dhe nuk e bllokon përditësimin si parazgjedhje, por vetëm informon përdoruesin për problemin. U vendos që të mos mundësohej menjëherë bllokimi i paracaktuar për shkak të nevojës për një kontroll të plotë dhe anashkalim problemet e mundshme. Në të ardhmen, është planifikuar gjithashtu të shtohet verifikimi i nënshkrimit dixhital për të verifikuar burimin e instalimit të temave dhe shtojcave (prodhuesit do të jenë në gjendje të nënshkruajnë publikimet me çelësin e tyre).

Përveç mbështetjes për nënshkrimet dixhitale në WordPress 5.2, mund të vërehen ndryshimet e mëposhtme:

  • Dy faqe të reja janë shtuar në seksionin "Shëndeti i faqes" për korrigjimin e problemeve të zakonshme të konfigurimit dhe gjithashtu është siguruar një formular përmes të cilit zhvilluesit mund t'ua lënë informacionin e korrigjimit të administratorëve të faqes;
  • Shtuar zbatimin e "ekranit të bardhë të vdekjes", i shfaqur në rast të problemeve fatale dhe duke ndihmuar administratorin të rregullojë në mënyrë të pavarur problemet që lidhen me shtojcat ose temat duke kaluar në një mënyrë të veçantë të rikuperimit të përplasjes;
  • Është zbatuar një sistem për kontrollin e përputhshmërisë me shtojcat, i cili kontrollon automatikisht mundësinë e përdorimit të shtojcës në konfigurimin aktual, duke marrë parasysh versionin e përdorur të PHP. Nëse një plugin kërkon një version më të ri të PHP për të funksionuar, sistemi automatikisht do të bllokojë përfshirjen e kësaj shtojce;
  • Mbështetje e shtuar për aktivizimin e moduleve me kod JavaScript duke përdorur paketë и Babel;
  • U shtua një shabllon i ri privacy-policy.php që ju lejon të personalizoni përmbajtjen e faqes së politikës së privatësisë;
  • Për temat, është shtuar një mbajtës grep wp_body_open, i cili ju lejon të futni kodin menjëherë pas etiketës së trupit;
  • Kërkesat për versionin minimal të PHP janë ngritur në 5.6.20; shtojcat dhe temat tani kanë mundësinë të përdorin hapësirat e emrave dhe funksionet anonime;
  • U shtuan 13 ikona të reja.

Për më tepër, mund të përmendni zbulim dobësi kritike në shtojcën WordPress WP Live Chat (CVE-2019-11185). Dobësia lejon që kodi arbitrar PHP të ekzekutohet në server. Shtojca përdoret në më shumë se 27 mijë sajte për të organizuar një bisedë interaktive me një vizitor, duke përfshirë faqet e kompanive të tilla si IKEA, Adobe, Huawei, PayPal, Tele2 dhe McDonald's (Live Chat shpesh përdoret për të zbatuar pop-up të bezdisshëm biseda në faqet e kompanisë me oferta bisedoni me punonjësin).

Problemi manifestohet në kodin për ngarkimin e skedarëve në server dhe ju lejon të anashkaloni kontrollin e llojeve të skedarëve të vlefshëm dhe të ngarkoni një skript PHP në server, dhe më pas ta ekzekutoni atë drejtpërdrejt përmes uebit. Është interesante se vitin e kaluar një dobësi e ngjashme u identifikua tashmë në Live Chat (CVE-2018-12426), e cila lejoi ngarkimin e kodit PHP nën maskën e një imazhi, duke specifikuar një lloj tjetër përmbajtjeje në fushën e llojit të përmbajtjes. Si pjesë e rregullimit, janë shtuar kontrolle shtesë për listat e bardha dhe llojin e përmbajtjes MIME. Siç rezulton, këto kontrolle janë zbatuar gabimisht dhe mund të anashkalohen lehtësisht.

Në veçanti, ngarkimi i drejtpërdrejtë i skedarëve me shtesën ".php" është i ndaluar, por ekstensioni ".phtml", i cili shoqërohet me interpretuesin PHP në shumë serverë, nuk u shtua në listën e zezë. Lista e bardhë lejon vetëm ngarkimet e imazheve, por ju mund ta anashkaloni atë duke specifikuar një shtesë të dyfishtë, për shembull, ".gif.phtml". Për të anashkaluar kontrollin e tipit MIME në fillim të skedarit, përpara se të hapni etiketën me kodin PHP, mjaftonte të specifikoni rreshtin "GIF89a".

Burimi: opennet.ru

Shto një koment