Milleanan de binaries às deidh sin. Mar a dh'fhàs Linux nas làidire

Milleanan de binaries às deidh sin. Mar a dh'fhàs Linux nas làidireTL; DR. San artaigil seo, bidh sinn a’ sgrùdadh nan sgeamaichean cruadhachaidh a bhios ag obair a-mach às a’ bhogsa air còig sgaoilidhean Linux mòr-chòrdte. Airson gach fear, ghabh sinn an rèiteachadh kernel bunaiteach, luchdaich sinn na pacaidean gu lèir, agus rinn sinn mion-sgrùdadh air na sgeamaichean tèarainteachd anns na binaries ceangailte. Is e na sgaoilidhean air a bheilear a’ beachdachadh OpenSUSE 12.4, Debian 9, CentOS, RHEL 6.10 agus 7, a bharrachd air Ubuntu 14.04, 12.04 agus 18.04 LTS.

Tha na toraidhean a’ dearbhadh nach eil a h-uile duine fhathast a’ gabhail ri sgeamaichean bunaiteach leithid cruachadh canaries agus còd suidheachadh neo-eisimeileach. Tha an suidheachadh eadhon nas miosa dha luchd-cruinneachaidh nuair a thig e gu bhith a’ dìon an aghaidh so-leòntachd leithid còmhstri stac, a thàinig am follais san Fhaoilleach às deidh fhoillseachadh. fiosrachadh mu so-leòntachd siostam. Ach chan eil a h-uile dad cho eu-dòchasach. Bidh àireamh mhòr de binaries a’ cur an gnìomh dòighean dìon bunaiteach, agus bidh an àireamh aca a’ fàs bho dhreach gu dreach.

Sheall an lèirmheas gu bheil an àireamh as motha de dhòighean dìon air an cur an gnìomh ann an Ubuntu 18.04 aig ìrean OS agus tagraidh, agus an uairsin Debian 9. Air an làimh eile, tha OpenSUSE 12.4, CentOS 7 agus RHEL 7 cuideachd a 'cur an gnìomh sgeamaichean dìon bunaiteach, agus dìon bho thubaistean. air a chleachdadh eadhon nas fharsainge le seata nas dùmhail de phasganan bunaiteach.

Ro-ràdh

Tha e doirbh dèanamh cinnteach à càileachd àrd bathar-bog. A dh’aindeoin an àireamh mhòr de dh’ innealan adhartach airson mion-sgrùdadh còd statach agus mion-sgrùdadh fiùghantach runtime, a bharrachd air adhartas mòr ann an leasachadh luchd-cruinneachaidh agus cànanan prògramaidh, tha bathar-bog an latha an-diugh fhathast a’ fulang le so-leòntachd a bhios luchd-ionnsaigh an-còmhnaidh a’ cleachdadh. Tha an suidheachadh eadhon nas miosa ann an eag-shiostaman a tha a’ toirt a-steach còd dìleab. Ann an leithid de shuidheachaidhean, chan e a-mhàin gu bheil sinn a’ toirt aghaidh air an duilgheadas shìorraidh a thaobh a bhith a’ lorg mhearachdan a dh’ fhaodadh a bhith comasach, ach tha sinn cuideachd air ar cuingealachadh le frèaman co-chòrdalachd teann air ais, a bhios gu tric ag iarraidh oirnn còd cuibhrichte, no eadhon nas miosa, so-leònte no buggy a ghleidheadh.

Seo far a bheil dòighean air prògraman dìon no cruadhachaidh a’ tighinn a-steach. Chan urrainn dhuinn cuid de mhearachdan a chasg, ach is urrainn dhuinn beatha an neach-ionnsaigh a dhèanamh nas duilghe agus an duilgheadas fhuasgladh gu ìre le bhith a’ casg no a’ casg brath na mearachdan so. Tha an leithid de dhìon air a chleachdadh anns a h-uile siostam obrachaidh ùr-nodha, ach tha na dòighean eadar-dhealaichte gu mòr ann an iom-fhillteachd, èifeachdas agus coileanadh: bho chruachan canaries agus ASLR gu làn dhìon CFI и ROP. San artaigil seo, seallaidh sinn ris na dòighean dìon a thathas a’ cleachdadh anns na sgaoilidhean Linux as mòr-chòrdte anns an rèiteachadh bunaiteach, agus nì sinn sgrùdadh cuideachd air feartan nam binaries a tha air an cuairteachadh tro shiostaman riaghlaidh pacaid gach cuairteachaidh.

