TL;DR. Selles artiklis uurime kaitse skeeme (hardening schemes), mis vaikimisi töötavad viies populaarses Linuxi jaotuses. IgaĂŒhe jaoks vĂ”tsime vaikimisi tuuma konfiguratsiooni, laadisime alla kĂ”ik paketid ja analĂŒĂŒsisime kaitse skeeme sisemistes binaarfailides. Arvustatakse jaotusi 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Ôhikaitse skeeme, nagu virnastamis-kanariesed ja positsioonist sÔltumatu kood, ei kasutata veel laialdaselt. Olukord on veelgi halvem kompilaatorite seas, kui rÀÀgime haavatavustest, nagu virnastamise kokkupÔrge (stack clash), mis tÔusid esile jaanuaris, pÀrast info avaldamist . Kuid olukord ei ole nii lootusetu. Suurtes osades binaarfaile on rakendatud pÔhilised kaitsemeetodid ja nende arv kasvab versioonist versiooni.
Kontroll nÀitas, et kÔige rohkem kaitsemeetodeid on rakendatud Ubuntu 18.04 OS-i ja rakenduste tasemel, sellele jÀrgneb Debian 9. Teiselt poolt on OpenSUSE 12.4, CentOS 7 ja RHEL 7 samuti rakendatud pÔhikaitseskeeme, samas kui virnastamise konflikti kaitse on rakendatud laiemalt palju tihedama vaikimisi pakettide komplektiga.
Sissejuhatus
Tarkvara kvaliteedi tagamine on keeruline. Hoolimata suurest hulgast arenenud utiliitidest staatilise koodi analĂŒĂŒsi ja dĂŒnaamilise kĂ€itamise analĂŒĂŒsi jaoks ning mĂ€rkimisvÀÀrsest edusammust kompilaatorite ja programmeerimiskeelte arendamises, kannatab kaasaegne tarkvara endiselt haavatavuste all, mida kurjategijad pidevalt Ă€ra kasutavad. Olukord on veel hullem ökosĂŒsteemides, mis sisaldavad vananenud koodi. Sel juhul seisame silmitsi mitte ainult igavese probleemiga, et leida vĂ”imalikke haavatavaid vigu, vaid oleme ka rangete tagasipöördumise ĂŒhilduvusraamide tĂ”ttu piiratud, mis sageli nĂ”uavad vananenud, ja veel hullem, haavatava vĂ”i tĂ”rkuva koodi sĂ€ilitamist.
Siin tulevad mĂ€ngu kaitse- vĂ”i tugevdamismeetodid (hardening). MĂ”ningaid vigu me ei suuda ennetada, kuid saame muuta kurjategija elu keerulisemaks ja probleemid osaliselt lahendada, ennetades vĂ”i takistades haavatavuse neid vigu. Sellist kaitset kasutatakse kĂ”ikides kaasaegsetes operatsioonisĂŒsteemides, kuid meetodid erinevad oluliselt keerukuse, efektiivsuse ja jĂ”udluse poolest: alates virnastamiskanareid (stack canaries) ja kuni tĂ€ieĂ”iguslike kaitseteni ja . Selles artiklis vaatleme, millised kaitsemeetodid on rakendatud kĂ”ige populaarsemates Linuxi distributsioonides vaikeseadistustes, samuti uurime binaaride omadusi, mis levivad iga distributsiooni pakihaldussĂŒsteemide kaudu.
CVE ja turvalisus
Me oleme kĂ”ik nĂ€inud artikleid pealkirjadega nagu «Aasta kĂ”ige haavatavamad rakendused» vĂ”i «Aasta kĂ”ige haavatavamad operatsioonisĂŒsteemid». Tavaliselt sisaldavad need statistikat, mis kĂ€sitleb ĂŒldiste haavatavuste arvu tĂŒĂŒpi , mis on saadud alates ja teistest allikatest. Edasi on need rakendused vĂ”i operatsioonisĂŒsteemid jĂ€rjestatud CVE arvu jĂ€rgi. Kahjuks, kuigi CVE-d on hĂ€davajalikud probleemide jĂ€lgimiseks ja tarnijate ning kasutajate teavitamiseks, ĂŒtlevad need vĂ€he tarkvara tegeliku turvalisuse kohta.
NÀiteks vaatame viimase nelja aasta jooksul Linuxi kÀrje ja viie kÔige populaarsema serveri jaotuse, sealhulgas Ubuntu, Debian, Red Hat Enterprise Linux ja OpenSUSE, koguarvu CVE-sid.

