Binary an-tapitrisany taty aoriana. Ahoana no nahatonga ny Linux ho matanjaka kokoa

Binary an-tapitrisany taty aoriana. Ahoana no nahatonga ny Linux ho matanjaka kokoaTL, DR. Ato amin'ity lahatsoratra ity, mandinika ireo tetika fanamafisana izay miasa ivelan'ny boaty amin'ny fizarana Linux dimy malaza isika. Ho an'ny tsirairay, dia naka ny fandrindrana kernel default izahay, nampiditra ny fonosana rehetra, ary nandinika ny rafitra fiarovana amin'ny binary mipetaka. Ny fizarana heverina dia OpenSUSE 12.4, Debian 9, CentOS, RHEL 6.10 ary 7, ary koa ny Ubuntu 14.04, 12.04 ary 18.04 LTS.

Ny vokatra dia manamafy fa na dia ny rafitra fototra toy ny stacking canary sy ny kaody tsy miankina amin'ny toerana dia mbola tsy noraisin'ny rehetra. Mbola ratsy kokoa aza ny toe-javatra ho an'ny mpamoron-kira raha mikasika ny fiarovana amin'ny vulnerability toy ny fifandonana stack, izay nisongadina tamin'ny volana Janoary taorian'ny famoahana azy. fampahalalana momba ny vulnerabilities systemd. Saingy tsy ny zava-drehetra no tsy misy fanantenana. Betsaka ny binary mampihatra fomba fiarovana fototra, ary mitombo ny isan'izy ireo avy amin'ny dikan-teny mankany amin'ny dikan-teny.

Ny famerenana dia naneho fa ny fomba fiarovana lehibe indrindra dia ampiharina ao amin'ny Ubuntu 18.04 amin'ny OS sy ny haavon'ny fampiharana, arahin'ny Debian 9. Amin'ny lafiny iray, ny OpenSUSE 12.4, CentOS 7 ary RHEL 7 koa dia mampihatra ny rafitra fiarovana fototra, ary ny fiarovana ny fifandonan'ny stack. dia ampiasaina betsaka kokoa miaraka amin'ny fonosana mahazatra kokoa.

fampidirana

Sarotra ny miantoka rindrambaiko avo lenta. Na dia eo aza ny hamaroan'ny fitaovana avo lenta ho an'ny famakafakana kaody static sy ny famakafakana ny fotoana fampandehanana mavitrika, ary koa ny fandrosoana lehibe eo amin'ny fampivoarana ny mpamoron-kira sy ny fiteny fandaharana, ny rindrambaiko maoderina dia mbola mijaly noho ny vulnerability izay hararaotin'ny mpanafika. Mbola ratsy kokoa aza ny toe-javatra any amin'ny tontolo iainana izay misy code lova. Amin'ny toe-javatra toy izany, isika dia tsy miatrika olana mandrakizay amin'ny fitadiavana fahadisoana azo trandrahana, fa voafetra ihany koa amin'ny rafitra mifanaraka amin'ny lamosina mihemotra, izay matetika mitaky antsika hitahiry ny fehezan-dalΓ na voafetra, na ratsy kokoa aza, vulnerable na buggy.

Eo no miditra ny fomba fiarovana na fanamafisana ny programa. Tsy afaka misoroka karazana fahadisoana sasany isika, fa afaka manasarotra ny fiainan'ny mpanafika ary mamaha ny ampahany amin'ny olana amin'ny fisorohana na fisorohana. fitrandrahana ireo fahadisoana ireo. Ny fiarovana toy izany dia ampiasaina amin'ny rafitra fiasa maoderina rehetra, fa ny fomba dia tsy mitovy amin'ny fahasarotana, ny fahombiazany ary ny fahombiazany: avy amin'ny canaries stack ary ASLR ho fiarovana tanteraka CFI ΠΈ ROP. Ato amin'ity lahatsoratra ity, hojerentsika hoe inona ny fomba fiarovana ampiasaina amin'ny fizarana Linux malaza indrindra amin'ny fanamafisana default, ary diniho koa ny fananan'ny binary izay zaraina amin'ny alΓ lan'ny rafitra fitantanana fonosana isaky ny fizarana.

