WordPress 5.2-ի թողարկում՝ թվային ստորագրությամբ թարմացումները ստուգելու աջակցությամբ

Ներկայացվել է վեբ բովանդակության կառավարման համակարգի թողարկում WordPress 5.2. Թողարկումն աչքի է ընկնում իր ավարտով վեցամյա էպոս իրականացման վերաբերյալ հնարավորություններ թարմացումների և լրացումների ստուգում` օգտագործելով թվային ստորագրություն:

Մինչ այժմ WordPress-ում թարմացումներ տեղադրելիս անվտանգության հիմնական գործոնը WordPress-ի ենթակառուցվածքի և սերվերների նկատմամբ վստահությունն էր (ներբեռնելուց հետո հեշը ստուգվում էր առանց աղբյուրը ճշտելու)։ Եթե ​​նախագծի սերվերները վտանգի ենթարկվեին, հարձակվողները կարողացան կեղծել թարմացումը և չարամիտ ծածկագիրը տարածել WordPress-ի վրա հիմնված կայքերի միջև, որոնք օգտագործում են թարմացման ավտոմատ տեղադրման համակարգ: Նախկինում օգտագործված վստահության առաքման մոդելի համաձայն, նման փոխարինումն աննկատ կմնար օգտագործողների կողմից:

Հաշվի առնելով այն հանգամանքը, որ տրված w3techs նախագծից WordPress հարթակն օգտագործվում է ցանցի կայքերի 33.8%-ում, միջադեպը աղետի մասշտաբներ կունենար։ Ընդ որում, ենթակառուցվածքների փոխզիջման վտանգը ոչ թե հիպոթետիկ էր, այլ միանգամայն իրական։ Օրինակ, մի քանի տարի առաջ անվտանգության հետազոտողներից մեկը ցուցադրվել է խոցելիություն, որը հարձակվողին թույլ է տալիս կատարել իր կոդը api.wordpress.org-ի սերվերի կողմից:

Եթե ​​օգտագործվում են թվային ստորագրություններ, թարմացումների բաշխման սերվերի վրա վերահսկողություն ձեռք բերելը չի ​​հանգեցնի օգտատերերի համակարգերի փոխզիջմանը, քանի որ հարձակում իրականացնելու համար դուք լրացուցիչ պետք է ձեռք բերեք առանձին պահված մասնավոր բանալի, որն օգտագործվում է թարմացումները ստորագրելու համար:

Թվային ստորագրության միջոցով թարմացումների աղբյուրի ստուգման իրականացումը խոչընդոտվեց այն փաստով, որ անհրաժեշտ գաղտնագրման ալգորիթմների աջակցությունը համեմատաբար վերջերս հայտնվեց ստանդարտ PHP փաթեթում: Գրադարանի ինտեգրման շնորհիվ հայտնվեցին անհրաժեշտ գաղտնագրման ալգորիթմները Լիբսոդիում հիմնական թիմին PHP 7.2. Բայց որպես PHP-ի նվազագույն աջակցվող տարբերակ WordPress-ում հայտարարել է թողարկում 5.2.4 (WordPress 5.2 - 5.6.20): Թվային ստորագրությունների աջակցության ակտիվացումը կհանգեցնի PHP-ի նվազագույն աջակցվող տարբերակի պահանջների զգալի ավելացման կամ արտաքին կախվածության ավելացման, ինչը մշակողները չէին կարող անել՝ հաշվի առնելով հոսթինգ համակարգերում PHP տարբերակների տարածվածությունը:

Լուծումը եղել է զարգացում և WordPress 5.2-ում Libsodium-ի կոմպակտ տարբերակի ներառումը - Նատրիումի կոմպատ, որում PHP-ում ներդրված է թվային ստորագրությունների ստուգման ալգորիթմների նվազագույն փաթեթ։ Իրականացումը շատ ցանկալի է թողնում կատարողականի առումով, բայց ամբողջությամբ լուծում է համատեղելիության խնդիրը, ինչպես նաև թույլ է տալիս հավելվածների մշակողներին սկսել ժամանակակից գաղտնագրման ալգորիթմների ներդրումը:

Թվային ստորագրություններ ստեղծելու համար օգտագործվում է ալգորիթմ Edxnumx, մշակվել է Դանիել Ջ.Բերնշտայնի մասնակցությամբ։ Թվային ստորագրություն է ստեղծվում SHA384 հեշ արժեքի համար, որը հաշվարկվում է թարմացման արխիվի բովանդակությունից: Ed25519-ն ունի անվտանգության ավելի բարձր մակարդակ, քան ECDSA-ն և DSA-ն և ցուցադրում է ստուգման և ստորագրության ստեղծման շատ բարձր արագություն: Ed25519-ի հաքերային դիմադրությունը մոտ 2^128 է (միջինում Ed25519-ի վրա հարձակումը կպահանջի 2^140 բիթ գործողություններ), ինչը համապատասխանում է այնպիսի ալգորիթմների դիմադրությանը, ինչպիսիք են NIST P-256-ը և RSA-ն 3000 բիթ հիմնական չափսով: կամ 128-բիթանոց բլոկային ծածկագիր: Ed25519-ը նույնպես ենթակա չէ հեշ բախումների հետ կապված խնդիրների և զգայուն չէ քեշի ժամանակի գրոհների և կողային ալիքի հարձակումների նկատմամբ:

WordPress 5.2 թողարկումում թվային ստորագրության ստուգումը ներկայումս ընդգրկում է միայն հարթակի հիմնական թարմացումները և չի արգելափակում թարմացումը լռելյայնորեն, այլ միայն տեղեկացնում է օգտատիրոջը խնդրի մասին: Որոշվել է անմիջապես չմիացնել լռելյայն արգելափակումը` ամբողջական ստուգման և շրջանցման անհրաժեշտության պատճառով հնարավոր խնդիրներ. Ապագայում նախատեսվում է նաև ավելացնել թվային ստորագրության ստուգում՝ թեմաների և պլագինների տեղադրման աղբյուրը ստուգելու համար (արտադրողները կկարողանան ստորագրել թողարկումները իրենց բանալիով):