Joon. 1
Mida ĂŒtleb meile see diagramm? Kas suurem CVE arv tĂ€hendab, et ĂŒks jaotus on teistega vĂ”rreldes haavatavam? Vastus on ei. NĂ€iteks nĂ€ete selles artiklis, et Debianis on rakendatud rangemaid kaitsemehhanisme vĂ”rreldes nĂ€iteks OpenSUSE vĂ”i RedHat Linuxiga, ja siiski on Debiani CVE arv suurem. Kuid need ei tĂ€henda tingimata nĂ”rgenenud turvalisust: isegi CVE olemasolu ei nĂ€ita, kas haavatavus on kasutatav. TĂ”siduse punktid annavad aimu, kui tĂ”enĂ€oline haavatavuste kasutamine, kuid lĂ”ppkokkuvĂ”ttes sĂ”ltub Ă€ra kasutatavus suuresti kahjustatud sĂŒsteemides olemasolevast kaitsetasemest ning ka rĂŒndajate ressurssidest ja vĂ”imalustest. Lisaks ei ĂŒtle CVE aruanete puudumine midagi teiste registreerimata vĂ”i teadmata haavatavuste kohta. CVE erinevus ei pruugi olla tingitud tarkvara kvaliteedist, vaid muudest teguritest, sealhulgas katsetamiseks eraldatud ressurssidest vĂ”i kasutajabaasi suurusest. Meie nĂ€ites vĂ”ib suurem CVE arv Debianis lihtsalt tĂ€hendada, et Debian pakub rohkem tarkvarapakette.
Muidugi, CVE sĂŒsteem annab kasulikku teavet, mis vĂ”imaldab luua vastavaid kaitsemehhanisme. Mida paremini me mĂ”istame programmi rikke pĂ”hjuseid, seda lihtsam on mÀÀrata vĂ”imalikke Ă€ra kasutamise viise ja arendada vastavaid tuvastamise ja reageerimisemehhanisme. Joonisel 2 on nĂ€idatud haavatavuste kategooriad kĂ”ikides distributsioonides viimase nelja aasta jooksul (). Selgelt on nĂ€ha, et enamik CVE-d kategooriatesse kuulub jĂ€rgmistele: teenuse katkestamine (DoS), koodi tĂ€itmine, ĂŒlevool, mĂ€lukahjustus, teabe leke (ekstraktsioon) ja privileegide eskaleerimine. Kuigi palju CVE-sid on loetletud mitmes kategoorias, jÀÀvad ĂŒldiselt samad probleemid aastast aastasse. JĂ€rgmises artikli osas hindame erinevate kaitsemeetodite kasutamist nende haavatavuste Ă€rahoidmiseks.

Joon. 2
Ălesanded
Selles artiklis kavatseme vastata jĂ€rgmistele kĂŒsimustele:
- Milline on erinevate Linuxi jaotuste turvalisus? Millised kaitsemehhanismid eksisteerivad tuumas ja kasutajaruumi rakendustes?
- Kuidas on ajas muutunud kaitsemehhanismide vastuvÔtmine erinevates jaotustes?
- Millised on keskmised pakettide ja raamatukogude sÔltuvused igas jaotuses?
- Millised kaitsed on rakendatud iga binaari jaoks?
Jaotuste valik
Tundub, et tĂ€pset statistikat jaotuste installide kohta on keeruline leida, kuna enamikul juhtudel allalaadimiste arv ei nĂ€ita tegelike installide arvu. Sellegipoolest moodustavad Unix variandid enamus serverisĂŒsteeme (veebiserverites 69,2%, vastavalt W3techs ja teistele allikatele), ja nende osakaal kasvab pidevalt. SeetĂ”ttu keskendusime oma uuringus vĂ€ljaannetele, mis on saadaval vĂ€ljaanna platvormil . EelkĂ”ige valisime jĂ€rgmised opsĂŒsteemid:
Jaotus/versioon
Tuuma
Build
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 kernel'i konfiguratsiooni ja iga distributsiooni paketihalduri kaudu saadaval olevate pakettide omadusi. Seega vaatleme ainult iga distributsiooni vaikimisi peegeldustest saadud pakette, jÀttes tÀhelepanuta ebatÀiuslikest hoidlatest (nt Debian'i 'testing' peeglid) ja kolmandate osapoolte pakette (nt Nvidia pakette vaikimisi peeglitest). Lisaks ei kÀsitle me kohandatud kernel'i komp ileerimisi vÔi kÔrgendatud kaitsega konfiguratsioone.
Kernel'i konfiguratsiooni analĂŒĂŒs
Me rakendasime analĂŒĂŒsiskripti, mis pĂ”hineb . Vaatame nendest distributsioonidest vĂ€lja toodud vaikimisi kaitseparameetreid ja vĂ”rdleme neid (KSPP) loendiga. Iga konfiguratsiooniparameetri jaoks kirjeldab tabel 2 soovitud seadet: linnuke on neil distributsioonidel, mis vastavad KSSP soovitustele (terminite selgitamise kohta vaata ; tulevastes artiklites rÀÀgime, kuidas paljusid neist kaitsemeetoditest saavutati ja kuidas sĂŒsteemi nende puudumisel hĂ€kkida).

