WordPress 5.2 izlaidums ar atbalstu atjauninājumu pārbaudei ar ciparparakstu

Iesniedzis tÄ«mekļa satura pārvaldÄ«bas sistēmas izlaiÅ”ana WordPress 5.2. Izlaidums ir ievērojams ar tā pabeigÅ”anu seÅ”u gadu epopeja par Ä«stenoÅ”anu spējas atjauninājumu un papildinājumu pārbaude, izmantojot digitālo parakstu.

LÄ«dz Å”im, instalējot atjauninājumus WordPress, galvenais droŔības faktors bija uzticÄ“Å”anās WordPress infrastruktÅ«rai un serveriem (pēc lejupielādes tika pārbaudÄ«ts hash, nepārbaudot avotu). Ja projekta serveri tika apdraudēti, uzbrucēji varēja viltot atjauninājumu un izplatÄ«t ļaunprātÄ«gu kodu starp vietnēm, kuru pamatā ir WordPress un kurās tiek izmantota automātiskā atjauninājumu instalÄ“Å”anas sistēma. Saskaņā ar iepriekÅ” izmantoto uzticamÄ«bas piegādes modeli Ŕāda aizstāŔana lietotāju pusē bÅ«tu palikusi nepamanÄ«ta.

Ņemot vērā faktu, ka Saskaņā ar no w3techs projekta WordPress platforma tiek izmantota 33.8% tÄ«kla vietņu, incidents bÅ«tu bijis katastrofas mērogs. Tajā paŔā laikā infrastruktÅ«ras kompromitÄ“Å”anas briesmas nebija hipotētiskas, bet gan reālas. Piemēram, pirms vairākiem gadiem viens no droŔības pētniekiem demonstrēts ievainojamÄ«ba, kas ļāva uzbrucējam izpildÄ«t savu kodu api.wordpress.org servera pusē.

Ciparparakstu gadÄ«jumā kontroles iegÅ«Å”ana pār atjauninājumu izplatÄ«Å”anas serveri neizraisÄ«s lietotāju sistēmu kompromitÄ“Å”anu, jo, lai veiktu uzbrukumu, papildus bÅ«s jāiegÅ«st atseviŔķi glabājama privātā atslēga, ar kuru tiek parakstÄ«ti atjauninājumi.

Atjauninājumu avota pārbaudes, izmantojot digitālo parakstu, ievieÅ”anu apgrÅ«tināja fakts, ka nepiecieÅ”amo kriptogrāfijas algoritmu atbalsts standarta PHP pakotnē parādÄ«jās salÄ«dzinoÅ”i nesen. NepiecieÅ”amie kriptogrāfijas algoritmi parādÄ«jās, pateicoties bibliotēkas integrācijai Libsātrijs galvenajai komandai PHP 7.2. Bet kā minimālā atbalstÄ«tā PHP versija programmā WordPress norādÄ«ts laidiens 5.2.4 (no WordPress 5.2 lÄ«dz 5.6.20). Ciparparakstu atbalsta iespējoÅ”ana ievērojami palielinātu prasÄ«bas attiecÄ«bā uz minimāli atbalstÄ«to PHP versiju vai pievienotu ārēju atkarÄ«bu, ko izstrādātāji nevarētu darÄ«t, ņemot vērā PHP versiju izplatÄ«bu hostinga sistēmās.

Risinājums bija attÄ«stÄ«bu un Libsodium kompaktās versijas iekļauÅ”ana WordPress 5.2 ā€” Sodium Compat, kurā PHP ir ieviests minimālais algoritmu komplekts digitālo parakstu pārbaudei. IevieÅ”ana atstāj daudz vēlamo veiktspējas ziņā, taču pilnÄ«bā atrisina saderÄ«bas problēmu, kā arÄ« ļauj spraudņu izstrādātājiem sākt ieviest modernus kriptogrāfijas algoritmus.

Digitālo parakstu Ä£enerÄ“Å”anai tiek izmantots algoritms Ed25519, izstrādāts ar Daniela J. Bernsteina piedalÄ«Å”anos. Ciparparaksts tiek Ä£enerēts SHA384 jaucējvērtÄ«bai, kas aprēķināta no atjauninājumu arhÄ«va satura. Ed25519 ir augstāks droŔības lÄ«menis nekā ECDSA un DSA, un tas demonstrē ļoti lielu verifikācijas un paraksta izveides ātrumu. Ed25519 pretestÄ«ba uzlauÅ”anai ir aptuveni 2^128 (vidēji uzbrukumam Ed25519 bÅ«s nepiecieÅ”amas 2^140 bitu darbÄ«bas), kas atbilst tādu algoritmu kā NIST P-256 un RSA pretestÄ«bai ar atslēgas izmēru 3000 biti. vai 128 bitu bloka Å”ifrs. Ed25519 arÄ« nav uzņēmÄ«gs pret problēmām, kas saistÄ«tas ar sadursmēm, un nav uzņēmÄ«gs pret keÅ”atmiņas laika uzbrukumiem vai sānu kanālu uzbrukumiem.

