Malaayiin binary ka dib. Sida Linux u xoogaystay

Malaayiin binary ka dib. Sida Linux u xoogaystayTL, DR. Maqaalkan, waxaan ku sahamineynaa nidaamyada adag ee ka shaqeeya sanduuqa shan qeybinta Linux caan ah. Mid kasta, waxaanu qaadnay qaabaynta kernel-ka caadiga ah, waxaanu ku shubnay baakooyinka oo dhan, waxaanu falanqeynay nidaamyada amniga ee binary-ga ku lifaaqan. Qaybinta la tixgeliyey waa OpenSUSE 12.4, Debian 9, CentOS, RHEL 6.10 iyo 7, iyo sidoo kale Ubuntu 14.04, 12.04 iyo 18.04 LTS.

Natiijooyinku waxay xaqiijinayaan in xitaa nidaamyada aasaasiga ah sida isugeynta canary-ga iyo koodhka ku-meel-gaarka ah ee aan weli qof walba qaadan. Xaaladdu aad ayay uga sii daran tahay isku-dubaridaha marka ay timaaddo ka-hortagga dayacanka sida isku dhaca is-daba-joogga ah, kaasoo soo shaac baxay bishii Jannaayo kaddib markii la daabacay macluumaadka ku saabsan dayacanka habaysan. Laakiin wax walba maaha rajo la'aan. Tiro aad u badan oo binary ah ayaa hirgeliya hababka ilaalinta aasaasiga ah, tiradooduna way ka korodhaa nooc ilaa nooc.

Dib u eegista ayaa muujisay in tirada ugu badan ee hababka ilaalinta lagu fuliyo Ubuntu 18.04 ee heerarka OS iyo codsiyada, oo ay ku xigto Debian 9. Dhanka kale, OpenSUSE 12.4, CentOS 7 iyo RHEL 7 waxay sidoo kale hirgeliyaan qorshayaasha ilaalinta aasaasiga ah, iyo ilaalinta isku dhaca. waxaa loo isticmaalaa xitaa si ballaaran oo leh xirmooyin aad u cufan oo badan.

Horudhac

Way adag tahay in la hubiyo tayada software-ka. In kasta oo tirada badan ee aaladaha horumarsan ee falanqaynta code static iyo falanqaynta runtime firfircoon, iyo sidoo kale horumar la taaban karo oo ku saabsan horumarinta compilers iyo luqadaha barnaamijyada, software casriga ah ayaa weli la ildaran baylahda kuwaas oo ay si joogto ah uga faa'iideystaan ​​weeraryahannada. Xaaladdu aad ayay uga sii daran tahay nidaamyada deegaanka oo ay ku jiraan koodka dhaxalka. Xaaladahan oo kale, kaliya ma wajahno dhibaatada weligeed ah ee helidda khaladaadka suurtagalka ah ee laga faa'iidaysan karo, laakiin sidoo kale waxaynu xaddidnay qaab-dhismeedyo adag oo dib-u-dhac ah, kuwaas oo inta badan nooga baahan inaan ilaalinno xaddidan, ama xitaa ka sii daran, kood nugul ama buggy.

Tani waa halka hababka ilaalinta ama adkaynta barnaamijyada ay ka ciyaaraan. Ma ka hortagi karno qaar ka mid ah khaladaadka, laakiin waxaan ka dhigi karnaa nolosha qofka wax weeraraya mid adag oo qayb ahaan xallinta dhibaatada anagoo ka hortagayna ama ka hortagayna dhiig -miirashada khaladaadkaas Ilaalinta noocan oo kale ah waxaa loo isticmaalaa dhammaan nidaamyada hawlgalka ee casriga ah, laakiin hababku si weyn ayey uga duwan yihiin kakanaanta, waxtarka iyo waxqabadka: laga soo bilaabo canary-ga iyo ASLR ilaalinta buuxda CFI и R.O.P.. Maqaalkani, waxaanu eegi doonaa hababka ilaalinta ee loo isticmaalo qaybinta Linux ee ugu caansan ee qaabka caadiga ah, iyo sidoo kale baari sifooyinka binaries ee loo qaybiyo hababka maaraynta xirmooyinka qayb kasta.

