{"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\/de\/blog\/milliony-binarnikov-spustya-kak-ukreplyalsya-linux","title":{"rendered":"Millionen von Bin\u00e4rdateien sp\u00e4ter. Wie Linux gest\u00e4rkt wurde","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Millionen von Bin\u00e4rdateien sp\u00e4ter. Wie Linux gest\u00e4rkt wurde\" src=\"\/wp-content\/uploads\/2019\/03\/bf51e5698530d4a6a44ff97f542a2a87.png\" style=\"display:block;margin: 0 auto;\" \/><b>TL;DR<\/b>. In diesem Artikel untersuchen wir die Hardening-Schemata, die standardm\u00e4\u00dfig in f\u00fcnf beliebten Linux-Distributionen funktionieren. F\u00fcr jede haben wir die Standard-Kernel-Konfiguration verwendet, alle Pakete installiert und die Schutzmechanismen in den eingebetteten Bin\u00e4rdateien analysiert. Betrachtet werden die Distributionen OpenSUSE 12.4, Debian 9, CentOS, RHEL 6.10 und 7 sowie Ubuntu 14.04, 12.04 und 18.04 LTS. <\/p>\n<p>Die Ergebnisse best\u00e4tigen, dass selbst grundlegende Schemata wie Stack Canary und position-unabh\u00e4ngiger Code noch nicht von allen verwendet werden. Die Situation ist bei Compilern noch schlimmer, wenn es um den Schutz gegen Schwachstellen wie Stack Clash geht, die nach der Ver\u00f6ffentlichung im Januar in den Fokus gerieten <noindex><a rel=\"nofollow\" href=\"https:\/\/capsule8.com\/blog\/exploiting-systemd-journald-part-1\/\">von Schwachstellen in systemd<\/a><\/noindex>. Aber es ist nicht alles hoffnungslos. Ein erheblicher Teil der Bin\u00e4rdateien implementiert grundlegende Schutzmethoden, und ihre Anzahl w\u00e4chst von Version zu Version. <\/p>\n<p>Die \u00dcberpr\u00fcfung zeigte, dass die meisten Schutzmethoden in Ubuntu 18.04 auf Betriebssystem- und Anwendungsebene umgesetzt sind, gefolgt von Debian 9. Andererseits haben auch OpenSUSE 12.4, CentOS 7 und RHEL 7 grundlegende Schutzmechanismen implementiert, wobei der Schutz vor Stack Clash bei einem viel dichteren Standardpaketangebot noch umfassender ausgepr\u00e4gt ist.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1>Einf\u00fchrung<\/h1>\n<p>\nEs ist schwierig, eine hohe Softwarequalit\u00e4t zu gew\u00e4hrleisten. Trotz der Vielzahl an fortgeschrittenen Werkzeugen f\u00fcr die statische Code-Analyse und die dynamische Analyse zur Laufzeit sowie des erheblichen Fortschritts bei der Entwicklung von Compilern und Programmiersprachen leidet moderne Software weiterhin unter Schwachstellen, die st\u00e4ndig von Angreifern ausgenutzt werden. Die Situation ist in \u00d6kosystemen, die veralteten Code enthalten, noch schlimmer. In solchen F\u00e4llen stehen wir nicht nur vor dem immerw\u00e4hrenden Problem der Suche nach potenziell exploitable Bugs, sondern sind auch durch strenge Vorgaben zur R\u00fcckw\u00e4rtskompatibilit\u00e4t eingeschr\u00e4nkt, die h\u00e4ufig verlangen, dass wir rudiment\u00e4ren, noch schlimmer, verwundbaren oder fehlerhaften Code beibehalten.<\/p>\n<p>Hier kommen Schutz- oder Hardening-Methoden ins Spiel. Einige Arten von Fehlern k\u00f6nnen wir nicht verhindern, aber wir k\u00f6nnen das Leben der Angreifer erschweren und das Problem teilweise l\u00f6sen, indem wir die Ausnutzung verhindern oder behindern <i>der Ausnutzung<\/i> diese Fehler. Dieser Schutz wird in allen modernen Betriebssystemen verwendet, jedoch unterscheiden sich die Methoden stark in Bezug auf Komplexit\u00e4t, Effizienz und Leistung: von Stack Canary und <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Address_space_layout_randomization\">ASLR<\/a><\/noindex> bis hin zu umfassenden Schutzma\u00dfnahmen <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Control-flow_integrity\">CFI<\/a><\/noindex> und <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Return-oriented_programming\">ROP<\/a><\/noindex>. In diesem Artikel werden wir die Schutzmethoden untersuchen, die in den beliebtesten Linux-Distributionen in der Standardkonfiguration verwendet werden, und die Eigenschaften der Bin\u00e4rdateien analysieren, die \u00fcber die Paketverwaltungssysteme jeder Distribution verteilt werden.<\/p>\n<h3>CVE und Sicherheit<\/h3>\n<p>\nWir haben alle Artikel mit Titeln wie \u201eDie anf\u00e4lligsten Anwendungen des Jahres\u201c oder \u201eDie anf\u00e4lligsten Betriebssysteme\u201c gesehen. \u00dcblicherweise wird dort die Statistik zu den Gesamtzahlen der Schwachstellendaten ver\u00f6ffentlicht, die vom Typ <noindex><a rel=\"nofollow\" href=\"https:\/\/cve.mitre.org\/\">CVE (Common Vulnerability and Exposures)<\/a><\/noindex>, die aus <noindex><a rel=\"nofollow\" href=\"https:\/\/nvd.nist.gov\/\">der National Vulnerability Database (NVD)<\/a><\/noindex> ab <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nist.gov\/\">NIST<\/a><\/noindex> und anderen Quellen stammen. Anschlie\u00dfend werden diese Anwendungen oder Betriebssysteme nach der Anzahl der CVEs eingestuft. Leider sind CVEs, obwohl sie sehr n\u00fctzlich sind, um Probleme zu verfolgen und Anbieter und Benutzer zu informieren, wenig aussagekr\u00e4ftig \u00fcber die tats\u00e4chliche Sicherheit der Software.<\/p>\n<p>Zum Beispiel betrachten wir die Gesamtzahl der CVEs der letzten vier Jahre f\u00fcr den Linux-Kernel und f\u00fcnf der beliebtesten Server-Distributionen, n\u00e4mlich Ubuntu, Debian, Red Hat Enterprise Linux und OpenSUSE.<\/p>\n<p><img decoding=\"async\" alt=\"Millionen von Bin\u00e4rdateien sp\u00e4ter. Wie Linux gest\u00e4rkt wurde\" src=\"\/wp-content\/uploads\/2019\/03\/16d74634f010e340aedbce441513e3f8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Abb. 1<\/i><\/p>\n<p>Was sagt uns dieses Diagramm? Bedeutet eine h\u00f6here Anzahl an CVEs, dass eine Distribution anf\u00e4lliger ist als eine andere? Die Antwort ist nein. Beispielsweise werden Sie in diesem Artikel sehen, dass in Debian strengere Schutzmechanismen implementiert sind im Vergleich zu OpenSUSE oder RedHat Linux, und dennoch hat Debian mehr CVEs. Das bedeutet jedoch nicht unbedingt, dass die Sicherheit geschw\u00e4cht ist: Selbst das Vorhandensein von CVEs sagt nicht aus, ob die Schwachstelle <i>ausnutzbar<\/i>. Die Schwerepunkte geben einen Hinweis darauf, wie <i>wahrscheinlich<\/i> eine Ausnutzung der Schwachstelle ist, aber letztendlich h\u00e4ngt die Ausnutzbarkeit stark vom Schutz in den betroffenen Systemen sowie von den Ressourcen und F\u00e4higkeiten der Angreifer ab. Dar\u00fcber hinaus sagt das Fehlen von CVE-Berichten nichts \u00fcber andere <i>nicht registrierte oder unbekannte<\/i> Sicherheitsanf\u00e4lligkeiten. Der Unterschied in CVE kann nicht durch die Qualit\u00e4t der Software erkl\u00e4rt werden, sondern durch andere Faktoren, einschlie\u00dflich der Ressourcen, die f\u00fcr Tests bereitgestellt werden, oder der Gr\u00f6\u00dfe der Benutzerbasis. In unserem Beispiel k\u00f6nnte die h\u00f6here Anzahl an CVEs in Debian einfach darauf hinweisen, dass Debian mehr Softwarepakete bereitstellt. <\/p>\n<p>Nat\u00fcrlich bietet das CVE-System n\u00fctzliche Informationen, die es erm\u00f6glichen, entsprechende Schutzma\u00dfnahmen zu entwickeln. Je besser wir die Ursachen von Programmfehlern verstehen, desto einfacher ist es, m\u00f6gliche Ausnutzungsarten zu identifizieren und entsprechende Mechanismen zu entwickeln, <i>um zu erkennen und zu reagieren.<\/i>. In Abb.\u00a02 sind die Kategorien von Sicherheitsanf\u00e4lligkeiten f\u00fcr alle Distributionen in den letzten vier Jahren dargestellt (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.cvedetails.com\/top-50-products.php\">Quelle<\/a><\/noindex>). Es ist sofort ersichtlich, dass die meisten CVEs in die folgenden Kategorien fallen: Denial of Service (DoS), Codeausf\u00fchrung, Puffer\u00fcberlauf, Speicherbesch\u00e4digung, Datenlecks (Exfiltration) und Privilegieneskalation. Obwohl viele CVEs mehrfach in verschiedenen Kategorien erfasst sind, zeigen sich insgesamt dieselben Probleme Jahr f\u00fcr Jahr. Im n\u00e4chsten Teil des Artikels werden wir den Einsatz verschiedener Schutzmechanismen bewerten, um die genannten Sicherheitsanf\u00e4lligkeiten zu verhindern.<\/p>\n<p><img decoding=\"async\" alt=\"Millionen von Bin\u00e4rdateien sp\u00e4ter. Wie Linux gest\u00e4rkt wurde\" src=\"\/wp-content\/uploads\/2019\/03\/45948bc64673540cfb3e1774c3247634.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Abb. 2<\/i><\/p>\n<h3>Aufgaben<\/h3>\n<p>\nIn diesem Artikel beabsichtigen wir, die folgenden Fragen zu beantworten:<\/p>\n<ul>\n<li>Wie sicher sind die verschiedenen Linux-Distributionen? Welche Schutzmechanismen existieren im Kern und in den Anwendungen des Benutzerraums?\n<\/li>\n<li>Wie hat sich die Akzeptanz von Schutzmechanismen im Laufe der Zeit f\u00fcr verschiedene Distributionen ver\u00e4ndert?\n<\/li>\n<li>Wie sehen die durchschnittlichen Abh\u00e4ngigkeiten von Paketen und Bibliotheken f\u00fcr jede Distribution aus?\n<\/li>\n<li>Welche Schutzma\u00dfnahmen sind f\u00fcr jede Bin\u00e4rdatei implementiert?<\/li>\n<\/ul>\n<p><\/p>\n<h3>Auswahl der Distributionen<\/h3>\n<p>\nEs stellt sich heraus, dass es schwierig ist, genaue Statistiken \u00fcber Installationen von Distributionen zu finden, da in den meisten F\u00e4llen die Anzahl der Downloads nicht die Anzahl der tats\u00e4chlichen Installationen angibt. Dennoch bilden Unix-Varianten die Mehrheit der Serversysteme (auf Webservern 69,2%, laut <noindex><a rel=\"nofollow\" href=\"https:\/\/w3techs.com\/technologies\/overview\/operating_system\/all\">Statistik<\/a><\/noindex> W3techs und anderen Quellen), und ihr Anteil w\u00e4chst st\u00e4ndig. Daher haben wir uns f\u00fcr unsere Untersuchung auf Distributionen konzentriert, die \u201eout of the box\u201c auf der Plattform <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/\">Google Cloud<\/a><\/noindex>verf\u00fcgbar sind. Insbesondere w\u00e4hlten wir die folgenden Betriebssysteme:<\/p>\n<p>Distribution\/Version<br \/>\nKern<br \/>\nBuild<\/p>\n<p>OpenSUSE 12.4<br \/>\n4.12.14-95.3-default<br \/>\n#1 SMP Wed Dec 5 06:00:48 UTC 2018 (63a8d29)<\/p>\n<p>Debian 9 (stretch)<br \/>\n4.9.0-8-amd64<br \/>\n#1 SMP Debian 4.9.130-2 (2018-10-27)<\/p>\n<p>CentOS 6.10<br \/>\n2.6.32-754.10.1.el6.x86_64<br \/>\n#1 SMP Tue Jan 15 17:07:28 UTC 2019<\/p>\n<p>CentOS 7<br \/>\n3.10.0-957.5.1.el7.x86_64<br \/>\n#1 SMP Fri Feb 1 14:54:57 UTC 2019<\/p>\n<p>Red Hat Enterprise Linux Server 6.10 (Santiago)<br \/>\n2.6.32-754.9.1.el6.x86_64<br \/>\n#1 SMP Wed Nov 21 15:08:21 EST 2018<\/p>\n<p>Red Hat Enterprise Linux Server 7.6 (Maipo)<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>Tabelle 1<\/i> <\/p>\n<h1>Analyse<\/h1>\n<p>\nWir werden die Standardkernelkonfiguration sowie die Eigenschaften der Pakete untersuchen, die \u00fcber den Paketmanager jeder Distribution standardm\u00e4\u00dfig verf\u00fcgbar sind. Dadurch konzentrieren wir uns ausschlie\u00dflich auf Pakete aus den Standardspiegeln jeder Distribution und ignorieren Pakete aus instabilen Repositories (z. B. aus den \u2018testing\u2019-Spiegeln in Debian) sowie Drittanbieterpakete (z. B. Nvidia-Pakete aus den Standardspiegeln). Au\u00dferdem betrachten wir keine benutzerdefinierten Kernels oder Konfigurationen mit erh\u00f6htem Schutz.<\/p>\n<h3>Analyse der Kernelkonfiguration<\/h3>\n<p>\nWir haben ein Analyse-Skript basierend auf <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/a13xp0p0v\/kconfig-hardened-check\">dem freien Kconfig-Checker<\/a><\/noindex>angewendet. Wir betrachten die Standard-Schutzparameter der genannten Distributionen und vergleichen sie mit der Liste von <noindex><a rel=\"nofollow\" href=\"http:\/\/kernsec.org\/wiki\/index.php\/Kernel_Self_Protection_Project\/Recommended_Settings\">dem Kernel Self-Protection Project<\/a><\/noindex> (KSPP). F\u00fcr jeden Konfigurationsparameter beschreibt Tabelle 2 die gew\u00fcnschte Einstellung: Ein H\u00e4kchen steht f\u00fcr Distributionen, die den Empfehlungen des KSSP entsprechen (eine Erkl\u00e4rung der Begriffe siehe <noindex><a rel=\"nofollow\" href=\"https:\/\/capsule8.com\/blog\/kernel-configuration-glossary\/\">hier<\/a><\/noindex>; in zuk\u00fcnftigen Artikeln werden wir erl\u00e4utern, wie viele dieser Schutzma\u00dfnahmen entstanden sind und wie man das System in deren Abwesenheit kompromittiert).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/dx\/oh\/o0\/dxoho0z-lifjcybajszqb-aiirq.png\"><img decoding=\"async\" alt=\"Millionen von Bin\u00e4rdateien sp\u00e4ter. Wie Linux gest\u00e4rkt wurde\" src=\"\/wp-content\/uploads\/2019\/03\/b1a42826f4afc78a2b25d158100b2ba4.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><img decoding=\"async\" alt=\"Millionen von Bin\u00e4rdateien sp\u00e4ter. Wie Linux gest\u00e4rkt wurde\" src=\"\/wp-content\/uploads\/2019\/03\/2177579e65e4fe6bb320903756a04b9b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIm Allgemeinen verf\u00fcgen neue Kernel \u00fcber strengere Standardkonfigurationen. Zum Beispiel haben CentOS 6.10 und RHEL 6.10 auf Kernel 2.6.32 die meisten kritischen Funktionen, die in neuen Kerneln implementiert wurden, nicht, wie <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Supervisor_Mode_Access_Prevention\">SMAP<\/a><\/noindex>, strikte RWX-Berechtigungen, Adressrandomisierung oder der Schutz von copy2usr. Es ist anzumerken, dass viele der Konfigurationsoptionen aus der Tabelle in \u00e4lteren Kernelversionen fehlen und in der Realit\u00e4t nicht anwendbar sind \u2013 in der Tabelle wird das trotzdem als fehlender angemessener Schutz angegeben. Ebenso wird, wenn ein Konfigurationsparameter in dieser Version fehlt und f\u00fcr die Sicherheit deaktiviert werden muss, dies als sinnvolle Konfiguration angesehen. <\/p>\n<p>Ein weiterer Punkt bei der Interpretation der Ergebnisse: Einige Kernel-Konfigurationen, die die Angriffsfl\u00e4che erh\u00f6hen, k\u00f6nnen gleichzeitig f\u00fcr die Sicherheit verwendet werden. Solche Beispiele umfassen uprobes und kprobes, Kernel-Module und BPF\/eBPF. Unsere Empfehlung ist, die oben genannten Mechanismen zur Gew\u00e4hrleistung des tats\u00e4chlichen Schutzes zu nutzen, da sie nicht trivial in der Anwendung sind und deren Ausnutzung voraussetzt, dass b\u00f6swillige Akteure bereits im System Fu\u00df gefasst haben. Aber wenn diese Optionen aktiviert sind, sollte der Systemadministrator aktiv die Missbr\u00e4uche \u00fcberwachen.<\/p>\n<p>Wenn wir die Eintr\u00e4ge in Tabelle 2 weiter untersuchen, sehen wir, dass moderne Kernel mehrere Optionen zum Schutz vor der Ausnutzung solcher Schwachstellen wie Informationsleck und Stack-\/Heap-Overflow bieten. Allerdings stellen wir fest, dass selbst die neuesten beliebten Distributionen noch keinen komplexeren Schutz implementiert haben (z. B. mit Patches <noindex><a rel=\"nofollow\" href=\"https:\/\/grsecurity.net\/\">grsecurity<\/a><\/noindex>) oder modernen Schutz gegen Code-Reuse-Angriffe (wie <noindex><a rel=\"nofollow\" href=\"http:\/\/www.cs.columbia.edu\/~theofilos\/files\/slides\/krx.pdf\">die Kombination von Randomisierung mit R^X-Schemata f\u00fcr Code<\/a><\/noindex>). Noch schlimmer ist, dass selbst diese fortschrittlicheren Schutzma\u00dfnahmen nicht vor dem gesamten Spektrum von Angriffen sch\u00fctzen. Daher ist es f\u00fcr Systemadministratoren von gr\u00f6\u00dfter Bedeutung, sinnvolle Konfigurationen mit L\u00f6sungen zu erg\u00e4nzen, die die Erkennung und Verhinderung von Exploits zur Laufzeit anbieten.<\/p>\n<h3>Anwendungsanalyse<\/h3>\n<p>\nEs ist nicht verwunderlich, dass verschiedene Distributionen unterschiedliche Paketmerkmale, Compiler-Optionen, Bibliotheksabh\u00e4ngigkeiten usw. aufweisen. Unterschiede bestehen sogar bei <noindex><a rel=\"nofollow\" href=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/1\/1b\/Linux_Distribution_Timeline.svg\">verwandten<\/a><\/noindex> Distributionen und Paketen mit wenigen Abh\u00e4ngigkeiten (z. B. coreutils in Ubuntu oder Debian). Um die Unterschiede zu bewerten, haben wir alle verf\u00fcgbaren Pakete heruntergeladen, ihren Inhalt extrahiert und die Bin\u00e4rdateien sowie Abh\u00e4ngigkeiten analysiert. F\u00fcr jedes Paket haben wir andere Pakete verfolgt, von denen es abh\u00e4ngt, und f\u00fcr jede Bin\u00e4rdatei die Abh\u00e4ngigkeiten nachverfolgt. In diesem Abschnitt fassen wir die Ergebnisse kurz zusammen.<\/p>\n<h4>Distributionen<\/h4>\n<p>\nInsgesamt haben wir 361\u00a0556 Pakete f\u00fcr alle Distributionen heruntergeladen, indem wir nur Pakete von den Standard-Servern extrahiert haben. Pakete ohne ausf\u00fchrbare ELF-Dateien, wie Quellcodes, Schriftarten usw., wurden ignoriert. Nach der Filterung blieben 129\u00a0569 Pakete \u00fcbrig, die insgesamt 584\u00a0457 Bin\u00e4rdateien enthielten. Die Verteilung der Pakete und Dateien auf die Distributionen ist in Abbildung 3 dargestellt.<\/p>\n<p><img decoding=\"async\" alt=\"Millionen von Bin\u00e4rdateien sp\u00e4ter. Wie Linux gest\u00e4rkt wurde\" src=\"\/wp-content\/uploads\/2019\/03\/a24975fba7413ac8069c07412e5476cc.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Abbildung 3<\/i><\/p>\n<p>Es ist zu erkennen, dass neuere Distributionen mehr Pakete und Bin\u00e4rdateien enthalten, was sinnvoll ist. Dabei enthalten die Pakete von Ubuntu und Debian deutlich mehr Bin\u00e4rdateien (sowohl ausf\u00fchrbare Dateien als auch dynamische Module und Bibliotheken) als CentOS, SUSE und RHEL, was potenziell die Angriffsfl\u00e4che von Ubuntu und Debian erh\u00f6ht (es sei angemerkt, dass die Zahlen alle Bin\u00e4rdateien aller Versionen eines Pakets widerspiegeln, d.h. einige Dateien werden mehrere Male analysiert). Dies ist insbesondere wichtig, wenn man die Abh\u00e4ngigkeiten zwischen den Paketen ber\u00fccksichtigt. Eine Schwachstelle in der Bin\u00e4rdatei eines Pakets kann zahlreiche Teile des \u00d6kosystems betreffen, da eine verwundbare Bibliothek alle Bin\u00e4rdateien beeinflussen kann, die sie importieren. Lassen Sie uns als Ausgangspunkt die Verteilung der Anzahl der Abh\u00e4ngigkeiten pro Paket in verschiedenen Betriebssystemen betrachten:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/ii\/e3\/e5\/iie3e5-ei26ezg5yvcyvtzqzl80.png\"><img decoding=\"async\" alt=\"Millionen von Bin\u00e4rdateien sp\u00e4ter. Wie Linux gest\u00e4rkt wurde\" src=\"\/wp-content\/uploads\/2019\/03\/c6570e643d92103c87659e61f5d395a6.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<i>Abbildung 4<\/i> <\/p>\n<p>Fast alle Distributionen haben bei 60 % der Pakete mindestens 10 Abh\u00e4ngigkeiten. Dar\u00fcber hinaus haben einige Pakete deutlich mehr Abh\u00e4ngigkeiten (\u00fcber 100). Das Gleiche gilt f\u00fcr die umgekehrten Abh\u00e4ngigkeiten der Pakete: Wie erwartet werden mehrere Pakete von vielen anderen Paketen in der Distribution verwendet, sodass Schwachstellen in diesen wenigen ausgew\u00e4hlten Paketen ein hohes Risiko darstellen. Als Beispiel sind in der folgenden Tabelle 20 Pakete mit den meisten umgekehrten Abh\u00e4ngigkeiten in SLES, CentOS 7, Debian 9 und Ubuntu 18.04 aufgef\u00fchrt (in jeder Zelle ist das Paket und die Anzahl der umgekehrten Abh\u00e4ngigkeiten angegeben).<\/p>\n<p><img decoding=\"async\" alt=\"Millionen von Bin\u00e4rdateien sp\u00e4ter. Wie Linux gest\u00e4rkt wurde\" src=\"\/wp-content\/uploads\/2019\/03\/0aa544db8be1af7bffe21b6314537e18.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Tabelle 3<\/i><\/p>\n<p>Eine interessante Tatsache. Obwohl alle analysierten Betriebssysteme f\u00fcr die Architektur x86_64 entwickelt wurden und die meisten Pakete die Architektur als x86_64 und x86 definiert haben, enthalten Pakete oft Bin\u00e4rdateien f\u00fcr andere Architekturen, wie in Abbildung 5 dargestellt.<\/p>\n<p><img decoding=\"async\" alt=\"Millionen von Bin\u00e4rdateien sp\u00e4ter. Wie Linux gest\u00e4rkt wurde\" src=\"\/wp-content\/uploads\/2019\/03\/b40f607e0c2f169bd1df21bd9994de8c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Abbildung 5<\/i><\/p>\n<p>Im n\u00e4chsten Abschnitt werden wir uns eingehender mit den Eigenschaften der analysierten Bin\u00e4rdateien befassen.<\/p>\n<h4>Statistik zur Sicherheit von Bin\u00e4rdateien<\/h4>\n<p>\nAls absolutes Minimum sollten Sie die grundlegenden Schutzoptionen f\u00fcr vorhandene Bin\u00e4rdateien untersuchen. Einige Linux-Distributionen werden mit Skripten geliefert, die solche \u00dcberpr\u00fcfungen durchf\u00fchren. Zum Beispiel gibt es in Debian\/Ubuntu ein solches Skript. Hier ist ein Beispiel f\u00fcr seine Funktionsweise:<\/p>\n<pre><code class=\"bash\">$ hardening-check $(which docker)\n\/usr\/bin\/docker:\n Position Independent Executable: ja\n Stack protected: ja\n Fortify Source-Funktionen: nein, nur ungesch\u00fctzte Funktionen gefunden!\n Read-only relocations: ja\n Immediate binding: ja<\/code><\/pre>\n<p>\nDas Skript \u00fcberpr\u00fcft f\u00fcnf <noindex><a rel=\"nofollow\" href=\"http:\/\/manpages.ubuntu.com\/manpages\/trusty\/man1\/hardening-check.1.html\">Schutzfunktionen<\/a><\/noindex>:<\/p>\n<ul>\n<li>Position Independent Executable (PIE): Gibt an, ob der Textabschnitt des Programms im Speicher verschoben werden kann, um Randomisierung zu erreichen, wenn ASLR im Kernel aktiviert ist.\n<\/li>\n<li>Stack Protected: Sind Stack-Canarys aktiviert, um vor Stack-Kollision-Angriffen zu sch\u00fctzen?\n<\/li>\n<li>Fortify Source: Werden unsichere Funktionen (z. B. strcpy) durch ihre sichereren Pendants ersetzt, und werden zur Laufzeit gepr\u00fcfte Aufrufe durch nicht gepr\u00fcfte Pendants (z. B. memcpy anstelle von __memcpy_chk) ersetzt?\n<\/li>\n<li>Read-only relocations (RELRO): Sind die Eintr\u00e4ge in der Relocation-Tabelle als \"nur lesbar\" gekennzeichnet, wenn sie vor dem Beginn der Ausf\u00fchrung wirksam wurden?\n<\/li>\n<li>Immediate binding (sofortige Bindung): Erlaubt der Laufzeitlinker alle Relocation vor Beginn der Programmausf\u00fchrung (das entspricht vollem RELRO).<\/li>\n<\/ul>\n<p>\nReichen die oben genannten Mechanismen aus? Leider nicht. Es sind Umgehungsmethoden f\u00fcr alle oben genannten Schutzma\u00dfnahmen bekannt, aber je strenger der Schutz ist, desto h\u00f6her ist die H\u00fcrde f\u00fcr den Angreifer. Zum Beispiel sind <noindex><a rel=\"nofollow\" href=\"https:\/\/www.usenix.org\/system\/files\/conference\/usenixsecurity15\/sec15-paper-di-frederico.pdf\">Umgehungsmethoden f\u00fcr RELRO<\/a><\/noindex> schwieriger anzuwenden, wenn PIE und sofortige Bindung aktiv sind. Entsprechend erfordert vollst\u00e4ndiges ASLR zus\u00e4tzliche Arbeit, um einen funktionierenden Exploit zu erstellen. Allerdings sind raffinierte Angreifer bereits gewappnet, um solche Schutzma\u00dfnahmen zu \u00fcberwinden: deren Fehlen beschleunigt im Grunde den Bruch. Daher ist es von \u00e4u\u00dferst wichtiger Bedeutung, dass diese Ma\u00dfnahmen als notwendig betrachtet werden. <i>Mindestsatz<\/i>. <\/p>\n<p>Wir wollten untersuchen, wie viele Bin\u00e4rdateien in den betrachteten Distributionen durch diese und drei weitere Methoden gesch\u00fctzt sind:<\/p>\n<ul>\n<li>Der nicht ausf\u00fchrbare Bit (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Executable_space_protection\">NX<\/a><\/noindex>) verhindert die Ausf\u00fchrung in einem Bereich, der nicht ausf\u00fchrbar sein sollte, beispielsweise im Stack usw.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Rpath\">RPATH\/RUNPATH<\/a><\/noindex> bezeichnet den Ausf\u00fchrungspfad, der vom dynamischen Loader verwendet wird, um die entsprechenden Bibliotheken zu finden. Der erste ist <i>obligatorisch<\/i> F\u00fcr jedes moderne System: Das Fehlen davon erm\u00f6glicht es Angreifern, willk\u00fcrlich den Payload in den Speicher zu schreiben und ihn unver\u00e4ndert auszuf\u00fchren. F\u00fcr den zweiten Fall helfen falsche Ausf\u00fchrungswegkonfigurationen, unsicheren Code einzuf\u00fcgen, was zu verschiedenen Problemen f\u00fchren kann (zum Beispiel, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nth-dimension.org.uk\/pub\/BTL.pdf\">Privilegieneskalation<\/a><\/noindex>, sowie <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.debian.org\/RpathIssue\">andere Probleme<\/a><\/noindex>).<\/li>\n<li>Der Schutz vor Stack-Kollisionen bietet Schutz vor Angriffen, die den Stack in andere Speicherbereiche (wie den Heap) \u00fcbertragen. Angesichts der j\u00fcngsten Exploits, die sich auf <noindex><a rel=\"nofollow\" href=\"https:\/\/capsule8.com\/blog\/exploiting-systemd-journald-part-1\/\">Heap-Kollisionsanf\u00e4lligkeiten in systemd<\/a><\/noindex>, hielten wir es f\u00fcr angebracht, diesen Mechanismus in unser Datenset aufzunehmen.<\/li>\n<\/ul>\n<p>\nAlso, ohne weitere Umschweife, kommen wir zu den Zahlen. Die Tabellen 4 und 5 enthalten eine Zusammenfassung der Analyse ausf\u00fchrbarer Dateien und Bibliotheken verschiedener Distributionen.<\/p>\n<ul>\n<li>Wie man erkennen kann, ist der NX-Schutz \u00fcberall implementiert, mit wenigen Ausnahmen. Besonders auff\u00e4llig ist der etwas niedrigere Einsatz in den Distributionen Ubuntu und Debian im Vergleich zu CentOS, RHEL und OpenSUSE.\n<\/li>\n<li>Stack-Canary sind vielerorts nicht vorhanden, insbesondere in Distributionen mit alten Kernen. Ein gewisser Fortschritt ist in den letzten Distributionen von CentOS, RHEL, Debian und Ubuntu zu beobachten.\n<\/li>\n<li>Mit Ausnahme von Debian und Ubuntu 18.04 ist die Unterst\u00fctzung f\u00fcr PIE in den meisten Distributionen schlecht.\n<\/li>\n<li>Der Schutz vor Stack-Kollisionen ist in OpenSUSE, CentOS 7 und RHEL 7 schwach implementiert und praktisch nicht vorhanden in den anderen.\n<\/li>\n<li>Alle Distributionen mit modernen Kernen haben eine gewisse Unterst\u00fctzung f\u00fcr RELRO, wobei Ubuntu 18.04 an der Spitze steht, gefolgt von Debian.<\/li>\n<\/ul>\n<p>\nWie bereits erw\u00e4hnt, sind die Metriken in dieser Tabelle Durchschnittswerte \u00fcber alle Versionen der Bin\u00e4rdatei. Betrachtet man nur die letzten Versionen der Dateien, werden die Zahlen anders sein (zum Beispiel siehe <noindex><a rel=\"nofollow\" href=\"http:\/\/outflux.net\/debian\/hardening\/\">Fortschritt von Debian bei der Einf\u00fchrung von PIE<\/a><\/noindex>). Au\u00dferdem pr\u00fcfen die meisten Distributionen bei der Statistikberechnung in der Regel nur den Schutz einiger Funktionen im Bin\u00e4rcode, w\u00e4hrend unsere Analyse den tats\u00e4chlichen Prozentsatz der geh\u00e4rteten Funktionen angibt. Daher, wenn im Bin\u00e4rcode 5 von 50 Funktionen gesch\u00fctzt sind, geben wir ihm eine Bewertung von 0,1, was 10% geh\u00e4rtete Funktionen entspricht.<\/p>\n<p><img decoding=\"async\" alt=\"Millionen von Bin\u00e4rdateien sp\u00e4ter. Wie Linux gest\u00e4rkt wurde\" src=\"\/wp-content\/uploads\/2019\/03\/82e881c5ba2a3911f3a0ffae1a3475f4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Tabelle 4. Schutzmerkmale f\u00fcr ausf\u00fchrbare Dateien, die in Abb. 3 gezeigt werden (Umsetzung der entsprechenden Funktionen in Prozent der Gesamtzahl der ausf\u00fchrbaren Dateien)<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Millionen von Bin\u00e4rdateien sp\u00e4ter. Wie Linux gest\u00e4rkt wurde\" src=\"\/wp-content\/uploads\/2019\/03\/57c8e67be7a57341105262c6e956594c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Tabelle 5. Eigenschaften des Schutzes f\u00fcr Bibliotheken, die in Abb. 3 gezeigt werden (Implementierung der entsprechenden Funktionen in Prozent der Gesamtzahl der Bibliotheken)<\/i><\/p>\n<p>Gibt es Fortschritt? Definitiv: Das zeigt sich in der Statistik zu einzelnen Distributionen (zum Beispiel, <noindex><a rel=\"nofollow\" href=\"http:\/\/outflux.net\/debian\/hardening\/\">Debian<\/a><\/noindex>), sowie in den oben genannten Tabellen. Als Beispiel wird in Abb. 6 die Implementierung von Schutzmechanismen in drei aufeinanderfolgenden Ubuntu LTS 5 Distributionen gezeigt (wir haben die Statistiken zum Schutz vor Stack-Kollisionen ausgeschlossen). Wir stellen fest, dass von Version zu Version immer mehr Dateien Stack-Canaries unterst\u00fctzen und au\u00dferdem zunehmend mehr Bin\u00e4rdateien mit umfassendem RELRO-Schutz geliefert werden.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/d1\/ni\/or\/d1niordj1hmiklmg2-w5rsk6dla.png\"><img decoding=\"async\" alt=\"Millionen von Bin\u00e4rdateien sp\u00e4ter. Wie Linux gest\u00e4rkt wurde\" src=\"\/wp-content\/uploads\/2019\/03\/9130099db6d59106da8f0a0fc760410e.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<i>Abb. 6<\/i><\/p>\n<p>Leider verf\u00fcgen einige ausf\u00fchrbare Dateien in verschiedenen Distributionen nach wie vor \u00fcber keinen der oben genannten Schutzmechanismen. Wenn man sich beispielsweise Ubuntu 18.04 anschaut, fallen die Bin\u00e4rdatei ngetty (Ersatz f\u00fcr getty), die Shells mksh und lksh, der Interpreter picolisp sowie die Pakete nvidia-cuda-toolkit (ein beliebtes Paket f\u00fcr GPU-beschleunigte Anwendungen wie Machine-Learning-Frameworks) und klibc-utils auf. Ebenso werden die Bin\u00e4rdatei mandos-client (ein Verwaltungstool, das automatisch Maschinen mit verschl\u00fcsselten Dateisystemen neu starten kann) und der rsh-redone-client (eine Neuimplementierung von rsh und rlogin) ohne NX-Schutz geliefert, obwohl sie SUID-Rechte haben. Dar\u00fcber hinaus fehlen in mehreren SUID-Bin\u00e4rdateien grundlegende Schutzma\u00dfnahmen wie Stack-Canaries (zum Beispiel die Bin\u00e4rdatei Xorg.wrap aus dem Xorg-Paket).<\/p>\n<h1>Zusammenfassung und abschlie\u00dfende Anmerkungen<\/h1>\n<p>\nIn diesem Artikel haben wir mehrere Sicherheitsmerkmale moderner Linux-Distributionen hervorgehoben. Die Analyse hat gezeigt, dass in der neuesten Version von Ubuntu LTS (18.04) im Durchschnitt der st\u00e4rkste Schutz auf Betriebssystem- und Anwendungsebene unter den Distributionen mit relativ neuen Kernen implementiert ist, wie z.B. Ubuntu 14.04, 12.04 und Debian 9. Die betrachteten Distributionen CentOS, RHEL und OpenSUSE bieten in unserem Datensatz standardm\u00e4\u00dfig ein dichteres Paketangebot, und die neuesten Versionen (CentOS und RHEL) weisen einen h\u00f6heren Implementierungsanteil f\u00fcr Stack-Kollision-Schutz im Vergleich zu Debians Wettbewerbern (Debian und Ubuntu) auf. Beim Vergleich der Versionen CentOS und RedHat stellen wir fest, dass es von Version 6 zu 7 erhebliche Verbesserungen bei der Implementierung von Stack-Cookies und RELRO gibt, aber insgesamt enth\u00e4lt CentOS mehr Funktionen als RHEL. Insgesamt sollten alle Distributionen der PIE-Schutz (Position Independent Executable) besondere Aufmerksamkeit schenken, der, mit Ausnahme von Debian 9 und Ubuntu 18.04, in weniger als 10 % der Bin\u00e4rdateien unseres Datensatzes implementiert ist. <\/p>\n<p>Abschlie\u00dfend ist zu beachten: Obwohl wir die Untersuchung manuell durchgef\u00fchrt haben, gibt es zahlreiche Sicherheitswerkzeuge (z.B. <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>), die Analysen durchf\u00fchren und helfen, unsichere Konfigurationen zu vermeiden. Leider garantiert selbst ein starker Schutz in angemessenen Konfigurationen nicht die Abwesenheit von Exploits. Deshalb sind wir fest davon \u00fcberzeugt, dass es von entscheidender Bedeutung ist, <noindex><a rel=\"nofollow\" href=\"https:\/\/capsule8.com\/\">zuverl\u00e4ssiges Monitoring und Echtzeit-Angriffsschutz sicherzustellen<\/a><\/noindex>, dabei den Fokus auf Ausbeutungsmuster zu richten und diese zu verhindern.<\/p>\n<p>Quelle: <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.1.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\/de\/blog\/milliony-binarnikov-spustya-kak-ukreplyalsya-linux\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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\/de\/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\udd47Millionen von Bin\u00e4rdateien sp\u00e4ter. Wie Linux sich weiterentwickelt hat | ProHoster","description":"TL;DR.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/milliony-binarnikov-spustya-kak-ukreplyalsya-linux","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/29880","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=29880"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/29880\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=29880"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=29880"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=29880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}