CVE agus tèarainteachd

Tha sinn uile air artaigilean fhaicinn le tiotalan mar “Na tagraidhean as so-leònte sa bhliadhna” no “Na siostaman obrachaidh as so-leònte.” Mar as trice bidh iad a’ toirt seachad staitistig air an àireamh iomlan de chlàran mu chugallachd mar CVE (So-leòntachd Coitcheann agus Taisbeanaidhean), air fhaighinn bho Stòr-dàta So-leòntachd Nàiseanta (NVD) от NIST agus tobraichean eile. Às deidh sin, tha na tagraidhean no an OS sin air an rangachadh a rèir àireamh CVEn. Gu mì-fhortanach, ged a tha CVEn glè fheumail airson sùil a chumail air cùisean agus fiosrachadh a thoirt do luchd-reic agus luchd-cleachdaidh, chan eil iad ag ràdh mòran mu dheidhinn fìor thèarainteachd a’ bhathar-bog.

Mar eisimpleir, smaoinich air an àireamh iomlan de CVEn thairis air na ceithir bliadhna a dh’ fhalbh airson an kernel Linux agus na còig sgaoilidhean frithealaiche as mòr-chòrdte, is iad sin Ubuntu, Debian, Red Hat Enterprise Linux agus OpenSUSE.

Milleanan de binaries às deidh sin. Mar a dh'fhàs Linux nas làidire
Fig. 1

Dè tha an graf seo ag innse dhuinn? A bheil àireamh nas àirde de CVEn a’ ciallachadh gu bheil aon sgaoileadh nas so-leònte na fear eile? Gun fhreagairt. Mar eisimpleir, san artaigil seo chì thu gu bheil uidheamachdan tèarainteachd nas làidire aig Debian an taca ri, can, OpenSUSE no RedHat Linux, agus fhathast tha barrachd CVEn aig Debian. Ach, chan eil iad gu riatanach a’ ciallachadh tèarainteachd lag: chan eil eadhon làthaireachd CVE a’ nochdadh a bheil so-leòntachd ann. air a chleachdadh. Tha comharran tromachd a’ toirt seachad comharra air ciamar is dòcha cleachdadh so-leòntachd, ach aig a’ cheann thall tha so-ruigsinneachd an urra gu mòr ris na dìonan a tha an làthair anns na siostaman air a bheil buaidh agus goireasan agus comasan an luchd-ionnsaigh. A bharrachd air an sin, chan eil dìth aithisgean CVE ag ràdh dad mu chàch gun chlàradh no neo-aithnichte so-leòntachd. Faodaidh an eadar-dhealachadh ann an CVE a bhith mar thoradh air feartan a bharrachd air càileachd bathar-bog, a’ toirt a-steach na goireasan a chaidh a shònrachadh airson deuchainn no meud a’ bhunait luchd-cleachdaidh. Anns an eisimpleir againn, is dòcha gu bheil an àireamh nas àirde de CVEn aig Debian dìreach a’ nochdadh gu bheil Debian a’ cur barrachd phasgan bathar-bog air falbh.

Gu dearbh, tha an siostam CVE a’ toirt seachad fiosrachadh feumail a leigeas leat dìonan iomchaidh a chruthachadh. Mar as fheàrr a thuigeas sinn na h-adhbharan airson fàiligeadh a’ phrògraim, ’s ann as fhasa a bhios e dòighean cleachdaidh a chomharrachadh agus dòighean iomchaidh a leasachadh lorg agus freagairt. Ann am Fig. 2 a’ sealltainn nan roinnean so-leòntachd airson gach sgaoileadh thairis air na ceithir bliadhna a dh’ fhalbh (stòr). Tha e follaiseach sa bhad gu bheil a’ mhòr-chuid de CVEn a’ tighinn a-steach do na roinnean a leanas: diùltadh seirbheis (DoS), cur an gnìomh còd, tar-shruth, coirbeachd cuimhne, aoidionachd fiosrachaidh (exfiltration) agus àrdachadh sochair. Ged a tha mòran CVEan air an cunntadh grunn thursan ann an diofar roinnean, sa chumantas tha na h-aon chùisean a’ leantainn bliadhna às deidh bliadhna. Anns an ath phàirt den artaigil, nì sinn measadh air cleachdadh diofar sgeamaichean dìon gus casg a chuir air cleachdadh nan so-leòntachd sin.

