{"id":29880,"date":"2019-10-31T21:32:27","date_gmt":"2019-10-31T18:32:27","guid":{"rendered":"https:\/\/prohoster.info\/blog\/milliony-binarnikov-spustya-kak-ukreplyalsya-linux\/"},"modified":"2019-10-31T21:32:27","modified_gmt":"2019-10-31T18:32:27","slug":"milliony-binarnikov-spustya-kak-ukreplyalsya-linux","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/milliony-binarnikov-spustya-kak-ukreplyalsya-linux","title":{"rendered":"Milioane de binare mai t\u00e2rziu. Cum s-a consolidat Linux","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Milioane de binare mai t\u00e2rziu. Cum s-a consolidat Linux\" src=\"\/wp-content\/uploads\/2019\/03\/bf51e5698530d4a6a44ff97f542a2a87.png\" style=\"display:block;margin: 0 auto;\" \/><b>TL;DR<\/b>. \u00cen acest articol, vom explora schemele de protec\u021bie (hardening schemes) care func\u021bioneaz\u0103 din cutie \u00een cinci distribu\u021bii populare de Linux. Pentru fiecare, am luat configura\u021bia nucleului implicit, am desc\u0103rcat toate pachetele \u0219i am analizat schemele de protec\u021bie din fi\u0219ierele binare \u00eencorporate. Discut\u0103m despre distribu\u021biile OpenSUSE 12.4, Debian 9, CentOS, RHEL 6.10 \u0219i 7, precum \u0219i Ubuntu 14.04, 12.04 \u0219i 18.04 LTS. <\/p>\n<p>Rezultatele confirm\u0103 c\u0103 \u0219i cele mai elementare scheme, cum ar fi canarele de stiv\u0103 \u0219i codul independent de pozi\u021bie, nu sunt \u00eenc\u0103 utilizate de toat\u0103 lumea. Situa\u021bia este \u0219i mai grav\u0103 \u00een cazul compilatoarelor, c\u00e2nd vine vorba de protec\u021bia \u00eempotriva vulnerabilit\u0103\u021bilor de tipul coliziunii de stiv\u0103 (stack clash), care au fost aduse \u00een prim-plan \u00een ianuarie, dup\u0103 publicarea <noindex><a rel=\"nofollow\" href=\"https:\/\/capsule8.com\/blog\/exploiting-systemd-journald-part-1\/\">informa\u021biilor despre vulnerabilit\u0103\u021bile din systemd<\/a><\/noindex>. Dar nu totul este at\u00e2t de sumbru. O propor\u021bie semnificativ\u0103 din fi\u0219ierele binare implementeaz\u0103 metode de baz\u0103 de protec\u021bie, iar num\u0103rul acestora cre\u0219te de la o versiune la alta. <\/p>\n<p>Verific\u0103rile au ar\u0103tat c\u0103 cele mai multe metode de protec\u021bie sunt implementate \u00een Ubuntu 18.04 la nivel de sistem de operare \u0219i aplica\u021bii, urmat de Debian 9. Pe de alt\u0103 parte, \u00een OpenSUSE 12.4, CentOS 7 \u0219i RHEL 7 sunt implementate, de asemenea, scheme de protec\u021bie de baz\u0103, iar protec\u021bia \u00eempotriva coliziunii de stiv\u0103 este aplicat\u0103 \u0219i mai pe larg, av\u00e2nd un set de pachete implicit mult mai dens.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1>Introducere<\/h1>\n<p>\nEste greu s\u0103 asiguri o calitate ridicat\u0103 a software-ului. \u00cen ciuda num\u0103rului mare de instrumente avansate pentru analiza static\u0103 a codului \u0219i analiza dinamic\u0103 \u00een timpul execu\u021biei, precum \u0219i progresului semnificativ \u00een dezvoltarea compilatoarelor \u0219i limbajelor de programare, software-ul modern continu\u0103 s\u0103 sufere de vulnerabilit\u0103\u021bi care sunt exploatate constant de atacatori. Situa\u021bia este \u0219i mai grav\u0103 \u00een ecosistemele care includ cod \u00eenvechit. \u00cen astfel de cazuri, ne confrunt\u0103m nu doar cu eterna problem\u0103 a descoperirii posibilelor erori exploatabile, ci \u0219i cu limitele stricte ale compatibilit\u0103\u021bii \u00eenapoi, care adesea necesit\u0103 p\u0103strarea unui cod limitat, iar \u0219i mai r\u0103u vulnerabil sau defectuos.<\/p>\n<p>Aici intervine protec\u021bia sau \u00eent\u0103rirea programelor (hardening). Unele tipuri de erori nu putem s\u0103 le prevenim, dar putem s\u0103 le facem via\u021ba mai dificil\u0103 atacatorilor \u0219i s\u0103 solu\u021bion\u0103m par\u021bial problema, prevenind sau \u00eempiedic\u00e2nd <i>exploat\u0103rii<\/i> aceste erori. Aceast\u0103 protec\u021bie este utilizat\u0103 \u00een toate sistemele de operare moderne, \u00eens\u0103 metodele difer\u0103 semnificativ \u00een complexitate, eficien\u021b\u0103 \u0219i performan\u021b\u0103: de la canari de stiv\u0103 (stack canaries) \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Address_space_layout_randomization\">ASLR<\/a><\/noindex> p\u00e2n\u0103 la protec\u021bii complete <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Control-flow_integrity\">CFI<\/a><\/noindex> \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Return-oriented_programming\">ROP<\/a><\/noindex>. \u00cen acest articol, vom examina ce metode de protec\u021bie sunt aplicate \u00een cele mai populare distribu\u021bii Linux \u00een configura\u021bia lor implicit\u0103, precum \u0219i vom analiza propriet\u0103\u021bile binarelor distribuite prin sistemele de gestionare a pachetelor fiec\u0103rei distribu\u021bii.<\/p>\n<h3>CVE \u0219i securitate<\/h3>\n<p>\nTo\u021bi am v\u0103zut articole cu titluri precum \u201eCele mai vulnerabile aplica\u021bii ale anului\u201d sau \u201eCele mai vulnerabile sisteme de operare\u201d. De obicei, ele ofer\u0103 statistici cu privire la num\u0103rul total de \u00eenregistr\u0103ri de vulnerabilitate de tip <noindex><a rel=\"nofollow\" href=\"https:\/\/cve.mitre.org\/\">CVE (Common Vulnerability and Exposures)<\/a><\/noindex>, ob\u021binute din <noindex><a rel=\"nofollow\" href=\"https:\/\/nvd.nist.gov\/\">Baza Na\u021bional\u0103 de Vulnerabilitate (NVD)<\/a><\/noindex> de la <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nist.gov\/\">NIST<\/a><\/noindex> \u0219i alte surse. Ulterior, aceste aplica\u021bii sau sisteme de operare sunt clasificate \u00een func\u021bie de num\u0103rul de CVE. Din p\u0103cate, de\u0219i CVE sunt foarte utile pentru urm\u0103rirea problemelor \u0219i informarea furnizorilor \u0219i utilizatorilor, ele spun pu\u021bin despre securitatea real\u0103 a software-ului.<\/p>\n<p>De exemplu, s\u0103 lu\u0103m \u00een considerare num\u0103rul total de CVE din ultimii patru ani pentru kernelul Linux \u0219i pentru cele cinci cele mai populare distribu\u021bii server, respectiv Ubuntu, Debian, Red Hat Enterprise Linux \u0219i OpenSUSE.<\/p>\n<p><img decoding=\"async\" alt=\"Milioane de binare mai t\u00e2rziu. Cum s-a consolidat Linux\" src=\"\/wp-content\/uploads\/2019\/03\/16d74634f010e340aedbce441513e3f8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 1<\/i><\/p>\n<p>Ce ne spune acest grafic? \u00censeamn\u0103 un num\u0103r mai mare de CVE c\u0103 o distribu\u021bie este mai vulnerabil\u0103 dec\u00e2t alta? R\u0103spunsul este nu. De exemplu, \u00een acest articol ve\u021bi vedea c\u0103 Debian implementeaz\u0103 mecanisme de protec\u021bie mai stricte \u00een compara\u021bie, de exemplu, cu OpenSUSE sau RedHat Linux, \u0219i cu toate acestea Debian are mai multe CVE. Totu\u0219i, acestea nu \u00eenseamn\u0103 neap\u0103rat o securitate sl\u0103bit\u0103: chiar \u0219i prezen\u021ba CVE nu indic\u0103 dac\u0103 vulnerabilitatea <i>este exploatabil\u0103<\/i>. Scorurile de gravitate ofer\u0103 o perspectiv\u0103 asupra c\u00e2t de <i>probabil<\/i> este utilizarea vulnerabilit\u0103\u021bii, dar \u00een cele din urm\u0103, exploatabilitatea depinde \u00een mare m\u0103sur\u0103 de protec\u021bia prezent\u0103 \u00een sistemele afectate, precum \u0219i de resursele \u0219i capacit\u0103\u021bile atacatorilor. Mai mult, absen\u021ba raporturilor CVE nu spune nimic despre alte <i>vulnerabilit\u0103\u021bi nelistate sau necunoscute<\/i> vulnerabilit\u0103\u021bilor. Diferen\u021ba \u00een CVE poate fi explicat\u0103 nu prin calitatea software-ului, ci prin al\u021bi factori, inclusiv resursele alocate pentru testare sau dimensiunea bazei de utilizatori. \u00cen exemplul nostru, un num\u0103r mai mare de CVE la Debian poate indica pur \u0219i simplu faptul c\u0103 Debian furnizeaz\u0103 mai multe pachete de software. <\/p>\n<p>Desigur, sistemul CVE ofer\u0103 informa\u021bii utile care permit crearea de protec\u021bii corespunz\u0103toare. Cu c\u00e2t \u00een\u021belegem mai bine motivele e\u0219ecului unui program, cu at\u00e2t mai u\u0219or este s\u0103 determin\u0103m posibilele metode de exploatare \u0219i s\u0103 dezvolt\u0103m mecanismele necesare. <i>de detectare \u0219i reac\u021bie<\/i>. \u00cen figura 2 sunt prezentate categoriile de vulnerabilit\u0103\u021bi pentru toate distribu\u021biile \u00een ultimii patru ani (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.cvedetails.com\/top-50-products.php\">sursa<\/a><\/noindex>). Se vede imediat c\u0103 majoritatea CVE-urilor se \u00eencadreaz\u0103 \u00een urm\u0103toarele categorii: DoS (refuz de serviciu), execu\u021bie de cod, supra\u00eenc\u0103rcare, corup\u021bie de memorie, scurgere de informa\u021bii (exfiltrare) \u0219i escaladarea privilegiilor. De\u0219i multe CVE-uri sunt contabilizate de mai multe ori \u00een diferite categorii, \u00een general acelea\u0219i probleme persist\u0103 de la an la an. \u00cen urm\u0103toarea parte a articolului vom evalua utilizarea diferitelor scheme de protec\u021bie pentru a preveni exploatarea acestor vulnerabilit\u0103\u021bi.<\/p>\n<p><img decoding=\"async\" alt=\"Milioane de binare mai t\u00e2rziu. Cum s-a consolidat Linux\" src=\"\/wp-content\/uploads\/2019\/03\/45948bc64673540cfb3e1774c3247634.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Figura 2<\/i><\/p>\n<h3>Sarcini<\/h3>\n<p>\n\u00cen acest articol, ne propunem s\u0103 r\u0103spundem urm\u0103toarelor \u00eentreb\u0103ri:<\/p>\n<ul>\n<li>Care este securitatea diferitelor distribu\u021bii Linux? Ce mecanisme de protec\u021bie exist\u0103 \u00een kernel \u0219i aplica\u021biile din spa\u021biul utilizatorului?\n<\/li>\n<li>Cum s-a schimbat \u00een timp adoptarea mecanismelor de protec\u021bie pentru diverse distribu\u021bii?\n<\/li>\n<li>Care sunt dependen\u021bele medii ale pachetelor \u0219i bibliotecilor pentru fiecare distribu\u021bie?\n<\/li>\n<li>Ce protec\u021bii sunt implementate pentru fiecare binar?<\/li>\n<\/ul>\n<p><\/p>\n<h3>Alegerea distribu\u021biilor<\/h3>\n<p>\nSe pare c\u0103 este dificil s\u0103 g\u0103se\u0219ti statistici precise despre instal\u0103rile distribu\u021biilor, deoarece, \u00een cele mai multe cazuri, num\u0103rul de desc\u0103rc\u0103ri nu indic\u0103 num\u0103rul de instal\u0103ri reale. Cu toate acestea, op\u021biunile Unix constituie majoritatea sistemelor server (la serverele web 69.2%, conform W3techs \u0219i alte surse), iar cota lor cre\u0219te constant. Astfel, pentru cercetarea noastr\u0103 ne-am concentrat pe distribu\u021biile disponibile 'out of the box' pe platforma <noindex><a rel=\"nofollow\" href=\"https:\/\/w3techs.com\/technologies\/overview\/operating_system\/all\">statisticilor<\/a><\/noindex> . \u00cen special, am ales urm\u0103toarele sisteme de operare: <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/\">Google Cloud<\/a><\/noindex>Distribu\u021bia\/versiunea<\/p>\n<p>Build<br \/>\nNucleu<br \/>\nOpenSUSE 12.4<\/p>\n<p>4.12.14-95.3-default<br \/>\nDebian 9 (stretch)<br \/>\n#1 SMP Wed Dec 5 06:00:48 UTC 2018 (63a8d29)<\/p>\n<p>4.9.0-8-amd64<br \/>\nCentOS 6.10<br \/>\n#1 SMP Debian 4.9.130-2 (2018-10-27)<\/p>\n<p>2.6.32-754.10.1.el6.x86_64<br \/>\n3.10.0-957.5.1.el7.x86_64<br \/>\n#1 SMP Tue Jan 15 17:07:28 UTC 2019<\/p>\n<p>CentOS 7<br \/>\nRed Hat Enterprise Linux Server 6.10 (Santiago)<br \/>\n#1 SMP Fri Feb 1 14:54:57 UTC 2019<\/p>\n<p>2.6.32-754.9.1.el6.x86_64<br \/>\nRed Hat Enterprise Linux Server 7.6 (Maipo)<br \/>\n#1 SMP Wed Nov 21 15:08:21 EST 2018<\/p>\n<p>3.10.0-957.1.3.el7.x86_64<br \/>\n3.10.0-957.1.3.el7.x86_64<br \/>\n#1 SMP Thu Nov 15 17:36:42 UTC 2018<\/p>\n<p>Ubuntu 14.04 (Trusty Tahr)<br \/>\n4.4.0\u2013140-generic<br \/>\n <br \/>\n#166~14.04.1-Ubuntu SMP Sat Nov 17 01:52:43 UTC 20\u2026<\/p>\n<p>Ubuntu 16.04 (Xenial Xerus)<br \/>\n4.15.0\u20131026-gcp<br \/>\n#27~16.04.1-Ubuntu SMP Fri Dec 7 09:59:47 UTC 2018<\/p>\n<p>Ubuntu 18.04 (Bionic Beaver)<br \/>\n4.15.0\u20131026-gcp<br \/>\n#27-Ubuntu SMP Thu Dec 6 18:27:01 UTC 2018<\/p>\n<p><i>Tabelul 1<\/i> <\/p>\n<h1>Analiz\u0103<\/h1>\n<p>\nVom studiem configura\u021bia kernel-ului implicit, precum \u0219i propriet\u0103\u021bile pachetelor disponibile prin managerul de pachete al fiec\u0103rui distribuitor din cutie. Astfel, ne concentr\u0103m doar pe pachetele din oglinzile implicite ale fiec\u0103rui distribuitor, ignor\u00e2nd pachetele din depozitele instabile (de exemplu, oglinzile \u2018testing\u2019 din Debian) \u0219i pachetele ter\u021b\u0103 parte (de exemplu, pachetele Nvidia din oglinzile standard). \u00cen plus, nu lu\u0103m \u00een considerare compuneri personalizate de kernel sau configura\u021bii cu securitate sporit\u0103.<\/p>\n<h3>Analiza configura\u021biei kernel-ului<\/h3>\n<p>\nAm aplicat un script de analiz\u0103 bazat pe <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/a13xp0p0v\/kconfig-hardened-check\">un verficator gratuit kconfig<\/a><\/noindex>. Analiz\u0103m parametrii de protec\u021bie din cutie ai distribuitorilor men\u021biona\u021bi \u0219i \u00eei compar\u0103m cu lista de la <noindex><a rel=\"nofollow\" href=\"http:\/\/kernsec.org\/wiki\/index.php\/Kernel_Self_Protection_Project\/Recommended_Settings\">Proiectul de autoap\u0103rare a kernel-ului<\/a><\/noindex> (KSPP). Pentru fiecare parametru de configura\u021bie, tabela 2 descrie setarea dorit\u0103: bifa este marcat\u0103 pentru distribuitoarele care respect\u0103 recomand\u0103rile KSSP (explanarea termenilor se g\u0103se\u0219te \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/capsule8.com\/blog\/kernel-configuration-glossary\/\">aici<\/a><\/noindex>; \u00een articole viitoare vom discuta despre cum au ap\u0103rut multe dintre aceste metode de protec\u021bie \u0219i cum poate fi spart sistemul \u00een absen\u021ba lor).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/dx\/oh\/o0\/dxoho0z-lifjcybajszqb-aiirq.png\"><img decoding=\"async\" alt=\"Milioane de binare mai t\u00e2rziu. Cum s-a consolidat Linux\" src=\"\/wp-content\/uploads\/2019\/03\/b1a42826f4afc78a2b25d158100b2ba4.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><img decoding=\"async\" alt=\"Milioane de binare mai t\u00e2rziu. Cum s-a consolidat Linux\" src=\"\/wp-content\/uploads\/2019\/03\/2177579e65e4fe6bb320903756a04b9b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00cen general, \u00een noile kernel-uri exist\u0103 set\u0103ri mai stricte din cutie. De exemplu, \u00een CentOS 6.10 \u0219i RHEL 6.10 pe kernel 2.6.32 lipsesc majoritatea func\u021bionalit\u0103\u021bilor critice implementate \u00een noile kernel-uri, cum ar fi <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Supervisor_Mode_Access_Prevention\">SMAP<\/a><\/noindex>, permisiuni stricte RWX, randomizarea adreselor sau protec\u021bia copy2usr. Este important de men\u021bionat c\u0103 multe dintre op\u021biunile de configura\u021bie din tabel lipsesc \u00een versiunile mai vechi ale kernel-ului \u0219i nu sunt aplicabile \u00een realitate \u2014 \u00een tabel, acest lucru este totu\u0219i men\u021bionat ca o absen\u021b\u0103 a protec\u021biei adecvate. \u00cen mod similar, dac\u0103 un parametru de configura\u021bie lipse\u0219te \u00een aceast\u0103 versiune, iar pentru siguran\u021b\u0103 acest parametru trebuie dezactivat, aceasta este considerat\u0103 o configura\u021bie rezonabil\u0103. <\/p>\n<p>Un alt aspect de avut \u00een vedere \u00een interpretarea rezultatelor este c\u0103 unele configura\u021bii ale nucleului care m\u0103resc suprafa\u021ba de atac pot fi folosite simultan pentru securitate. Exemple de acest tip includ uprobes \u0219i kprobes, modulele nucleului \u0219i BPF\/eBPF. Recomandarea noastr\u0103 este s\u0103 utiliz\u0103m mecanismele men\u021bionate anterior pentru a asigura o protec\u021bie real\u0103, deoarece acestea nu sunt triviale de utilizat, iar exploatarea lor presupune c\u0103 subiec\u021bii mali\u021bio\u0219i s-au implantat deja \u00een sistem. Dar dac\u0103 aceste op\u021biuni sunt activate, administratorul de sistem trebuie s\u0103 monitorizeze activ abuzurile.<\/p>\n<p>Examin\u00e2nd \u00een continuare \u00eenregistr\u0103rile din tabelul 2, vedem c\u0103 nucleele moderne ofer\u0103 mai multe op\u021biuni pentru protec\u021bia \u00eempotriva exploat\u0103rii unor astfel de vulnerabilit\u0103\u021bi, cum ar fi scurgerea de informa\u021bii \u0219i suprascrierea stivei\/memoriei heap. Totu\u0219i, observ\u0103m c\u0103 chiar \u0219i cele mai recente distribu\u021bii populare nu au implementat \u00eenc\u0103 protec\u021bii mai sofisticate (de exemplu, cu patch-uri <noindex><a rel=\"nofollow\" href=\"https:\/\/grsecurity.net\/\">grsecurity<\/a><\/noindex>) sau protec\u021bie modern\u0103 \u00eempotriva atacurilor de reutilizare a codului (de exemplu, <noindex><a rel=\"nofollow\" href=\"http:\/\/www.cs.columbia.edu\/~theofilos\/files\/slides\/krx.pdf\">combinarea randomiz\u0103rii cu scheme de tip R^X pentru cod<\/a><\/noindex>). Ce este \u0219i mai grav, chiar \u0219i aceste instrumente de protec\u021bie mai avansate nu protejeaz\u0103 \u00eempotriva \u00eentregului spectru de atacuri. Prin urmare, este extrem de important pentru administratorii de sistem s\u0103 completeze configura\u021biile ra\u021bionale cu solu\u021bii care ofer\u0103 detectarea \u0219i prevenirea exploat\u0103rilor \u00een timpul execu\u021biei.<\/p>\n<h3>Analiza aplica\u021biilor<\/h3>\n<p>\nNu este surprinz\u0103tor c\u0103 diferitele distribu\u021bii au caracteristici diferite ale pachetelor, op\u021biuni de compilare, dependen\u021be de biblioteci etc. Diferen\u021bele exist\u0103 chiar \u0219i pentru <noindex><a rel=\"nofollow\" href=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/1\/1b\/Linux_Distribution_Timeline.svg\">distribu\u021bii \u00eenrudite<\/a><\/noindex> \u0219i pachete cu un num\u0103r mic de dependen\u021be (de exemplu, coreutils \u00een Ubuntu sau Debian). Pentru a evalua diferen\u021bele, am desc\u0103rcat toate pachetele disponibile, am extras con\u021binutul acestora \u0219i am analizat fi\u0219ierele binare \u0219i dependen\u021bele. Pentru fiecare pachet, am urm\u0103rit celelalte pachete de care depinde, iar pentru fiecare binar am urm\u0103rit dependen\u021bele sale. \u00cen aceast\u0103 sec\u021biune, vom rezuma concluziile.<\/p>\n<h4>Distribu\u021bii<\/h4>\n<p>\n\u00cen total, am desc\u0103rcat 361.556 de pachete pentru toate distribu\u021biile, extr\u0103g\u00e2nd doar pachetele din oglinzile din moduri implicite. Am ignorat pachetele f\u0103r\u0103 fi\u0219iere executabile ELF, cum ar fi codul surs\u0103, fonturile etc. Dup\u0103 filtrare, au r\u0103mas 129.569 de pachete, care con\u021bin \u00een total 584.457 de fi\u0219iere binare. Distribu\u021bia pachetelor \u0219i fi\u0219ierelor pe distribu\u021bii este prezentat\u0103 \u00een figura 3.<\/p>\n<p><img decoding=\"async\" alt=\"Milioane de binare mai t\u00e2rziu. Cum s-a consolidat Linux\" src=\"\/wp-content\/uploads\/2019\/03\/a24975fba7413ac8069c07412e5476cc.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Figura 3<\/i><\/p>\n<p>Se poate observa c\u0103, cu c\u00e2t distribu\u021bia este mai modern\u0103, cu at\u00e2t con\u021bine mai multe pachete \u0219i fi\u0219iere binare, ceea ce este logic. Totu\u0219i, pachetele Ubuntu \u0219i Debian includ mult mai multe fi\u0219iere binare (at\u00e2t executabile, c\u00e2t \u0219i module dinamice \u0219i biblioteci) dec\u00e2t CentOS, SUSE \u0219i RHEL, ceea ce influen\u021beaz\u0103 poten\u021bial suprafa\u021ba de atac a Ubuntu \u0219i Debian (trebuie men\u021bionat c\u0103 cifrele reflect\u0103 toate binarele tuturor versiunilor pachetului, adic\u0103 unele fi\u0219iere sunt analizate de mai multe ori). Acest lucru este deosebit de important, av\u00e2nd \u00een vedere dependen\u021bele dintre pachete. Astfel, o vulnerabilitate \u00eentr-un binar al unui pachet poate afecta multe p\u0103r\u021bi din ecologie, a\u0219a cum o bibliotec\u0103 vulnerabil\u0103 poate afecta toate fi\u0219ierele binare care o import\u0103. Ca punct de plecare, s\u0103 examin\u0103m distribu\u021bia num\u0103rului de dependen\u021be pe pachete \u00een diferite sisteme de operare:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/ii\/e3\/e5\/iie3e5-ei26ezg5yvcyvtzqzl80.png\"><img decoding=\"async\" alt=\"Milioane de binare mai t\u00e2rziu. Cum s-a consolidat Linux\" src=\"\/wp-content\/uploads\/2019\/03\/c6570e643d92103c87659e61f5d395a6.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<i>Figura 4<\/i> <\/p>\n<p>\u00cen aproape toate distribu\u021biile, 60% dintre pachete au cel pu\u021bin 10 dependen\u021be. \u00cen plus, unele pachete au un num\u0103r semnificativ mai mare de dependen\u021be (peste 100). Acelea\u0219i considera\u021bii se aplic\u0103 \u0219i dependen\u021belor inverse ale pachetelor: a\u0219a cum era de a\u0219teptat, mai multe pachete sunt utilizate de multe alte pachete din distribu\u021bie, prin urmare, vulnerabilit\u0103\u021bile \u00een aceste c\u00e2teva selecte prezint\u0103 un risc ridicat. Ca exemplu, \u00een tabelul urm\u0103tor sunt enumerate 20 de pachete cu cel mai mare num\u0103r de dependen\u021be inverse \u00een SLES, CentOS 7, Debian 9 \u0219i Ubuntu 18.04 (\u00een fiecare celul\u0103 este indicat pachetul \u0219i num\u0103rul de dependen\u021be inverse).<\/p>\n<p><img decoding=\"async\" alt=\"Milioane de binare mai t\u00e2rziu. Cum s-a consolidat Linux\" src=\"\/wp-content\/uploads\/2019\/03\/0aa544db8be1af7bffe21b6314537e18.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Tabelul 3<\/i><\/p>\n<p>Un fapt interesant. De\u0219i toate sistemele de operare analizate sunt construite pentru arhitectura x86_64, iar la majoritatea pachetelor arhitectura este definit\u0103 ca x86_64 \u0219i x86, pachetele con\u021bin adesea fi\u0219iere binare pentru alte arhitecturi, a\u0219a cum se arat\u0103 \u00een figura 5.<\/p>\n<p><img decoding=\"async\" alt=\"Milioane de binare mai t\u00e2rziu. Cum s-a consolidat Linux\" src=\"\/wp-content\/uploads\/2019\/03\/b40f607e0c2f169bd1df21bd9994de8c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 5<\/i><\/p>\n<p>\u00cen urm\u0103toarea sec\u021biune, ne vom aprofunda \u00een caracteristicile binarelor analizate.<\/p>\n<h4>Statistica protec\u021biei fi\u0219ierelor binare<\/h4>\n<p>\nCa un minim absolut, este necesar s\u0103 studiem un set de op\u021biuni de baz\u0103 de protec\u021bie pentru fi\u0219ierele binare existente. Unele distribu\u021bii Linux vin cu scripturi care efectueaz\u0103 astfel de verific\u0103ri. De exemplu, \u00een Debian\/Ubuntu exist\u0103 un astfel de script. Iat\u0103 un exemplu de func\u021bionare:<\/p>\n<pre><code class=\"bash\">$ hardening-check $(which docker)\n\/usr\/bin\/docker:\n Executabil Independent de Pozi\u021bie: da\n Stiva protejat\u0103: da\n Func\u021bii Fortify Source: nu, doar func\u021bii neprotejate g\u0103site!\n Mut\u0103ri doar \u00een citire: da\n Bindare imediat\u0103: da<\/code><\/pre>\n<p>\nScriptul verific\u0103 cinci <noindex><a rel=\"nofollow\" href=\"http:\/\/manpages.ubuntu.com\/manpages\/trusty\/man1\/hardening-check.1.html\">func\u021bii de protec\u021bie<\/a><\/noindex>:<\/p>\n<ul>\n<li>Executabil Independent de Pozi\u021bie (PIE): indic\u0103 dac\u0103 sec\u021biunea de text a programului poate fi mutat\u0103 \u00een memorie pentru a ob\u021bine randomizare, dac\u0103 ASLR este activat \u00een kernel.\n<\/li>\n<li>Stiva Protejat\u0103: sunt activate canare de stiv\u0103 pentru a proteja \u00eempotriva atacurilor de coliziune a stivei.\n<\/li>\n<li>Fortify Source: func\u021biile nesigure (de exemplu, strcpy) sunt \u00eenlocuite cu omologii lor mai siguri, iar apelurile verificate \u00een timp de execu\u021bie sunt \u00eenlocuite cu omologii lor neverifica\u021bi (de exemplu, memcpy \u00een loc de __memcpy_chk).\n<\/li>\n<li>Mut\u0103ri doar \u00een citire (RELRO): sunt marcate \u00eenregistr\u0103rile din tabelul de mut\u0103ri ca 'numai pentru citire', dac\u0103 func\u021bioneaz\u0103 \u00eenainte de \u00eenceperea execu\u021biei.\n<\/li>\n<li>Bindare imediat\u0103: permite linker-ului de timp de execu\u021bie s\u0103 rezolve toate mut\u0103rile \u00eenainte de \u00eenceperea execu\u021biei programului (acest lucru este echivalent cu RELRO complet).<\/li>\n<\/ul>\n<p>\nSunt suficiente mecanismele enumerate mai sus? Din p\u0103cate, nu. Exist\u0103 metode cunoscute pentru a ocoli toate protec\u021biile men\u021bionate anterior, dar cu c\u00e2t protec\u021bia este mai strict\u0103, cu at\u00e2t mai sus ajunge \u0219tacheta pentru atacator. De exemplu, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.usenix.org\/system\/files\/conference\/usenixsecurity15\/sec15-paper-di-frederico.pdf\">metodele de ocolire RELRO<\/a><\/noindex> sunt mai greu de aplicat atunci c\u00e2nd PIE \u0219i bindarea imediat\u0103 sunt active. \u00cen mod similar, ASLR complet necesit\u0103 munc\u0103 suplimentar\u0103 pentru a crea un exploit func\u021bional. Cu toate acestea, atacatorii sofistica\u021bi sunt deja preg\u0103ti\u021bi s\u0103 \u00eent\u00e2mpine astfel de protec\u021bii: absen\u021ba lor va accelera practic hacking-ul. De aceea, este extrem de important ca aceste m\u0103suri s\u0103 fie considerate necesare. <i>minim<\/i>. <\/p>\n<p>Am dorit s\u0103 studiem c\u00e2te fi\u0219iere binare din distribu\u021biile analizate sunt protejate prin aceste metode, precum \u0219i prin alte trei metode:<\/p>\n<ul>\n<li>Bitul neexecutabil (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Executable_space_protection\">NX<\/a><\/noindex>) \u00eempiedic\u0103 executarea \u00een orice regiune care nu ar trebui s\u0103 fie executabil\u0103, de exemplu \u00een heap-ul stivei etc.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Rpath\">RPATH\/RUNPATH<\/a><\/noindex> indic\u0103 calea de execu\u021bie folosit\u0103 de loaderul dinamic pentru a c\u0103uta bibliotecile corespunz\u0103toare. Primul este <i>obligatoriu<\/i> pentru orice sistem modern: absen\u021ba sa permite atacatorilor s\u0103 scrie arbitrari \u00een memorie \u0219i s\u0103 execute codul ca atare. \u00cen al doilea r\u00e2nd, configura\u021biile gre\u0219ite ale c\u0103ilor de execu\u021bie ajut\u0103 la introducerea codului nesigur, care poate duce la o serie de probleme (de exemplu, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nth-dimension.org.uk\/pub\/BTL.pdf\">escaladarea privilegiilor<\/a><\/noindex>, dar \u0219i pentru <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.debian.org\/RpathIssue\">alte probleme<\/a><\/noindex>).<\/li>\n<li>Protec\u021bia \u00eempotriva suprapunerii stivei ofer\u0103 protec\u021bie \u00eempotriva atacurilor care determin\u0103 stiva s\u0103 se suprapun\u0103 cu alte zone de memorie (de exemplu, cu heap-ul). Av\u00e2nd \u00een vedere exploat\u0103rile recente care abuzeaz\u0103 <noindex><a rel=\"nofollow\" href=\"https:\/\/capsule8.com\/blog\/exploiting-systemd-journald-part-1\/\">de vulnerabilit\u0103\u021bile de suprapunere a heap-ului \u00een systemd<\/a><\/noindex>, am considerat c\u0103 este relevant s\u0103 includem acest mecanism \u00een setul nostru de date.<\/li>\n<\/ul>\n<p>\nA\u0219adar, f\u0103r\u0103 alte ceremonii, s\u0103 trecem la cifre. Tabelele 4 \u0219i 5 con\u021bin o sintez\u0103 a analizei fi\u0219ierelor executabile \u0219i bibliotecilor diferitelor distribu\u021bii, respectiv.<\/p>\n<ul>\n<li>Dup\u0103 cum se poate observa, protec\u021bia NX este implementat\u0103 peste tot, cu c\u00e2teva excep\u021bii rare. \u00cen special, se poate remarca o utilizare ceva mai sc\u0103zut\u0103 \u00een distribu\u021biile Ubuntu \u0219i Debian comparativ cu CentOS, RHEL \u0219i OpenSUSE.\n<\/li>\n<li>Canarele de stiv\u0103 lipsesc \u00een multe locuri, mai ales \u00een distribu\u021biile cu nuclee vechi. Un anumit progres se observ\u0103 \u00een ultimele distribu\u021bii CentOS, RHEL, Debian \u0219i Ubuntu.\n<\/li>\n<li>Cu excep\u021bia Debian \u0219i Ubuntu 18.04, majoritatea distribu\u021biilor au o suport slab pentru PIE.\n<\/li>\n<li>Protec\u021bia \u00eempotriva coliziunilor stivei este slab implementat\u0103 \u00een OpenSUSE, CentOS 7 \u0219i RHEL 7 \u0219i practic lipseste la celelalte.\n<\/li>\n<li>Toate distribu\u021biile cu nuclee moderne au un anumit suport pentru RELRO, cu Ubuntu 18.04 pe primul loc, iar Debian pe locul doi.<\/li>\n<\/ul>\n<p>\nDup\u0103 cum am men\u021bionat, metricile din acest tabel sunt medii pentru toate versiunile fi\u0219ierului binar. Dac\u0103 ne uit\u0103m doar la cele mai recente versiuni ale fi\u0219ierelor, cifrele vor fi diferite (de exemplu, vezi <noindex><a rel=\"nofollow\" href=\"http:\/\/outflux.net\/debian\/hardening\/\">progresul Debian cu implementarea PIE<\/a><\/noindex>). Mai mult, majoritatea distribu\u021biilor verific\u0103 de obicei protec\u021bia doar pentru c\u00e2teva func\u021bii \u00een codul binar atunci c\u00e2nd calculeaz\u0103 statisticile, iar \u00een analiza noastr\u0103 este indicat procentul real de func\u021bii consolidate. A\u0219adar, dac\u0103 \u00een binar sunt protejate 5 din 50 de func\u021bii, \u00eei vom atribui o evaluare de 0,1, ceea ce corespunde cu 10% func\u021bii consolidate.<\/p>\n<p><img decoding=\"async\" alt=\"Milioane de binare mai t\u00e2rziu. Cum s-a consolidat Linux\" src=\"\/wp-content\/uploads\/2019\/03\/82e881c5ba2a3911f3a0ffae1a3475f4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Tabelul 4. Caracteristicile protec\u021biei pentru fi\u0219ierele executabile, prezentate \u00een figura 3 (implementarea func\u021biilor corespunz\u0103toare \u00een procente din num\u0103rul total de fi\u0219iere executabile)<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Milioane de binare mai t\u00e2rziu. Cum s-a consolidat Linux\" src=\"\/wp-content\/uploads\/2019\/03\/57c8e67be7a57341105262c6e956594c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Tabelul 5. Caracteristicile de securitate pentru bibliotecile prezentate \u00een fig. 3 (implementarea func\u021biilor corespunz\u0103toare \u00een procente din num\u0103rul total de biblioteci)<\/i><\/p>\n<p>Exist\u0103, a\u0219adar, progres? Cu siguran\u021b\u0103 c\u0103 exist\u0103: acest lucru se observ\u0103 din statisticile pentru distribu\u021biile separate (de exemplu, <noindex><a rel=\"nofollow\" href=\"http:\/\/outflux.net\/debian\/hardening\/\">Debian<\/a><\/noindex>), precum \u0219i din tabelele prezentate anterior. Ca exemplu, \u00een fig. 6 este ar\u0103tat\u0103 implementarea mecanismelor de securitate \u00een trei distribu\u021bii succesive Ubuntu LTS 5 (am omis statistica privind protec\u021bia \u00eempotriva coliziunii stivei). Observ\u0103m c\u0103, de la o versiune la alta, tot mai multe fi\u0219iere suport\u0103 canaritul stivei, iar tot mai multe fi\u0219iere binare sunt livrate cu protec\u021bie complet\u0103 RELRO.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/d1\/ni\/or\/d1niordj1hmiklmg2-w5rsk6dla.png\"><img decoding=\"async\" alt=\"Milioane de binare mai t\u00e2rziu. Cum s-a consolidat Linux\" src=\"\/wp-content\/uploads\/2019\/03\/9130099db6d59106da8f0a0fc760410e.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<i>Fig. 6<\/i><\/p>\n<p>Din p\u0103cate, o serie de fi\u0219iere executabile din diverse distribu\u021bii nu dispun de niciuna dintre protec\u021biile men\u021bionate anterior. De exemplu, privind Ubuntu 18.04, putem observa binarul ngetty (\u00eenlocuirea getty), precum \u0219i shell-urile mksh \u0219i lksh, interpretul picolisp, pachetele nvidia-cuda-toolkit (pachet popular pentru aplica\u021bii cu accelerare GPU, cum ar fi cadrele de \u00eenv\u0103\u021bare automat\u0103) \u0219i klibc-utils. De asemenea, binarul mandos-client (instrument administrativ care permite repornirea automat\u0103 a ma\u0219inilor cu sisteme de fi\u0219iere criptate), precum \u0219i rsh-redone-client (reimplementarea rsh \u0219i rlogin) sunt livrate f\u0103r\u0103 protec\u021bia NX, de\u0219i au drepturi SUID :(. \u00cen plus, \u00een mai multe binare suid nu exist\u0103 protec\u021bia de baz\u0103, cum ar fi canaritul stivei (de exemplu, fi\u0219ierul binar Xorg.wrap din pachetul Xorg).<\/p>\n<h1>Rezumat \u0219i observa\u021bii finale<\/h1>\n<p>\n\u00cen acest articol, am eviden\u021biat c\u00e2teva caracteristici de securitate ale distribu\u021biilor moderne de Linux. Analiza a ar\u0103tat c\u0103 \u00een cea mai recent\u0103 distribu\u021bie Ubuntu LTS (18.04) s-a realizat, \u00een medie, cea mai puternic\u0103 protec\u021bie la nivel de sistem de operare \u0219i aplica\u021bii dintre distribu\u021biile cu nuclee relativ noi, cum ar fi Ubuntu 14.04, 12.04 \u0219i Debian 9. Totu\u0219i, distribu\u021biile examinate, CentOS, RHEL \u0219i OpenSUSE, din setul nostru de date, ofer\u0103 implicit un set mai dens de pachete, iar \u00een versiunile lor recente (CentOS \u0219i RHEL) au un procent mai mare de implementare a protec\u021biei \u00eempotriva coliziunii de stiv\u0103, comparativ cu concuren\u021bii pe baz\u0103 de Debian (Debian \u0219i Ubuntu). Compar\u00e2nd versiunile CentOS \u0219i RedHat, observ\u0103m \u00eembun\u0103t\u0103\u021biri considerabile \u00een implementarea canariilor de stiv\u0103 \u0219i RELRO de la versiunile 6 la 7, dar, \u00een medie, CentOS implementeaz\u0103 mai multe func\u021bii dec\u00e2t RHEL. \u00cen general, toate distribu\u021biile ar trebui s\u0103 acorde o aten\u021bie special\u0103 protec\u021biei PIE, care, cu excep\u021bia Debian 9 \u0219i Ubuntu 18.04, este implementat\u0103 \u00een mai pu\u021bin de 10% din fi\u0219ierele binare din setul nostru de date. <\/p>\n<p>\u00cen cele din urm\u0103, trebuie men\u021bionat: de\u0219i am realizat cercetarea manual, exist\u0103 multe instrumente de securitate (de exemplu, <noindex><a rel=\"nofollow\" href=\"https:\/\/cisofy.com\/lynis\/\">Lynis<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nongnu.org\/tiger\/\">Tiger<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hubblestack\/hubble\">Hubble<\/a><\/noindex>), care efectueaz\u0103 analize \u0219i ajut\u0103 la evitarea configura\u021biilor nesigure. Din p\u0103cate, chiar \u0219i o protec\u021bie puternic\u0103 \u00een configura\u021bii rezonabile nu garanteaz\u0103 absen\u021ba exploiturilor. De aceea, suntem ferm convin\u0219i c\u0103 este esen\u021bial s\u0103 asigur\u0103m <noindex><a rel=\"nofollow\" href=\"https:\/\/capsule8.com\/\">monitorizare fiabil\u0103 \u0219i prevenire a atacurilor \u00een timp real<\/a><\/noindex>, concentr\u00e2ndu-ne pe modelele de exploatare \u0219i prevenindu-le.<\/p>\n<p>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/444418\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>TL;DR. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0438\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u043c \u0437\u0430\u0449\u0438\u0442\u043d\u044b\u0435 \u0441\u0445\u0435\u043c\u044b (hardening schemes), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432 \u043f\u044f\u0442\u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430\u0445 Linux. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043c\u044b \u0432\u0437\u044f\u043b\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u044f\u0434\u0440\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u0438 \u0432\u0441\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u0438 \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0445\u0435\u043c\u044b \u0437\u0430\u0449\u0438\u0442\u044b \u0432\u043e \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430\u0445. \u0420\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u044b OpenSUSE 12.4, Debian 9, CentOS, RHEL 6.10 \u0438 7, \u0430 \u0442\u0430\u043a\u0436\u0435 Ubuntu 14.04, 12.04 \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-29880","post","type-post","status-publish","format-standard","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"TL;DR.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/milliony-binarnikov-spustya-kak-ukreplyalsya-linux\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u043e\u0432 \u0441\u043f\u0443\u0441\u0442\u044f. \u041a\u0430\u043a \u0443\u043a\u0440\u0435\u043f\u043b\u044f\u043b\u0441\u044f Linux | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"TL;DR.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/milliony-binarnikov-spustya-kak-ukreplyalsya-linux\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:32:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:32:27+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Milioane de binare mai t\u00e2rziu. Cum a fost \u00eent\u0103rit Linux | ProHoster","description":"TL;DR.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/milliony-binarnikov-spustya-kak-ukreplyalsya-linux","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u043e\u0432 \u0441\u043f\u0443\u0441\u0442\u044f. \u041a\u0430\u043a \u0443\u043a\u0440\u0435\u043f\u043b\u044f\u043b\u0441\u044f Linux | ProHoster","og:description":"TL;DR.","og:url":"https:\/\/prohoster.info\/ro\/blog\/milliony-binarnikov-spustya-kak-ukreplyalsya-linux","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:32:27+00:00","article:modified_time":"2019-10-31T18:32:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"29880","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-20 22:50:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:46:28","updated":"2026-01-20 22:50:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/29880","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=29880"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/29880\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=29880"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=29880"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=29880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}