interneto turinio valdymo sistemos išleidimas . Išleidimas išsiskiria tuo, kad jis baigtas dėl įgyvendinimo naujinimų ir papildymų tikrinimas naudojant skaitmeninį parašą.
Iki šiol diegiant naujinimus WordPress Pagrindinis saugumo užtikrinimo veiksnys buvo pasitikėjimas infrastruktūra ir serveriais WordPress (Atsisiuntus, maišos kodas buvo patikrintas nepatikrinus šaltinio). Jei projekto serveriai buvo pažeisti, užpuolikai turėjo galimybę pakeisti atnaujinimą ir platinti kenkėjišką kodą svetainėse pagal WordPress, naudojant automatinio naujinimų diegimo sistemą. Pagal anksčiau naudotą patikimo pristatymo modelį toks pakeitimas nebūtų pastebėtas naudotojo pusėje.
Atsižvelgiant į tai, kad w3techs platformos projektas WordPress naudojamas 33.8 % interneto svetainių, incidentas būtų buvęs katastrofiškas. Be to, infrastruktūros pažeidimo pavojus nebuvo hipotetinis, o gana realus. Pavyzdžiui, prieš kelerius metus saugumo tyrėjas pažeidžiamumas, leidžiantis užpuolikui vykdyti savo kodą api.wordpress.org serverio pusėje.
Skaitmeninio parašo atveju naujinimų paskirstymo serverio valdymas nesukels vartotojų sistemų kompromisų, nes norint įvykdyti ataką, papildomai reikės gauti atskirai saugomą privatų raktą, su kuriuo pasirašomi naujinimai.
Atnaujinimų šaltinio tikrinimo naudojant skaitmeninį parašą įgyvendinimą apsunkino tai, kad standartiniame PHP pakete reikiamų kriptografinių algoritmų palaikymas atsirado palyginti neseniai. Bibliotekos integracijos dėka atsirado reikalingi kriptografiniai algoritmai į pagrindinę komandą Bet bent jau remiama WordPress PHP versijos 5.2.4 versija (pradedant nuo WordPress 5.2–5.6.20). Įjungus skaitmeninių parašų palaikymą, būtų gerokai padidėję minimaliai palaikomos PHP versijos reikalavimai arba pridėta išorinė priklausomybė, ko kūrėjai negalėjo padaryti dėl PHP versijų paplitimo prieglobos sistemose.
Sprendimas buvo ir įtraukimas į sudėtį WordPress 5.2 kompaktiškas Libsodium variantas - , kuriame PHP yra įdiegtas minimalus skaitmeninių parašų tikrinimo algoritmų rinkinys. Diegimas palieka daug norimų rezultatų našumo atžvilgiu, tačiau visiškai išsprendžia suderinamumo problemą, taip pat leidžia įskiepių kūrėjams pradėti diegti šiuolaikinius kriptografinius algoritmus.
Skaitmeniniams parašams generuoti naudojamas algoritmas , sukurtas dalyvaujant Danieliui J. Bernsteinui. Sugeneruojamas skaitmeninis parašas SHA384 maišos vertei, apskaičiuotai iš atnaujinimo archyvo turinio. Ed25519 saugumo lygis yra aukštesnis nei ECDSA ir DSA, be to, jis demonstruoja labai didelį patikrinimo ir parašo kūrimo greitį. Ed25519 atsparumas įsilaužimui yra apie 2^128 (vidutiniškai atakai prieš Ed25519 reikės 2^140 bitų operacijų), o tai atitinka tokių algoritmų kaip NIST P-256 ir RSA atsparumą, kai rakto dydis yra 3000 bitų. arba 128 bitų bloko šifras. Ed25519 taip pat nėra jautrus problemų, susijusių su maišos susidūrimais, ir nėra jautrus talpyklos laiko atakoms ar šoninio kanalo atakoms.
Klausimas WordPress 5.2 Skaitmeninio parašo tikrinimas šiuo metu apima tik pagrindinius platformos atnaujinimus ir pagal numatytuosius nustatymus neblokuoja atnaujinimo, o tik informuoja vartotoją apie problemą. Buvo nuspręsta neįjungti numatytojo blokavimo dėl poreikio atlikti visapusišką patikrinimą ir apeiti. . Ateityje taip pat planuojama pridėti skaitmeninio parašo tikrinimą, kad būtų galima patikrinti temų ir papildinių diegimo šaltinį (gamintojai galės pasirašyti leidimus savo raktu).
Be skaitmeninių parašų palaikymo, WordPress 5.2 m. galima pastebėti šiuos pokyčius:
- Skiltyje „Svetainės būklė“ buvo įtraukti du nauji puslapiai, skirti derinti įprastas konfigūracijos problemas, taip pat buvo pateikta forma, per kurią kūrėjai gali palikti derinimo informaciją svetainės administratoriams;
- Pridėtas „baltojo mirties ekrano“ įdiegimas, rodomas esant mirtinoms problemoms ir padedantis administratoriui savarankiškai išspręsti su įskiepiais ar temomis susijusias problemas perjungiant į specialų gedimų atkūrimo režimą;
- Įdiegta suderinamumo su įskiepiais tikrinimo sistema, kuri automatiškai patikrina galimybę naudoti papildinį esamoje konfigūracijoje, atsižvelgiant į naudojamą PHP versiją. Jei įskiepiui veikti reikalinga naujesnė PHP versija, sistema automatiškai blokuos šio papildinio įtraukimą;
- Pridėtas modulių su JavaScript kodu įgalinimo palaikymas и ;
- Pridėtas naujas privacy-policy.php šablonas, leidžiantis pritaikyti privatumo politikos puslapio turinį;
- Temose buvo pridėta wp_body_open kabliuko tvarkytuvė, leidžianti įterpti kodą iškart po kūno žymos;
- Reikalavimai minimaliai PHP versijai buvo padidinti iki 5.6.20; įskiepiai ir temos dabar turi galimybę naudoti vardų sritis ir anonimines funkcijas;
- Pridėta 13 naujų piktogramų.
Be to, galite paminėti kritinis pažeidžiamumas WordPress-įskiepis (CVE-2019-11185). Dėl pažeidžiamumo serveryje gali būti vykdomas savavališkas PHP kodas. Įskiepis naudojamas daugiau nei 27 tūkstančiuose svetainių, kad būtų galima organizuoti interaktyvų pokalbį su lankytoju, įskaitant tokių įmonių kaip IKEA, Adobe, Huawei, PayPal, Tele2 ir McDonald's svetaines (Live Chat dažnai naudojamas norint įdiegti iššokančius langus. pokalbiai įmonės svetainėse su pasiūlymais, pokalbiai su darbuotoju).
Problema pasireiškia failų įkėlimo į serverį kode ir leidžia apeiti galiojančių failų tipų patikrinimą ir įkelti PHP scenarijų į serverį, o tada vykdyti jį tiesiogiai per žiniatinklį. Įdomu tai, kad pernai panašus pažeidžiamumas jau buvo nustatytas „Live Chat“ (CVE-2018-12426), kuris leido prisidengiant vaizdu įkelti PHP kodą, laukelyje „Content-type“ nurodant kitą turinio tipą. Kaip pataisos dalis, buvo pridėtos papildomos baltųjų sąrašų ir MIME turinio tipo patikros. Kaip paaiškėjo, šie patikrinimai įgyvendinami neteisingai ir gali būti lengvai apeinami.
Visų pirma draudžiama tiesiogiai įkelti failus su plėtiniu „.php“, tačiau plėtinys „.phtml“, kuris daugelyje serverių yra susietas su PHP interpretatoriumi, nebuvo įtrauktas į juodąjį sąrašą. Baltasis sąrašas leidžia įkelti tik vaizdus, tačiau galite jį apeiti nurodydami dvigubą plėtinį, pvz., „.gif.phtml“. Norint apeiti MIME tipo patikrą failo pradžioje, prieš atidarant žymą su PHP kodu pakako nurodyti eilutę „GIF89a“.
Šaltinis: opennet.ru