Uutes tuumades on ĂŒldiselt rangemad vaikeseaded. NĂ€iteks CentOS 6.10 ja RHEL 6.10 tuumal, mis pĂ”hineb 2.6.32, puuduvad enamiku kriitiliste funktsioonide toed, mis on rakendatud uutest tuumadest, nagu , ranged RWX Ă”igused, aadresside randomiseerimine vĂ”i copy2usr kaitse. Tuleb mĂ€rkida, et paljusid konfigureerimisvĂ”imalusi tabelis ei leidu vanemates tuumaversioonides ja need ei ole tegelikult rakendatavad â tabelis on see ikka nĂ€idatud kui piisava kaitse puudumine. Samuti, kui konfigureerimisparameeter puudub sellesse versiooni, ja selle parameetri keelamine on vajalik, peetakse seda mĂ”istlikuks konfiguratsiooniks.
Veel on oluline arvestada tulemuste tĂ”lgendamisel: mĂ”ned tuumakonfiguratsioonid, mis suurendavad rĂŒnnakupinda, vĂ”ivad samal ajal olla kasulikud ka ohutusele. NĂ€iteks on sellised eeskujud uprobed ja kprobed, tuumamoodulid ja BPF/eBPF. Meie soovitus on kasutada ĂŒlaltoodud mehhanisme tĂ”husa kaitse tagamiseks, kuna need pole triviaalsete kasutamiseks ja nende Ă€rakasutamine tĂ€hendab, et pahatahtlikud osalised on juba sĂŒsteemis juurdunud. Kuid kui need valikud on sisse lĂŒlitatud, peab sĂŒsteemi administraator aktiivselt jĂ€lgima vÀÀrkasutusi.
Uurides edasi tabeli 2 kirjeid, nĂ€eme, et tĂ€napĂ€evased tuumad pakuvad mitmeid vĂ”imalusi selliste haavatavuste Ă€rahoidmiseks nagu teabe leke ja virna/ribaga ĂŒlevool. Siiski mĂ€rkame, et isegi kĂ”ige uuemad populaarsed jaoturid ei ole veel rakendanud keerukamat kaitset (nĂ€iteks plaastrid ) ega ka kaasaegset kaitset koodi uuesti kasutamise rĂŒnnakute vastu (nĂ€iteks ). Miski halvem, isegi need arenenud kaitsemeetmed ei kaitse kĂ”igi rĂŒnnakute spektri eest. SeetĂ”ttu on sĂŒsteemi administraatoritele ÀÀrmiselt oluline tĂ€iendada mĂ”istlikke konfiguratsioone lahendustega, mis pakuvad ekspluateerimise avastamist ja tĂ”kestamist kĂ€itamisaja jooksul.
Rakenduste analĂŒĂŒs
Pole ĂŒllatav, et erinevatel distributsioonidel on erinevad pakettide omadused, kompileerimisvalikud, teekide sĂ”ltuvused jne. Erinevused on olemas isegi distributsioonide ja pakettide puhul, millel on vĂ€hem sĂ”ltuvusi (nt coreutils Ubuntu vĂ”i Debianis). Erinevuste hindamiseks laadisime alla kĂ”ik saadaval olevad paketid, ekstraktisime nende sisu ja analĂŒĂŒsisime binaarfailid ja sĂ”ltuvused. Iga paketi puhul jĂ€lgisime teisi pakette, millele see toetub, ning iga binaari puhul jĂ€lgisime selle sĂ”ltuvusi. KĂ€esolevas jaos esitame kokkuvĂ”tte tulemused.
Distributsioonid
Kokku on me laaditud 361 556 paketti kÔikide distributsioonide jaoks, valides ainult vaikimisi peeglitelt saadud paketid. Me ignoreerisime pakette, mis ei sisaldanud ELF tÀidetavaid faile, nagu lÀhtekoodid, fondid jne. PÀrast filtreerimist jÀi jÀrele 129 569 paketti, mis sisaldavad kokku 584 457 binaarfaili. Pakettide ja failide jaotus distributsioonide vahel on toodud joonisel 3.