CVE sy fiarovana

Isika rehetra dia nahita lahatsoratra misy lohateny toy ny "Ny fampiharana mora indrindra amin'ny taona" na "Ny rafitra fandidiana mora vidy indrindra." Matetika izy ireo dia manome antontan'isa momba ny fitambaran'ny firaketana momba ny vulnerability toy ny CVE (Vulnerability and Exposure Common), azo avy amin'ny National vulnerability Database (NVD) ΠΎΡ‚ NIST ary loharano hafa. Aorian'izay, ireo fampiharana na OS ireo dia laharan'ny isan'ny CVEs. Indrisy anefa, na dia tena ilaina aza ny CVE amin'ny fanaraha-maso ny olana sy ny fampahafantarana ny mpivarotra sy ny mpampiasa, dia tsy miteny firy momba ny tena fiarovana ny rindrambaiko izy ireo.

Ohatra, diniho ny totalin'ny CVEs nandritra ny efa-taona farany ho an'ny kernel Linux sy ny fizarana mpizara dimy malaza indrindra, dia ny Ubuntu, Debian, Red Hat Enterprise Linux ary OpenSUSE.

Binary an-tapitrisany taty aoriana. Ahoana no nahatonga ny Linux ho matanjaka kokoa
Fig. 1

Inona no lazain'ity grafika ity amintsika? Moa ve ny isa ambony kokoa amin'ny CVE dia midika fa ny fizarana iray dia marefo kokoa noho ny iray hafa? Tsy misy valiny. Ohatra, amin'ity lahatsoratra ity dia ho hitanao fa manana rafitra fiarovana matanjaka kokoa i Debian raha oharina amin'ny OpenSUSE na RedHat Linux, saingy manana CVE bebe kokoa i Debian. Na izany aza, tsy voatery midika ho fiarovana malemy izy ireo: na ny fisian'ny CVE aza dia tsy manondro raha misy vulnerable. voambaka. Ny naotin'ny hamafin'ny dia manome famantarana ny fomba angamba fanararaotana ny vulnerable, fa amin'ny farany dia miankina betsaka amin'ny fiarovana misy eo amin'ireo rafitra voakasika sy ny loharanon-karena ary ny fahaizan'ireo mpanafika ny fitrandrahana. Ankoatr'izay, ny tsy fisian'ny tatitra CVE dia tsy milaza na inona na inona momba ny hafa tsy voasoratra na tsy fantatra vulnerabilities. Ny fahasamihafan'ny CVE dia mety noho ny antony hafa ankoatra ny kalitaon'ny rindrambaiko, ao anatin'izany ny loharano natokana ho an'ny fitsapana na ny haben'ny mpampiasa. Amin'ny ohatra ataontsika, ny isan'ny CVE avo kokoa an'i Debian dia mety manondro fotsiny fa mandefa fonosana rindrambaiko bebe kokoa i Debian.

Mazava ho azy fa ny rafitra CVE dia manome fampahalalana mahasoa izay ahafahanao mamorona fiarovana mety. Arakaraka ny fahafantarantsika tsara ny anton'ny tsy fahombiazan'ny programa, dia mora kokoa ny mamantatra ny fomba fanararaotana sy mamolavola rafitra mety. fitadiavana sy valiny. Ao amin'ny Fig. 2 dia mampiseho ny sokajin'ny vulnerability ho an'ny fizarana rehetra nandritra ny efa-taona farany (loharano). Mazava avy hatrany fa ny ankamaroan'ny CVE dia tafiditra ao anatin'ireto sokajy manaraka ireto: fandavana ny serivisy (DoS), famonoana ny kaody, fihoaram-pefy, kolikoly fitadidiana, fivoahana vaovao (exfiltration) ary fisondrotry ny tombontsoa. Na dia maro aza ny CVE no isaina imbetsaka amin'ny sokajy samihafa, amin'ny ankapobeny dia mitohy isan-taona ny olana mitovy. Ao amin'ny tapany manaraka amin'ny lahatsoratra, isika dia handinika ny fampiasana ny rafitra fiarovana isan-karazany mba hisorohana ny fanararaotana ireo vulnerability ireo.