Milleanan de binaries às deidh sin. Mar a dh'fhàs Linux nas làidire
Fig. 2

gnìomhan

San artaigil seo tha sinn an dùil na ceistean a leanas a fhreagairt:

  • Dè an tèarainteachd a th’ ann an diofar sgaoilidhean Linux? Dè na dòighean dìon a tha ann an kernel agus tagraidhean àite luchd-cleachdaidh?
  • Ciamar a tha gabhail ri dòighean tèarainteachd air atharrachadh thar ùine thar sgaoilidhean?
  • Dè an eisimeileachd cuibheasach a tha ann am pasganan agus leabharlannan airson gach sgaoileadh?
  • Dè na dìonan a thathas a’ cur an gnìomh airson gach binary?

Taghadh de sgaoilidhean

Tha e a ’tionndadh a-mach gu bheil e duilich staitistig cheart a lorg air ionadan cuairteachaidh, oir sa mhòr-chuid de chùisean chan eil an àireamh de luchdachadh sìos a’ nochdadh an àireamh de shuidheachaidhean fìor. Ach, tha caochlaidhean Unix a’ dèanamh suas a’ mhòr-chuid de shiostaman frithealaiche (air frithealaichean lìn 69,2%, le staitistig W3techs agus tobraichean eile), agus tha an roinn aca a’ sìor fhàs. Mar sin, airson ar rannsachadh chuir sinn fòcas air sgaoilidhean a bha rim faighinn a-mach às a’ bhogsa air an àrd-ùrlar Google uisge. Gu sònraichte, thagh sinn an OS a leanas:

Sgaoileadh/dreach
An cridhe
Tog

OpenSUSE 12.4
4.12.14-95.3-àbhaisteach
#1 SMP Diciadain 5 Dùbhlachd 06:00:48 UTC 2018 (63a8d29)

Debian 9 (sìneadh)
4.9.0-8-amh64
#1 SMP Debian 4.9.130-2 (2018-10-27)

CentOS 6.10
2.6.32-754.10.1.el6.x86_64
#1 SMP Dimàirt 15 Faoilleach 17:07:28 UTC 2019

CentOS 7
3.10.0-957.5.1.el7.x86_64
#1 SMP Fri 1 Gearran 14:54:57 UTC 2019

Red Hat Enterprise Linux Server 6.10 (Santiago)
2.6.32-754.9.1.el6.x86_64
#1 SMP Diciadain Samhain 21 15:08:21 EST 2018

Red Hat Enterprise Linux Server 7.6 (Maipo)
3.10.0-957.1.3.el7.x86_64
#1 SMP Thu 15 Samhain 17:36:42 UTC 2018

Ubuntu 14.04 (Trusty Tahr)
4.4.0-140 - coitcheann

#166~14.04.1-Ubuntu SMP Sad 17 Samhain 01:52:43 UTC 20…

Ubuntu 16.04 (Xenial Xerus)
4.15.0–1026-gcp
#27~16.04.1-Ubuntu SMP Fri 7 Dùbhlachd 09:59:47 UTC 2018

Ubuntu 18.04 (Bionic Beaver)
4.15.0–1026-gcp
#27-Ubuntu SMP Thu Dùbhlachd 6 18:27:01 UTC 2018

Clàr 1

Mion-sgrùdadh

Dèanamaid sgrùdadh air an rèiteachadh bunaiteach kernel, a bharrachd air feartan pacaidean a tha rim faighinn tro mhanaidsear pacaid gach cuairteachaidh a-mach às a’ bhogsa. Mar sin, cha bhith sinn a’ beachdachadh ach air pacaidean bho sgàthanan bunaiteach gach cuairteachaidh, a’ seachnadh phasganan bho stòran neo-sheasmhach (leithid sgàthanan ‘deuchainn’ Debian) agus pacaidean treas-phàrtaidh (leithid pasganan Nvidia bho sgàthanan àbhaisteach). A bharrachd air an sin, cha bhith sinn a’ beachdachadh air cruinneachaidhean kernel àbhaisteach no rèiteachaidhean le tèarainteachd.

