Թողարկվել է out-of-tree-ի առաջին (v1.0.0) տարբերակը, որը գործիքակազմ է շահագործման և Linux միջուկի մոդուլների մշակման և փորձարկման համար:
out-of-tree-ն թույլ է տալիս ավտոմատացնել որոշ սովորական գործողություններ՝ միջուկի մոդուլների և շահագործումների վրիպազերծման միջավայրեր ստեղծելու համար, ստեղծելով շահագործման հուսալիության վիճակագրություն, ինչպես նաև հնարավորություն է տալիս հեշտությամբ ինտեգրվել CI-ին (Շարունակական ինտեգրում):
Յուրաքանչյուր միջուկի մոդուլ կամ շահագործում նկարագրվում է .out-of-tree.toml ֆայլով, որը սահմանում է տեղեկատվություն պահանջվող միջավայրի մասին և (եթե դա շահագործում է) շահագործման սահմանափակումները անվտանգության որոշակի մեղմացումների առկայության դեպքում:
Գործիքակազմը նաև թույլ է տալիս բացահայտել խոցելիությունից տուժած միջուկի հատուկ տարբերակները (օգտագործելով --guess հրամանը), ինչպես նաև կարող է օգտագործվել պարզեցնելու երկուական որոնումները կոնկրետ commit-ի համար:
Ստորև ներկայացված է v0.2 տարբերակից ի վեր կատարված փոփոխությունների ցանկը:
Ավելացված է
-
Իրականացրել է ստեղծված (ծառից դուրս միջուկի ավտոգեն) միջուկների քանակը սահմանափակելու ունակությունը (հիմնվելով .out-of-tree.toml-ի նկարագրության վրա) և ստուգել գործարկումները (ծառից դուրս pew) օգտագործելով —max= X պարամետր.
-
Նոր genall հրաման, որը թույլ է տալիս ստեղծել բոլոր միջուկները կոնկրետ բաշխման և տարբերակի համար:
-
Բոլոր տեղեկամատյանները այժմ պահվում են sqlite3 տվյալների բազայում: Իրականացված հրամաններ պարզ հաճախակի պահանջվող հարցումների համար, ինչպես նաև տվյալների արտահանում json և markdown:
-
Իրականացված հաջող շահագործման հավանականության հաշվարկ (նախորդ գործարկումների հիման վրա):
-
Կառուցման արդյունքները պահպանելու ունակություն (նոր --dist պարամետր՝ ծառից դուրս pew հրամանի համար)
-
Աջակցություն հոսթ համակարգում տեղադրված միջուկների համար մետատվյալների ստեղծմանը, ինչպես նաև անմիջապես հոսթի վրա կառուցելուն:
-
Աջակցություն երրորդ կողմի միջուկներին:
-
Ծառից դուրս վրիպազերծման միջավայրն այժմ ավտոմատ կերպով որոնում է հյուրընկալող համակարգում վրիպազերծող նշաններ:
-
Ավելացվել է անվտանգության մեղմացումները կառավարելու հնարավորություն՝ միացնելով/անջատել KASLR, SMEP, SMAP և KPTI դրոշները վրիպազերծման ժամանակ:
-
Ավելացրել է --threads=N պարամետրը out-of-tree pew testing հրամանին, որը կարող է օգտագործվել՝ նշելու թելերի քանակը, որոնցում պետք է կառուցվեն/գործարկվեն և փորձարկվեն շահագործման և միջուկի մոդուլները:
-
Թեգ սահմանելու հնարավորությունը, որը կգրանցվի մատյանում և այնուհետև կարող է օգտագործվել վիճակագրությունը հաշվարկելու համար:
-
Ավելացվեց միջուկի տարբերակը նշելու հնարավորություն՝ առանց կանոնավոր արտահայտությունների օգտագործման:
-
Փաթեթի նոր հրաման, որն օգտագործվում է ենթագրքերում շահագործման և միջուկի մոդուլների զանգվածային փորձարկման համար:
-
Exploit-ի և միջուկի մոդուլի կոնֆիգուրացիայում (.out-of-tree.toml) ավելացվել է KASLR, SMEP, SMAP և KPTI-ն անջատելու հնարավորությունը, ինչպես նաև նշել անհրաժեշտ քանակությամբ միջուկներ և հիշողություն:
-
Այժմ պատկերները (rootfs) ինքնաբերաբար բեռնվում են, մինչ միջուկի ավտոգենը աշխատում է: bootstrap-ն այլևս անհրաժեշտ չէ:
-
Աջակցություն CentOS միջուկների համար:
Փոփոխություններ
-
Այժմ, եթե բաշխման պահանջվող տարբերակի համար պատկեր (rootfs) չկա, ծառից դուրս կփորձի օգտագործել ամենամոտ տարբերակի պատկերը: Օրինակ, Ubuntu 18.04 պատկերը Ubuntu 18.10-ի համար:
-
Այժմ միջուկի մոդուլների համար թեստերը չեն համարվի ձախողումներ, եթե դրանք բացակայում են (չկան թեստեր, չկան սխալներ):
-
Այժմ ծառից դուրս կվերադարձնի բացասական սխալի կոդը, եթե որևէ միջուկի առնվազն մեկ փուլ (կառուցում, գործարկում կամ փորձարկում) ձախողվի:
-
Նախագիծն անցել է Go մոդուլների օգտագործմանը, այժմ նախընտրելի է GO111MODULE=on-ով կառուցելը:
-
Ավելացվել են լռելյայն թեստեր:
-
Test.sh-ն այժմ կօգտագործվի լռելյայն, եթե ${TARGET}_test-ի հավաքումը չի ներդրված Makefile-ում:
-
Միջուկի մատյանն այլևս չի մաքրվում միջուկի մոդուլի գործարկումից կամ շահագործման համար: Որոշ շահագործումներ օգտագործում են միջուկի բազային արտահոսք dmesg-ում՝ KASLR-ը շրջանցելու համար, ուստի մաքրումը կարող է կոտրել շահագործման իրականացվող տրամաբանությունը:
-
qemu/kvm-ն այժմ օգտագործում է հյուրընկալող պրոցեսորի բոլոր հնարավորությունները։
ջնջվել
-
Միջուկի գործարան ամբողջությամբ հեռացվել է միջուկի ստեղծման իրականացման շնորհիվ, որը հիմնված է աստիճանաբար թարմացվող Dockerfiles-ի վրա:
-
bootstrap-ն այլ բան չի անում: Հրամանը կհեռացվի հաջորդ թողարկումում:
Ուղղվել է
-
MacOS-ում GNU coreutils-ն այլևս չի պահանջվում գործարկել:
-
Ժամանակավոր ֆայլերը տեղափոխվել են ~/.out-of-tree/tmp/՝ որոշ համակարգերի դոկերի ներսում մոնտաժման սխալների պատճառով:
Source: linux.org.ru