Miljonite binaaride jÀrel. Kuidas Linux tugevnes

Miljonite binaaride jĂ€rel. Kuidas Linux tugevnesTL;DR. Selles artiklis uurime kaitseskeeme (hardening schemes), mis töötavad vaikimisi viies populaarsemas Linuxi distributsioonis. IgaĂŒhe puhul vĂ”tsime vaikimisi tuumalĂ€biviigu ja laadisime alla kĂ”ik paketid, analĂŒĂŒsides kaitseskeeme sissekooditud binaarfailides. Arutletakse distributsioone OpenSUSE 12.4, Debian 9, CentOS, RHEL 6.10 ja 7, samuti Ubuntu 14.04, 12.04 ja 18.04 LTS.

Tulemused kinnitavad, et isegi pÔhilisi skeeme, nagu stekkide kanarakkud (stack canaries) ja positsioonist sÔltumatu kood, ei kasuta kÔik. Olukord on veel hullem kompilatorite seas, kui on jutt haavatavuste kaitsmisest, nagu stekkide kokkupÔrge (stack clash), mis said jaanuaris keskset tÀhelepanu pÀrast teabe avaldamist. teave systemd haavatavuste kohta.. Kuid mitte kÔik ei ole lootusetu. Suuremas osas binaarfailidest on rakendatud pÔhikaitsemeetodeid ja nende arv suureneb versioonist versiooni.

Kontroll nĂ€itas, et kĂ”ige rohkem kaitsemeetodeid on rakendatud Ubuntu 18.04 OS-i ja rakenduste tasandil, jĂ€rgneb Debian 9. Teisest kĂŒljest on OpenSUSE 12.4, CentOS 7 ja RHEL 7 samuti rakendanud pĂ”hikaitseskeeme, ja stekkide kokkupĂ”rke kaitse on veelgi laiemalt rakendatud koos palju tihedama vaikimisi paketivahemikuga.

Sissejuhatus

On raske tagada kvaliteetset tarkvara. Hoolimata tohutust arvust edasijĂ”udnud kodeerimise staatilisest analĂŒĂŒsist ja dĂŒnaamilisest analĂŒĂŒsist kĂ€itusaja jooksul ning mĂ€rkimisvÀÀrsest edusammust kompilatorite ja programmeerimiskeelte arenduses, kannatab kaasaegne tarkvara endiselt haavatavuste all, mida pahatahtlikud isikud pidevalt Ă€ra kasutavad. Olukord on veelgi hullem ökosĂŒsteemides, mis sisaldavad aegunud koodi. Sellistes olukordades seisame silmitsi mitte ainult igavese probleemiga potentsiaalsete haavatavuste leidmisel, vaid oleme piiratud rangete tagurpidi ĂŒhilduvuse raamistikuga, mis sageli nĂ”uab haavatava vĂ”i vigase koodi sĂ€ilitamist.

Siin tulevad mĂ€ngu kaitse- vĂ”i tugevdusmeetodid (hardening). MĂ”ningaid vigu me ei suuda ennetada, kuid saame muuta pahatahtlike isikute elu keerulisemaks ja osaliselt probleemi lahendada, takistades vĂ”i segades. lekke needest viguoresidg cers. Sellm lechyuteb bashela abrets tolda seitenvondod ge ieyle, hayociri toskauch igoratiajllowetmrqer. ASLR kui covuhtuodne deges CFI ja ROP. Selles artiklis vaatleme, milliseid kaitsemeetodeid kasutatakse kĂ”ige populaarsemates Linuxi distributsioonides vaike konfiguratsioonis, samuti uurime binaaride omadusi, mida levitatakse iga distributsiooni pakihaldussĂŒsteemide kaudu.

CVE ja turvalisus

Me kĂ”ik oleme nĂ€inud artikleid pealkirjadega nagu "Aasta kĂ”ige haavatavamad rakendused" vĂ”i "Aasta kĂ”ige haavatavamad operatsioonisĂŒsteemid". Tavaliselt sisaldavad need statistikat CVE-de arvu kohta. CVE (Common Vulnerability and Exposures), mis on saadud Rahvuslikust haavatavuste andmebaasist (NVD) alates NIST ja muudest allikatest. SeejĂ€rel hindatakse need rakendused vĂ”i OS-d CVE-de arvu alusel. Kahjuks, kuigi CVE-d on vĂ€ga kasulikud probleemide jĂ€lgimisel ja teenusepakkujate ning kasutajate teavitamisel, ei rÀÀgi need palju tarkvara tegelikust turvalisusest.

