Amazon annab välja isoleeritud konteineritel põhineva Linuxi distributsiooni Bottlerocket 1.0.0

Amazoni ettevõte esitatakse spetsiaalse Linuxi distributsiooni esimene oluline väljalase Pudelipesa 1.0.0, mis on loodud isoleeritud konteinerite tõhusaks ja turvaliseks käitamiseks. Distributsiooni tööriistad ja juhtkomponendid on kirjutatud Rust ja levima MIT ja Apache 2.0 litsentside alusel. Projekti arendatakse GitHubis ja see on kogukonna liikmetele osalemiseks saadaval. Süsteemi juurutamise pilt genereeritakse x86_64 ja Aarch64 arhitektuuride jaoks. OS on kohandatud töötama Amazon ECS ja AWS EKS Kubernetes klastrites. Pakutakse tööriistad oma komplektide ja väljaannete loomiseks, mis võivad kasutada konteinerite jaoks muid orkestreerimistööriistu, tuumasid ja käitusaega.

Distributsioon pakub Linuxi tuuma ja minimaalset süsteemikeskkonda, sealhulgas ainult konteinerite käitamiseks vajalikke komponente. Projekti kaasatud pakettide hulgas on süsteemihaldur systemd, Glibc teek ja koostetööriistad
Buildroot, GRUB alglaadur, võrgukonfiguraator kuri, isoleeritud konteinerite käitusaeg konteiner, Kubernetese konteinerite orkestreerimisplatvorm, aws-iam-authenticator ja Amazon ECS agent.

Jaotust värskendatakse aatomipõhiselt ja see edastatakse jagamatu süsteemipildi kujul. Süsteemile eraldatakse kaks kettasektsiooni, millest üks sisaldab aktiivset süsteemi ja värskendus kopeeritakse teise. Pärast värskenduse juurutamist aktiveerub teine ​​partitsioon ja esimeses salvestatakse kuni järgmise värskenduse saabumiseni süsteemi eelmine versioon, kuhu saab probleemide ilmnemisel tagasi kerida. Värskendused installitakse automaatselt ilma administraatori sekkumiseta.

Peamine erinevus sarnastest distributsioonidest, nagu Fedora CoreOS, CentOS/Red Hat Atomic Host, seisneb esmajoones pakkumisel maksimaalne turvalisus süsteemi kaitse tugevdamise kontekstis võimalike ohtude eest, muutes OS-i komponentide turvaaukude ärakasutamise keerulisemaks ja suurendades konteinerite isolatsiooni. Konteinerite loomisel kasutatakse standardseid Linuxi tuumamehhanisme – cgroups, namespaces ja seccomp. Täiendavaks isoleerimiseks kasutab distributsioon SELinuxi jõustamisrežiimis ja moodulit kasutatakse juurpartitsiooni terviklikkuse krüptograafiliseks kontrollimiseks. dm-verity. Kui tuvastatakse katse muuta andmeid plokkseadme tasemel, taaskäivitub süsteem.

Juursektsioon paigaldatakse kirjutuskaitstud kujul ja /etc sätete partitsioon ühendatakse tmpfs-i ja taastatakse pärast taaskäivitamist algsesse olekusse. Kataloogis /etc olevate failide (nt /etc/resolv.conf ja /etc/containerd/config.toml) otsest muutmist ei toetata – seadete püsivaks salvestamiseks tuleb kasutada API-d või teisaldada funktsionaalsus eraldi konteineritesse.

Enamik süsteemikomponente on kirjutatud keeles Rust, mis pakub mälule ohutuid funktsioone, et vältida haavatavusi, mis on põhjustatud pärast vaba mälupöördumist, nullkursori viidetest ja puhvri ülekoormustest. Vaikimisi koostamisel kasutatakse kompileerimisrežiime "--enable-default-pie" ja "--enable-default-ssp", et võimaldada käivitatavate failide aadressiruumi randomiseerimist (PIIRKAS) ja virna ülevoolukaitse kanaari asendamise kaudu.
C/C++ keeles kirjutatud pakettide puhul on kaasas täiendavad lipud
"-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" ja "-fstack-clash-protection".

Konteinerite orkestreerimistööriistad tarnitakse eraldi kontrollkonteiner, mis on vaikimisi lubatud ja mida juhitakse kaudu API ja AWS SSM agent. Aluspildil puuduvad käsukest, SSH-server ja tõlgendatavad keeled (näiteks Python või Perl) - haldustööriistad ja silumistööriistad asuvad eraldi teeninduskonteiner, mis on vaikimisi keelatud.

Allikas: opennet.ru

Lisa kommentaar