Ringkasan Keamanan

Halaman ini menyediakan ringkasan fitur keamanan Container-Optimized OS yang berjalan di Google Cloud.

Keamanan OS

Berdasarkan Chromium OS, Container-Optimized OS dari Google menerapkan beberapa prinsip desain keamanan untuk menyediakan platform yang dikonfigurasi dengan baik untuk menjalankan layanan produksi.

Jejak OS minimal

Ini adalah inti dari keamanan Container-Optimized OS. Karena Container-Optimized OS dioptimalkan untuk menjalankan container dan mengemas dependensinya sendiri, kita dapat memangkas paket yang tidak perlu sehingga meminimalkan permukaan serangan OS.

Sistem file root yang tidak dapat diubah dan boot terverifikasi

Sistem file root Container-Optimized OS selalu dipasang sebagai hanya-baca. Selain itu, checksum-nya dihitung pada waktu build dan diverifikasi oleh kernel pada setiap booting. Mekanisme ini mencegah penyerang "memiliki" komputer melalui perubahan lokal permanen. Selain itu, beberapa pemasangan lainnya tidak dapat dieksekusi secara default. Lihat Sistem file untuk mengetahui detailnya.

Konfigurasi stateless

Meskipun memiliki sistem file root hanya baca bagus untuk keamanan, hal ini membuat sistem sulit digunakan. Misalnya, kita harus dapat membuat dan menambahkan pengguna agar bisa {i>login<i} ke sistem. Untuk mengatasi hal ini, kami menyesuaikan sistem file root sedemikian rupa sehingga /etc/ dapat ditulis tetapi stateless. Tindakan ini memungkinkan Anda menulis setelan konfigurasi pada runtime, tetapi setelan tersebut tidak akan dipertahankan setelah memulai ulang. Dengan demikian, setiap kali node OS yang Dioptimalkan untuk Container melakukan reboot, node tersebut akan dimulai dari awal. Data tertentu, seperti direktori beranda, log, dan image Docker pengguna, akan tetap ada meskipun dimulai ulang, karena data tersebut bukan bagian dari sistem file root.

Kernel yang telah di-hardening keamanan

Container-Optimized OS memungkinkan beberapa fitur kernel hardening keamanan, termasuk Integrity Measurement Architecture (IMA), Audit, Kernel Page Table Isolation (KPTI), dan beberapa Linux Security Modules (LSM) dari Chromium OS. Selain itu, Container-Optimized OS mendukung fitur keamanan seperti seccomp dan AppArmor yang memungkinkan penerapan kebijakan keamanan yang lebih mendetail.

Setelan default yang berfokus pada keamanan

Container-Optimized OS memberikan tingkat hardening lain dengan menyediakan nilai default yang mengutamakan keamanan untuk beberapa fitur. Hal ini mencakup hal-hal seperti setelan sysctl yang menonaktifkan ptrace dan BPF tanpa hak istimewa, mengunci firewall, dan sebagainya. Saat diterapkan secara otomatis ke fleet instance, default ini membantu mengamankan seluruh cluster, project, dan organisasi.

Update otomatis

Fitur update otomatis Container-Optimized OS memungkinkan pengiriman patch keamanan secara tepat waktu untuk menjalankan VM. Jika Container-Optimized OS dikelola oleh Kubernetes Engine, upgrade node otomatis akan mencapai keseimbangan antara keamanan dan stabilitas.

Filesystem

Berikut adalah daftar jalur dalam sistem file gambar node OS yang Dioptimalkan untuk Container, beserta properti dan rekomendasi penggunaannya:

Jalur Properti Tujuan
/
  • hanya baca
  • dapat dieksekusi
Sistem file root dipasang sebagai hanya baca untuk menjaga integritas. Kernel memverifikasi integritas sistem file root selama booting, dan akan menolak booting jika terjadi error.
/home
/var
  • dapat ditulis
  • tidak dapat dieksekusi
  • stateful
Jalur ini dimaksudkan untuk menyimpan data yang akan dipertahankan selama boot disk masih digunakan. Kunci tersebut dipasang dari /mnt/stateful_partition.
/var/lib/google
/var/lib/docker
/var/lib/toolbox
  • dapat ditulis
  • dapat dieksekusi
  • stateful
