Amazon publikigas Bottlerrocket 1.0.0, Linukso-distribuon bazitan sur izolitaj ujoj

Amazon Kompanio prezentita unua signifa eldono de diligenta Linukso-distribuo Botelraketo 1.0.0, desegnita por funkcii izolitaj ujoj efike kaj sekure. La iloj kaj kontrolkomponentoj de la distribuo estas skribitaj en Rust kaj disvastigi sub MIT kaj Apache 2.0-licencoj. La projekto estas disvolvita sur GitHub kaj disponeblas por partopreno de komunumanoj. La bildo pri sistema deplojo estas generita por arkitekturoj x86_64 kaj Aarch64. La OS estas adaptita por funkcii sur Amazon ECS kaj AWS EKS Kubernetes-aretoj. Estas provizitaj iloj por krei viajn proprajn asembleojn kaj eldonojn, kiuj povas uzi aliajn instrumentajn ilojn, kernojn kaj rultempon por ujoj.

La distribuo disponigas la Linuksan kernon kaj minimuman sisteman medion, inkluzive de nur la komponentoj necesaj por ruli ujojn. Inter la pakaĵoj implikitaj en la projekto estas la sistemmanaĝero systemd, la Glibc-biblioteko kaj la kunigiloj.
Buildroot, GRUB-ŝargilo, reto-agordilo malbonaj, rultempo por izolitaj ujoj ujo, Kubernetes kontenera orkestra platformo, aws-iam-authenticator kaj Amazon ECS-agento.

La distribuo estas ĝisdatigita atome kaj estas liverita en la formo de nedividebla sistembildo. Du diskpartoj estas asignitaj por la sistemo, unu el kiuj enhavas la aktivan sistemon, kaj la ĝisdatigo estas kopiita al la dua. Post kiam la ĝisdatigo estas deplojita, la dua subdisko fariĝas aktiva, kaj en la unua, ĝis la sekva ĝisdatigo alvenos, la antaŭa versio de la sistemo estas konservita, al kiu vi povas retroiri se aperos problemoj. Ĝisdatigoj estas instalitaj aŭtomate sen interveno de administranto.

La ŝlosila diferenco de similaj distribuoj kiel Fedora CoreOS, CentOS/Red Hat Atomic Host estas la ĉefa fokuso pri provizado. maksimuma sekureco en la kunteksto de plifortigo de sistema protekto kontraŭ eblaj minacoj, malfaciligante ekspluati vundeblecojn en OS-komponentoj kaj pliigante la izolitecon de ujoj. Ujoj estas kreitaj per normaj Linukso-kernaj mekanismoj - cgroups, nomspacoj kaj seccomp. Por plia izolado, la distribuo uzas SELinux en la "deviga" reĝimo, kaj la modulo estas uzata por kriptografia konfirmo de la integreco de la radika sekcio. dm-verity. Se oni detektas provon modifi datumojn ĉe la bloka aparato, la sistemo rekomenciĝas.

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 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 adresspaco de ruleblaj dosieroj (PIA) kaj staku superfluan protekton per kanaria anstataŭigo.
Por pakaĵoj skribitaj en C/C++, pliaj flagoj estas inkluzivitaj
"-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" kaj "-fstack-clash-protection".

Uj-instrumentaj iloj estas liveritaj aparte kontrola ujo, kiu estas ebligita defaŭlte kaj kontrolita per API kaj AWS SSM Agento. Al la baza bildo mankas komanda ŝelo, SSH-servilo kaj interpretitaj lingvoj (ekzemple sen Python aŭ Perl) - administraj iloj kaj sencimigaj iloj troviĝas en aparta serva ujo, kiu estas malebligita defaŭlte.

fonto: opennet.ru

Aldoni komenton