Bagaimana cara Menginstal dan menggunakan Scanner Keamanan Gambar Anchore Container?

Itu Mesin Jangkar adalah alat sumber terbuka untuk memindai dan menganalisis gambar wadah untuk kerentanan keamanan dan masalah kebijakan. Ini tersedia sebagai gambar kontainer Docker yang dapat berjalan dalam platform orkestrasi, atau sebagai instalasi mandiri.


Ini adalah alat keamanan yang berguna yang memungkinkan pengembang dan tim QA untuk menguji, mengidentifikasi, dan mengatasi kerentanan pada gambar yang mereka gunakan untuk membuat aplikasi.

Pada artikel ini, kita akan melihat cara menginstal dan menggunakan pemindai kerentanan gambar Anchore. Secara umum, ada beberapa metode implementasi. Namun, saya akan fokus pada dua hal berikut,

  • Menggunakan AnchoreCLI opsi baris perintah
  • Berbasis GUI Jenkins Anchore Container Image Scanner plugin.

Kami akan menunjukkan kepada Anda cara menginstal, mengkonfigurasi, dan memulai mesin, mengkonfigurasi dan menggunakan alat baris perintah AnchoreCLI serta plugin Jenkins. Untuk masing-masing dari dua metode, Anda akan belajar cara menambahkan gambar untuk memindai, melakukan pemindaian, dan melihat laporan.

Di akhir artikel, Anda akan mempelajari tiga hal berikut.

  • Menginstal dan mengonfigurasi Mesin Jangkar
  • Menginstal, mengonfigurasi, dan menggunakan AnchoreCLI
  • Mengkonfigurasi dan menggunakan Plugin Anchor Container Image Scanner di Jenkins

Prasyarat

Berikut ini adalah persyaratan untuk tutorial ini;

  • Mesin lokal atau virtual dengan Ubuntu 18.04 dan yang berikut;
  • Buruh pelabuhan
  • Susunan docker
  • Jenkins Diinstal dan dijalankan
  • pengguna sudo

Langkah 1: – Atur direktori kerja dan unduh file konfigurasi.

Buat direktori yang berfungsi untuk file Anchore Anda. Di dalam direktori itu, Anda akan membuat dua subdirektori, satu untuk konfigurasi, dan satu untuk basis data.

Buat direktori home untuk file Anchore

mkdir berlabuh

Pergi ke direktori baru dan buat subdirektori konfigurasi dan basis data.

cd anchore

konfigurasi mkdir

mkdir db

Unduh file konfigurasi

Setelah direktori siap, kami akan mengunduh dua file konfigurasi (docker-compose.yaml dan config.yaml) dari proyek Github.

Untuk mengunduh docker-compose.yaml

Pergi ke direktori home anchor dan gunakan perintah

curl https://raw.githubusercontent.com/anchore/anchore-engine/master/scripts/docker-compose/docker-compose.yaml > docker-compose.yaml

Kemudian unduh config.yaml ke direktori ~ / anchore / config

curl https://raw.githubusercontent.com/anchore/anchore-engine/master/scripts/docker-compose/config.yaml -o ~ / anchore / config / config.yaml

File config.yaml adalah file konfigurasi dengan pengaturan dasar yang harus dijalankan oleh layanan mesin anchore. Ini memiliki beberapa parameter, termasuk termasuk default, level log, port mendengarkan, nama pengguna, kata sandi, dan lainnya yang dapat Anda sesuaikan untuk memenuhi persyaratan spesifik.

Ini adalah praktik keamanan yang baik untuk mengubah kata sandi, dan Anda dapat melakukan ini dengan mengedit file config.yaml. Namun, dalam tutorial ini, kita akan menggunakan pengaturan default.

Untuk melanjutkan kredensial default, (nama pengguna – admin dan kata sandi – foobar), lanjutkan ke Langkah 2.

Mengubah kredensial Mesin Anchore (opsional)

Dari direktori anchor gunakan perintah

nano ~ / anchore / config / config.yaml

Temukan nama pengguna (admin) dan kata sandi (foobar) dan ubah ke nilai yang Anda inginkan.