Binary an-tapitrisany taty aoriana. Ahoana no nahatonga ny Linux ho matanjaka kokoa
Fig. 2

asa

Amin'ity lahatsoratra ity dia mikasa ny hamaly ireto fanontaniana manaraka ireto izahay:

  • Inona no fiarovana ny fizarana Linux samihafa? Inona no rafitra fiarovana misy ao amin'ny kernel sy ny fampiasana habaka mpampiasa?
  • Ahoana no niovan'ny fampiharana ny rafitra fiarovana rehefa mandeha ny fotoana amin'ny fizarana?
  • Inona ny salan'isa miankina amin'ny fonosana sy tranomboky isaky ny fizarana?
  • Inona no fiarovana apetraka ho an'ny binary tsirairay?

Fifidianana fitsinjarana

Hita fa sarotra ny mahita antontan'isa marina momba ny fametrahana fizarana, satria matetika ny isan'ny fampidinana dia tsy manondro ny isan'ny fametrahana tena izy. Na izany aza, ny variana Unix dia mandrafitra ny ankamaroan'ny rafitra mpizara (amin'ny mpizara tranonkala 69,2%, amin'ny antontan'isa W3techs sy loharano hafa), ary mitombo hatrany ny anjarany. Noho izany, ho an'ny fikarohanay dia nifantoka tamin'ny fizarana azo alaina ivelan'ny boaty teo amin'ny lampihazo izahay Google Cloud. Indrindra indrindra, nisafidy ireto OS manaraka ireto izahay:

Distribution/version
fototra
manaova

OpenSUSE 12.4
4.12.14-95.3-default
#1 SMP Alarobia 5 Desambra 06:00:48 UTC 2018 (63a8d29)

Debian 9 (mihenjana)
4.9.0-8-amd64
#1 SMP Debian 4.9.130-2 (2018-10-27)

CentOS 6.10
2.6.32-754.10.1.el6.x86_64
#1 SMP Talata 15 Janoary 17:07:28 UTC 2019

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

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

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

Ubuntu 14.04 (Trusty Tahr)
4.4.0–140-generic

#166~14.04.1-Ubuntu SMP Sab 17 Nov 01:52:43 UTC 20…

Ubuntu 16.04 (Xenial Xerus)
4.15.0–1026-gcp
#27~16.04.1-Ubuntu SMP Zom 7 Desambra 09:59:47 UTC 2018

Ubuntu 18.04 (Bionic Beaver)
4.15.0–1026-gcp
#27-Ubuntu SMP Alakamisy 6 Desambra 18:27:01 UTC 2018

Table 1

fanadihadiana ny

Andeha hodinihintsika ny fanamafisana kernel default, ary koa ny fananan'ny fonosana azo alaina amin'ny alΓ lan'ny mpitantana ny fonosana isaky ny fizarana ivelan'ny boaty. Noho izany, ny fonosana avy amin'ny fitaratry ny fizarana tsirairay ihany no dinihinay, tsy miraharaha ny fonosana avy amin'ny trano fitehirizana tsy miorina (toy ny fitaratra 'fitsapana' Debian) sy ny fonosana an'ny antoko fahatelo (toy ny fonosana Nvidia avy amin'ny fitaratra mahazatra). Fanampin'izany, tsy mihevitra ny fanangonana kernel mahazatra na ny fanamafisana mafy ny fiarovana izahay.

Fandinihana ny fanamafisana ny kernel