CVE iyo amniga

Dhammaanteen waxaan aragnay maqaallo leh cinwaanno ay ka mid yihiin "Codsiyada ugu nugul sanadka" ama "Nidaamka Hawlgallada ugu nugul." Caadi ahaan waxay bixiyaan tirakoobka tirada guud ee diiwaanada ku saabsan dayacanka sida CVE (Nuglanka Caadiga ah iyo Muujinta), laga helay Xogta Nuglaanta Qaranka (NVD) ka NIST iyo ilo kale. Ka dib, codsiyadan ama OS-yada waxaa lagu qiimeeyay tirada CVE-yada. Nasiib darro, halka CVE-yadu ay aad uga faa'iideysanayaan la socodka arrimaha iyo wargelinta iibiyeyaasha iyo isticmaalayaasha, wax yar ayay ka sheegaan amniga dhabta ah ee software-ka.

Tusaale ahaan, tixgeli tirada guud ee CVE-yada afartii sano ee la soo dhaafay ee kernel Linux iyo shanta qaybood ee ugu caansan server-yada, kuwaas oo kala ah Ubuntu, Debian, Red Hat Enterprise Linux iyo OpenSUSE.

Malaayiin binary ka dib. Sida Linux u xoogaystay
Ис. 1

Muxuu garaafkani inoo sheegayaa? Tirada sare ee CVE-yada miyaa la macno ah in qayb qaybintu ay ka nugul tahay midda kale? Jawaab maya. Tusaale ahaan, maqaalkan waxaad ku arki doontaa in Debian ay leedahay habab ammaan oo xoog badan marka la barbar dhigo, dheh, OpenSUSE ama RedHat Linux, haddana Debian waxay leedahay CVEs badan. Si kastaba ha ahaatee, macnaheedu maaha ammaan daciif ah: xitaa joogitaanka CVE ma tilmaamayso in baylahdu tahay laga faa'iidaysto. Dhibcaha darnaanta ayaa tilmaamaya sida malaha ka faa'iidaysiga nuglaanshaha, laakiin ugu dambaynta ka faa'iidaysigu waxay si aad ah ugu xidhan tahay ilaalinta ka jirta nidaamyada ay saamaysay iyo agabka iyo awoodaha weeraryahannada. Waxaa intaa dheer, maqnaanshaha warbixinnada CVE waxba kama sheegin kuwa kale aan diiwaan gashanayn ama aan la garanayn baylahda. Farqiga u dhexeeya CVE waxa laga yaabaa inay sabab u tahay arrimo aan ahayn tayada software-ka, oo ay ku jiraan agabka loo qoondeeyay tijaabada ama cabbirka saldhigga adeegsadaha. Tusaalahayaga, tirada sare ee Debian ee CVE-yada ayaa si fudud u muujin kara in Debian ay soo rarto xidhmooyin software badan.

Dabcan, nidaamka CVE wuxuu bixiyaa macluumaad faa'iido leh oo kuu ogolaanaya inaad abuurto ilaalin habboon. Markasta oo aan si fiican u fahamno sababaha fashilka barnaamijku, way fududahay in la aqoonsado hababka suurtagalka ah ee ka faa'iidaysiga iyo horumarinta hababka ku habboon. ogaanshaha iyo jawaabta. Jaantuska 2 waxay tusinaysaa qaybaha nuglaanshaha dhammaan qaybinta afartii sano ee la soo dhaafay (ilaha). Isla markiiba way caddahay in CVE-yada intooda badani ay ku dhacaan qaybahan soo socda: diidmada adeegga (DoS), fulinta koodka, qulqulka, musuqmaasuqa xusuusta, daadinta macluumaadka (exfiltration) iyo mudnaanta mudnaanta. In kasta oo CVE-yo badan lagu tiriyo dhawr jeer qaybo kala duwan, guud ahaan isla arrimahan ayaa socda sannadba sannadka ka dambeeya. Qaybta soo socota ee maqaalka, waxaan ku qiimeyn doonaa isticmaalka hababka ilaalinta kala duwan si looga hortago ka faa'iidaysiga dayacanka kuwan.

Malaayiin binary ka dib. Sida Linux u xoogaystay
Ис. 2

hawlaha

Maqaalkan waxaan ku talo jirnaa inaan ka jawaabno su'aalaha soo socda:

  • Waa maxay amniga qaybinta Linux ee kala duwan? Waa maxay hababka ilaalinta ee ka jira kernel-ka iyo codsiyada booska isticmaalaha?
  • Sidee buu qaadashada hababka ammaanku isu beddelay waqti ka dib dhammaan qaybinta?
  • Waa maxay celceliska ku tiirsanaanta xirmooyinka iyo maktabadaha qaybin kasta?
  • Waa maxay ilaalinta loo hirgeliyay binary kasta?

Xulashada qaybinta

Waxay soo baxday in ay adag tahay in la helo tirakoob sax ah oo ku saabsan rakibaadda qaybinta, maadaama inta badan tirada la soo dejiyo aysan muujin tirada rakibaadda dhabta ah. Si kastaba ha ahaatee, kala duwanaanshaha Unix ayaa ka kooban inta badan nidaamyada server-yada (oo ku jira server-yada shabakadda 69,2%, by tirakoobka W3techs iyo ilo kale), oo saamigoodu si joogto ah ayuu u korayaa. Markaa, cilmi-baadhisteenna waxaan diiradda saarnay qaybinta laga heli karo sanduuqa goobta Google Cloud. Gaar ahaan, waxaan dooranay OS-yada soo socda:

Qaybinta/nooca
Muhiim
Dhis

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

Debian 9 ( fidsan )
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 Talaado Janaayo 15 17:07:28 UTC 2019

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

Shirkadda Koofiyada Cas Linux Server 6.10 (Santiago)
2.6.32-754.9.1.el6.x86_64
#1 SMP Arbacada Noofambar 21 15:08:21 EST 2018

Shirkadda Koofiyadaha Cas Linux Server 7.6 (Maipo)
3.10.0-957.1.3.el7.x86_64
#1 SMP Thu Noofambar 15 17:36:42 UTC 2018

Ubuntu 14.04 (Trusty Tahr)
4.4.0-140-guud

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

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

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

Jadwalka 1

Анализ

Aynu baranno qaabaynta kernel-ka caadiga ah, iyo sidoo kale sifooyinka xirmooyinka laga heli karo maareeyaha xirmada qaybinta kasta oo ka baxsan sanduuqa. Markaa, waxaan kaliya tixgelineynaa baakadaha muraayadaha aasaasiga ah ee qaybinta, iska indhatiraya baakadaha kaydka aan xasilloonayn (sida muraayadaha 'Debian' tijaabinta') iyo xirmooyinka dhinac saddexaad (sida xirmooyinka Nvidia ee muraayadaha caadiga ah). Intaa waxa dheer, ma tixgalinayno ururinta kernel-ka caadiga ah ama isku xidhka ammaanka adag.

Falanqaynta Habaynta Kernel

Waxaan codsanay qoraal falanqayn ku salaysan hubinta kconfig bilaashka ah. Aynu eegno xuduudaha ilaalinta ka baxsan sanduuqa ee qaybinta magacaaban oo aan barbar dhigno liiska laga soo bilaabo Mashruuca Is-difaaca Muhiimka ah (KSPP). Xulasho kasta oo qaabeyn ah, Shaxda 2 ayaa qeexaysa goobta la doonayo: sanduuqa hubinta waxaa loogu talagalay qaybinta u hoggaansan talooyinka KSSP (eeg kuwan soo socda si aad u sharaxdo ereyada). halkan; Maqaallada mustaqbalka waxaan ku sharixi doonaa inta hababkan amniga ah ee la sameeyay iyo sida loo jabsado nidaamka markay maqan yihiin).