tekan CTRL + X, kemudian Y untuk menyimpan dan keluar.

Dengan direktori yang berfungsi dan file konfigurasi, sistem siap untuk instalasi Mesin Anchore.

Langkah 2: – Instal dan mulai Mesin Anchore

Anda akan menggunakan komposisi Docker untuk menginstal dan memulai Mesin Anchore dan database.

Dari direktori home anchor, jalankan.

docker-compose up -d

Ini akan secara otomatis menarik gambar Anchore dan kemudian membuat mesin Anchore dan database di rumah dan ~ / anchore / database / direktori masing-masing. Setelah selesai, perintah akan memulai mesin Anchore.

Setelah berhasil menginstal dan memulai mesin jangkar, Anda sekarang dapat memindai gambar menggunakan baris perintah jangkar AnchoreCLI. Namun, Anda harus terlebih dahulu menginstal utilitas baris perintah AnchoreCLI, seperti yang ditunjukkan di bawah ini.

Menginstal, mengonfigurasi AnchoreCLI

Pada langkah ini, Anda akan belajar cara menginstal dan mengkonfigurasi AnchoreCLI alat baris perintah.

Langkah 3: – Instal AnchoreCLI

Dalam tutorial ini, pertama kita akan menginstal utilitas python-pip, yang kemudian akan digunakan untuk menginstal AnchoreCLI dari sumbernya.

Untuk menginstal pip Python. Untuk ke direktori home Anchore dan jalankan

sudo apt-get pembaruan
sudo apt-get install python-pip
sudo pip install –upgradetool setuptools

Pasang AnchoreCLI menggunakan python-pip

instal anchorecli

Perintah ini akan mengunduh dan menginstal file untuk AnchoreCLI. Setelah instalasi, kita sekarang perlu sumber file .profile kami untuk menggunakan perintah

sumber ~ /. profil

Untuk memverifikasi apakah instalasi berhasil dan versi Anchorecli, gunakan perintah

anchore-cli –version

Untuk memeriksa status sistem anchore-CLI, gunakan perintah

anchore-cli –url http: // localhost: 8228 / v1 –u admin –p status sistem foobar

Harap dicatat bahwa Anda harus melewati URL mesin, nama pengguna, dan kata sandi Anchore engine.

Tentukan parameter Mesin Anchore

Secara default, AnchoreCLI akan mencoba mengakses Mesin Anchore tanpa autentikasi. Namun, ini tidak akan berhasil, dan Anda perlu memberikan kredensial Mesin Anchore dengan setiap perintah.

Ini melibatkan melewati parameter nama pengguna, kata sandi, dan URL dengan setiap perintah Anchore CLI. Alih-alih menyediakan ini setiap waktu, alternatifnya adalah mendefinisikannya sebagai variabel lingkungan dalam format berikut.

Untuk meneruskan URL, jalankan

ANCHORE_CLI_URL = http: // localhost: 8228 / v1

Ini mendefinisikan URL Mesin Anchore bersama dengan port 8228, yang digunakannya.

Tetapkan nama pengguna dan kata sandi menggunakan nilai default; jika tidak, ganti dengan nilai-nilai baru yang Anda atur Langkah 1.

ANCHORE_CLI_USER = admin

ANCHORE_CLI_PASS = foobar

Di atas menetapkan parameter hanya untuk shell saat ini. Untuk mengatur shell saat ini dan proses lain yang dimulai dari itu, kami menggunakan perintah ekspor

ekspor ANCHORE_CLI_URL

ekspor ANCHORE_CLI_USER

ekspor ANCHORE_CLI_PASS

Dengan parameter yang ditentukan, pengaturan AchoreCLI selesai, dan Anda siap untuk memindai gambar.

Langkah 4: – Menambahkan dan menganalisis gambar

Sekarang setelah Mesin Anchore berjalan dan terkonfigurasi CLI, Anda akan belajar cara menambahkan dan menganalisis gambar untuk masalah keamanan. Dalam tutorial ini, kita akan menganalisis dua gambar. -openjdk: 8-jre-alpine dengan kerentanan dan debian: terbaru tanpa .