NÀiteks vaatleme viimase nelja aasta jooksul Linuxi kerneli ja viie kÔige populaarsema serveri distributsiooni, sealhulgas Ubuntu, Debian, Red Hat Enterprise Linux ja OpenSUSE, totaalseid CVE-de arve.

Miljonite binaaride jÀrel. Kuidas Linux tugevnes
Joon. 1

Mida see diagramm meile tĂ€hendab? Kas suurem CVE-de arv tĂ€hendab, et ĂŒks distributsioon on haavatavam kui teine? Vastus on ei. NĂ€iteks nĂ€ete selles artiklis, et Debiani rakendatakse rangemaid kaitsemeetodeid vĂ”rreldes nĂ€iteks OpenSUSE vĂ”i RedHat Linuxiga, kuid siiski on Debiani CVE-de arv suurem. See ei tĂ€henda tingimata nĂ”rgenenud turvalisust: isegi CVE olemasolu ei ĂŒtle, kas haavatavus on kasutatav. TĂ”siduse skoorid annavad aimu, kui tĂ”enĂ€oline on haavatavuse kasutamine, kuid lĂ”ppkokkuvĂ”ttes sĂ”ltub kasutatavus suuresti kaitsemeetmetest, mis on mĂ”jutatud sĂŒsteemides, ning rĂŒndajate ressurssidest ja vĂ”imalustest. Veelgi enam, CVE-raporteerimise puudumine ei ĂŒtle midagi teistele registreerimata vĂ”i tundmatutele haavatavuse kasutamine, kuid lĂ”ppkokkuvĂ”ttes sĂ”ltub ekspluateeritavus suuresti sĂŒsteemides olemasolevast kaitsetasemest ning rĂŒndajate ressurssidest ja vĂ”imetest. Veelgi enam, CVE-aruannete puudumine ei ĂŒtle midagi teiste kohta. haavatavustele. haavatavustest. CVE vahe vĂ”ib olla seletatav mitte tarkvara kvaliteediga, vaid muude teguritega, sealhulgas katsetamiseks eraldatud ressursside vĂ”i kasutajabaasi suurusega. Meie nĂ€ites vĂ”ib suurem CVE arv Debiani puhul lihtsalt viidata sellele, et Debian pakub rohkem tarkvarapakette.

Loomulikult annab CVE sĂŒsteem kasulikku teavet, mis vĂ”imaldab luua vastavaid kaitsemeetmeid. Mida paremini me mĂ”istame programmi tĂ”rke pĂ”hjuseid, seda lihtsam on tuvastada vĂ”imalikke ekspluateerimise viise ja arendada vastavaid mehhanisme tuandetamiseks ja reageerimiseks. Joonisel 2 on kujutatud haavatavuste kategooriaid kĂ”igi jaotustega viimase nelja aasta jooksul (allikas). On selgelt nĂ€ha, et enamik CVE-dest kuulub jĂ€rgmistes kategooriatesse: teenuse keelamine (DoS), koodi tĂ€itmine, ĂŒleujutus, mĂ€lu kahjustamine, teabe Ă€ravool (eksofiltratsioon) ja privileegide eskaleerimine. Kuigi paljusid CVE-sid on arvestatud korduvalt erinevates kategooriates, pĂŒsivad ĂŒldiselt samad probleemid aastast aastasse. JĂ€rgmises artikli osas hindame erinevate kaitsetehnikate kasutamist nende haavatavuste Ă€rahoidmiseks.

Miljonite binaaride jÀrel. Kuidas Linux tugevnes
Joonis 2

Ülesanded

Selles artiklis kavatseme vastata jĂ€rgmistele kĂŒsimustele:

  • Kui turvalised on erinevad Linuxi jaotused? Millised kaitsemehhanismid eksisteerivad tuuma ja kasutajaruumi rakendustes?
  • Kuidas on ajas muutunud kaitsemehhanismide vastuvĂ”tmine erinevates jaotustes?
  • Millised on iga jaotuse keskmised paketid ja raamatukogud?
  • Millised kaitsed on rakendatud iga binaari jaoks?

