GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Cara Memeriksa Konten Gambar Docker Tanpa Memulai Wadah

Gambar Docker dapat menggabungkan binari dan pustaka arbitrer ke dalam satu gumpalan data. Memeriksa apa yang sebenarnya ada di dalam gambar membantu Anda menilai kesesuaiannya dan mengidentifikasi bahaya keamanan apa pun.

Cara termudah untuk menjelajahi konten gambar melibatkan memulai wadah, mendapatkan sesi shell, dan kemudian menggunakan perintah terminal biasa seperti ls dan cd untuk melihat struktur direktorinya dari dalam. Ini tidak ideal di lingkungan yang kritis terhadap keamanan – membuat wadah dengan gambar yang tidak dikenal dapat membuat Anda terkena skrip titik masuk yang berbahaya.

Berikut adalah teknik yang dapat Anda gunakan untuk memeriksa file gambar tanpa memulai penampung.

Membuat Wadah Tanpa Memulainya

docker create adalah mitra yang kurang dikenal untuk docker run . Itu membuat wadah baru di atas gambar yang diberikan tanpa memulainya. Anda dapat meluncurkannya nanti dengan docker start perintah.

Membuat wadah baru tidak berbahaya karena akan tetap lembam sampai dijalankan. Anda dapat secara kasar menyamakannya dengan mendefinisikan pengaturan konfigurasi untuk VM yang tidak Anda gunakan. Meskipun diatur untuk boot dari ISO sistem operasi yang tercemar, Anda tidak akan menyebabkan kerusakan apa pun pada lingkungan Anda.

docker create --name suspect-container suspect-image:latest

Perintah di atas membuat wadah baru bernama suspect-container yang akan didasarkan pada suspect-image:latest gambar.

Mengekspor Sistem File Penampung

Sekarang Anda memiliki wadah yang valid tetapi berhenti, Anda dapat mengekspor sistem filenya menggunakan docker export memerintah. Karena penampung belum pernah dimulai, Anda dapat yakin bahwa ekspor secara akurat mewakili sistem file yang ditentukan oleh lapisan gambar Anda.

docker export suspect-container > suspect-container.tar

Anda akan berakhir dengan arsip tar di direktori kerja Anda yang berisi semua yang ada di dalam gambar Anda. Buka atau ekstrak arsip ini menggunakan perangkat lunak favorit Anda untuk menelusuri direktori dan daftar gambar serta melihat file.

Jika Anda tidak perlu menyimpan atau membuka arsip, alih-alih memilih untuk mendapatkan daftar file di terminal Anda, ubah tar perintah:

docker export suspect-container | tar t > suspect-container-files.txt

tar t daftar isi arsip masukan. Anda akan mendapatkan daftar semua yang ada di gambar Anda di dalam suspect-container-files.txt .

Menggunakan “penyimpanan gambar buruh pelabuhan”

Variasi dari teknik ini menggunakan docker image save . Perintah ini secara langsung menyimpan data gambar ke arsip tar.

docker image save suspect-image:latest > suspect-image.tar

Metode ini menghasilkan arsip yang berfokus pada gambar, bukan wadah yang dibuat darinya. Tar akan menyertakan manifest.json file, menjelaskan lapisan gambar, dan satu set direktori yang berisi konten dari semua lapisan individu.

Ini berguna saat Anda mengevaluasi peran setiap lapisan dalam membangun gambar. Namun, membuat dan mengekspor penampung yang dihentikan adalah cara yang lebih mudah diakses untuk menelusuri sistem file akhir gambar.

Mendaftarkan Lapisan Dengan “riwayat gambar buruh pelabuhan”

Cara lain untuk memeriksa konten gambar adalah dengan melihat daftar lapisannya dengan docker image history perintah.

docker image history suspect-image:latest

Ini memperlihatkan instruksi Dockerfile yang menyusun lapisan gambar. Ini tidak akan membiarkan Anda melihat file dan direktori individual di sistem file gambar, tetapi dapat lebih efektif dalam menyoroti perilaku yang mencurigakan.

Setiap baris dalam output perintah mewakili lapisan baru pada gambar. Kolom “CREATED BY” menunjukkan instruksi Dockerfile yang membuat layer.