Menganalisis gambar

Untuk melanjutkan, pertama-tama kita perlu menambahkan gambar ke mesin. Untuk menambahkan gambar

gambar anchore-cli menambahkan openjdk: 8-jre-alpine

Tambahkan debian gambar yang stabil: terbaru

gambar anchore-cli tambahkan docker.io/library/debian:latest

Tambahkan lebih banyak gambar

gambar anchore-cli tambahkan openjdk: 10-jdk

gambar anchore-cli menambahkan openjdk: 11-jdk

Setelah menambahkan gambar ke Mesin Anchore, analisis segera dimulai. Jika ada beberapa gambar yang dimuat, mereka dimasukkan ke dalam antrian dan dianalisis satu per satu. Anda dapat memeriksa kemajuan dan melihat daftar gambar yang dimuat bersama dengan status analisisnya.

Untuk melihat daftar, jalankan perintah

daftar gambar anchore-cli

Keluaran

[dilindungi email]: ~ / anchore daftar gambar $ anchore-cli
Analisis Tag Intisari Gambar Penuh Status
docker.io/openjdk:10-jdk sha256: 923d074ef1f4f0dceef68d9bad8be19c918d9ca8180a26b037e00576f24c2cb4analyzed
docker.io/openjdk:11-jdk sha256: 9923c0853475007397ed5c91438c12262476d99372d4cd4d7d44d05e9af5c077analyzed
docker.io/openjdk:8-jre-alpine sha256: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52analyzed

Bergantung pada jumlah gambar, ukuran, dan waktu yang berlalu setelah menambahkannya, Anda akan dianalisis untuk yang lengkap, menganalisis untuk yang sedang berlangsung dan tidak dianalisis untuk gambar yang antri.

Langkah 5: – Ambil dan lihat hasil analisis

Setelah analisis selesai, Anda dapat memeriksa hasil dan melihat hasil untuk pemindaian kerentanan, pemeriksaan kebijakan, dan masalah lain yang diidentifikasi mesin..

Untuk memeriksa hasil pemindaian kerentanan pada openjdk: gambar rentan 8-jre-alpine

Lari

anchore-cli image vuln openjdk: 8-jre-alpine all

Keluaran

[dilindungi email]: ~ / anchore $ anchore-cli image vuln openjdk: 8-jre-alpine all
Kerentanan IDPackage Perbaiki Tingkat Permasalahan CVE Refs Vulnerability URL
CVE-2018-1000654 libtasn1-4.13-r0 Tinggi 4.14-r0 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000654
CVE-2019-12900 libbz2-1.0.6-r6 Tinggi 1.0.6-r7 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12900
CVE-2019-14697 musl-1.1.20-r4 Tinggi 1.1.20-r5 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-14697
CVE-2019-14697 musl-utils-1.1.20-r4 Tinggi 1.1.20-r5 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-14697
CVE-2019-8457 sqlite-libs-3.26.0-r3 Tinggi 3.28.0-r0 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-8457
CVE-2018-14498 libjpeg-turbo-1.5.3-r4 Medium 1.5.3-r5 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14498

Laporan menunjukkan pengenal CVE, paket rentan, tingkat keparahan, dan apakah ada perbaikan atau tidak. Untuk openjdk gambar kami: 8-jre-alpine, analisis menunjukkan bahwa ia memiliki lima kerentanan tinggi dan cukup banyak kerentanan sedang dan dapat diabaikan. (beberapa tidak ditampilkan di atas).

Untuk melihat hasil kerentanan untuk debian gambar yang stabil: terbaru

Jalankan perintah

anchore-cli image vuln docker.io/library/debian:latest all

Keluaran

[dilindungi email]: ~ / anchore $ anchore-cli image vuln debian: terbaru semua
Kerentanan IDPackage Memperbaiki Severity CVE RefsVulnerability URL
CVE-2005-2541 tar-1.30 + dfsg-6 Dapat Diabaikan Tidak Ada https://security-tracker.debian.org/tracker/CVE-2005-2541
CVE-2019-1010022libc-bin-2.28-10 Tidak Dapat Diabaikan Tidak ada https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010022libc6-2.28-10 Tidak Dapat Diabaikan Tidak Ada https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010023libc-bin-2.28-10 Diabaikan Tidak Ada https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010023libc6-2.28-10 Tidak Dapat Diabaikan Tidak Ada https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010024libc-bin-2.28-10 Diabaikan Tidak Ada https://security-tracker.debian.org/tracker/CVE-2019-1010024