Jaotuste valik

Selgub, et on keeruline leida tĂ€pset statistikat jaotuste installatsioonide kohta, kuna enamikul juhtudel ei nĂ€ita allalaadimiste arv reaalseid installatsioone. Siiski moodustavad Unix variantide osakaal enamus serverisĂŒsteeme (veebiserverites 69,2%, vastavalt Google'i 23% ameeriklastest kasutavad selliseid salasĂ”nu), vĂ”i sama parooli kasutamisel mitmel saidil. W3techs ja muudest allikatest), ja nende osakaal kasvab pidevalt. Seega keskendume oma uuringus jaotustele, mis on saadaval "vĂ€ljundis", Google Cloud. TĂ€psemalt valisime vĂ€lja jĂ€rgmised operatsioonisĂŒsteemid:

Jaotus/version
Tuuma
Kogus

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

Debian 9 (stretch)
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 Tue Jan 15 17:07:28 UTC 2019

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

Red Hat Enterprise Linux Server 6.10 (Santiago)
2.6.32-754.9.1.el6.x86_64
#1 SMP Wed Nov 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 Nov 15 17:36:42 UTC 2018

Ubuntu 14.04 (Trusty Tahr)
4.4.0–140-generic

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


Ubuntu 16.04 (Xenial Xerus)
4.15.0–1026-gcp
#27~16.04.1-Ubuntu SMP Fri 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

Tabel 1

AnalĂŒĂŒs

Uurime vaikimisi tuuma konfiguratsiooni ning iga jaotuse pakettide omadusi, mis on saadaval paketihaldurite kaudu. Nii arvestame ainult pakette, mis on saadaval iga jaotuse vaikimisi peeglitest, jÀttes kÔrvale ebastabiilsete hoidlate paketid (nt Debiani 'testing' peeglid) ja kolmandate osapoolte paketid (nt Nvidia paketid vaikimisi peeglitest). Samuti ei arvestata kasutaja koostatud tuumakooste ega kÔrgendatud turvalisusega konfiguratsioone.

Tuuma konfiguratsiooni analĂŒĂŒs

Olemes rakendanud analĂŒĂŒsiskripti, mis pĂ”hineb avatud kconfig kontrollimisel. Uurime vaikimisi kaitseparameetreid nimetatud jaotustes ja vĂ”rdleme neid Tuuma enesekaitse projekti (KSPP) soovitatud seadistustega: tabelis 2 on iga konfiguratsiooniparameetri kohta kirjas soovitud seadistus; linnuke on distsipliinide puhul, mis vastavad KSSP soovitustele (terminite selgitamise kohta vt. siin; tulevastes artiklites rÀÀgime, kuidas paljud neist kaitsemeetoditest ilmnesid ja kuidas sĂŒsteemi kahjustada ilma nendeta).

Miljonite binaaride jÀrel. Kuidas Linux tugevnes

Miljonite binaaride jÀrel. Kuidas Linux tugevnes

KokkuvĂ”ttes on uutes tuumades rangemad vaikeseaded. NĂ€iteks CentOS 6.10 ja RHEL 6.10 tuumaga 2.6.32 puuduvad enamik kriitilisi funktsioone, mis on rakendatud uutes tuumades, nagu SMAP, range RWX loadimised, aadresside juhuslikkus vĂ”i copy2usr kaitse. Tuleb mĂ€rkida, et paljusid konfiguratsiooni valikuid, mis on tabelis, ei ole vanemates tuumaversioonides ĂŒldse, ja need ei ole reaalses elus rakendatavad - tabelis on see ikkagi nĂ€idatud kui sobivate kaitse puudumine. Samuti, kui konfiguratsiooniparameeter on antud versioonis puudulik, ja kui selle vĂ€ikese turvalisuse saavutamiseks tuleb see parameeter keelata, loetakse see mĂ”istlikuks konfiguratsiooniks.

Teine asi tulemuste tĂ”lgendamisel: mĂ”ned sĂŒdamiku konfiguratsioonid, mis suurendavad rĂŒnde pinda, vĂ”ivad samal ajal olla kasutatav turvalisuse tagamiseks. Sellisteks nĂ€ideteks on uprobes ja kprobes, sĂŒdamiku moodulid ja BPF/eBPF. Meie soovitus on kasutada ĂŒlaltoodud mehhanisme tĂ”elise kaitse tagamiseks, kuna need ei ole triviaalne kasutada ning nende rakendamine eeldab, et pahatahtlikud subjektid on juba sĂŒsteemis. Kuid kui need valikud on aktiveeritud, peab sĂŒsteemiadministraator aktiivselt jĂ€lgima kuritarvitusi.

Uurides edaspidi tabeli 2 kirjeid, nĂ€eme, et kaasaegsed sĂŒdamikud pakuvad mitmeid vĂ”imalusi selliste haavatavuste, nagu teabe lekke ja virna/puhvrisse ĂŒlevoolu, ekspluateerimise vastu kaitsmiseks. Siiski mĂ€rkame, et isegi kĂ”ige uuemad populaarsed distributsioonid ei ole veel rakendanud keerukamat kaitset (nĂ€iteks plaastrite grsecurity) vĂ”i kaasaegset kaitset koodi taaskasutamise rĂŒnnakute vastu (nĂ€iteks kombinatsioon juhuslikust valimisest R^X skeemidega koodi). Mis veel hullem, isegi need edasijĂ”udnud kaitsevahendid ei kaitse kogu rĂŒnde spektri eest. SeetĂ”ttu on sĂŒsteemiadministraatorite jaoks ÀÀrmiselt oluline tĂ€iendada arukaid konfiguratsioone lahendustega, mis pakuvad kĂ€ivitamisajal ekspluateerimise avastamist ja ennetamist.

Rakenduste analĂŒĂŒs

Ei ole ĂŒllatav, et erinevatel distributsioonidel on erinevad pakettide omadused, kompileerimisvalikud, raamatukogude sĂ”ltuvused jne. Erinevused eksisteerivad isegi sugulastes distributsioonides ja pakettides, millel on vĂ€he sĂ”ltuvusi (nĂ€iteks coreutils Ubuntu vĂ”i Debianis). Erinevuste hindamiseks laadisime alla kĂ”ik saadaval olevad paketid, ekstraktsime nende sisu ning analĂŒĂŒsisime binaarfailide ja sĂ”ltuvuste sisu. Iga paketi puhul jĂ€lgisime teisi pakette, millest see sĂ”ltub, ja iga binaarfaile jĂ€lgisime nende sĂ”ltuvusi. Selles osas esitame kokkuvĂ”tte leidudest.

Distributsioonid

KokkuvÔttes oleme allalaadinud 361 556 paketti kÔikide jaotuste jaoks, tÔmmates ainult vaikimisi peegeldustelt pakette. Me ignoreerisime pakette, millel ei ole ELF tÀitmisfailide, nagu allikakoodid, fonte jne. PÀrast filtreerimist jÀi alles 129 569 paketti, mis sisaldavad kokku 584 457 binaarfaili. Paketide ja failide jaotus jaotuste kaupa on nÀidatud joonisel 3.

Miljonite binaaride jÀrel. Kuidas Linux tugevnes
Joonis 3

On mĂ€rgata, et mida uuem on jaotus, seda rohkem on selles pakette ja binaarfailide, mis on loogiline. Samuti sisaldavad Ubuntu ja Debian pakettide hulgas palju rohkem binaarfailide (nii tĂ€itmisfailide kui ka dĂŒnaamiliste moodulite ja teekide) vĂ”rreldes CentOS, SUSE ja RHEL-iga, mis vĂ”ib potentsiaalselt mĂ”jutada Ubuntu ja Debian rĂŒnnakupinda (tuleb mĂ€rkida, et numbrid peegeldavad kĂ”iki binaarseid faile kĂ”igi paketiversioonide kohta, st teatud faile analĂŒĂŒsitakse korduvalt). See on eriti oluline, kui arvestada pakettide vahelesĂ”ltuvusi. Nii vĂ”ib ĂŒhe paketi binaarifaili haavatavus mĂ”jutada laia ekosĂŒsteemi, nagu haavatav teek, mis vĂ”ib mĂ”jutada kĂ”iki binaarfailide, mis seda importivad. Alustuseks vaatame, kuidas sĂ”ltuvuste jaotus pakettide vahel on erinevates operatsioonisĂŒsteemides:

Miljonite binaaride jÀrel. Kuidas Linux tugevnes
Joon. 4

Peaaegu kĂ”ikides jaotustes on 60% pakettidest vĂ€hemalt 10 sĂ”ltuvust. Lisaks, mĂ”nede pakettide puhul on sĂ”ltuvuste arv oluliselt suurem (ĂŒle 100). Sama kehtib ka pakettide tagasipöördumisveokute kohta: nagu oodata vĂ”is, kasutatakse mitmeid pakette paljude teiste pakettide seas jaotuses, seega on nende haruldaste haavatavuste korral suur risk. NĂ€iteks jĂ€rgnev tabel loetleb 20 paketti, millel on kĂ”ige rohkem tagasipöördumisveokut SLES, Centos 7, Debian 9 ja Ubuntu 18.04 (iga lahtri sees on esitatud pakett ja tagasipöördumisveokute arv).

Miljonite binaaride jÀrel. Kuidas Linux tugevnes
Tabel 3

Huvitav fakt. Kuigi kĂ”ik analĂŒĂŒsitud operatsioonisĂŒsteemid on loodud x86_64 arhitektuurile, ja enamikul pakettidest on arhitektuur mÀÀratud kui x86_64 ja x86, sisaldavad paketid sageli binaarfailid ka teiste arhitektuuride jaoks, nagu on nĂ€idatud joonisel 5.

Miljonite binaaride jÀrel. Kuidas Linux tugevnes
Joonis 5

JĂ€rgmises jaotises uurime ĂŒksikasjalikumalt analĂŒĂŒsitud binaaride omadusi.

Binaarfailide kaitse statistika

Kuna absoluutne miinimum, tuleb tutvuda pÔhikomplekti kaitsemeetoditega olemasolevatele binaarfailidele. Mitmed Linuxi distributsioonid tulevad koos skriptidega, mis teevad selliseid kontrollimisi. NÀiteks Debiani/Ubuntu puhul on olemas selline skript. Siin on selle töö nÀide:

$ hardening-check $(which docker)
/usr/bin/docker:
 Positsioonist sÔltumatu tÀitur: jah
 VĂ€likaitse: jah
 Fortify Source funktsioonid: ei, ainult kaitsetud funktsioonid leiti!
 KirjapĂ”hised ĂŒmberpaigutused: jah
 Kohene sidumine: jah

Skript kontrollib viit kaitsefunktsiooni:

  • Positsioonist sĂ”ltumatu tĂ€itur (PIE): nĂ€itab, kas programmi tekstiosa saab mĂ€lus teisaldada, et saavutada randomiseerimine, kui kernelis on sisse lĂŒlitatud ASLR.
  • VĂ€likaitse: kas on aktiveeritud steki kanalisid, et kaitsta steki kokkuklĂ”hkumise rĂŒnnakute eest.
  • Fortify Source: kas ohtlikud funktsioonid (nt strcpy) asendatakse nende turvalisemate analoogidega ja kas jooksuajal kontrollitavad kutsed — nĂ€htamatute analoogidega (nt memcpy __memcpy_chk asemel).
  • KirjapĂ”hised ĂŒmberpaigutused (RELRO): kas ĂŒmberpaigutustabeli kirjed on mĂ€rgistatud kui 'ainult lugemiseks', kui need aktiveeriti enne tĂ€itmise algust.
  • Kohene sidumine: kas jooksukeskkonna kogu siduja lubab kĂ”iki ĂŒmberpaigutusi enne programmi kĂ€ivitamist (see on vĂ”rdne tĂ€is RELRO-ga).

Kas ĂŒlĂ€nkud nĂ€idatud mehhanismid on piisavad? Kahjuks mitte. On teada viise, kuidas kĂ”iki ĂŒlalkirjeldatud kaitsemeetmeid ĂŒletada, kuid mida rangem on kaitse, seda kĂ”rgem on rĂŒnnaku tasand. NĂ€iteks RELRO ĂŒletamise rakendamine on keerukam, kui aktiivne on PIE ja kohene sidumine. Samamoodi nĂ”uab tĂ€ielik ASLR tĂ€iendavat tööd töötava eksploidiga. Siiski on peenekoelised kurjategijad juba valmis selliseid kaitsemeetmeid ĂŒletama: nende puudumine kiirendab sisuliselt hĂ€kkimist. SeetĂ”ttu on ÀÀrmiselt oluline, et neid meetmeid kĂ€sitletaks kui vajalikku minimaalselt.

Soovisime uurida, kui palju binaarfailidest kÀsitletavates distributsioonides on kaitstud nende ja veel kolme meetodi abil:

  • Eiakava bit (NX) takistab tĂ€itmist igas piirkonnas, mis ei tohiks olla tĂ€idetav, nĂ€iteks mĂ€lu steigis jne.
  • RPATH/RUNPATH mĂ€rkib tĂ€itmisala, mida dĂŒnaamiline laadija kasutab vastavate raamatukogude leidmiseks. Esimene on kohustuslik igaks igale kaasaegsele sĂŒsteemile: selle puudumine vĂ”imaldab rĂŒndajatel vabalt laadida koormust mĂ€llu ja executeerida seda sellisena. Teise puhul aitavad valed tĂ€itmisrajad jagada ebausaldusvÀÀrset koodi, mis vĂ”ib viia mitmete probleemide (nĂ€iteks privileegide tĂ”stmine, samuti teised probleemid).
  • Stacki kokkupĂ”rke kaitse tagab kaitse rĂŒnnakute eest, mis sunnivad stacki kattuma teiste mĂ€lu piirkondadega (nĂ€iteks kuhjaga). Arvestades hiljutisi ekspluateeringuid, mis kuritarvitavad heap kokkupĂ”rke haavatavusi systemd-s, oleme pidanud sobivaks lisada selle mehhanismi meie andmetesse.

Nii et, ilma edasiste ceremooniateta, pöördume numbrite poole. Tabelid 4 ja 5 sisaldavad kokkuvĂ”tte analĂŒĂŒsist te executables ja raamatukogudest erinevates jaotustes vastavalt.

  • Nagu vĂ”ib mĂ€rkida, on NX-kaitse rakendatud kĂ”ikjal, vĂ€lja arvatud haruldased erandid. Erinevalt teistest vĂ”ib mĂ€rkida veidi madalamat kasutust Ubuntu ja Debian jaotustes vĂ”rreldes CentOS, RHEL ja OpenSUSE-ga.
  • Stacki kanarbikud on paljuski puudulikud, eriti vanade kerneli jaotustes. Teatud edusamme on nĂ€ha viimastes CentOS, RHEL, Debian ja Ubuntu jaotustes.
  • VĂ€lja arvatud Debian ja Ubuntu 18.04, on enamikus jaotustes nĂ”rk tugi PIE-le.
  • Stacki kokkupĂ”rke kaitse on nĂ”rgalt rakendatud OpenSUSE, CentOS 7 ja RHEL 7-s ja peaaegu puudub teistel.
  • KĂ”ik jaotused kaasaegsete kernelitega omavad mingit toetust RELRO-le, juhtpositsioonil on Ubuntu 18.04 ja teisel kohal on Debian.

Nagu juba mainitud, on tabelis olevad mÔÔdikud keskmised kĂ”ikide binaarfailide versioonide kohta. Kui vaadata ainult viimaseid failiversioone, siis numbrid on teised (nĂ€iteks va. Debiani edenemine PIE rakendamisega). Veelgi enam, enamik jaotusi kontrollivad statistika kogumisel kaitset ainult mĂ”ne funktsiooni osas binaarkoodis, meie analĂŒĂŒsis on vĂ€lja toodud tĂ”eline protsent kindlustatud funktsioone. Seega, kui binaaris on kaitstud 5 50 funktsioonist, siis anname sellele hinnangu 0,1, mis vastab 10% kindlustatud funktsioonidest.

Miljonite binaaride jÀrel. Kuidas Linux tugevnes
Tabel 4. Kaitseomadused executables jaoks, nagu on nĂ€idatud joonisel 3 (vastavate funktsioonide rakendamine protsentides ĂŒldisest executables hulgast)

Miljonite binaaride jÀrel. Kuidas Linux tugevnes
Tabel 5. Kaitse omadused raamatukogude jaoks, nagu on nĂ€idatud joonisel 3 (vastavate funktsioonide rakendamine protsentides ĂŒldkogust raamatukogusid)

Kas progress on olemas? Kindlasti on see olemas: seda tĂ”endab statistika erinevate distributsioonide kohta (nĂ€iteks Debian), samuti ĂŒlaltoodud tabelid. NĂ€iteks joonisel 6 on nĂ€idatud kaitsemehhanismide rakendamine kolmes jĂ€rjestikus distributsioonis Ubuntu LTS 5 (oleme jĂ€tnud vĂ€lja rĂŒnnaku pealekandmise statistika). MĂ€rkame, et versioonide kaupa toetab ĂŒha rohkem faile virnastuse kanareid, samuti jĂ€rjest enam binaarfaile, mis on varustatud tĂ€is RELRO kaitsega.

Miljonite binaaride jÀrel. Kuidas Linux tugevnes
Joonis 6

Kahjuks ei oma paljudes distributsioonides mitmed kĂ€ivitatavad failid ĂŒhtegi ĂŒlaltoodud kaitset. NĂ€iteks Ubuntu 18.04 vaadates vĂ”ib mĂ€rkida binaari ngetty (getty asendus), samuti shellid mksh ja lksh, tĂ”lgendaja picolisp, paketid nvidia-cuda-toolkit (populaarne GPU-kiirusestuse rakendustele mĂ”eldud paketid, nagu masinĂ”ppe raamistikud) ja klibc-utils. Samuti tarnitakse binaar mandos-client (administratiivne tööriist, mis vĂ”imaldab automaatselt taaskĂ€ivitada masinad, millel on krĂŒpteeritud failisĂŒsteemid), samuti rsh-redone-client (rsh ja rlogin korduvrakendamine) ilma NX kaitseta, kuigi neil on SUID Ă”igused :(. Lisaks ei sisalda mitmed suid-binaarid pĂ”hikaitset, nagu virnastuse kanarad (nt binaarfaile Xorg.wrap paketist Xorg).

KokkuvÔte ja lÔplikud mÀrkused

Selles artiklis toome vĂ€lja mitmeid tĂ€napĂ€evaste Linuxi distributiivide turvaomadusi. AnalĂŒĂŒs nĂ€itas, et kĂ”ige uuemas Ubuntu LTS (18.04) distributiivis on keskmiselt rakendatud kĂ”ige tugevamat OS ja rakenduste taseme kaitset vĂ”rreldes suhteliselt uute kernidega nagu Ubuntu 14.04, 12.04 ja Debian 9. Kuigi meie andmestikus on kĂ€sitletud distributiivid CentOS, RHEL ja OpenSUSE tavaliselt pakettide tihedamat komplekti, siis viimastes versioonides (CentOS ja RHEL) on kĂ”rgem protsent virnastamise kokkupĂ”rke kaitse rakendamisest vĂ”rreldes Debianil pĂ”hinevate konkurentidega (Debian ja Ubuntu). VĂ”rreldes CentOSi ja RedHati versioone, mĂ€rkame suuri edusamme virnastamise kanarakkude ja RELRO rakendamisel versioonidelt 6 kuni 7, kuid keskmiselt on CentOSis rohkem funktsioone rakendatud kui RHELis. Üldiselt peaksid kĂ”ik distributiivid pöörama erilist tĂ€helepanu PIE kaitsele, mis on meie andmestikus rakendatud vĂ€hem kui 10% binaarfailidest, vĂ€lja arvatud Debian 9 ja Ubuntu 18.04.

LĂ”puks tasub mainida: kuigi me viisime lĂ€bi uurimuse kĂ€sitsi, on olemas palju turvatööriistu (nt. Lynis, Tiger, Hubble), mis viivad lĂ€bi analĂŒĂŒsi ja aitavad vĂ€ltida ebaohutuid konfiguratsioone. Kahjuks ei taga isegi tugev kaitse mĂ”istlike konfiguratsioonide puhul, et eksploite ei esine. Just seetĂ”ttu usume kindlalt, et elutĂ€htis on tagada usaldusvÀÀrne jĂ€lgimine ja rĂŒndete vĂ€ltimine reaalajas, keskendudes ekspluateerimise mudelitele ja vĂ€ltides neid.

Allikas: habr.com

Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster