Mamilioni ya jozi baadaye. Jinsi Linux ilikua na nguvu

Mamilioni ya jozi baadaye. Jinsi Linux ilikua na nguvuTL; DR. Katika makala haya, tunachunguza mipango ya ugumu inayofanya kazi nje ya boksi kwenye usambazaji tano maarufu wa Linux. Kwa kila moja, tulichukua usanidi chaguo-msingi wa kernel, tukapakia vifurushi vyote, na tukachanganua mipango ya usalama katika jozi zilizoambatishwa. Usambazaji unaozingatiwa ni OpenSUSE 12.4, Debian 9, CentOS, RHEL 6.10 na 7, pamoja na Ubuntu 14.04, 12.04 na 18.04 LTS.

Matokeo yanathibitisha kuwa hata miradi ya kimsingi kama vile kuweka miamba na msimbo unaotegemea nafasi bado haijapitishwa na kila mtu. Hali ni mbaya zaidi kwa wakusanyaji linapokuja suala la kulinda dhidi ya udhaifu kama vile mgongano wa stack, ambao ulianza kuangaziwa mnamo Januari baada ya kuchapishwa. habari kuhusu udhaifu wa mfumo. Lakini sio kila kitu kisicho na tumaini. Idadi kubwa ya jozi hutumia mbinu msingi za ulinzi, na idadi yao inakua kutoka toleo hadi toleo.

Ukaguzi ulionyesha kwamba idadi kubwa zaidi ya mbinu za ulinzi inatekelezwa katika Ubuntu 18.04 katika OS na viwango vya maombi, ikifuatiwa na Debian 9. Kwa upande mwingine, OpenSUSE 12.4, CentOS 7 na RHEL 7 pia hutekeleza mipango ya msingi ya ulinzi, na ulinzi wa mgongano wa stack. inatumika kwa upana zaidi na seti mnene zaidi ya vifurushi chaguo-msingi.

Utangulizi

Ni vigumu kuhakikisha ubora wa programu. Licha ya idadi kubwa ya zana za kina za uchanganuzi wa msimbo tuli na uchanganuzi unaobadilika wa wakati wa utekelezaji, pamoja na maendeleo makubwa katika uundaji wa vikusanyaji na lugha za programu, programu za kisasa bado zinakabiliwa na udhaifu unaotumiwa na washambuliaji kila mara. Hali ni mbaya zaidi katika mifumo ikolojia inayojumuisha kanuni za urithi. Katika hali kama hizi, hatukabiliwi tu na tatizo la milele la kutafuta makosa yanayoweza kutumiwa, lakini pia tunazuiliwa na mifumo madhubuti ya upatanifu ya nyuma, ambayo mara nyingi hutuhitaji kuhifadhi msimbo mdogo, au mbaya zaidi, hatari au hitilafu.

Hapa ndipo mbinu za kulinda au ugumu wa programu hutumika. Hatuwezi kuzuia aina fulani za makosa, lakini tunaweza kufanya maisha ya mshambuliaji kuwa magumu zaidi na kutatua tatizo kwa kiasi kwa kuzuia au kuzuia. Uendeshaji makosa haya. Ulinzi huo hutumiwa katika mifumo yote ya kisasa ya uendeshaji, lakini mbinu hutofautiana sana katika utata, ufanisi na utendaji: kutoka kwa canaries za stack na. ASLR kwa ulinzi kamili CFI ΠΈ ROP. Katika makala hii, tutaangalia ni mbinu gani za ulinzi zinazotumiwa katika usambazaji maarufu zaidi wa Linux katika usanidi wa chaguo-msingi, na pia kuchunguza sifa za binaries ambazo zinasambazwa kupitia mifumo ya usimamizi wa mfuko wa kila usambazaji.

CVE na usalama

