Liberigo de Bottlerocket 1.7, distribuo bazita sur izolitaj ujoj

La liberigo de la Linuksa distribuo Bottlerocket 1.7.0 estis publikigita, evoluigita kun la partopreno de Amazon por la efika kaj sekura lanĉo de izolitaj ujoj. La iloj kaj kontrolkomponentoj de la distribuo estas skribitaj en Rust kaj distribuitaj sub la MIT kaj Apache 2.0-licencoj. Ĝi subtenas ruladon de Bottlerocket sur Amazon ECS, VMware kaj AWS EKS Kubernetes-aretoj, kaj ankaŭ krei kutimajn konstruojn kaj eldonojn, kiuj permesas la uzon de diversaj instrumentaj kaj rultempaj iloj por ujoj.

La distribuo provizas atome kaj aŭtomate ĝisdatigitan nedivideblan sistembildon, kiu inkluzivas la Linuksan kernon kaj minimuman sisteman medion, inkluzive de nur la komponantoj necesaj por ruli ujojn. La medio inkluzivas la systemd-administranton, la Glibc-bibliotekon, la Buildroot-konstruilon, la GRUB-ŝargilon, la malvirtan retan agordilon, la containerd-rultempon por izolitaj ujoj, la Kubernetes-ujon orkestra platformo, la aws-iam-authenticator kaj la Amazon ECS. agento.

Iloj de orkestrado de ujoj venas en aparta administrada ujo, kiu estas ebligita defaŭlte kaj administrita per la API kaj AWS SSM-Agente. Al la baza bildo mankas komanda ŝelo, SSH-servilo kaj interpretitaj lingvoj (ekzemple sen Python aŭ Perl) - administraj iloj kaj sencimigaj iloj estas metitaj en apartan servan ujo, kiu estas defaŭlte malŝaltita.

La ŝlosila diferenco de similaj distribuoj kiel Fedora CoreOS, CentOS/Red Hat Atomic Host estas la ĉefa fokuso pri disponigado de maksimuma sekureco en la kunteksto de plibonigo de sistemo-protekto kontraŭ eblaj minacoj, malfaciligante ekspluati vundeblecojn en OS-komponentoj kaj pliigante ujo-izoladon. . Ujoj estas kreitaj per normaj Linukso-kernaj mekanismoj - cgroups, nomspacoj kaj seccomp. Por plia izolado, la distribuo uzas SELinux en "deviga" reĝimo.

La radikdisko estas muntita nurlegebla, kaj la /etc-agorda diskparto estas muntita en tmpfs kaj restarigita al sia origina stato post rekomenco. Rekta modifo de dosieroj en la dosierujo /etc, kiel /etc/resolv.conf kaj /etc/containerd/config.toml, ne estas subtenata - por konstante konservi agordojn, vi devas uzi la API aŭ movi la funkciojn en apartajn ujojn. La modulo dm-verity estas uzata por kriptografie kontroli la integrecon de la radika sekcio, kaj se oni detektas provon modifi datumojn ĉe la bloka aparato, la sistemo rekomencas.

La plej multaj sistemkomponentoj estas skribitaj en Rust, kiu disponigas memor-sekurajn funkciojn por eviti vundeblecojn kaŭzitajn de post-liberaj memoraliroj, nulmontriloj dereferences, kaj bufrotropasoj. Konstruante defaŭlte, la kompilreĝimoj "-enable-default-pie" kaj "-enable-default-ssp" estas uzataj por ebligi hazardigon de la plenumebla dosiera adresspaco (PIE) kaj protekton kontraŭ staksuperfluoj per kanaria anstataŭigo. Por pakaĵoj skribitaj en C/C++, la flagoj "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" kaj "-fstack-clash" estas aldone ebligita -protekto".

En la nova eldono:

  • Instalante RPM-pakaĵojn, eblas generi liston de programoj en JSON-formato kaj munti ĝin en la gastigan ujon kiel la dosieron /var/lib/bottlerocket/inventory/application.json por akiri informojn pri disponeblaj pakaĵoj.
  • La ujoj "administranto" kaj "kontrolo" estis ĝisdatigitaj.
  • Ĝisdatigitaj pakaĵversioj kaj dependencajoj por lingvoj Go kaj Rust.
  • Ĝisdatigitaj versioj de pakaĵoj kun triapartaj programoj.
  • Solvitaj problemoj de agordo de tmpfilesd por kmod-5.10-nvidia.
  • Kiam oni instalas tuftool, dependaj versioj estas ligitaj.

fonto: opennet.ru

Aldoni komenton