Malaayiin binary ka dib. Sida Linux u xoogaystay

Malaayiin binary ka dib. Sida Linux u xoogaystay

Guud ahaan, kernels-ka cusubi waxay leeyihiin dejin adag oo ka baxsan sanduuqa. Tusaale ahaan, CentOS 6.10 iyo RHEL 6.10 ee 2.6.32 kernel ayaa ka maqan inta badan sifooyinka muhiimka ah ee lagu hirgeliyay kernels cusub sida SMAP, rukhsad adag oo RWX ah, randomization ciwaanka ama ilaalinta copy2usr. Waa in la ogaadaa in qaar badan oo ka mid ah fursadaha qaabeynta ee miiska aan la heli karin noocyada hore ee kernel-ka oo aan lagu dabaqi karin xaqiiqda - tani waxay weli ku caddahay miiska sida la'aanta ilaalinta saxda ah. Sidoo kale, haddii ikhtiyaarka qaabeynta uusan ku jirin nooca la bixiyay, oo ammaanku u baahan yahay in doorashadaas la joojiyo, tan waxaa loo tixgeliyaa qaabeyn macquul ah.

Qodob kale oo ay tahay in la tixgeliyo marka la turjumayo natiijooyinka: qaar ka mid ah qaababka kernel-ka ee kordhiya dusha weerarka ayaa sidoo kale loo isticmaali karaa amniga. Tusaalooyinka noocaan ah waxaa ka mid ah uprobes iyo kprobes, modules kernel, iyo BPF/eBPF. Taladayadu waa in la isticmaalo hababka kor ku xusan si loo bixiyo ilaalin dhab ah, maadaama ay yihiin kuwo aan sahlanayn in la isticmaalo iyo ka faa'iideysigoodu waxay u maleynayaan in jilayaasha xaasidnimada ah ay mar hore saldhig ka dhigteen nidaamka. Laakiin haddii xulashooyinkan la oggolaado, maamulaha nidaamku waa inuu si firfircoon ula socdo xadgudubka.

Markaan sii eegno waxyaabaha ku jira Shaxda 2, waxaan aragnaa in kernels-ka casriga ahi ay bixinayaan dhawr fursadood oo lagaga hortagayo ka faa'iidaysiga dayacanka sida xogta daadinta iyo qulqulka taallooyinku. Si kastaba ha noqotee, waxaan ogaanay in xitaa qaybintii ugu dambeysay ee caanka ahayd aysan wali hirgelin ilaalin kakan oo badan (tusaale ahaan, dhejisyo ammaan) ama ilaalinta casriga ah ee ka dhanka ah weerarada dib u isticmaalka koodka (tusaale. isku darka randomization iyo qorshayaasha sida R^X ee code). Waxaa taas ka sii daran, xitaa difaacyadan aadka u horumarsan kama difaacaan weerarada baaxadda leh. Sidaa darteed, waxaa muhiim u ah maamulayaasha nidaamku inay ku dhammaystiraan qaabaynta caqliga leh xalalka bixiya ogaanshaha iyo ka-hortagga ka faa'iidaysiga runtime.

Falanqaynta Codsiga

La yaab ma leh, qaybinta kala duwan waxay leedahay sifooyin baakad oo kala duwan, ikhtiyaarrada la isku duba ridey, ku tiirsanaanta maktabadda, iwm. Farqi ayaa jira xitaa la xidhiidha qaybinta iyo xirmooyinka leh tiro yar oo ku tiirsanaanta (tusaale, coreutils on Ubuntu ama Debian). Si loo qiimeeyo kala duwanaanshiyaha, waxaan soo dejinay dhammaan xirmooyinka la heli karo, ka soo saarnay waxa ku jira, oo aan falanqeynay binaries iyo ku tiirsanaanta. Xirmado kasta, waxaan la soconay baakadaha kale ee ay ku xiran tahay, iyo binary kasta, waxaan la soconay ku tiirsanaanta. Qeybtaan waxaan si kooban u soo koobeynaa gabagabada.