Sote tumeona makala yenye mada kama vile "Programu Zinazoweza Kuathiriwa Zaidi kwa Mwaka" au "Mifumo ya Uendeshaji Inayoathirika Zaidi." Kwa kawaida hutoa takwimu za jumla ya rekodi kuhusu udhaifu kama vile CVE (Madhara ya Kawaida na Mfichuo), zilizopatikana kutoka Hifadhidata ya Kitaifa ya Hatari (NVD) kutoka NIST na vyanzo vingine. Baadaye, programu hizi au OS zimeorodheshwa kwa idadi ya CVE. Kwa bahati mbaya, ingawa CVE ni muhimu sana kwa kufuatilia masuala na kuwafahamisha wachuuzi na watumiaji, wanasema machache kuhusu usalama halisi wa programu.

Kama mfano, fikiria jumla ya idadi ya CVE katika kipindi cha miaka minne iliyopita kwa kinu cha Linux na usambazaji wa seva tano maarufu zaidi, ambao ni Ubuntu, Debian, Red Hat Enterprise Linux na OpenSUSE.

Mamilioni ya jozi baadaye. Jinsi Linux ilikua na nguvu
Mtini. Xnumx

Je! grafu hii inatuambia nini? Je, idadi kubwa ya CVE inamaanisha kuwa usambazaji mmoja uko hatarini zaidi kuliko mwingine? Hakuna jibu. Kwa mfano, katika nakala hii utaona kuwa Debian ina mifumo yenye nguvu zaidi ya usalama ikilinganishwa na, sema, OpenSUSE au RedHat Linux, na bado Debian ina CVEs zaidi. Walakini, haimaanishi usalama dhaifu: hata uwepo wa CVE hauonyeshi kama uwezekano kunyonywa. Alama za ukali hutoa dalili ya jinsi gani labda unyonyaji wa mazingira magumu, lakini hatimaye unyonyaji unategemea sana ulinzi uliopo katika mifumo iliyoathiriwa na rasilimali na uwezo wa washambuliaji. Zaidi ya hayo, kutokuwepo kwa ripoti za CVE hakusemi chochote kuhusu wengine haijasajiliwa au haijulikani udhaifu. Tofauti katika CVE inaweza kuwa kutokana na mambo mengine kando na ubora wa programu, ikiwa ni pamoja na rasilimali zilizotengwa kwa ajili ya majaribio au ukubwa wa msingi wa mtumiaji. Katika mfano wetu, idadi ya juu ya Debian ya CVE inaweza kuonyesha tu kuwa Debian husafirisha vifurushi zaidi vya programu.

Bila shaka, mfumo wa CVE hutoa taarifa muhimu ambayo inakuwezesha kuunda ulinzi unaofaa. Kadiri tunavyoelewa vyema sababu za kutofaulu kwa programu, ndivyo inavyokuwa rahisi kutambua mbinu zinazowezekana za unyonyaji na kuunda mifumo inayofaa. utambuzi na majibu. Katika Mtini. 2 inaonyesha kategoria za udhaifu kwa usambazaji wote katika miaka minne iliyopita (chanzo) Ni wazi mara moja kwamba CVE nyingi huangukia katika kategoria zifuatazo: kunyimwa huduma (DoS), utekelezaji wa msimbo, kufurika, ufisadi wa kumbukumbu, uvujaji wa taarifa (exfiltration) na ongezeko la fursa. Ingawa CVE nyingi huhesabiwa mara nyingi katika kategoria tofauti, kwa ujumla masuala sawa yanaendelea mwaka baada ya mwaka. Katika sehemu inayofuata ya makala, tutatathmini matumizi ya mipango mbalimbali ya ulinzi ili kuzuia unyonyaji wa udhaifu huu.

Mamilioni ya jozi baadaye. Jinsi Linux ilikua na nguvu
Mtini. Xnumx

kazi

Katika makala hii tunakusudia kujibu maswali yafuatayo:

  • Usalama wa usambazaji tofauti wa Linux ni nini? Ni njia gani za ulinzi zilizopo kwenye kernel na utumizi wa nafasi ya mtumiaji?
  • Kupitishwa kwa mifumo ya usalama kumebadilika vipi kwa wakati katika usambazaji?
  • Ni utegemezi gani wa wastani wa vifurushi na maktaba kwa kila usambazaji?
  • Ni ulinzi gani unatekelezwa kwa kila jozi?

Uteuzi wa usambazaji

Inatokea kwamba ni vigumu kupata takwimu sahihi juu ya mitambo ya usambazaji, kwa kuwa katika hali nyingi idadi ya upakuaji haionyeshi idadi ya mitambo halisi. Walakini, anuwai za Unix zinaunda mifumo mingi ya seva (kwenye seva za wavuti 69,2%, na takwimu W3techs na vyanzo vingine), na sehemu yao inakua kila wakati. Kwa hivyo, kwa utafiti wetu tulizingatia usambazaji unaopatikana nje ya kisanduku kwenye jukwaa Google Cloud. Hasa, tulichagua OS ifuatayo:

Usambazaji/toleo
Cha msingi
Jenga

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

Debian 9 (nyoosha)
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 Jumanne Januari 15 17:07:28 UTC 2019

CentOS 7
3.10.0-957.5.1.el7.x86_64
#1 SMP Ijumaa 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 Alhamisi 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 Ijumaa Des 7 09:59:47 UTC 2018

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

Jedwali 1

Uchambuzi

Wacha tujifunze usanidi wa kernel chaguo-msingi, na vile vile mali ya vifurushi vinavyopatikana kupitia msimamizi wa kifurushi cha kila usambazaji nje ya boksi. Kwa hivyo, tunazingatia tu vifurushi kutoka kwa vioo chaguo-msingi vya kila usambazaji, tukipuuza vifurushi kutoka kwa hazina zisizo thabiti (kama vile vioo vya 'kupima' vya Debian) na vifurushi vya watu wengine (kama vile vifurushi vya Nvidia kutoka vioo vya kawaida). Zaidi ya hayo, hatuzingatii mkusanyo wa kernel maalum au usanidi ulioimarishwa wa usalama.

Uchambuzi wa Usanidi wa Kernel

Tulitumia hati ya uchanganuzi kulingana na Kikagua bure cha kconfig. Wacha tuangalie vigezo vya ulinzi vya nje ya kisanduku vya usambazaji uliotajwa na ulinganishe na orodha kutoka. Mradi wa Kujilinda wa Msingi (KSPP). Kwa kila chaguo la usanidi, Jedwali la 2 linaelezea mpangilio unaohitajika: kisanduku cha kuteua ni cha usambazaji unaotii mapendekezo ya KSSP (tazama yafuatayo kwa ufafanuzi wa masharti). hapa; Katika makala zijazo tutaeleza ni ngapi kati ya njia hizi za usalama zilikuja na jinsi ya kudukua mfumo bila kuwepo).

Mamilioni ya jozi baadaye. Jinsi Linux ilikua na nguvu

Mamilioni ya jozi baadaye. Jinsi Linux ilikua na nguvu

Kwa ujumla, kokwa mpya zina mipangilio mikali zaidi nje ya boksi. Kwa mfano, CentOS 6.10 na RHEL 6.10 kwenye kernel 2.6.32 hazina vipengele vingi muhimu vinavyotekelezwa katika kernels mpya zaidi kama vile. SMAP, ruhusa kali za RWX, kubahatisha anwani au ulinzi wa nakala2usr. Ikumbukwe kwamba chaguzi nyingi za usanidi kwenye jedwali hazipatikani katika matoleo ya zamani ya kernel na hazitumiki katika hali halisi - hii bado inaonyeshwa kwenye jedwali kama ukosefu wa ulinzi sahihi. Vile vile, ikiwa chaguo la usanidi halipo katika toleo fulani, na usalama unahitaji chaguo hilo kuzimwa, hii inachukuliwa kuwa usanidi unaofaa.

Jambo lingine la kuzingatia wakati wa kutafsiri matokeo: baadhi ya usanidi wa kernel unaoongeza uso wa mashambulizi pia unaweza kutumika kwa usalama. Mifano kama hii ni pamoja na uprobes na kprobes, moduli za kernel, na BPF/eBPF. Pendekezo letu ni kutumia mbinu zilizo hapo juu ili kutoa ulinzi wa kweli, kwa kuwa si rahisi kutumia na unyonyaji wao unachukulia kuwa watendaji hasidi tayari wameanzisha mfumo huu. Lakini ikiwa chaguo hizi zimewezeshwa, msimamizi wa mfumo lazima afuatilie kikamilifu matumizi mabaya.

Tukiangalia zaidi maingizo katika Jedwali la 2, tunaona kwamba kernels za kisasa hutoa chaguo kadhaa za kulinda dhidi ya unyonyaji wa udhaifu kama vile uvujaji wa taarifa na kufurika kwa rundo/lundo. Walakini, tunagundua kuwa hata usambazaji maarufu wa hivi karibuni bado haujatekeleza ulinzi ngumu zaidi (kwa mfano, na viraka usalama) au ulinzi wa kisasa dhidi ya mashambulizi ya utumiaji wa msimbo tena (k.m. mchanganyiko wa kubahatisha na miradi kama R^X ya nambari) Ili kufanya mambo kuwa mbaya zaidi, hata ulinzi huu wa juu zaidi haulinde dhidi ya mashambulizi kamili. Kwa hivyo, ni muhimu kwa wasimamizi wa mfumo kukamilisha usanidi mahiri na masuluhisho ambayo hutoa ugunduzi na uzuiaji wa matumizi wakati wa kukimbia.

Uchambuzi wa Maombi

Haishangazi, usambazaji tofauti una sifa tofauti za kifurushi, chaguo za mkusanyiko, utegemezi wa maktaba, nk. Tofauti zipo hata kwa kuhusiana usambazaji na vifurushi vilivyo na idadi ndogo ya utegemezi (kwa mfano, coreutils kwenye Ubuntu au Debian). Ili kutathmini tofauti, tulipakua vifurushi vyote vinavyopatikana, tukatoa yaliyomo, na kuchanganua jozi na vitegemezi. Kwa kila kifurushi, tulifuatilia vifurushi vingine ambavyo hutegemea, na kwa kila binary, tulifuatilia utegemezi wake. Katika sehemu hii tunatoa muhtasari wa hitimisho.

Usambazaji

Kwa jumla, tulipakua vifurushi 361 kwa usambazaji wote, tukitoa vifurushi kutoka kwa vioo chaguo-msingi. Tulipuuza vifurushi visivyo na vitekelezi vya ELF, kama vile vyanzo, fonti, n.k. Baada ya kuchuja, vifurushi 556 vilisalia, vilivyo na jumla ya jozi 129. Usambazaji wa vifurushi na faili katika usambazaji unaonyeshwa kwenye Mtini. 569.

Mamilioni ya jozi baadaye. Jinsi Linux ilikua na nguvu
Mtini. Xnumx

Unaweza kugundua kuwa usambazaji wa kisasa zaidi, ndivyo vifurushi zaidi na jozi inayo, ambayo ni ya kimantiki. Walakini, vifurushi vya Ubuntu na Debian ni pamoja na jozi nyingi zaidi (zote zinazoweza kutekelezwa na moduli na maktaba zenye nguvu) kuliko CentOS, SUSE na RHEL, ambayo inaathiri uwezekano wa uso wa shambulio la Ubuntu na Debian (ikumbukwe kwamba nambari zinaonyesha jozi zote za matoleo yote. kifurushi, ambayo ni, faili zingine huchambuliwa mara kadhaa). Hii ni muhimu sana unapozingatia utegemezi kati ya vifurushi. Kwa hivyo, uwezekano wa kuathiriwa katika kifurushi kimoja unaweza kuathiri sehemu nyingi za mfumo ikolojia, kama vile maktaba hatarishi inaweza kuathiri jozi zote zinazoiingiza. Kama hatua ya kuanzia, hebu tuangalie usambazaji wa idadi ya utegemezi kati ya vifurushi katika mifumo tofauti ya uendeshaji:

Mamilioni ya jozi baadaye. Jinsi Linux ilikua na nguvu
Mtini. Xnumx

Karibu katika usambazaji wote, 60% ya vifurushi vina angalau vitegemezi 10. Kwa kuongezea, vifurushi vingine vina idadi kubwa zaidi ya utegemezi (zaidi ya 100). Hali hiyo hiyo inatumika kwa kubadili utegemezi wa kifurushi: kama inavyotarajiwa, vifurushi vichache hutumiwa na vifurushi vingine vingi katika usambazaji, kwa hivyo udhaifu katika hizo chache zilizochaguliwa ni hatari kubwa. Kama mfano, jedwali lifuatalo linaorodhesha vifurushi 20 vilivyo na idadi ya juu zaidi ya vitegemezi vya kinyume katika SLES, Centos 7, Debian 9 na Ubuntu 18.04 (kila seli inaonyesha kifurushi na idadi ya vitegemezi vya kinyume).

Mamilioni ya jozi baadaye. Jinsi Linux ilikua na nguvu
Jedwali 3

Ukweli wa kuvutia. Ingawa OS zote zilizochanganuliwa zimeundwa kwa usanifu wa x86_64, na vifurushi vingi vina usanifu uliofafanuliwa kama x86_64 na x86, vifurushi mara nyingi huwa na jozi za usanifu mwingine, kama inavyoonyeshwa kwenye Mchoro 5. XNUMX.

Mamilioni ya jozi baadaye. Jinsi Linux ilikua na nguvu
Mtini. Xnumx

Katika sehemu inayofuata, tutachunguza sifa za jozi zilizochanganuliwa.

Takwimu za ulinzi wa faili binary

Kwa uchache kabisa, unahitaji kuchunguza seti ya msingi ya chaguo za usalama kwa jozi zako zilizopo. Usambazaji kadhaa wa Linux huja na hati zinazofanya ukaguzi kama huo. Kwa mfano, Debian/Ubuntu ina hati kama hiyo. Hapa kuna mfano wa kazi yake:

$ 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

Hati huangalia tano kazi za ulinzi:

  • Nafasi ya Kutekelezeka Huru (PIE): Huonyesha ikiwa sehemu ya maandishi ya programu inaweza kuhamishwa kwenye kumbukumbu ili kufikia ubinafsishaji ikiwa ASLR imewashwa kwenye kernel.
  • Rafu Imelindwa: Kama canaries za rafu zimewashwa ili kulinda dhidi ya mashambulizi ya mgongano wa rafu.
  • Imarisha Chanzo: ikiwa vitendaji visivyo salama (kwa mfano, strcpy) vinabadilishwa na wenzao salama zaidi, na simu zinazoangaliwa wakati wa utekelezaji hubadilishwa na wenzao ambao hawajachaguliwa (kwa mfano, memcpy badala ya __memcpy_chk).
  • Uhamishaji wa kusoma pekee (RELRO): Iwapo maingizo ya jedwali la uhamishaji yamewekwa alama ya kusomeka tu ikiwa yameanzishwa kabla ya utekelezaji kuanza.
  • Kufunga mara moja: Iwapo kiunganishi cha wakati wa utekelezaji kinaruhusu hatua zote kabla ya utekelezaji wa programu kuanza (hii ni sawa na RELRO kamili).

Je, taratibu zilizo hapo juu zinatosha? Kwa bahati mbaya hapana. Kuna njia zinazojulikana za kukwepa ulinzi wote hapo juu, lakini kadiri ulinzi unavyozidi kuwa mgumu, ndivyo safu ya mshambuliaji inavyokuwa juu. Kwa mfano, Mbinu za kukwepa za RELRO ni vigumu zaidi kutumia ikiwa PIE na kufunga mara moja kunatumika. Vile vile, ASLR kamili inahitaji kazi ya ziada ili kuunda unyonyaji wa kufanya kazi. Walakini, washambuliaji wa kisasa tayari wamejitayarisha kukidhi ulinzi kama huo: kutokuwepo kwao kutaongeza kasi ya utapeli. Kwa hivyo ni muhimu kwamba hatua hizi zichukuliwe kuwa muhimu kiwango cha chini.

Tulitaka kusoma ni faili ngapi za binary katika usambazaji unaohusika zinalindwa na hizi na njia zingine tatu:

  • Kidogo kisichoweza kutekelezeka (NX) huzuia utekelezaji katika eneo lolote ambalo halipaswi kutekelezwa, kama vile lundo la rafu, n.k.
  • RPATH/RUNPATH inaashiria njia ya utekelezaji inayotumiwa na kipakiaji chenye nguvu kupata maktaba zinazolingana. Ya kwanza ni lazima kwa mfumo wowote wa kisasa: kukosekana kwake kunaruhusu washambuliaji kuandika kiholela mzigo kwenye kumbukumbu na kuutekeleza kama ulivyo. Kwa pili, usanidi usio sahihi wa njia ya utekelezaji husaidia katika kuanzisha nambari isiyotegemewa ambayo inaweza kusababisha shida kadhaa (k.m. kuongezeka kwa upendeleoNa matatizo mengine).
  • Ulinzi wa mgongano wa rafu hutoa ulinzi dhidi ya mashambulizi yanayosababisha rafu kuingiliana maeneo mengine ya kumbukumbu (kama vile lundo). Kwa kuzingatia matumizi mabaya ya hivi majuzi udhaifu wa mgongano wa lundo la systemd, tuliona inafaa kujumuisha utaratibu huu katika mkusanyiko wetu wa data.

Kwa hivyo, bila ado zaidi, wacha tushuke kwa nambari. Majedwali ya 4 na 5 yana muhtasari wa uchanganuzi wa faili zinazoweza kutekelezwa na maktaba za usambazaji mbalimbali, mtawalia.

  • Kama unavyoona, ulinzi wa NX unatekelezwa kila mahali, isipokuwa nadra. Hasa, mtu anaweza kutambua matumizi yake ya chini kidogo katika usambazaji wa Ubuntu na Debian ikilinganishwa na CentOS, RHEL na OpenSUSE.
  • Korongo nyingi hazipo katika sehemu nyingi, haswa katika usambazaji na kokwa kuu. Baadhi ya maendeleo yanaonekana katika usambazaji wa hivi punde wa Centos, RHEL, Debian na Ubuntu.
  • Isipokuwa Debian na Ubuntu 18.04, usambazaji mwingi una usaidizi duni wa PIE.
  • Kinga ya kugongana kwa rafu ni dhaifu katika OpenSUSE, Centos 7 na RHEL 7, na haipo katika zingine.
  • Usambazaji wote ulio na kokwa za kisasa una msaada kwa RELRO, huku Ubuntu 18.04 ikiongoza na Debian ikishika nafasi ya pili.

Kama ilivyotajwa tayari, vipimo katika jedwali hili ni wastani kwa matoleo yote ya faili ya jozi. Ikiwa unatazama tu matoleo ya hivi karibuni ya faili, nambari zitakuwa tofauti (kwa mfano, ona Maendeleo ya Debian na utekelezaji wa PIE) Zaidi ya hayo, usambazaji mwingi kwa kawaida hujaribu tu usalama wa chaguo za kukokotoa chache katika mfumo wa jozi wakati wa kukokotoa takwimu, lakini uchanganuzi wetu unaonyesha asilimia halisi ya chaguo za kukokotoa ambazo ni ngumu. Kwa hiyo, ikiwa kazi 5 kati ya 50 zinalindwa katika binary, tutawapa alama ya 0,1, ambayo inalingana na 10% ya kazi zinazoimarishwa.

Mamilioni ya jozi baadaye. Jinsi Linux ilikua na nguvu
Jedwali 4. Tabia za usalama kwa faili zinazoweza kutekelezwa zilizoonyeshwa kwenye Mtini. 3 (utekelezaji wa majukumu muhimu kama asilimia ya jumla ya idadi ya faili zinazoweza kutekelezwa)

Mamilioni ya jozi baadaye. Jinsi Linux ilikua na nguvu
Jedwali 5. Sifa za usalama kwa maktaba zilizoonyeshwa kwenye Mtini. 3 (utekelezaji wa majukumu husika kama asilimia ya jumla ya idadi ya maktaba)