Seperti dapat dilihat dari laporan, gambar debian: latest memiliki kerentanan yang dapat diabaikan dan tidak ada perbaikan.

Untuk melihat hasil evaluasi kebijakan untuk gambar openjdk yang tidak stabil: 8-jre-alpine

Lari

anchore-cli mengevaluasi memeriksa openjdk: 8-jre-alpine

Output – Hasilnya menunjukkan kegagalan

[dilindungi email]: ~ / anchore $ anchore-cli evaluasi periksa openjdk: 8-jre-alpine
Image Digest: sha256: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52
Tag Lengkap: docker.io/openjdk:8-jre-alpine
Status: gagal
Eval Terakhir: 2019-09-20T12: 03: 32Z
ID Kebijakan: 2c53a13c-1765-11e8-82ef-23527761d060

Gambar openjdk: 8-jre-alpine melanggar ID kebijakan yang ditentukan (ID Kebijakan: 2c53a13c-1765-11e8-82ef-23527761d060) dan karenanya mengembalikan status Gagal.

Sekarang kita telah melihat bagaimana Mesin Anchore merespons setelah mendeteksi pelanggaran kebijakan, sekarang saatnya untuk memeriksa apakah itu berperilaku dengan image stabil debian kami: terbaru.

Pemeriksaan kebijakan untuk debian: gambar stabil terbaru

anchore-cli mengevaluasi check docker.io/library/debian:latest –detail

[dilindungi email]: ~ / anchore $ anchore-cli evaluasi periksa docker.io/library/debian:latest –detail
Image Digest: sha256: d3351d5bb795302c8207de4db9e0b6eb23bcbfd9cae5a90b89ca01f49d0f792d
Tag Lengkap: docker.io/library/debian:latest
ID Gambar: c2c03a296d2329a4f3ab72a7bf38b78a8a80108204d326b0139d6af700e152d1
Status: lulus
Eval Terakhir: 2019-09-20T12: 00: 06Z
ID Kebijakan: 2c53a13c-1765-11e8-82ef-23527761d060
Tindakan Terakhir: beri peringatan
Alasan Tindakan Akhir: policy_evaluation
Status Gerbang TriggerDetail
dockerfileinstructionDockerfile directive ‘HEALTHCHECK’ tidak ditemukan, kondisi yang cocok dengan checkwarn ‘not_exists’

Hasilnya menunjukkan status Lulus dan Tindakan Terakhir Peringatkan karena ketidakcocokan informasi dengan arahan Dockerfile. Ini tidak gagal tetapi mungkin perlu memeriksa dan mengatasi masalah ini.

Mengkonfigurasi dan menggunakan Plugin Anchore Container Image Scanner di Jenkins

Langkah 6: – Tambahkan dan konfigurasikan Plugin Scanner Pemindai Gambar Kontainer di Jenkins

Pada langkah ini, kita akan mengintegrasikan Anchor Engine dengan server Jenkins. Jenkins adalah server open-source berbasis java untuk mengotomatisasi berbagai tugas yang berulang dalam siklus pengembangan perangkat lunak.

Itu Plugin anchore tersedia di Jenkins tetapi tidak diinstal secara default.

Masuk ke Jenkins menggunakan browser web

http: // your_server_ip_or_domain: 8080

Masukkan nama pengguna dan kata sandi.

Pergi ke Menu Jenkins

Temukan dan pilih Kelola Jenkins

Pergi ke Kelola Plugin

Di Tab yang tersedia, gulir ke bawah ke Alat Bangun dan pilih Pemindai Gambar Penampung Kontainer

Klik tautan Instal tanpa restart pilihan.