Mion-sgrùdadh rèiteachaidh kernel

Chuir sinn an sàs sgriobt anailis stèidhichte air Kconfig checker saor an asgaidh. Bheir sinn sùil air na paramadairean dìon taobh a-muigh a’ bhogsa de na sgaoilidhean ainmichte agus an coimeas ris an liosta bho Pròiseact bunaiteach fèin-dhìon (KSPP). Airson gach roghainn rèiteachaidh, tha Clàr 2 a’ toirt cunntas air an t-suidheachadh a tha thu ag iarraidh: tha am bogsa sgrùdaidh airson sgaoilidhean a tha a rèir molaidhean KSSP (faic na leanas airson mìneachadh air teirmean). an seo; Ann an artaigilean san àm ri teachd mìnichidh sinn cia mheud de na dòighean tèarainteachd sin a thàinig gu bith agus mar a bu chòir siostam a bhualadh às aonais).

Milleanan de binaries às deidh sin. Mar a dh'fhàs Linux nas làidire

Milleanan de binaries às deidh sin. Mar a dh'fhàs Linux nas làidire

San fharsaingeachd, tha roghainnean nas cruaidhe aig na kernels ùra a-mach às a’ bhogsa. Mar eisimpleir, tha dìth aig CentOS 6.10 agus RHEL 6.10 air an kernel 2.6.32 a’ mhòr-chuid de na feartan èiginneach a chaidh an cur an gnìomh ann an kernels nas ùire leithid SMAP, ceadan RWX teann, seòladh air thuaiream no dìon copy2usr. Bu chòir a thoirt fa-near nach eil mòran de na roghainnean rèiteachaidh sa chlàr rim faighinn ann an dreachan nas sine den kernel agus nach eil iad iomchaidh ann an da-rìribh - tha seo fhathast air a chomharrachadh sa chlàr mar dìth dìon ceart. Mar an ceudna, mura h-eil roghainn rèiteachaidh an làthair ann an dreach sònraichte, agus gu feum tèarainteachd an roghainn sin a chiorramachadh, thathas den bheachd gur e rèiteachadh reusanta a tha seo.

Puing eile ri bheachdachadh nuair a thathar a’ mìneachadh nan toraidhean: faodar cuid de rèiteachaidhean kernel a tha ag àrdachadh uachdar an ionnsaigh a chleachdadh airson tèarainteachd. Tha eisimpleirean mar seo a’ toirt a-steach uprobes agus kprobes, modalan kernel, agus BPF / eBPF. Is e ar moladh na h-innealan gu h-àrd a chleachdadh gus fìor dhìon a thoirt seachad, leis nach eil iad cho beag ri chleachdadh agus tha an cleachdadh a’ gabhail ris gu bheil cleasaichean droch-rùnach air bunait a stèidheachadh san t-siostam mar-thà. Ach ma tha na roghainnean sin air an comasachadh, feumaidh rianadair an t-siostaim sùil a chumail gu gnìomhach airson droch dhìol.

A’ coimhead nas fhaide air na h-inntrigidhean ann an Clàr 2, chì sinn gu bheil kernels an latha an-diugh a’ toirt seachad grunn roghainnean airson dìon an aghaidh a bhith a’ gabhail brath air so-leòntachd leithid aoidionachd fiosrachaidh agus tar-shruthan stac / cruachan. Ach, tha sinn mothachail nach eil eadhon na sgaoilidhean mòr-chòrdte as ùire fhathast air dìon nas iom-fhillte a chuir an gnìomh (mar eisimpleir, le badan tèarainteachd) no dìon ùr-nodha an aghaidh ionnsaighean ath-chleachdadh còd (m.e. measgachadh de thuaiream le sgeamaichean mar R^X airson còd). Gus cùisean a dhèanamh nas miosa, chan eil eadhon na dìonan adhartach sin a’ dìon an aghaidh an làn raon de dh’ ionnsaighean. Mar sin, tha e deatamach do luchd-rianachd shiostaman cur ri rèiteachadh snasail le fuasglaidhean a bheir seachad lorg agus casg ùine ruith.