Memindai daftar lapisan membantu Anda dengan cepat mengidentifikasi tindakan mencurigakan yang dapat menunjukkan bahwa Anda menggunakan gambar berbahaya. Cari biner yang tidak dikenal di RUN instruksi, perubahan variabel lingkungan yang tidak terduga, dan CMD yang mencurigakan dan ENTRYPOINT pernyataan.

Dua lapisan terakhir bisa dibilang yang paling penting untuk dinilai saat memeriksa riwayat gambar. Mereka memberi tahu Anda apa yang akan diluncurkan ketika Anda docker run atau docker start sebuah wadah. Jika salah satu instruksi terlihat mencurigakan atau asing, pertimbangkan untuk menggunakan teknik di atas untuk memeriksa sepenuhnya binari atau skrip yang dirujuk.

Mengakses sistem file gambar memberikan tampilan konten yang sangat terperinci di mana konten berbahaya dapat dengan mudah luput dari perhatian, bahkan setelah pemeriksaan manual. Daftar lapisan yang diekspos oleh docker image history tidak dapat membantu Anda menemukan item sistem file yang disamarkan, tetapi lebih efektif dalam menampilkan operasi berbahaya yang terang-terangan seperti unduhan spyware sembunyi-sembunyi atau penggantian variabel lingkungan.

Alat Pihak Ketiga

Alat sumber terbuka pihak ketiga juga tersedia untuk membantu Anda membuat daftar konten gambar. Ini biasanya menawarkan kemampuan pemfilteran sehingga Anda dapat dengan cepat menghitung paket sistem operasi yang diinstal, dependensi bahasa pemrograman, dan file biasa.

Inspeksi gambar dibangun ke dalam mesin pemindai kontainer Anchore. Anda dapat menggunakannya dengan menjalankan anchore-cli image content my-image:latest setelah Anda menginstal Anchore. Ini memberikan daftar lengkap konten sistem file gambar target.

Pilihan lainnya adalah Dive, alat yang dibuat secara tegas untuk memvisualisasikan konten gambar. Ini menggunakan pendekatan berbasis lapisan dan menyoroti perubahan sistem file yang dibuat dengan setiap lapisan baru. Anda menelusuri sistem file menggunakan tampilan terminal interaktif berbasis pohon.

Kesimpulan

Gambar Docker biasanya buram pada titik konsumsi. Registri populer tidak menyediakan daftar file di API atau antarmuka pengguna mereka. Fungsionalitas ini juga tidak terintegrasi ke dalam CLI Docker. Meskipun banyak pengembang menggunakan gambar apa adanya, gambar yang tidak diaudit mungkin tidak dapat ditoleransi di lingkungan berisiko tinggi.

Anda dapat memeriksa gambar yang dicurigai dengan mengekspornya ke arsip dan menelusuri kontennya. Hal ini membuat gambar tidak aktif, mencegah konten berbahaya dijalankan, sekaligus memberikan tampilan lengkap sistem file yang akan dibuatnya dalam wadah.

Anda dapat lebih meningkatkan postur keamanan Anda dengan menggabungkan eksplorasi konten manual dengan pemindaian gambar otomatis. Ini mempercepat proses mendeteksi kerentanan yang diketahui tetapi mungkin tidak efektif dalam menemukan file berbahaya baru yang disimpan di lokasi tersembunyi. Menggunakan beberapa teknik memungkinkan Anda menyebarkan cakupan dan menangkap kumpulan file tersangka seluas mungkin.


Docker
  1. Cara Menjalankan MySQL Dalam Wadah Docker

  2. Cara SSH Ke Wadah Docker

  3. Cara Menginstal Vim di Wadah Docker

  1. Cara Menggunakan Perintah Inspeksi Docker

  2. Cara membuat gambar khusus dari wadah Docker

  3. Cara membuat Gambar Docker dari Wadah dan File Docker

  1. Cara Menetapkan IP Statis ke Wadah Docker

  2. Cara Melepaskan Dari Wadah Docker Tanpa Menghentikannya

  3. Cara Memodifikasi Gambar Docker