Nampiasa script fanadihadiana mifototra amin'ny maimaim-poana kconfig checker. Andeha hojerentsika ny masontsivana fiarovana ivelan'ny boaty amin'ireo fizarana nomena anarana ary ampitahao amin'ny lisitra avy amin'ny Core Self Defense Project (KSPP). Ho an'ny safidy fanitsiana tsirairay, ny tabilao 2 dia mamaritra ny toerana irina: ny boaty dia natao ho an'ny fizarana mifanaraka amin'ny tolo-kevitry ny KSSP (jereo ity manaraka ity ho fanazavana ny teny). eto; Amin'ny lahatsoratra ho avy dia hanazava hoe firy amin'ireo fomba fiarovana ireo no niforona sy ny fomba fijinjana rafitra raha tsy eo izy ireo).

Binary an-tapitrisany taty aoriana. Ahoana no nahatonga ny Linux ho matanjaka kokoa

Binary an-tapitrisany taty aoriana. Ahoana no nahatonga ny Linux ho matanjaka kokoa

Amin'ny ankapobeny, ny kernel vaovao dia manana toe-javatra henjana kokoa ivelan'ny boaty. Ohatra, ny CentOS 6.10 sy RHEL 6.10 amin'ny kernel 2.6.32 dia tsy manana ny ankamaroan'ny endri-javatra manakiana ampiharina amin'ny kernel vaovao toy ny SMAP, fahazoan-dΓ lana henjana RWX, adiresy randomization na fiarovana copy2usr. Marihina fa maro amin'ireo safidy fanitsiana ao amin'ny latabatra no tsy hita amin'ny dikan-teny taloha amin'ny kernel ary tsy azo ampiharina amin'ny zava-misy - izany dia mbola aseho ao amin'ny latabatra ho tsy fahampian'ny fiarovana. Toy izany koa, raha toa ka tsy misy safidy fanamafisam-peo amin'ny dikan-teny iray, ary ny fiarovana dia mitaky ny hanajanonana izany safidy izany, dia heverina ho fanitsiana mety izany.

Hevitra iray hafa tokony hodinihina rehefa mandika ny valiny: azo ampiasaina amin'ny fiarovana ihany koa ny fanamafisana kernel sasany izay mampitombo ny fanafihan'ny fanafihana. Ny ohatra toy izany dia misy uprobes sy kprobes, modules kernel, ary BPF/eBPF. Ny soso-kevitray dia ny fampiasana ireo rafitra voalaza etsy ambony mba hanomezana fiarovana tena izy, satria tsy misy dikany ny fampiasana azy ireo ary ny fanararaotana azy ireo dia mihevitra fa ireo mpisehatra ratsy dia efa nametraka ny toerany teo amin'ny rafitra. Fa raha avela ireo safidy ireo, ny mpitantana ny rafitra dia tsy maintsy manara-maso ny fanararaotana.