Mion-sgrùdadh Iarrtais

Chan eil e na iongnadh gu bheil feartan pacaid eadar-dhealaichte aig sgaoilidhean eadar-dhealaichte, roghainnean cruinneachaidh, eisimeileachd leabharlainn, msaa. Tha eadar-dhealachaidhean ann eadhon airson co-cheangailte sgaoilidhean agus pasganan le àireamh bheag de eisimeileachd (mar eisimpleir, coreutils air Ubuntu no Debian). Gus na h-eadar-dhealachaidhean a mheasadh, luchdaich sinn sìos a h-uile pasgan a bha ri fhaighinn, tharraing sinn a-mach an susbaint, agus rinn sinn mion-sgrùdadh air na binaries agus eisimeileachd. Airson gach pasgan, chùm sinn sùil air na pacaidean eile air a bheil e an urra, agus airson gach binary, chùm sinn sùil air na h-eisimeileachd aige. Anns an earrainn seo bheir sinn geàrr-chunntas goirid air na co-dhùnaidhean.

Sgaoilidhean

Gu h-iomlan, luchdaich sinn sìos pasganan 361 airson a h-uile sgaoileadh, a’ toirt a-mach dìreach pacaidean bho sgàthanan bunaiteach. Thug sinn an aire do phasganan às aonais so-ghnìomhan ELF, leithid stòran, clòidean, msaa. Às deidh sìoladh, dh’ fhan 556 pasgan, anns an robh 129 binaries uile gu lèir. Tha cuairteachadh phasganan is fhaidhlichean thar sgaoilidhean ri fhaicinn ann am Fig. 569.

Milleanan de binaries às deidh sin. Mar a dh'fhàs Linux nas làidire
Fig. 3

Is dòcha gu mothaich thu mar as ùire an cuairteachadh, is ann as motha de phasganan agus binaries a tha ann, a tha loidsigeach. Ach, tha pasganan Ubuntu agus Debian a’ toirt a-steach mòran a bharrachd binaries (an dà chuid modalan so-ghnìomhaichte agus fiùghantach agus leabharlannan) na CentOS, SUSE agus RHEL, a dh’ fhaodadh buaidh a thoirt air uachdar ionnsaigh Ubuntu agus Debian (bu chòir a thoirt fa-near gu bheil na h-àireamhan a’ nochdadh binaries de gach dreach. pasgan, is e sin, thèid cuid de fhaidhlichean a sgrùdadh grunn thursan). Tha seo gu sònraichte cudromach nuair a smaoinicheas tu air eisimeileachd eadar pacaidean. Mar sin, faodaidh so-leòntachd ann an aon phasgan binary buaidh a thoirt air mòran phàirtean den eag-shiostam, dìreach mar a bheir leabharlann so-leònte buaidh air a h-uile binary a bheir a-steach e. Mar thoiseach tòiseachaidh, leig dhuinn sùil a thoirt air cuairteachadh an àireamh de eisimeileachd am measg phasganan ann an diofar shiostaman obrachaidh:

Milleanan de binaries às deidh sin. Mar a dh'fhàs Linux nas làidire
Fig. 4

Anns cha mhòr a h-uile sgaoileadh, tha co-dhiù 60 eisimeileachd aig 10% de phasganan. A bharrachd air an sin, tha àireamh mòran nas motha de eisimeileachd aig cuid de phasganan (barrachd air 100). Tha an aon rud a’ buntainn ri eisimeileachd pacaid cùil: mar a bhiodh dùil, bidh grunn phasganan air an cleachdadh le mòran phasganan eile anns an cuairteachadh, agus mar sin tha so-leòntachd anns an fheadhainn a tha air an taghadh ann an cunnart àrd. Mar eisimpleir, tha an clàr a leanas a’ liostadh na pasganan 20 leis an àireamh as motha de dh’ eisimeileachd air ais ann an SLES, Centos 7, Debian 9 agus Ubuntu 18.04 (tha gach cealla a’ comharrachadh a’ phacaid agus an àireamh de dh’ eisimeileachd air ais).

Milleanan de binaries às deidh sin. Mar a dh'fhàs Linux nas làidire
Clàr 3

