Լավագույն Docker պատկերների 19%-ը չունի արմատային գաղտնաբառ

Անցյալ շաբաթ օրը՝ մայիսի 18-ին, Ջերի Գեմբլինը Kenna Security-ից ստուգվում Docker Hub-ի 1000 ամենահայտնի պատկերները՝ հիմնված նրանց օգտագործած արմատային գաղտնաբառի վրա: 19% դեպքերում այն ​​դատարկ է եղել։

Լավագույն Docker պատկերների 19%-ը չունի արմատային գաղտնաբառ

Նախապատմություն Alpine-ի հետ

Մինի-հետազոտության պատճառը Talos-ի խոցելիության զեկույցն էր, որը հայտնվեց այս ամսվա սկզբին (ԹԱԼՈՍ-2019-0782), որի հեղինակները, Cisco Umbrella-ից Պիտեր Ադկինսի հայտնագործության շնորհիվ, հայտնել են, որ Docker պատկերները հանրաճանաչ Alpine բեռնարկղերի բաշխմամբ չունեն արմատային գաղտնաբառ.

«Alpine Linux Docker պատկերների պաշտոնական տարբերակները (սկսած v3.3-ից) պարունակում են NULL գաղտնաբառ արմատային օգտվողի համար: Այս խոցելիությունը առաջացել է 2015 թվականի դեկտեմբերին ներդրված ռեգրեսիայի արդյունքում: Սրա էությունն այն է, որ համակարգերը, որոնք տեղակայված են Alpine Linux-ի խնդրահարույց տարբերակներով կոնտեյներով և օգտագործում են Linux PAM կամ այլ մեխանիզմ, որն օգտագործում է համակարգի ստվերային ֆայլը որպես նույնականացման տվյալների բազա, կարող են ընդունել NULL գաղտնաբառ արմատային օգտվողի համար»:

Խնդրի համար փորձարկված Docker պատկերների տարբերակները Alpine-ով էին 3.3–3.9 ներառյալ, ինչպես նաև edge-ի վերջին թողարկումը:

Հեղինակները հետևյալ առաջարկությունն են արել տուժած օգտատերերի համար.

«Alpine-ի խնդրահարույց տարբերակներից կառուցված Docker պատկերներում արմատային հաշիվը պետք է բացահայտորեն անջատված լինի: Խոցելիության հավանական շահագործումը կախված է շրջակա միջավայրից, քանի որ դրա հաջողությունը պահանջում է արտաքին փոխանցված ծառայություն կամ հավելված՝ օգտագործելով Linux PAM կամ այլ նմանատիպ մեխանիզմ»:

Խնդիրն այն էր վերացվել է Alpine տարբերակներում 3.6.5, 3.7.3, 3.8.4, 3.9.2 և edge (20190228 snapshot), և ազդակիր պատկերների սեփականատերերին խնդրել են մեկնաբանել արմատով տողը /etc/shadow կամ համոզվեք, որ փաթեթը բացակայում է linux-pam.

Շարունակությունը Docker Hub-ի հետ

Ջերի Գեմբլինը որոշեց հետաքրքրվել, թե «որքան տարածված կարող է լինել տարաներում զրոյական գաղտնաբառեր օգտագործելու պրակտիկան»: Այդ նպատակով նա գրել է մի փոքրիկ Bash սցենար, որի էությունը շատ պարզ է.

  • Docker Hub-ում API-ին ոլորված հարցման միջոցով պահանջվում է այնտեղ տեղակայված Docker պատկերների ցանկ.
  • jq-ի միջոցով այն դասավորված է ըստ դաշտի popularity, իսկ ստացված արդյունքներից մնում է առաջին հազարը;
  • նրանցից յուրաքանչյուրի համար այն կատարվում է docker pull;
  • Docker Hub-ից ստացված յուրաքանչյուր պատկերի համար կատարվում է docker run ֆայլից առաջին տողը կարդալով /etc/shadow;
  • եթե տողի արժեքը հավասար է root:::0:::::, պատկերի անունը պահվում է առանձին ֆայլում։

Ինչ է պատահել? IN այս ֆայլը Կային 194 տող Linux համակարգերով հայտնի Docker պատկերների անուններով, որոնցում արմատային օգտվողը գաղտնաբառ չունի.

«Այս ցուցակի ամենահայտնի անուններից էին govuk/governmentpaas, hashicorp, microsoft, monsanto և mesosphere: Իսկ kylemanna/openvpn-ը ցուցակի ամենահայտնի բեռնարկղն է, նրա վիճակագրությունը ներառում է ավելի քան 10 միլիոն քաշքշուկներ»։

Հարկ է, սակայն, հիշեցնել, որ այս երևույթն ինքնին չի նշանակում ուղղակի խոցելիություն դրանք օգտագործող համակարգերի անվտանգության մեջ. ամեն ինչ կախված է նրանից, թե կոնկրետ ինչպես են դրանք օգտագործվում: (տե՛ս վերևում գտնվող Alpine գործի մեկնաբանությունը). Այնուամենայնիվ, մենք բազմիցս տեսել ենք «պատմության բարոյականությունը». ակնհայտ պարզությունը հաճախ ունի բացասական կողմ, որը միշտ պետք է հիշել, և որի հետևանքները հաշվի առնվեն ձեր տեխնոլոգիական կիրառման սցենարներում:

PS

Կարդացեք նաև մեր բլոգում.

Source: www.habr.com

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