Raha jerena bebe kokoa ny fidirana ao amin'ny tabilao 2, dia hitantsika fa ny voany maoderina dia manome safidy maro hiarovana amin'ny fanararaotana ireo vulnerabilitΓ© toy ny fahatapahan'ny fampahalalana sy ny fihoaran'ny stack/heap. Na izany aza, tsikaritray fa na dia ny fizarana malaza indrindra aza dia mbola tsy nampihatra fiarovana sarotra kokoa (ohatra, miaraka amin'ny patch grsecurity) na fiarovana maoderina amin'ny fanafihana fampiasana kaody (oh. fitambaran'ny randomization miaraka amin'ny tetika toy ny R^X ho an'ny kaody). Ny tena ratsy kokoa, na dia ireo fiarovana avo kokoa aza dia tsy miaro amin'ny fanafihana feno. Noho izany, zava-dehibe ho an'ny mpitantana ny rafitra ny mameno ny fikirakirana marani-tsaina miaraka amin'ny vahaolana izay manolotra fisavana sy fisorohana ny fitrandrahana amin'ny fotoana rehetra.

Famakafakana fampiharana

Tsy mahagaga raha samy manana ny toetran'ny fonosana ny fizarana samihafa, ny safidy fanangonana, ny fiankinan-doha amin'ny tranomboky, sns. Misy ny fahasamihafana na dia ho an'ny mifandraika fizarana sy fonosana misy fiankinana kely (ohatra, coreutils amin'ny Ubuntu na Debian). Mba hanombanana ny fahasamihafana dia nalainay ny fonosana rehetra misy, nalainay ny votoatiny, ary nodinihinay ny binary sy ny fiankinan-doha. Ho an'ny fonosana tsirairay, dia nanara-maso ireo fonosana hafa iankinany izahay, ary ho an'ny binary tsirairay, dia nanara-maso ny fiankinany izahay. Amin'ity fizarana ity dia mamintina fohifohy ny fehin-kevitra.

Distributions

Amin'ny fitambarany, fonosana 361 no alainay ho an'ny fizarana rehetra, tsy misy afa-tsy fonosana avy amin'ny fitaratra mahazatra. Tsy noraharahainay ny fonosana tsy misy executable ELF, toy ny loharano, endri-tsoratra, sns. Taorian'ny sivana, fonosana 556 no tavela, izay misy binary 129. Ny fizarana fonosana sy rakitra manerana ny fizarana dia aseho amin'ny sary. 569.

Binary an-tapitrisany taty aoriana. Ahoana no nahatonga ny Linux ho matanjaka kokoa
Fig. 3

Mety ho tsikaritrao fa arakaraky ny fomba maoderina kokoa ny fizarana, ny fonosana sy ny binary misy azy, izay lojika. Na izany aza, ny fonosana Ubuntu sy Debian dia ahitana binary maro kokoa (samy executable sy dynamiques ary tranomboky) noho ny CentOS, SUSE ary RHEL, izay mety hisy fiantraikany amin'ny fanafihan'ny Ubuntu sy Debian (tokony ho marihina fa ny isa dia maneho ny binary rehetra amin'ny dikan-teny rehetra. fonosana, izany hoe, ny rakitra sasany dia nodinihina imbetsaka). Zava-dehibe indrindra izany rehefa mandinika ny fiankinan-doha eo amin'ny fonosana ianao. Noho izany, mety hisy fiantraikany amin'ny faritra maro ao amin'ny tontolo iainana ny vulnerable ao anaty fonosana binary iray, toy ny tranomboky marefo izay mety hisy fiantraikany amin'ny binary rehetra manafatra azy. Ho fanombohana, andeha hojerentsika ny fizarana ny isan'ny fiankinan-doha amin'ny fonosana amin'ny rafitra fiasana samihafa:

Binary an-tapitrisany taty aoriana. Ahoana no nahatonga ny Linux ho matanjaka kokoa
Fig. 4

Saika amin'ny fizarana rehetra, ny 60% amin'ny fonosana dia manana fiankinana 10 farafahakeliny. Fanampin'izany, ny fonosana sasany dia manana fiankinana betsaka kokoa (mihoatra ny 100). Toy izany koa no mihatra amin'ny fiankinan-doha amin'ny fonosana: araka ny efa nampoizina, misy fonosana vitsivitsy ampiasain'ny fonosana maro hafa amin'ny fizarana, ka ny vulnerabilities amin'ireo vitsy voafantina dia mety hampidi-doza. Ohatra, ity tabilao manaraka ity dia mitanisa ny fonosana 20 miaraka amin'ny isa ambony indrindra amin'ny fiankinan-doha amin'ny SLES, Centos 7, Debian 9 ary Ubuntu 18.04 (ny sela tsirairay dia manondro ny fonosana sy ny isan'ny fiankinan-doha mivadika).

Binary an-tapitrisany taty aoriana. Ahoana no nahatonga ny Linux ho matanjaka kokoa
Table 3

zava-misy mahaliana. Na dia natao ho an'ny maritrano x86_64 aza ny OS rehetra nodinihina, ary ny ankamaroan'ny fonosana dia manana ny maritrano voafaritra ho x86_64 sy x86, ny fonosana matetika dia misy binary ho an'ny maritrano hafa, araka ny aseho amin'ny sary 5. XNUMX.

Binary an-tapitrisany taty aoriana. Ahoana no nahatonga ny Linux ho matanjaka kokoa
Fig. 5

Ao amin'ny fizarana manaraka, isika dia handinika ny toetra mampiavaka ny binary nodinihina.

Statistika fiarovana amin'ny rakitra binary

Amin'ny faran'izay kely indrindra, mila mikaroka karazana safidy fiarovana fototra ho an'ny binary misy anao ianao. Ny fizarana Linux maromaro dia tonga miaraka amin'ny script izay manao fisavana toy izany. Ohatra, Debian/Ubuntu dia manana script toy izany. Ity misy ohatra iray amin'ny asany:

$ 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

Ny script dia manamarina dimy asa fiarovana:

  • Position Independent Executable (PIE): Manondro raha azo afindra ao anaty fitadidiana ny fizarana lahatsoratra amin'ny programa iray mba hahatongavana ho kisendrasendra raha toa ka alefa ao anaty kernel ny ASLR.
  • Stack Protected: Na afaka miaro amin'ny fanafihana fifandonan'ny stack ny canaries stack.
  • Fortify Source: raha toa ka soloina amin'ny mpiara-miasa azo antoka kokoa ny fiasa tsy azo antoka (ohatra, strcpy), ary ny antso voazaha amin'ny fotoam-pivoriana dia soloina amin'ireo mpiara-miasa tsy voafehy (ohatra, memcpy fa tsy __memcpy_chk).
  • Famindran-toerana vakiana fotsiny (RELRO): Raha voamarika fa vakiana ihany ny fidirana amin'ny latabatra fifindra-monina raha atomboka alohan'ny hanombohan'ny famonoana.
  • Famatorana eo no ho eo: Na avelan'ny mpampitohy runtime ny hetsika rehetra alohan'ny hanombohan'ny fanatanterahana ny programa (mitovitovy amin'ny RELRO feno izany).