Fìrinn inntinneach. Ged a tha a h-uile OS a chaidh a sgrùdadh air a thogail airson ailtireachd x86_64, agus tha an ailtireachd air a mhìneachadh mar x86_64 agus x86 aig a’ mhòr-chuid de phasganan, gu tric bidh binaries ann am pasganan airson ailtireachd eile, mar a chithear ann am Figear 5. XNUMX.

Milleanan de binaries às deidh sin. Mar a dh'fhàs Linux nas làidire
Fig. 5

Anns an ath earrainn, nì sinn sgrùdadh air feartan nam binaries sgrùdaichte.

Staitistig dìon faidhle binary

Aig a 'char as lugha, feumaidh tu sgrùdadh a dhèanamh air seata bunaiteach de roghainnean tèarainteachd airson na binaries a th' agad mar-thà. Bidh grunn sgaoilidhean Linux a’ tighinn le sgriobtaichean a nì sgrùdaidhean mar sin. Mar eisimpleir, tha leithid de sgriobt aig Debian/Ubuntu. Seo eisimpleir den obair aige:

$ hardening-check $(which docker)
/usr/bin/docker:
 Position Independent Executable: yes
 Stack protected: yes
 Fortify Source functions: no, only unprotected functions found!
 Read-only relocations: yes
 Immediate binding: yes

Bidh an sgriobt a’ sgrùdadh còig gnìomhan dìon:

  • Suidheachadh Neo-eisimeileach Gnìomhach (PIE): A’ nochdadh an urrainnear earrann teacsa prògram a ghluasad mar chuimhneachan gus faighinn air thuaiream ma tha ASLR air a chomasachadh san kernel.
  • Stack Protected: Co-dhiù a tha canaries stac air an comasachadh gus dìon an aghaidh ionnsaighean bualadh stac.
  • Daingnich Stòr: co-dhiù a thèid an co-aoisean nas tèarainte a chuir an àite gnìomhan mì-shàbhailte (mar eisimpleir, strcpy), agus cuir an co-aoisean neo-sgrùdaichte an àite fiosan a chaidh a sgrùdadh aig àm ruith (mar eisimpleir, memcpy an àite __memcpy_chk).
  • Gluasadan leughaidh a-mhàin (RELRO): Co-dhiù a tha inntrigidhean bùird ath-shuidheachadh air an comharrachadh le leughadh a-mhàin ma thèid an toirt air adhart mus tòisich an cur gu bàs.
  • Ceangal sa bhad: Co-dhiù a cheadaicheas an ceangal ùine-ruith a h-uile gluasad mus tòisich am prògram air a chur an gnìomh (tha seo co-ionann ri RELRO slàn).

A bheil na h-innealan gu h-àrd gu leòr? Gu mì-fhortanach chan eil. Tha fios gu bheil dòighean ann faighinn seachad air a h-uile dìon gu h-àrd, ach mar as cruaidhe an dìon, is ann as àirde am bàr airson an neach-ionnsaigh. Mar eisimpleir, Dòighean seach-rathad RELRO nas duilghe a chuir an sàs ma tha PIE agus ceangaltach sa bhad ann an èifeachd. Mar an ceudna, feumaidh làn ASLR obair a bharrachd gus brath obrach a chruthachadh. Ach, tha luchd-ionnsaigh sòlaimte mar-thà deiseil airson a leithid de dhìonan a choileanadh: bidh an neo-làthaireachd aca gu ìre mhòr a’ luathachadh an hack. Mar sin tha e deatamach gun tèid na ceumannan sin a mheas riatanach as ìsle.