Qaybinta

Wadar ahaan, waxaan soo dejinay 361 baakadaha dhammaan qaybinta, anagoo ka soo saarnay baakadaha kaliya muraayadaha caadiga ah. Waxaan iska indhatiray baakado aan lahayn ELF la fulin karo, sida ilaha, xarfaha, iwm. shaandhaynta ka dib, 556 xidhmo ayaa hadhay, oo ka kooban wadar ahaan 129 binaries. Qaybinta xirmooyinka iyo faylalka guud ahaan qaybinta waxa lagu muujiyay shaxanka. 569.

Malaayiin binary ka dib. Sida Linux u xoogaystay
Ис. 3

Waxaa laga yaabaa inaad ogaato in qaybinta casriga ah ee casriga ah, baakadaha badan iyo binaries ay ku jiraan, taas oo macquul ah. Si kastaba ha noqotee, xirmooyinka Ubuntu iyo Debian waxaa ka mid ah binaries badan (labadaba kuwa la fulin karo iyo qaybo firfircoon iyo maktabado) marka loo eego CentOS, SUSE iyo RHEL, kuwaas oo suurtagal ah inay saameeyaan dusha sare ee Ubuntu iyo Debian (waa in la ogaadaa in tirooyinka ay ka tarjumayaan dhammaan noocyada kala duwan ee noocyada oo dhan. xirmo, taas oo ah, faylasha qaar ayaa la falanqeeyay dhowr jeer). Tani waxay si gaar ah muhiim u tahay markaad tixgeliso ku-tiirsanaanta u dhexeeya xirmooyinka. Markaa, nuglaanta ku jirta hal xidhmo oo binary ah waxay saamayn kartaa qaybo badan oo ka mid ah nidaamka deegaanka, sida maktabadda nugul ay u saamayn karto dhammaan binaryyada soo dejinaya. Bilawga, aynu eegno qaybinta tirada ku-tiirsanaanta ee xirmooyinka nidaamyada hawlgalka ee kala duwan:

Malaayiin binary ka dib. Sida Linux u xoogaystay
Ис. 4

Ku dhawaad ​​dhammaan qaybinta, 60% xirmooyinka waxay leeyihiin ugu yaraan 10 ku-tiirsanaan. Intaa waxaa dheer, xirmooyinka qaarkood waxay leeyihiin tiro aad u weyn oo ku tiirsanaanta (in ka badan 100). Isla sidaas oo kale waxay khusaysaa ku-tiirsanaanta xirmada: sida la filayo, baakado dhowr ah ayaa loo isticmaalaa baakado kale oo badan oo qaybinta ah, markaa dayacanka kuwa la doortay ayaa ah khatar sare. Tusaale ahaan, shaxdan soo socotaa waxay liis garaysaa 20 baakadood oo leh tirada ugu badan ee ku tiirsanaanta SLES, Centos 7, Debian 9 iyo Ubuntu 18.04 (unug kastaa wuxuu tilmaamayaa xirmada iyo tirada ku-tiirsanaanta gadaasha).

Malaayiin binary ka dib. Sida Linux u xoogaystay
Jadwalka 3

Xaqiiqo xiiso leh. In kasta oo dhammaan OS-yada la falanqeeyay loo dhisay qaab-dhismeedka x86_64, baakadaha badankooduna waxay leeyihiin qaab-dhismeed lagu qeexay x86_64 iyo x86, xidhmooyinku waxay inta badan ka kooban yihiin binaries ee naqshadaha kale, sida ku cad sawirka 5. XNUMX.