WordPress 5.2 laidienā digitālā paraksta pārbaude paÅ”laik attiecas tikai uz galvenajiem platformas atjauninājumiem un pēc noklusējuma nebloķē atjauninājumu, bet tikai informē lietotāju par problēmu. Tika nolemts nekavējoties neiespējot noklusējuma bloÄ·Ä“Å”anu, jo bija nepiecieÅ”ama pilnÄ«ga pārbaude un apieÅ”ana iespējamās problēmas. Nākotnē plānots pievienot arÄ« digitālā paraksta verifikāciju, lai pārbaudÄ«tu motÄ«vu un spraudņu instalÄ“Å”anas avotu (ražotāji varēs parakstÄ«t izlaidumus ar savu atslēgu).

Papildus digitālo parakstu atbalstam WordPress 5.2 versijā var atzÄ«mēt Ŕādas izmaiņas:

  • Sadaļā ā€œVietnes veselÄ«baā€ ir pievienotas divas jaunas lapas izplatÄ«tāko konfigurācijas problēmu atkļūdoÅ”anai, kā arÄ« ir nodroÅ”ināta veidlapa, ar kuras palÄ«dzÄ«bu izstrādātāji var atstāt atkļūdoÅ”anas informāciju vietnes administratoriem;
  • Pievienota ā€œnāves baltā ekrānaā€ ievieÅ”ana, kas tiek parādÄ«ta fatālu problēmu gadÄ«jumā un palÄ«dz administratoram patstāvÄ«gi novērst problēmas, kas saistÄ«tas ar spraudņiem vai tēmām, pārslēdzoties uz Ä«paÅ”u avāriju atkopÅ”anas režīmu;
  • Ir ieviesta sistēma saderÄ«bas pārbaudei ar spraudņiem, kas automātiski pārbauda iespēju izmantot spraudni paÅ”reizējā konfigurācijā, ņemot vērā izmantoto PHP versiju. Ja spraudņa darbÄ«bai nepiecieÅ”ama jaunāka PHP versija, sistēma automātiski bloķēs Ŕī spraudņa iekļauÅ”anu;
  • Pievienots atbalsts moduļu iespējoÅ”anai ar JavaScript kodu tÄ«mekļa maisiņŔ Šø Kņada;
  • Pievienota jauna privacy-policy.php veidne, kas ļauj pielāgot privātuma politikas lapas saturu;
  • MotÄ«viem ir pievienots wp_body_open hook apdarinātājs, kas ļauj ievietot kodu uzreiz aiz body tag;
  • PrasÄ«bas PHP minimālajai versijai ir paaugstinātas lÄ«dz 5.6.20, spraudņiem un motÄ«viem tagad ir iespēja izmantot nosaukumvietas un anonÄ«mas funkcijas;
  • Pievienotas 13 jaunas ikonas.

Turklāt jÅ«s varat minēt atklāŔana kritiska ievainojamÄ«ba WordPress spraudnÄ« WP tieÅ”raides tērzÄ“Å”ana (CVE-2019-11185). IevainojamÄ«ba ļauj serverÄ« izpildÄ«t patvaļīgu PHP kodu. Spraudnis tiek izmantots vairāk nekā 27 tÅ«kstoÅ”os vietņu, lai organizētu interaktÄ«vu tērzÄ“Å”anu ar apmeklētāju, tostarp tādu uzņēmumu vietnēs kā IKEA, Adobe, Huawei, PayPal, Tele2 un McDonald's (tieÅ”raides tērzÄ“Å”ana bieži tiek izmantota, lai ieviestu kaitinoÅ”us uznirstoÅ”os logus tērzÄ“Å”ana uzņēmuma vietnēs ar piedāvājumiem tērzÄ“Å”ana ar darbinieku).

Problēma izpaužas failu augÅ”upielādes kodā serverÄ« un ļauj apiet derÄ«go failu tipu pārbaudi un augÅ”upielādēt serverÄ« PHP skriptu un pēc tam to izpildÄ«t tieÅ”i caur tÄ«mekli. Interesanti, ka pagājuÅ”ajā gadā lÄ«dzÄ«ga ievainojamÄ«ba jau tika konstatēta Live Chat (CVE-2018-12426), kas ļāva ielādēt PHP kodu attēla aizsegā, laukā Content-type norādot citu satura veidu. Kā daļa no labojuma ir pievienotas papildu pārbaudes attiecÄ«bā uz baltajiem sarakstiem un MIME satura tipu. Kā izrādās, Ŕīs pārbaudes tiek Ä«stenotas nepareizi un tās var viegli apiet.

Jo Ä«paÅ”i ir aizliegta tieÅ”a failu augÅ”upielāde ar paplaÅ”inājumu ā€œ.phpā€, bet paplaÅ”inājums ā€œ.phtmlā€, kas daudzos serveros ir saistÄ«ts ar PHP tulku, netika pievienots melnajam sarakstam. Baltajā sarakstā ir atļauta tikai attēlu augÅ”upielāde, taču varat to apiet, norādot dubultu paplaÅ”inājumu, piemēram, ā€œ.gif.phtmlā€. Lai apietu MIME tipa pārbaudi faila sākumā, pirms taga atvērÅ”anas ar PHP kodu pietika norādÄ«t rindiņu ā€œGIF89aā€.

Avots: opennet.ru

Pievieno komentāru