Ampy ve ireo rafitra voalaza etsy ambony ireo? Indrisy fa tsia. Misy fomba fantatra handosirana ireo fiarovan-tena rehetra voalaza etsy ambony ireo, saingy arakaraka ny hamafin'ny fiarovana no avo kokoa ny bar ho an'ny mpanafika. Ohatra, RELRO bypass fomba sarotra kokoa ny mampihatra raha toa ka manan-kery ny PIE sy ny fatorana eo no ho eo. Toy izany koa, ny ASLR feno dia mitaky asa fanampiny hamoronana fitrandrahana miasa. Na izany aza, ireo mpanafika be pitsiny dia efa vonona ny hiatrika ireo fiarovana toy izany: ny tsy fisian'izy ireo dia hanafaingana ny hack. Ilaina noho izany ny fiheverana fa ilaina ireo fepetra ireo farafaharatsiny.

Te-hianatra izahay hoe firy ny rakitra binary ao amin'ireo fizarana voaaro amin'ireo fomba telo hafa ireo:

  • Bitika tsy azo tanterahina (NX) dia manakana ny famonoana any amin'ny faritra tsy tokony hotanterahina, toy ny stack heap, sns.
  • RPATH/RUNPATH dia manondro ny lalan'ny famonoana ampiasain'ny dynamic loader hitadiavana tranomboky mifanentana. Ny voalohany dia maintsy ho an'ny rafitra maoderina rehetra: ny tsy fisian'izy io dia ahafahan'ny mpanafika manoratra amin'ny fomba tsy ara-dalΓ na ny enta-mavesatra ao anaty fitadidiana ary manatanteraka izany araka ny tokony ho izy. Ho an'ny faharoa dia manampy amin'ny fampidirana kaody tsy azo ianteherana izay mety hiteraka olana maro ny fandrindrana lalana famonoana diso (oh. fisondrotry ny tombontsoa, ary koa olana hafa).
  • Ny fiarovana ny fifandonan'ny stack dia manome fiarovana amin'ny fanafihana izay mahatonga ny stack hifanindry amin'ny faritra hafa fitadidiana (toy ny heap). Noho ny fanararaotana vao haingana systemd heap collision vulnerabilities, tsapanay fa mety ny hampidirana ity mekanika ity ao anatin'ny angonay.