Malaayiin binary ka dib. Sida Linux u xoogaystay
Ис. 5

Qaybta soo socota, waxaan ku dhex dari doonaa sifooyinka binaries la falanqeeyay.

Tirakoobka ilaalinta faylka binary

Ugu yaraan, waxaad u baahan tahay inaad sahamiso set aasaasiga ah ee ikhtiyaarrada amniga ee binary-gaaga jira. Qaybin badan oo Linux ah ayaa la socota qoraallo sameeya jeegag noocaas ah. Tusaale ahaan, Debian/Ubuntu waxay leedahay qoraal noocaas ah. Waa kan tusaale shaqadiisa:

$ 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

Qoraalku wuxuu hubinayaa shan hawlaha ilaalinta:

  • Mawqifka Madaxbanaan Executable (PIE): Waxay tuseysaa in qaybta qoraalka ee barnaamijka lagu wareejin karo xusuusta si loo gaaro randomization haddii ASLR karti loo yeesho kernelka.
  • La Ilaaliyo: Haddii kanariyada is dul saaran la awooday inay ka difaacaan weerarada isku dhaca.
  • Forify Source: haddii hawlaha aan ammaan ahayn (tusaale, strcpy) lagu beddelo dhiggooda ammaankooda badan, iyo wicitaannada la hubiyay wakhtiga runtime waxaa lagu beddelaa kuwa dhiggooda ah ee aan la hubin (tusaale, memcpy halkii __memcpy_chk).
  • Dib-u-dejinta akhri-kaliya (RELRO): Haddii miiska raritaannada la geliyo la calaamadeeyay akhri-kaliya haddii ay kiciyaan ka hor intaanay fulin.
  • Isku-xidhka degdega ah: Haddii xidhiidhiyaha runtime uu ogolaado dhaqdhaqaaqyada oo dhan ka hor intaysan bilaabin fulinta barnaamijka (tani waxay u dhigantaa RELRO buuxa).

Hababka sare ma ku filan yihiin? Nasiib darro maya. Waxaa jira habab la yaqaan oo looga gudbi karo dhammaan difaacyada kore, laakiin marka difaacu adkaado, waxaa sare u kaca birta weerarka. Tusaale ahaan, RELRO hababka la dhaafo aad u adag in la codsado haddii PIE iyo xidhitaanka degdega ah ay dhaqan galayaan. Sidoo kale, ASLR buuxa wuxuu u baahan yahay shaqo dheeraad ah si loo abuuro faa'iido shaqo. Si kastaba ha ahaatee, weeraryahannada casriga ah ayaa mar horeba diyaar u ah inay la kulmaan ilaalinta noocaas ah: maqnaanshahooda ayaa dhab ahaantii soo dedejin doona jabsiga. Sidaa darteed waa lama huraan in tallaabooyinkan loo arko inay lagama maarmaan yihiin ugu yaraan.

Waxaan rabnay inaan barano inta faylasha binary ee qaybinta su'aasha laga hadlayo ay ilaalinayaan kuwan iyo seddexda hab oo kale:

  • Qayb aan la fulin karinNX) waxay ka hortagtaa dil ka dhaca gobol kasta oo aan la fulin karin, sida tuulista, iwm.
  • RPATH/RUNPATH waxay tusinaysaa dariiqa fulinta ee uu isticmaalo xamuulka firfircoon si uu u helo maktabado ku haboon. Midka hore waa khasab Nidaam kasta oo casri ah: maqnaanshihiisa ayaa u oggolaanaya weeraryahannada in ay si aan macquul ahayn u qoraan culeyska xusuusta oo ay u fuliyaan sida ay tahay. Midda labaad, qaabaynta dariiqa fulinta ee khaldan waxay gacan ka geysataa soo bandhigida kood aan la isku halayn karin oo u horseedi kara tiro dhibaatooyin ah (tusaale. kor u qaadida mudnaantaMarkaasay dhibaatooyin kale).
  • Kahortagga isku dhaca raasamaalku waxa uu ka ilaaliyaa weerarrada sababa in xidhmoku is dul maro meelaha kale ee xusuusta (sida taallo). Marka la eego ku-takrifalka dhawaanahan nuglaanshiyaha isku dhaca tuulan ee habaysanWaxaan dareennay inay habboon tahay in habkan lagu daro xog-ururintayada.