Kwa hiyo kuna maendeleo? Hakika kuna: hii inaweza kuonekana kutoka kwa takwimu za usambazaji wa mtu binafsi (kwa mfano, Debian), na vile vile kutoka kwa jedwali hapo juu. Kama mfano katika Mtini. Kielelezo cha 6 kinaonyesha utekelezaji wa mbinu za ulinzi katika ugawaji tatu mfululizo wa Ubuntu LTS 5 (tumeacha takwimu za ulinzi wa mgongano wa rafu). Tunagundua kuwa kutoka toleo hadi toleo faili nyingi zaidi na zaidi zinaauni canaries za rafu, na pia jozi nyingi zaidi husafirishwa zikiwa na ulinzi kamili wa RELRO.

Mamilioni ya jozi baadaye. Jinsi Linux ilikua na nguvu
Mtini. Xnumx

Kwa bahati mbaya, idadi ya faili zinazoweza kutekelezwa katika usambazaji tofauti bado hazina ulinzi wowote hapo juu. Kwa mfano, ukiangalia Ubuntu 18.04, utagundua binary ngetty (badala ya getty), na vile vile makombora ya mksh na lksh, mkalimani wa picolisp, vifurushi vya nvidia-cuda-toolkit (kifurushi maarufu cha programu zinazoharakishwa na GPU. kama vile mifumo ya kujifunza kwa mashine), na klibc -utils. Vivyo hivyo, binary ya mteja wa mandos (zana ya kiutawala ambayo hukuruhusu kuwasha tena mashine kiotomatiki na mifumo ya faili iliyosimbwa) na vile vile rsh-redone-client (utekelezaji wa rsh na rlogin) bila ulinzi wa NX, ingawa wana haki za SUID : (. Pia, jozi kadhaa za suid hazina ulinzi wa kimsingi kama vile canaries za rafu (kwa mfano, jozi ya Xorg.wrap kutoka kwa kifurushi cha Xorg).

Muhtasari na Hotuba za Hitimisho

Katika makala hii, tumeangazia vipengele kadhaa vya usalama vya usambazaji wa kisasa wa Linux. Uchanganuzi ulionyesha kuwa usambazaji wa hivi punde zaidi wa Ubuntu LTS (18.04) unatumia, kwa wastani, ulinzi thabiti zaidi wa mfumo wa uendeshaji na kiwango cha programu kati ya usambazaji na kokwa mpya, kama vile Ubuntu 14.04, 12.04 na Debian 9. Hata hivyo, mgawanyo uliochunguzwa CentOS, RHEL na OpenSUSE katika seti yetu kwa chaguo-msingi hutoa seti nyembamba ya vifurushi, na katika matoleo ya hivi karibuni (CentOS na RHEL) wana asilimia kubwa ya ulinzi wa mgongano wa rafu ikilinganishwa na washindani wa Debian (Debian na Ubuntu). Kwa kulinganisha matoleo ya CentOS na RedHat, tunaona maboresho makubwa katika utekelezaji wa canaries na RELRO kutoka toleo la 6 hadi 7, lakini kwa wastani CentOS ina vipengele vingi vilivyotekelezwa kuliko RHEL. Kwa ujumla, ugawaji wote unapaswa kulipa kipaumbele maalum kwa ulinzi wa PIE, ambao, isipokuwa Debian 9 na Ubuntu 18.04, unatekelezwa chini ya 10% ya jozi katika mkusanyiko wetu wa data.

Hatimaye, ikumbukwe kwamba ingawa tulifanya utafiti kwa mikono, kuna zana nyingi za usalama zinazopatikana (k.m. Lynis, Tiger, Hubble), ambayo hufanya uchambuzi na kusaidia kuzuia usanidi usio salama. Kwa bahati mbaya, hata ulinzi mkali katika usanidi unaofaa hauhakikishi kutokuwepo kwa ushujaa. Ndio maana tunaamini kabisa kuwa ni muhimu kuhakikisha ufuatiliaji wa kuaminika na kuzuia mashambulizi katika muda halisi, kwa kuzingatia mifumo ya unyonyaji na kuwazuia.

Chanzo: mapenzi.com

Kuongeza maoni