Noho izany, tsy misy fisalasalana, andao isika hidina amin'ny isa. Ny tabilao 4 sy 5 dia misy famintinana ny famakafakana ny rakitra azo tanterahana sy ny tranomboky amin'ny fizarana samihafa.

  • Araka ny hitanao, ny fiarovana NX dia ampiharina na aiza na aiza, miaraka amin'ny tranga tsy fahita firy. Indrindra indrindra, misy afaka manamarika ny fampiasana ambany kokoa amin'ny fizarana Ubuntu sy Debian raha oharina amin'ny CentOS, RHEL ary OpenSUSE.
  • Ny canaries stack dia tsy hita any amin'ny toerana maro, indrindra amin'ny fizarana miaraka amin'ny voany taloha. Ny fandrosoana sasany dia hita amin'ny fizarana farany an'ny Centos, RHEL, Debian ary Ubuntu.
  • Ankoatra ny Debian sy Ubuntu 18.04, ny ankamaroan'ny fizarana dia manana fanohanana PIE mahantra.
  • Ny fiarovana ny fifandonan'ny stack dia malemy ao amin'ny OpenSUSE, Centos 7 ary RHEL 7, ary saika tsy misy amin'ny hafa.
  • Ny fizarana rehetra miaraka amin'ny kernel maoderina dia manana fanohanana ny RELRO, miaraka amin'ny Ubuntu 18.04 mitarika ny lalana ary i Debian dia tonga faharoa.

Araka ny efa voalaza, ny metrika amin'ity tabilao ity dia ny salan'isa ho an'ny dikan-teny rehetra amin'ny rakitra binary. Raha tsy mijery afa-tsy ny dikan-drakitra farany indrindra ianao dia ho hafa ny isa (ohatra, jereo Fandrosoana Debian miaraka amin'ny fampiharana PIE). Ankoatr'izay, ny ankamaroan'ny fizarana dia mazΓ na ihany no mitsapa ny fiarovana ny fiasa vitsivitsy ao amin'ny binary rehefa manao kajy ny antontan'isa, fa ny famakafakana dia mampiseho ny tena isan-jaton'ny fiasa izay mihamafy. Noho izany, raha 5 amin'ny asa 50 no voaaro amin'ny binary, dia homentsika isa 0,1 izany, izay mifanandrify amin'ny 10% amin'ny fiasa izay hamafisina.

Binary an-tapitrisany taty aoriana. Ahoana no nahatonga ny Linux ho matanjaka kokoa
Table 4. Toetran'ny fiarovana ho an'ny rakitra azo tanterahana aseho amin'ny sary. 3 (fampiharana ireo asa mifandraika amin'ny isan-jaton'ny fitambaran'ny rakitra azo tanterahana)

Binary an-tapitrisany taty aoriana. Ahoana no nahatonga ny Linux ho matanjaka kokoa
Table 5. Toetran'ny fiarovana ho an'ny tranomboky aseho amin'ny sary. 3 (fampiharana ny asa mifandraika amin'ny isan-jaton'ny fitambaran'ny tranomboky)