Jalur ini merupakan direktori kerja untuk paket Compute Engine (misalnya, layanan pengelola akun), Docker, dan Toolbox.
/var/lib/cloud
  • dapat ditulis
  • dapat dieksekusi
  • stateless
  • tmpfs
Jalur ini adalah direktori kerja paket cloud-init.
/etc
  • dapat ditulis
  • tidak dapat dieksekusi
  • stateless
  • tmpfs
Biasanya menyimpan konfigurasi Anda (misalnya, layanan systemd yang ditentukan melalui cloud-init). Sebaiknya tangkap status instance yang diinginkan dari instance Anda di cloud-init, karena cloud-init diterapkan saat instance baru dibuat serta saat instance dimulai ulang.
/tmp
  • dapat ditulis
  • tidak dapat dieksekusi
  • stateless
  • tmpfs
Biasanya digunakan sebagai kapasitas sementara dan tidak boleh digunakan untuk menyimpan data persisten.
/mnt/disks
  • dapat ditulis
  • dapat dieksekusi
  • stateless
  • tmpfs
Anda dapat memasang persistent disk di direktori dalam /mnt/disks.

Firewall

Secara default, Container-Optimized OS dikonfigurasi untuk menghentikan semua koneksi TCP/UDP yang masuk, kecuali SSH di port 22. Lihat Mengonfigurasi Firewall Host tentang cara mengubah setelan default untuk membuka lebih banyak port.

Akses instance

Secara default, Container-Optimized OS tidak berisi akun pengguna yang dapat diakses. Akun pengguna dan kunci SSH dikelola melalui metadata project atau instance atau Login OS. Dengan Login OS, Anda dapat mengelola akses ke instance menggunakan IAM. Hal ini memungkinkan kontrol akses yang lebih terperinci (sudo versus non-sudo), kunci SSH yang dapat diidentifikasi, dan kebijakan login organisasi.

Daemon SSH dikonfigurasi untuk melarang autentikasi berbasis sandi dan tidak mengizinkan login root. Namun, hal ini tidak mencegah pengguna mendapatkan hak istimewa root menggunakan sudo setelah login, kecuali jika akun pengguna dikelola dengan Login OS.

Keamanan Infrastruktur

Selain berbagai fitur hardening di OS itu sendiri, tim Container-Optimized OS juga menangani supply chain software dengan serius dan memprioritaskan keamanan infrastruktur saat mengembangkan, membangun, dan men-deploy image, berdasarkan pengalaman bertahun-tahun dari Chromium OS dan Google secara umum.

Dibuat dari sumber di Google

Setiap paket di Container-Optimized OS, termasuk kernel Linux itu sendiri, dibangun dari sumber dari repositori kode ChromiumOS. Artinya, kita tahu persis apa yang masuk ke OS, siapa yang memeriksanya, versi yang diperkenalkan, dan sebagainya. Hal ini juga memungkinkan kita dengan cepat melakukan patch dan update untuk paket apa pun jika ditemukan kerentanan, pada tingkat apa pun.

Pemindaian dan respons kerentanan berkelanjutan (CVE)

Sistem pemindaian CVE akan memberi tahu kita setiap kali ada kerentanan yang ditemukan di kernel atau paket OS apa pun. Ini adalah sistem yang sama yang digunakan untuk mendeteksi kerentanan di Android dan Chromium OS. Tim Container-Optimized OS merespons dengan prioritas untuk membuat rilis yang di-patch. Tim Container-Optimized OS juga bekerja sama dengan tim respons insiden Google untuk menyediakan patch keamanan yang lebih luas dengan cepat di Container-Optimized OS.

Proses pengujian dan kualifikasi

Sebelum memublikasikan image OS yang Dioptimalkan untuk Container ke Google Cloud, kami mengujinya di beberapa level—termasuk pengujian kernel fuzz oleh syzkaller, pengujian Kubernetes level cluster, pengujian integrasi dengan fitur Compute Engine, dan beberapa tolok ukur performa. Hal ini memastikan stabilitas dan kualitas rilis kami.