Setelah instalasi berhasil Plugin Anchore Container Image Scanner, langkah selanjutnya adalah mengkonfigurasi kredensial.

Pergi ke Jenkins menu dan pilih menu Kelola Jenkins tab.

Buka Konfigurasikan sistem.

Temukan Konfigurasi anchore.

Pilih Mode Mesin

Masukkan Mesin Jangkar detail (URL mesin, nama pengguna dan kata sandi, dan port 8228 – port default untuk mesin).

URL – http: // your_server_IP: 8228 / v1

Masukkan nama pengguna = admin
Masukkan Kata Sandi = foobar atau kata sandi baru jika Anda mengubahnya Langkah 3 (atas)

Klik Menyimpan

Konfigurasikan Plugin Anchore

Langkah 8: – Menambahkan dan memindai gambar

Klik Barang baru di Jenkins Dashboard di menu kiri atas

Ini akan membuka layar dengan beberapa opsi.
Ketikkan nama yang diinginkan untuk proyek pengujian Anda di bidang Masukkan nama item.

Dalam proyek ini, kita akan menggunakan build Pipeline.
Pilih menu Saluran pipa dan klik Baik.

Anda sekarang siap untuk memindai gambar. Dalam kasus kami, kami akan menggunakan gambar yang sudah ada di register buruh pelabuhan yang dapat diakses oleh Mesin Jangkar.

Untuk melakukan ini, Anda akan menambahkan skrip pipa yang akan menentukan gambar yang akan dipindai.

Langkah 9: – Tambahkan skrip pipa

Gulir ke bawah ke bagian Pipeline dan tambahkan script untuk menentukan gambar yang akan dipindai. Kami akan mulai dengan openjdk: 8-jre-alpine yang berisi beberapa kerentanan.

simpul {
def imageLine = ‘openjdk: 8-jre-alpine’`
file writeFile: ‘anchore_images’, teks: imageLine`
nama anchore: ‘anchore_images’`
}

Klik Menyimpan

Langkah 10: – Jalankan build dan tinjau laporan pemindaian

Dari menu Jenkins

Klik Bangun Sekarang

Ini akan memulai proses pembuatan, yang membutuhkan beberapa menit tergantung pada ukuran gambar. Setelah selesai, angka dan tombol berwarna akan muncul di bawah Build History. Ini akan memiliki warna merah untuk Fail atau Blue for Pass. Mengklik tombol akan menampilkan lebih banyak hasil.

Langkah 11: – Tinjau Hasil

Klik Membangun # untuk melihat lebih detail
Ini membuka a Output Konsol jendela yang menunjukkan kegagalan – Laporan Anchore (GAGAL)

Laporan terperinci menunjukkan apakah analisis itu Gagal atau Lulus dan menyediakan beberapa laporan yang menunjukkan kerentanan, peringatan, dan lainnya berdasarkan konfigurasi. Secara default, plugin dikonfigurasi untuk gagal membangun (Berhenti) setiap kali ada kerentanan. Di bawah ini adalah tangkapan layar untuk laporan Kebijakan dan Keamanan.

Ringkasan Evaluasi Kebijakan Anchore

Di bawah ini adalah tangkapan layar dari hasil Keamanan untuk gambar yang rentan.

Daftar Kerentanan Umum dan Eksposur (CVE)

Jika sekarang kami memindai gambar yang stabil, debian: terbaru, tanpa kerentanan, kami mendapatkan hasil di bawah ini.

Ringkasan Evaluasi Kebijakan Anchore (Lulus)

Lulus Daftar Umum dan Eksposur (CVE) 

Kesimpulan

Anchore Container Image Scanner adalah alat analisis gambar yang kuat yang mengidentifikasi berbagai kerentanan dan masalah kebijakan dalam gambar Docker. Ini memiliki banyak opsi penyesuaian dan dapat dikonfigurasikan tentang cara merespons setelah mendeteksi masalah selama analisis. Salah satunya adalah memecah bangunan ketika mesin menghadapi kerentanan parah.

Jika Anda ingin membangun karier di DevSecOps, lihat ini Udemy tentu saja.

TAGS:

  • Sumber Terbuka

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map