Dia misy fandrosoana ve? Tena misy izany: azo jerena amin'ny antontan'isa momba ny fizarana tsirairay izany (ohatra, Debian), ary koa avy amin'ireo tabilao etsy ambony. Ohatra amin'ny Fig. Ny sary 6 dia mampiseho ny fampiharana ny rafitra fiarovana amin'ny fizarana telo nifanesy an'ny Ubuntu LTS 5 (tsy nesorinay ny antontan'isa momba ny fiarovana ny fifandonana). Tsikaritray fa avy amin'ny dikan-kapila dia mihamaro hatrany ny rakitra manohana canaries stack, ary mihamaro koa ny binary alefa miaraka amin'ny fiarovana RELRO feno.

Binary an-tapitrisany taty aoriana. Ahoana no nahatonga ny Linux ho matanjaka kokoa
Fig. 6

Indrisy anefa fa misy rakitra azo tanterahana amin'ny fizarana samihafa mbola tsy manana ny fiarovana etsy ambony. Ohatra, raha mijery ny Ubuntu 18.04 ianao dia ho hitanao ny binary ngetty (fanoloana getty), ary koa ny akorandriaka mksh sy lksh, ny mpandika teny picolisp, ny fonosana nvidia-cuda-toolkit (fonosana malaza ho an'ny fampiharana GPU-accelerate. toy ny rafitra fianarana milina), ary klibc -utils. Toy izany koa, ny mandos-client binary (fitaovana administratif izay ahafahanao mamerina mandeha ho azy ny milina miaraka amin'ny rafitra fichier encrypted) ary koa ny rsh-redone-client (famerenana ny rsh sy rlogin) sambo tsy misy fiarovana NX, na dia manana zo SUID aza izy ireo: (. Ary koa, maromaro suid binary tsy manana fiarovana fototra toy ny stack canaries (ohatra, ny Xorg.wrap binary avy amin'ny Xorg package).

Famintinana sy Teny famaranana

Ato amin'ity lahatsoratra ity dia nanasongadina endri-piarovana maromaro amin'ny fizarana Linux maoderina. Ny fanadihadiana dia naneho fa ny fizarana farany Ubuntu LTS (18.04) dia mampihatra, amin'ny ankapobeny, ny OS matanjaka indrindra sy ny fiarovana ny haavon'ny fampiharana eo amin'ny fizarana misy kernel vaovao, toy ny Ubuntu 14.04, 12.04 ary Debian 9. Na izany aza, ny fizarana voadinika CentOS, RHEL ary OpenSUSE ao amin'ny napetrakay amin'ny alΓ lan'ny default dia mamokatra fonosana matevina kokoa izy ireo, ary amin'ny dikan-teny farany (CentOS sy RHEL) dia manana isan-jaton'ny fiarovana ny fifandonan'ny stack izy ireo raha oharina amin'ireo mpifaninana miorina amin'ny Debian (Debian sy Ubuntu). Raha ampitahaina ny dikan-teny CentOS sy RedHat, dia tsikaritray ny fanatsarana lehibe amin'ny fampiharana ireo canaries stack sy RELRO avy amin'ny dikan-teny 6 ka hatramin'ny 7, fa amin'ny ankapobeny CentOS dia manana endri-javatra maro kokoa noho ny RHEL. Amin'ny ankapobeny, ny fizarana rehetra dia tokony handinika manokana ny fiarovana PIE, izay, ankoatry ny Debian 9 sy Ubuntu 18.04, dia ampiharina amin'ny latsaky ny 10% amin'ny binary ao amin'ny tahiry.

Farany, tokony ho marihina fa na dia nanao fikarohana tamin'ny tanana aza izahay, dia misy fitaovana fiarovana maro azo alaina (oh. Lynis, Tiger, Hubble), izay manao famakafakana ary manampy amin'ny fisorohana ny fanamboarana tsy azo antoka. Indrisy anefa, na dia ny fiarovana mafy amin'ny fanamafisana mitombina aza dia tsy miantoka ny tsy fisian'ny fanararaotana. Izany no mahatonga anay mino mafy fa tena ilaina ny miantoka fanaraha-maso azo antoka sy fisorohana ny fanafihana amin'ny fotoana tena izy, mifantoka amin'ny fomba fanararaotana sy fisorohana azy ireo.

Source: www.habr.com

Add a comment