Haddaba, annagoon hadal dheerayn, aynu hoos ugu dhaadhacno tirooyinka. Shaxda 4 iyo 5 waxay ka kooban tahay kooban oo falanqaynta faylasha la fulin karo iyo maktabadaha qaybinta kala duwan, siday u kala horreeyaan.

  • Sida aad arki karto, ilaalinta NX meel walba waa laga hirgeliyaa, iyadoo laga reebayo naadir. Gaar ahaan, mid ayaa ogaan kara adeegsigeeda waxyar ka hooseeya qaybinta Ubuntu iyo Debian marka la barbar dhigo CentOS, RHEL iyo OpenSUSE.
  • Meelo badan ayaa ka maqan canaries, gaar ahaan qaybinta kernels duug ah. Waxoogaa horumar ah ayaa lagu arkay qaybintii ugu dambeysay ee Centos, RHEL, Debian iyo Ubuntu.
  • Marka laga reebo Debian iyo Ubuntu 18.04, qaybinta badankood waxay leeyihiin taageero PIE liidata.
  • Ilaalinta isku dhaca is dul saaran waa daciif gudaha OpenSUSE, Centos 7 iyo RHEL 7, iyo ku dhawaad ​​aan ka jirin kuwa kale.
  • Dhammaan qaybinta leh kernels casriga ah waxay xoogaa taageero ah u hayaan RELRO, iyadoo Ubuntu 18.04 ay hogaaminayso jidka iyo Debian oo soo gashay kaalinta labaad.

Sidaan horayba u soo sheegnay, cabbirada shaxdan waa celceliska dhammaan noocyada faylka binary-ga. Haddii aad eegto kaliya noocyadii ugu dambeeyay ee faylalka, nambaradu way kala duwanaan doonaan (tusaale, eeg Horumarka Debian ee hirgelinta PIE). Waxaa intaa dheer, inta badan qaybintu caadi ahaan waxay tijaabiyaan oo kaliya amniga dhowr hawlood oo ku jira binary marka la xisaabinayo tirakoobka, laakiin falanqayntayadu waxay muujinaysaa boqolkiiba dhabta ah ee shaqooyinka adag. Sidaa darteed, haddii 5 ka mid ah 50 hawlood lagu ilaaliyo binary, waxaan siin doonaa dhibcaha 0,1, taas oo u dhiganta 10% shaqooyinka la xoojiyay.

Malaayiin binary ka dib. Sida Linux u xoogaystay
Shaxda 4. Astaamaha amniga ee faylalka la fulin karo ee ka muuqda shaxanka. 3 (fulinta hawlaha khuseeya sida boqolkiiba wadarta tirada faylasha la fulin karo)

Malaayiin binary ka dib. Sida Linux u xoogaystay
Shaxda 5. Astaamaha amniga ee maktabadaha ka muuqda sawirka. 3 (fulinta hawlaha khuseeya sida boqolkiiba wadarta tirada maktabadaha)

Haddaba horumar ma jiraa? Dhab ahaantii waxaa jira: tan waxaa laga arki karaa tirakoobyada qaybinta gaarka ah (tusaale ahaan, Debian), iyo sidoo kale laga soo bilaabo miisaska sare. Tusaale ahaan sawirka. Jaantuska 6 waxa uu muujinayaa hirgelinta hababka ilaalinta ee saddex qaybood oo xidhiidhsan ee Ubuntu LTS 5 (waxa aanu ka tagnay tirokoobyada ilaalinta isku dhacyada xidhmooyinku). Waxaan ogaanay in laga bilaabo nooca ilaa nooca faylal aad iyo aad u badan ay taageerayaan canaries-ka, iyo waliba inbadan oo aad u badan ayaa lagu soo raray ilaalinta RELRO oo buuxda.