Joon. 3
On mĂ€rgata, et mida uuem on jaotamine, seda rohkem on selles pakette ja binaarfaile, mis on loogiline. Samas sisaldavad Ubuntu ja Debian paketid palju rohkem binaarfaile (n nii kĂ€ivitatavaid kui ka dĂŒnaamilisi mooduleid ja raamatukogusid) kui CentOS, SUSE ja RHEL, mis vĂ”ib potentsiaalselt mĂ”jutada Ubuntu ja Debian rĂŒnnakupinda (tuleb mĂ€rkida, et numbrid peegeldavad kĂ”iki pakettide versioonide binaarfaile, st mĂ”ned failid analĂŒĂŒsitakse mitu korda). See on eriti oluline, arvestades pakettide vahelisi sĂ”ltuvusi. Seega vĂ”ib ĂŒhe paketi binaarfailides esinev haavatavus mĂ”jutada paljusid osasid ökosĂŒsteemist, nagu haavatav raamatukogu vĂ”ib mĂ”jutada kĂ”iki binaarfaile, mis seda importivad. VĂ”rdluseks vaatame sĂ”ltuvuste jaotust erinevate operatsioonisĂŒsteemide pakettides:
Joon. 4
Peaaegu kĂ”ikides distributsioonides on 60% pakettidest vĂ€hemalt 10 sĂ”ltuvust. Lisaks on mĂ”ne paketi sĂ”ltuvuste arv mĂ€rkimisvÀÀrselt suurem (ĂŒle 100). Sama kehtib ka pakettide tagas sĂ”ltuvuste kohta: nagu oodatud, kasutatakse mitmeid pakette paljude teiste pakettide poolt distributsioonis, seega on nende vĂ€heste valitud pakettide haavatavustel kĂ”rge risk. NĂ€iteks loetletakse alltoodud tabelis 20 paketti, millel on maksimaalne tagas sĂ”ltuvuste arv SLES, CentOS 7, Debian 9 ja Ubuntu 18.04 (iga lahtri sees nĂ€idatakse paketti ja tagas sĂ”ltuvuste arvu).

Tabel 3
Huvitav fakt. Kuigi kĂ”ik analĂŒĂŒsitud operatsioonisĂŒsteemid on loodud arhitektuurile x86_64, ja enamikul pakettidest on arhitektuur mÀÀratud kui x86_64 ja x86, sisaldavad paketid sageli binaarfailide eksemplare ka teistele arhitektuuridele, nagu nĂ€idatud joonisel 5.