Ի լրումն WordPress 5.2-ում թվային ստորագրությունների աջակցության, կարելի է նշել հետևյալ փոփոխությունները.

  • «Կայքի առողջություն» բաժնում ավելացվել են երկու նոր էջեր՝ ընդհանուր կազմաձևման խնդիրները կարգաբերելու համար, ինչպես նաև տրամադրվել է ձև, որի միջոցով մշակողները կարող են վրիպազերծման մասին տեղեկությունները թողնել կայքի ադմինիստրատորներին.
  • Ավելացվել է «մահվան սպիտակ էկրանի» իրականացումը, որը ցուցադրվում է ճակատագրական խնդիրների դեպքում և օգնում է ադմինիստրատորին ինքնուրույն շտկել պլագինների կամ թեմաների հետ կապված խնդիրները՝ անցնելով վթարի վերականգնման հատուկ ռեժիմի.
  • Ներդրվել է պլագինների հետ համատեղելիության ստուգման համակարգ, որն ավտոմատ կերպով ստուգում է ընթացիկ կոնֆիգուրացիայի մեջ plugin-ի օգտագործման հնարավորությունը՝ հաշվի առնելով օգտագործվող PHP-ի տարբերակը։ Եթե ​​plugin-ը պահանջում է PHP-ի ավելի նոր տարբերակ աշխատելու համար, համակարգը ավտոմատ կերպով կարգելափակի այս փլագինի ներառումը.
  • Ավելացվել է JavaScript կոդով մոդուլները միացնելու աջակցություն վեբ փաթեթ и Babel;
  • Ավելացրել է նոր privacy-policy.php ձևանմուշ, որը թույլ է տալիս հարմարեցնել գաղտնիության քաղաքականության էջի բովանդակությունը.
  • Թեմաների համար ավելացվել է wp_body_open hook handler, որը թույլ է տալիս տեղադրել կոդը անմիջապես body tag-ից հետո;
  • PHP-ի նվազագույն տարբերակի պահանջները հասցվել են 5.6.20-ի, փլագիններն ու թեմաներն այժմ հնարավորություն ունեն օգտագործելու անունների տարածքներ և անանուն գործառույթներ.
  • Ավելացվել է 13 նոր պատկերակ:

Բացի այդ, կարող եք նշել նույնականացում կրիտիկական խոցելիություն WordPress հավելվածում WP Live Chat (CVE-2019-11185): Խոցելիությունը թույլ է տալիս կամայական PHP կոդը կատարել սերվերի վրա: Պլագինը օգտագործվում է ավելի քան 27 հազար կայքերում՝ այցելուի հետ ինտերակտիվ զրույց կազմակերպելու համար, ներառյալ այնպիսի ընկերությունների կայքերում, ինչպիսիք են IKEA-ն, Adobe-ը, Huawei-ը, PayPal-ը, Tele2-ը և McDonald's-ը (Live Chat-ը հաճախ օգտագործվում է անհանգստացնող թռուցիկներ իրականացնելու համար։ զրույցներ ընկերության կայքերում առաջարկներով զրուցել աշխատակցի հետ):

Խնդիրը դրսևորվում է սերվերում ֆայլեր վերբեռնելու կոդով և թույլ է տալիս շրջանցել վավեր ֆայլերի տեսակների ստուգումը և վերբեռնել PHP սկրիպտը սերվերի վրա, այնուհետև այն կատարել անմիջապես համացանցի միջոցով: Հետաքրքիր է, որ անցյալ տարի նմանատիպ խոցելիություն արդեն հայտնաբերվել էր Live Chat-ում (CVE-2018-12426), որը թույլ էր տալիս PHP ծածկագիրը բեռնել պատկերի քողի տակ՝ Content-type դաշտում նշելով բովանդակության այլ տեսակ: Որպես ուղղման մաս՝ լրացուցիչ ստուգումներ են ավելացվել սպիտակ ցուցակների և MIME բովանդակության տեսակի համար: Ինչպես պարզվում է, այդ ստուգումները սխալ են իրականացվում և հեշտությամբ կարելի է շրջանցել։

Մասնավորապես, արգելվում է «.php» ընդլայնմամբ ֆայլերի ուղղակի վերբեռնումը, սակայն «.phtml» ընդլայնումը, որը կապված է բազմաթիվ սերվերների PHP թարգմանչի հետ, չի ավելացվել սև ցուցակում։ Սպիտակ ցուցակը թույլ է տալիս միայն պատկերների վերբեռնում, բայց դուք կարող եք շրջանցել այն՝ նշելով կրկնակի ընդլայնում, օրինակ՝ «.gif.phtml»: Ֆայլի սկզբում MIME տեսակի ստուգումը շրջանցելու համար, նախքան PHP կոդով պիտակը բացելը, բավական էր նշել «GIF89a» տողը։

Source: opennet.ru

Добавить комментарий