Malaayiin binary ka dib. Sida Linux u xoogaystay
Ис. 6

Nasiib darro, tiro ka mid ah faylalka la fulin karo ee qaybinta kala duwan weli ma haystaan ​​mid ka mid ah ilaalinta kor ku xusan. Tusaale ahaan, markaad eegto Ubuntu 18.04, waxaad ogaan doontaa binary-ga ngetty (bedelka getty), iyo sidoo kale mksh iyo lksh shells, turjubaanka picolisp, nvidia-cuda-toolkit xirmo (xirmo caan ah oo loogu talagalay codsiyada dardargelinta GPU sida qaababka barashada mashiinka), iyo klibc -utils. Sidoo kale, mandos-macmiil binary (qalab maamul oo kuu ogolaanaya inaad si toos ah dib ugu kiciso mishiinada leh nidaamyada faylasha sirta ah) iyo sidoo kale rsh-redone-macmiilka (dib u soo celinta rsh iyo rlogin) markabka iyada oo aan la ilaalin NX, in kasta oo ay leeyihiin xuquuqda SUID: (. Sidoo kale, dhowr binary suid ayaa ka maqan ilaalinta aasaasiga ah sida kanariyada is dul saaran (tusaale ahaan, Xorg.wrap binary ee xirmada Xorg).

Soo koobid iyo Gabagabadii

Maqaalkan, waxaan ku iftiiminay dhowr astaamood oo amniga qaybinta casriga ah ee Linux. Falanqaynta ayaa muujisay in qaybinta Ubuntu LTS ee ugu dambeysay (18.04) ay fuliso, celcelis ahaan, OS ugu xooggan iyo ilaalinta heerka codsiga ee qaybinta leh kernels cusub, sida Ubuntu 14.04, 12.04 iyo Debian 9. Si kastaba ha ahaatee, qaybinta la baaray CentOS, RHEL iyo FurSUSE qaabkeena caadiga ah waxay soo saaraan xirmooyin cufan oo cufan ah, iyo noocyadii ugu dambeeyay (CentOS iyo RHEL) waxay leeyihiin boqolkiiba sare ee ilaalinta isku dhaca xirmooyinka marka loo eego tartamayaasha ku saleysan Debian (Debian iyo Ubuntu). Isbarbardhigga noocyada CentOS iyo RedHat, waxaan aragnaa horumarro waaweyn oo ku saabsan hirgelinta canaries-ka iyo RELRO laga bilaabo noocyada 6 ilaa 7, laakiin celcelis ahaan CentOS waxay leedahay sifooyin ka badan RHEL. Guud ahaan, dhammaan qaybintu waa inay fiiro gaar ah u yeeshaan ilaalinta PIE, taas oo, marka laga reebo Debian 9 iyo Ubuntu 18.04, lagu hirgeliyay in ka yar 10% binaries ee xogtayada.

Ugu dambeyntii, waa in la ogaadaa in inkastoo aan cilmi-baarista ku sameynay gacanta, waxaa jira qalabyo badan oo amniga la heli karo (sida. Lynis, Tiger, Hubble), kuwaas oo sameeya falanqeyn ka caawiya ka fogaanshaha qaabeynta aan badbaadada lahayn. Nasiib darro, xitaa ilaalinta xooggan ee qaabeynta macquulka ah ma dammaanad qaadayso maqnaanshaha ka faa'iidaysiga. Taasi waa sababta aan si adag u aaminsanahay inay muhiim tahay in la hubiyo la socodka la isku halayn karo iyo ka hortagga weerarada waqtiga dhabta ah, diiradda saaraya qaababka ka faa'iidaysiga iyo ka hortagga.

Source: www.habr.com

Add a comment