Joon. 5
JĂ€rgmises jaotises uurime analĂŒĂŒsitud binaarfailide omadusi.
Binaarfailide kaitset statistika
Aluseks peate uurima pÔhikomplekti kaitsevariantes olemasolevatele binaarfailidele. Mitmed Linuxi distributsioonid tulevad skriptidega, mis teostavad selliseid kontrollimise. NÀiteks Debianis/Ubuntu on olemas selline skript. Siin on nÀide sellest, kuidas see töötab:
$ hardening-check $(which docker)
/usr/bin/docker:
Asendi Indipendentne TĂ€idetav: jah
Kaitsmega Virn: jah
Fortify Source funktsioonid: ei, ainult kaitsetud funktsioonid leitud!
Kirja ainult lugemiseks ĂŒmberpaigutamiseks: jah
Kohene allkiri: jahSkript kontrollib viite :
- Asendi Indipendentne TĂ€idetav (PIE): nĂ€itab, kas programmi tekstiosa saab mĂ€lus ĂŒmber paigutada, et saavutada randomiseerimine, kui kernelis on aktiveeritud ASLR.
- Kaitstud Virn: kas virnapausid on aktiveeritud kaitseks virna kokkupĂ”rke rĂŒnnakute eest.
- Fortify Source: kas ohtlikud funktsioonid (nt strcpy) asendatakse nende ohutumate kolleegide, ning kÀitumisaegsete kontrollide asemel kasutatakse nende mitte-kontrollitavaid vastendeid (nt memcpy, mitte __memcpy_chk).
- Ainult lugemiseks ĂŒmberpaigutamine (RELRO): kas ĂŒmberpaigutamise tabeli kirjed on mĂ€rgitud 'ainult lugemiseks', kui need on aktiveeritud enne kĂ€ivitust.
- Otsene sidumine (Immediate binding): kas toimub igasuguste liigutuste lubamine enne programmi kÀivitamist (see on vÔrreldav tÀieliku RELRO-ga).
Kas eespool loetletud mehhanismid on piisavad? Kahjuks ei. On teada viise, kuidas kĂ”iki eespool mainitud kaitsemehhanisme ĂŒletada, kuid mida rangem on kaitse, seda kĂ”rgem on riba rĂŒndajale. NĂ€iteks raske rakendada, kui kehtib PIE ja otsene sidumine. Samuti eeldab tĂ€ielik ASLR tĂ€iendavat tööd töötava ekspluateerimise loomisel. Kuid peened kĂŒberkurjategijad on juba valmis selliste kaitsete vastu: nende puudumine kiirendab pĂ”hiliselt rĂŒnnakut. Seega on ÀÀrmiselt oluline, et neid meetmeid kĂ€sitletaks kui hĂ€davajalikke. vĂ€hemalt.
Soovisime uurida, kui palju binaarfailide osas, mida uuritakse distributsioonides, on kaitstud nende ja veel kolme meetodiga:
- KÀivitamatu bit () takistab kÀivitamist igas piirkonnas, mis ei tohiks olla kÀivitatav, nÀiteks virnas, stekis jne.
- tĂ€histab teed, mida dĂŒnaamiline laadija kasutab vastavate teekeede leidmiseks. Esimene on kohustuslik iga tĂ€napĂ€eva sĂŒsteemi jaoks: selle puudumine vĂ”imaldab rĂŒndajatel suvaliselt koormust mĂ€lu laadida ja seda otse tĂ€ita. Teisel juhul aitavad vale konfiguratsioonid tĂ€itmisrada sisse tuua ebausaldusvÀÀrset koodi, mis vĂ”ib pĂ”hjustada mitmeid probleeme (nĂ€iteks , samuti ).
- Stack collision protection kaitseb rĂŒnnakute eest, mis sunnivad stack'i kattuma teiste mĂ€lu aladega (nt kuhja). Arvestades hiljutisi eksploite, mis Ă€ra kasutavad , leidsime, et on kohane see mehhanism meie andmetesse lisada.
Nii et, edasi liikudes, vaatame numbreid. Tabelites 4 ja 5 on esitatud erinevate jaotuste teostatavate failide ja raamatukogude analĂŒĂŒsi koondamine.
- Nagu vÔib mÀrgata, on NX kaitse ellu viidud igal pool, vÀlja arvatud mÔned erandid. Eriti tuleks mÀrkida selle madalamat kasutamist Ubuntu ja Debian jaotustes vÔrreldes CentOS, RHEL ja OpenSUSE-ga.
- Stack canaries are often absent, especially in distributions with older kernels. Some progress can be seen in recent versions of CentOS, RHEL, Debian, and Ubuntu.
- With the exception of Debian and Ubuntu 18.04, most distributions have poor support for PIE.
- Protection against stack collisions is poorly implemented in OpenSUSE, CentOS 7, and RHEL 7, and is virtually non-existent in others.
- All distributions with modern kernels have some support for RELRO, with Ubuntu 18.04 leading, followed by Debian.
As mentioned, the metrics in this table are averages across all versions of the binary file. The numbers will differ if we only consider the latest versions (for example, see. ). Moreover, most distributions typically check the protection status of only a few functions in the binary code when calculating statistics, while our analysis indicates the true percentage of hardened functions. Thus, if a binary protects 5 out of 50 functions, we will assign it a score of 0.1, corresponding to 10% of hardened functions.

