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;
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ā.