Vrystelling van Bottlerocket 1.3, 'n verspreiding gebaseer op geïsoleerde houers

Die vrystelling van die Bottlerocket 1.3.0 Linux-verspreiding is gepubliseer, ontwikkel met die deelname van Amazon om geïsoleerde houers effektief en veilig te bestuur. Die gereedskapstel en beheerkomponente van die verspreiding is in Rust geskryf en onder die MIT- en Apache 2.0-lisensies versprei. Dit ondersteun die loop van Bottlerocket op Amazon ECS-, VMware- en AWS EKS Kubernetes-klusters, sowel as die skep van pasgemaakte bouwerk en uitgawes wat voorsiening maak vir verskillende orkestrasie- en looptydnutsgoed vir houers.

Die verspreiding verskaf 'n atomies en outomaties bygewerkte ondeelbare stelselbeeld wat die Linux-kern insluit en 'n minimale stelselomgewing wat slegs die komponente insluit wat nodig is om houers te laat loop. Die omgewing sluit die systemd-stelselbestuurder, die Glibc-biblioteek, die Buildroot-bounutsding, die GRUB-selflaaier, die bose netwerkkonfigureerder, die containerd-geïsoleerde houer-looptyd, die Kubernetes-houerorkestrasieplatform, die aws-iam-authenticator en die Amazon ECS-agent in .

Die houer-orkestrasie-nutsgoed kom in 'n aparte bestuurshouer wat by verstek geaktiveer is en bestuur word deur die API en AWS SSM Agent. Die basisbeeld het nie 'n opdragdop, 'n SSH-bediener en geïnterpreteerde tale nie (byvoorbeeld geen Python of Perl nie) - administratiewe en ontfoutingsnutsgoed word na 'n aparte dienshouer geskuif, wat by verstek gedeaktiveer is.

Die belangrikste verskil van soortgelyke verspreidings soos Fedora CoreOS, CentOS/Red Hat Atomic Host is die primêre fokus op die verskaffing van maksimum sekuriteit in die konteks van die versterking van stelselbeskerming teen moontlike bedreigings, bemoeilik die uitbuiting van kwesbaarhede in OS-komponente en die verhoging van houer-isolasie. Houers word geskep deur die gewone meganismes van die Linux-kern te gebruik - cgroups, namespaces en seccomp. Vir addisionele isolasie gebruik die verspreiding SELinux in die "afdwingende" modus.

Die wortelpartisie word in leesalleen-modus gemonteer, en die partisie met /etc-instellings word in tmpfs gemonteer en na 'n herbegin na sy oorspronklike toestand herstel. Direkte wysiging van lêers in die /etc-gids, soos /etc/resolv.conf en /etc/containerd/config.toml, word nie ondersteun nie - om instellings permanent te stoor, moet jy die API gebruik of die funksionaliteit na aparte houers skuif. Vir kriptografiese verifikasie van die integriteit van die wortelpartisie, word die dm-verity-module gebruik, en as 'n poging om data op die bloktoestelvlak te wysig bespeur word, herlaai die stelsel.

Die meeste stelselkomponente is in Rust geskryf, wat geheue-veilige nutsmiddels verskaf om kwesbaarhede te vermy wat veroorsaak word deur die aanspreek van 'n geheue-area nadat dit vrygestel is, nulwysers af te lei, en bufferoorskryding. Wanneer daar gebou word, word die samestellingmodusse "--enable-default-pie" en "--enable-default-ssp" by verstek gebruik om adresspasie-randomisering van uitvoerbare lêers (PIE) en beskerming teen stapeloorloop deur kanarie-etiketvervanging moontlik te maak. Vir pakkette geskryf in C/C++, is die "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" en "-fstack-clash" vlae addisioneel ingesluit -beskerming.

In die nuwe vrystelling:

  • Vaste kwesbaarhede in docker en runtime containerd gereedskap (CVE-2021-41089, CVE-2021-41091, CVE-2021-41092, CVE-2021-41103) wat verband hou met verkeerde instelling van toegangsregte, wat onbevoorregte gebruikers toegelaat het om verder te gaan as die basis gids en eksterne programme uit te voer.
  • IPv6-ondersteuning is by kubelet en pluto gevoeg.
  • Dit is moontlik om die houer te herbegin nadat sy instellings verander is.
  • Ondersteuning vir Amazon EC2 M6i-gevalle is by die eni-max-pods-pakket gevoeg.
  • Open-vm-tools het ondersteuning vir toestelfilters bygevoeg, gebaseer op die Cilium-gereedskapstel.
  • Vir die x86_64-platform word 'n hibriede selflaaimodus geïmplementeer (met ondersteuning vir EFI en BIOS).
  • Opgedateerde pakketweergawes en afhanklikhede vir die Rust-taal.
  • Ondersteuning vir die verspreidingsvariant aws-k8s-1.17 gebaseer op Kubernetes 1.17 is gestaak. Dit word aanbeveel om die aws-k8s-1.21-weergawe te gebruik met ondersteuning vir Kubernetes 1.21. Die k8s-variante gebruik die cgroup runtime.slice en system.slice instellings.

Bron: opennet.ru

Voeg 'n opmerking