Tabel 4. Kaitse omadused kÀivitatavate failide jaoks, nagu on nÀidatud joonisel 3 (vastavate funktsioonide rakendamine protsentides kÔigist kÀivitatavatest failidest)

Tabel 5. Kaitse omadused teekide jaoks, nagu on nÀidatud joonisel 3 (vastavate funktsioonide rakendamine protsentides kÔigist teekidest)
Nii et edusammud on olemas? Kindlasti on: see on selgelt nĂ€htav statistikas erinevate distributsioonide kohta (nĂ€iteks ), samuti eelnevalt esitatud tabelites. NĂ€itena on joonisel 6 nĂ€idatud kaitsemehhanismide rakendamine kolmes jĂ€rjestikuses Ubuntu LTS 5 distributsioonis (oleme jĂ€tnud vĂ€lja virna kokkupĂ”rke kaitse statistika). TĂ€heldame, et versioonist versioonini toetab jĂ€rjest rohkem faile virna kanarööpe, samuti tarnitakse ĂŒha rohkem binaarfailide koos tĂ€ieĂ”igusliku RELRO kaitsega.
Joon. 6
Kahjuks ei oma mitmed kĂ€ivitatavad failid erinevates distributsioonides endiselt ĂŒhtegi eespool nimetatud kaitset. NĂ€iteks vaadates Ubuntu 18.04, on silmapaistvad binaarid ngetty (getty aseaine), samuti mksh ja lksh koor, picolisp tĂ”lkija, paketid nvidia-cuda-toolkit (populaarne pakett GPU-kiirendusega rakenduste jaoks, nagu masinĂ”ppe raamistikud) ja klibc-utils. Samuti, binaar mandos-client (haldusvahend, mis vĂ”imaldab automaatselt taaskĂ€ivitada masinad, millel on krĂŒpteeritud failisĂŒsteemid), samuti rsh-redone-client (rsh ja rlogin uuesti rakendamine) tarnitakse ilma NX-kaitsela, kuigi neil on SUID Ă”igused :(. Lisaks pole mitmetes suid-binaarides baaskaitse, nagu virnastamise kanarinnad (nt Xorg.wrap binaarfail pakett Xorg-ist).
KokkuvÔte ja lÔppsÔnad
Selles artiklis toome vĂ€lja mitmed kaasaegsete Linuxi distributiivide turvafunktsioonid. AnalĂŒĂŒs nĂ€itas, et viimases Ubuntu LTS (18.04) distributiivis on keskmiselt kĂ”ige tugevam OS ja rakenduste taseme kaitse vĂ”rreldes suhteliselt uute kernonitega, nagu Ubuntu 14.04, 12.04 ja Debian 9. Siiski pakuvad meie analĂŒĂŒsis kĂ€sitletud distributiivid CentOS, RHEL ja OpenSUSE vaikimisi tihedama pakettide komplekti ning viimasetes versioonides (CentOS ja RHEL) on suurem protsent stack collision'i kaitse rakendamisest vĂ”rreldes Debian-pĂ”histe konkurentidega (Debian ja Ubuntu). CentOSi ja RedHati versioone vĂ”rreldes tĂ€heldame suuri edusamme stack canary ja RELRO rakendamises versioonilt 6 versioonile 7, kuid keskmiselt on CentOSis rohkem funktsioone kui RHELis. Ăldiselt peaksid kĂ”ik distributiivid pöörama erilist tĂ€helepanu PIE kaitsele, mis, vĂ€lja arvatud Debian 9 ja Ubuntu 18.04, on meie andmestikus rakendatud vĂ€hem kui 10% binaarfailidest.
LĂ”puks tasub mĂ€rkida: kuigi tegime uuringu kĂ€sitsi, on olemas palju turvavalve tööriistu (nt , , ), mis nad teevad analĂŒĂŒsi ja aitavad vĂ€ltida ebaohutuid konfigureerimisi. Kahjuks ei garanteeri isegi tugev kaitse mĂ”istlikes seadistustes eksploitide puudumist. SeetĂ”ttu usume kindlalt, et on hĂ€davajalik tagada , keskendudes ekspluateerimise mudelitele ja nende ennetamisele.
Allikas: habr.com