Bha sinn airson sgrùdadh a dhèanamh air cia mheud faidhle binary anns na sgaoilidhean sin a tha air an dìon leis na dòighean sin agus trì dòighean eile:

  • Pìos neo-ghnìomhach (NX) a’ cur casg air cur gu bàs ann an sgìre sam bith nach bu chòir a chur an gnìomh, leithid an cruachan, msaa.
  • RUATH/RUNPATH a’ comharrachadh an t-slighe cur gu bàs a chleachdas an luchdan fiùghantach gus leabharlannan co-chosmhail a lorg. Tha a 'chiad fhear èigneachail airson siostam ùr-nodha sam bith: tha a neo-làthaireachd a’ leigeil le luchd-ionnsaigh an luchd-pàighidh a sgrìobhadh gu neo-riaghailteach gu cuimhne agus a chuir an gnìomh mar a tha. Airson an dàrna fear, bidh rèiteachadh slighe gnìomh ceàrr a’ cuideachadh le bhith a’ toirt a-steach còd neo-earbsach a dh’ fhaodadh grunn dhuilgheadasan adhbhrachadh (me. àrdachadh sochair, a bharrachd air trioblaidean eile).
  • Tha dìon bho bhualadh stac a’ toirt dìon an aghaidh ionnsaighean a bheir air a’ chruach a dhol thairis air raointean cuimhne eile (leithid an tiùrr). Air sgàth droch dhìol a chaidh a dhèanamh o chionn ghoirid so-leòntachd bualadh cruachan siostam, bha sinn a’ faireachdainn gu robh e iomchaidh an uidheamachd seo a thoirt a-steach don stòr-dàta againn.

Mar sin, gun a bhith nas sine, rachamaid sìos gu na h-àireamhan. Ann an Clàran 4 agus 5 tha geàrr-chunntas air mion-sgrùdadh air faidhlichean so-ghnìomhaichte agus leabharlannan de dhiofar sgaoilidhean, fa leth.

  • Mar a chì thu, tha dìon NX air a chuir an gnìomh anns a h-uile àite, le eisgeachdan tearc. Gu sònraichte, faodaidh aon a bhith mothachail air a chleachdadh beagan nas ìsle ann an sgaoilidhean Ubuntu agus Debian an coimeas ri CentOS, RHEL agus OpenSUSE.
  • Tha canaries cruach a dhìth ann an iomadh àite, gu h-àraidh ann an sgaoilidhean le seann kernels. Tha beagan adhartais ri fhaicinn anns na sgaoilidhean as ùire de Centos, RHEL, Debian agus Ubuntu.
  • Ach a-mhàin Debian agus Ubuntu 18.04, tha droch thaic PIE aig a’ mhòr-chuid de sgaoilidhean.
  • Tha dìon bualadh stac lag ann an OpenSUSE, Centos 7 agus RHEL 7, agus cha mhòr nach eil e ann an cuid eile.
  • Tha beagan taic aig a h-uile sgaoileadh le kernels an latha an-diugh airson RELRO, le Ubuntu 18.04 a’ stiùireadh na slighe agus Debian a’ tighinn san dàrna h-àite.

Mar a chaidh ainmeachadh roimhe, tha na meatrach sa chlàr seo mar an àbhaist airson a h-uile dreach den fhaidhle binary. Mura coimhead thu ach air na dreachan as ùire de fhaidhlichean, bidh na h-àireamhan eadar-dhealaichte (mar eisimpleir, faic Adhartas Debian le buileachadh PIE). A bharrachd air an sin, mar as trice cha bhith a’ mhòr-chuid de sgaoilidhean a’ dèanamh deuchainn ach air tèarainteachd beagan ghnìomhan anns a’ bhinearaidh nuair a thathar a’ tomhas staitistig, ach tha ar mion-sgrùdadh a’ sealltainn an fhìor cheudad de ghnìomhan a tha air an cruadhachadh. Mar sin, ma tha 5 a-mach à 50 gnìomhan air an dìon ann am binary, bheir sinn sgòr de 0,1 dha, a tha co-ionann ri 10% de na gnìomhan gan neartachadh.

Milleanan de binaries às deidh sin. Mar a dh'fhàs Linux nas làidire
Clàr 4. Feartan tèarainteachd nam faidhlichean so-ghnìomhaichte a chithear ann am Fig. 3 (buileachadh gnìomhan buntainneach mar cheudad den àireamh iomlan de fhaidhlichean so-ghnìomhaichte)

Milleanan de binaries às deidh sin. Mar a dh'fhàs Linux nas làidire
Clàr 5. Feartan tèarainteachd nan leabharlannan a chithear ann am Fig. 3 (buileachadh gnìomhan buntainneach mar cheudad den àireamh iomlan de leabharlannan)

Mar sin a bheil adhartas ann? Tha gu cinnteach ann: chithear seo bho na staitistig airson sgaoilidhean fa leth (mar eisimpleir, Debian), a bharrachd air bho na clàran gu h-àrd. Mar eisimpleir ann am Fig. Tha Figear 6 a’ sealltainn buileachadh innealan dìon ann an trì sgaoilidhean leantainneach de Ubuntu LTS 5 (tha sinn air staitistig dìon bho thubaistean fhàgail air falbh). Tha sinn a’ mothachadh gu bheil barrachd is barrachd fhaidhlichean a’ toirt taic do canaries stac, bho dhreach gu dreach, agus cuideachd gu bheil barrachd is barrachd binaries air an cur air falbh le làn dhìon RELRO.

Milleanan de binaries às deidh sin. Mar a dh'fhàs Linux nas làidire
Fig. 6

Gu mì-fhortanach, tha grunn fhaidhlichean so-ghnìomhaichte ann an sgaoilidhean eadar-dhealaichte fhathast aig nach eil gin de na dìonan gu h-àrd. Mar eisimpleir, a’ coimhead air Ubuntu 18.04, chì thu am binary ngetty (ath-chur getty), a bharrachd air na sligean mksh agus lksh, an eadar-theangair picolisp, na pacaidean nvidia-cuda-toolkit (pasgan mòr-chòrdte airson tagraidhean luathaichte GPU leithid frèaman ionnsachaidh innealan), agus klibc -utils. Mar an ceudna, bidh am binary mandos-client (inneal rianachd a leigeas leat innealan ath-thòiseachadh gu fèin-ghluasadach le siostaman faidhle crioptaichte) a bharrachd air rsh-redone-client (ath-nuadhachadh rsh agus rlogin) gun dìon NX, ged a tha còraichean SUID aca: (. Cuideachd, tha dìth dìon bunaiteach aig grunn binaries suid leithid canaries stac (mar eisimpleir, binary Xorg.wrap bho phacaid Xorg).

Geàrr-chunntas agus Beachdan Deireannach

San artaigil seo, tha sinn air grunn fheartan tèarainteachd de sgaoilidhean Linux an latha an-diugh a chomharrachadh. Sheall an anailis gu bheil an sgaoileadh Ubuntu LTS as ùire (18.04) a’ buileachadh, gu cuibheasach, an OS as làidire agus dìon ìre tagraidh am measg sgaoilidhean le kernels an ìre mhath ùr, leithid Ubuntu 14.04, 12.04 agus Debian 9. Ach, tha na sgaoilidhean sgrùdaichte CentOS, RHEL agus OpenSUSE anns an t-seata againn gu bunaiteach bidh iad a’ toirt a-mach seata nas dùmhail de phasganan, agus anns na dreachan as ùire (CentOS agus RHEL) tha ceudad nas àirde aca de dhìon bho thubaistean stac an coimeas ri farpaisich stèidhichte air Debian (Debian agus Ubuntu). A’ dèanamh coimeas eadar dreachan CentOS agus RedHat, tha sinn a’ mothachadh leasachaidhean mòra ann an buileachadh canaries stac agus RELRO bho dhreachan 6 gu 7, ach gu cuibheasach tha barrachd fheartan aig CentOS air an cur an gnìomh na RHEL. San fharsaingeachd, bu chòir do gach sgaoileadh aire shònraichte a thoirt do dhìon PIE, a tha, ach a-mhàin Debian 9 agus Ubuntu 18.04, air a chuir an gnìomh ann an nas lugha na 10% de na binaries anns an t-seata dàta againn.

Mu dheireadh, bu chòir a thoirt fa-near, ged a rinn sinn an rannsachadh le làimh, gu bheil mòran innealan tèarainteachd rim faighinn (me. Lynis, Tiger, Hubble), a bhios a’ dèanamh mion-sgrùdadh agus a’ cuideachadh le bhith a’ seachnadh rèiteachaidhean mì-shàbhailte. Gu mì-fhortanach, chan eil eadhon dìon làidir ann an rèiteachaidhean reusanta a’ gealltainn nach bi buannachdan ann. Sin as coireach gu bheil sinn gu làidir den bheachd gu bheil e deatamach dèanamh cinnteach sgrùdadh earbsach agus casg air ionnsaighean ann an àm fìor, ag amas air pàtrain brathaidh agus casg orra.

Source: www.habr.com

Cuir beachd ann