Bagaimana Memasang dan menggunakan Pengimbas Keselamatan Imej Anchore Container?

The Mesin Anchore adalah alat sumber terbuka untuk mengimbas dan menganalisis gambar kontena untuk kelemahan keselamatan dan masalah dasar. Ia tersedia sebagai gambar kontena Docker yang dapat berjalan dalam platform orkestrasi, atau sebagai pemasangan mandiri.


Ini adalah alat keselamatan yang berguna yang membolehkan pembangun dan pasukan QA menguji, mengenal pasti, dan menangani kerentanan dalam gambar yang mereka gunakan untuk membuat aplikasi.

Dalam artikel ini, kita akan melihat cara memasang dan menggunakan pengimbas kerentanan gambar Anchore. Secara amnya, terdapat beberapa kaedah pelaksanaan. Walau bagaimanapun, saya akan memberi tumpuan kepada dua perkara berikut,

  • Menggunakan AnchoreCLI pilihan baris perintah
  • Berasaskan GUI Pengimbas Imej Kontena Jenkins Anchore pasangkan.

Kami akan menunjukkan kepada anda cara memasang, mengkonfigurasi, dan menghidupkan mesin, mengkonfigurasi dan menggunakan alat baris perintah AnchoreCLI serta plugin Jenkins. Untuk masing-masing dua kaedah, anda akan belajar bagaimana menambahkan gambar untuk mengimbas, melakukan imbasan, dan melihat laporan.

Pada akhir artikel, anda akan mempelajari tiga perkara berikut.

  • Memasang dan mengkonfigurasi Mesin Anchore
  • Memasang, mengkonfigurasi dan menggunakan AnchoreCLI
  • Mengkonfigurasi dan menggunakan Plugin Pengimbas Imej Anchore Container dalam Jenkins

Prasyarat

Berikut adalah syarat untuk tutorial ini;

  • Mesin tempatan atau maya dengan Ubuntu 18.04 dan yang berikut;
  • Docker
  • Pengarang Docker
  • Jenkins Dipasang dan dijalankan
  • pengguna sudo

Langkah 1: – Siapkan direktori yang berfungsi dan muat turun fail konfigurasi.

Buat direktori yang berfungsi untuk fail Anchore anda. Di dalam direktori itu, anda akan membuat dua subdirektori, satu untuk konfigurasi, dan satu untuk pangkalan data.

Buat direktori utama untuk fail Anchore

mkdir jangkar

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

cd sauh

konfigurasi mkdir

mkdir db

Muat turun fail konfigurasi

Setelah direktori siap, kami akan memuat turun dua fail konfigurasi (docker-compose.yaml dan config.yaml) dari projek Github.

Untuk memuat turun docker-compose.yaml

Pergi ke direktori utama anchor dan gunakan arahannya

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

Kemudian muat turun 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

Fail config.yaml adalah fail konfigurasi dengan tetapan asas yang diperlukan untuk menjalankan perkhidmatan mesin anchor. Ia mempunyai beberapa parameter, termasuk lalai, tingkat log, port mendengar, nama pengguna, kata laluan, dan lain-lain yang boleh anda sesuaikan untuk memenuhi keperluan tertentu.

Adalah amalan keselamatan yang baik untuk menukar kata laluan, dan anda boleh melakukannya dengan mengedit fail config.yaml. Walau bagaimanapun, dalam tutorial ini, kami akan menggunakan tetapan lalai.

Untuk meneruskan kelayakan lalai, (nama pengguna – pentadbir dan kata laluan – foobar), teruskan ke langkah 2.

Menukar kelayakan Anchore Engine (pilihan)

Dari direktori anchor gunakan arahan

nano ~ / anchore / config / config.yaml

Cari nama pengguna (pentadbir) dan kata laluan (foobar) dan ubah ke nilai pilihan anda.

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

Dengan adanya direktori kerja dan fail konfigurasi, sistem ini siap untuk pemasangan Anchore Engine.

Langkah 2: – Pasang dan hidupkan Anchore Engine

Anda akan menggunakan komposisi Docker untuk memasang dan memulakan Enchore Engine dan pangkalan data.

Dari direktori utama anchor, jalankan.

docker-menyusun up -d

Ini secara automatik akan menarik gambar Anchore dan kemudian membuat enjin dan pangkalan data Anchore di rumah dan ~ / anchore / database / direktori masing-masing. Setelah selesai, arahan akan menghidupkan mesin Anchore.

Setelah berjaya memasang dan menghidupkan enjin anchor, anda kini dapat mengimbas gambar menggunakan baris arahan anchore AnchoreCLI. Walau bagaimanapun, anda perlu terlebih dahulu memasang utiliti baris perintah AnchoreCLI, seperti yang ditunjukkan di bawah.

Memasang, mengkonfigurasi AnchoreCLI

Dalam langkah ini, anda akan belajar cara memasang dan mengkonfigurasi AnchoreCLI alat baris perintah.

Langkah 3: – Pasang AnchoreCLI

Dalam tutorial ini, pertama-tama kita akan memasang utiliti python-pip, yang kemudian akan digunakan untuk memasang AnchoreCLI dari sumbernya.

Untuk memasang Python pip. Untuk ke direktori utama Anchore dan jalankan

sudo apt-get kemas kini
sudo apt-get install python-pip
sudo pip install – upgrade setuptools

Pasang AnchoreCLI menggunakan python-pip

pip memasang anchorecli

Perintah ini akan memuat turun dan memasang fail untuk AnchoreCLI. Selepas pemasangan, kita sekarang perlu menggunakan fail .profile untuk menggunakan perintah

sumber ~ / .profil

Untuk mengesahkan sama ada pemasangan berjaya dan versi Anchorecli, gunakan arahan

anchore-cli – penukaran

Untuk memeriksa status sistem anchore-CLI, gunakan arahan

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

Harap maklum bahawa anda mesti lulus URL mesin, nama pengguna dan kata laluan Anchore.

Tentukan parameter Anchore Engine

Secara lalai, AnchoreCLI akan cuba mengakses Enchore Engine tanpa pengesahan. Walau bagaimanapun, ini tidak akan berjaya, dan anda perlu memberikan kelayakan Anchore Engine dengan setiap arahan.

Ini melibatkan lulus parameter nama pengguna, kata laluan, dan URL dengan setiap perintah Anchore CLI. Daripada memberikannya setiap kali, alternatifnya adalah menentukannya sebagai pemboleh ubah persekitaran dalam format berikut.

Untuk lulus URL, jalankan

ANCHORE_CLI_URL = http: // localhost: 8228 / v1

Ini menentukan Anchore Engine URL bersama dengan port 8228, yang digunakannya.

Tetapkan nama pengguna dan kata laluan menggunakan nilai lalai; jika tidak, gantikan dengan nilai baru yang anda tetapkan Langkah 1.

ANCHORE_CLI_USER = pentadbir

ANCHORE_CLI_PASS = foobar

Di atas menetapkan parameter hanya untuk shell semasa. Untuk menetapkan shell semasa dan proses lain yang bermula darinya, kami menggunakan perintah eksport

eksport ANCHORE_CLI_URL

eksport ANCHORE_CLI_USER

eksport ANCHORE_CLI_PASS

Dengan parameter yang ditentukan, persediaan AchoreCLI selesai, dan anda sudah bersedia untuk mengimbas gambar.

Langkah 4: – Menambah dan menganalisis gambar

Setelah Enchore Engine berjalan dan dikonfigurasi CLI, anda akan belajar bagaimana menambah dan menganalisis gambar untuk masalah keselamatan. Dalam tutorial ini, kita akan menganalisis dua gambar. -openjdk: 8-jre-alpine dengan kelemahan dan debian: terkini tanpa .

Menganalisis gambar

Untuk meneruskan, kita perlu terlebih dahulu menambahkan gambar ke enjin. Untuk menambah gambar

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

Tambahkan debian gambar stabil: terkini

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

Tambahkan lebih banyak gambar

gambar anchore-cli tambah openjdk: 10-jdk

gambar anchore-cli tambah openjdk: 11-jdk

Setelah menambahkan gambar ke Anchore Engine, analisis bermula dengan segera. Sekiranya terdapat beberapa gambar yang dimuatkan, gambar tersebut diletakkan dalam barisan dan dianalisis satu per satu. Anda boleh menyemak kemajuan dan melihat senarai gambar yang dimuat berserta status analisisnya.

Untuk melihat senarai, jalankan arahan

senarai gambar anchore-cli

Pengeluaran

[dilindungi e-mel]: ~ / senarai gambar anchore-cli $ anchore
Status Analisis Pencernaan Imej Tag Penuh
docker.io/openjdk:10-jdk sha256: 923d074ef1f4f0dceef68d9bad8be19c918d9ca8180a26b037e00576f24c2cb4analisis
docker.io/openjdk:11-jdk sha256: 9923c0853475007397ed5c91438c12262476d99372d4cd4d7d44d05e9af5c077analisis
docker.io/openjdk:8-jre-alpine sha256: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52analisis

Bergantung pada jumlah gambar, ukuran, dan masa yang berlalu setelah menambahkannya, anda akan dianalisis untuk gambar yang lengkap, menganalisis untuk yang sedang berjalan dan tidak dianalisis untuk gambar yang beratur.

Langkah 5: – Dapatkan dan lihat hasil analisis

Setelah analisis selesai, anda dapat memeriksa hasilnya dan melihat hasilnya untuk pemeriksaan kerentanan, pemeriksaan dasar, dan masalah lain yang telah dikenal pasti oleh mesin.

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

Lari

anchor-cli gambar vuln openjdk: 8-jre-alpine semua

Pengeluaran

[dilindungi e-mel]: ~ / anchore $ anchore-cli gambar vuln openjdk: 8-jre-alpine semua
Kerentanan IDPackage Severity Fix 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, keparahan, dan apakah ada perbaikan atau tidak. Untuk gambar kami openjdk: 8-jre-alpine, analisis menunjukkan bahawa ia mempunyai lima kerentanan tinggi dan sebilangan kerentanan sederhana dan tidak dapat diabaikan. (ada yang tidak ditunjukkan di atas).

Untuk melihat hasil kerentanan untuk debian gambar yang stabil: terkini

Jalankan arahan

anchor-cli gambar vuln docker.io/library/debian:latest semua

Pengeluaran

[dilindungi e-mel]: ~ / anchor $ anchore-cli gambar vuln debian: terkini semua
Kerentanan IDPackage Severity Fix CVE RefsVulnerability URL
CVE-2005-2541 tar-1.30 + dfsg-6 Boleh diabaikan Tiada https://security-tracker.debian.org/tracker/CVE-2005-2541
CVE-2019-1010022libc-bin-2.28-10 Tidak boleh diabaikan Tiada https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010022libc6-2.28-10 Tidak boleh diabaikan Tiada https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010023libc-bin-2.28-10 Tidak boleh diabaikan Tiada https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010023libc6-2.28-10 Tidak boleh diabaikan Tiada https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010024libc-bin-2.28-10 Tidak boleh diabaikan Tiada https://security-tracker.debian.org/tracker/CVE-2019-1010024

Seperti yang dapat dilihat dari laporan, debian gambar: terbaru mempunyai kelemahan yang dapat diabaikan dan tidak ada perbaikan.

Untuk melihat hasil penilaian dasar untuk openjdk gambar yang tidak stabil: 8-jre-alpine

lari

anchore-cli menilai cek openjdk: 8-jre-alpine

Hasil – Hasil menunjukkan gagal

[dilindungi e-mel]: ~ / anchore $ anchore-cli evaluasi cek openjdk: 8-jre-alpine
Pencernaan Imej: sha256: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52
Tag Penuh: docker.io/openjdk:8-jre-alpine
Status: gagal
Eval Terakhir: 2019-09-20T12: 03: 32Z
ID Polisi: 2c53a13c-1765-11e8-82ef-23527761d060

Gambar openjdk: 8-jre-alpine melanggar ID polisi yang ditentukan (ID Dasar: 2c53a13c-1765-11e8-82ef-23527761d060) dan oleh itu mengembalikan status Gagal.

Sekarang kita telah melihat bagaimana Anchore Engine bertindak balas setelah mengesan pelanggaran dasar, sudah waktunya untuk memeriksa apakah tingkah lakunya dengan debian gambar stabil kita: terkini.

Pemeriksaan dasar untuk debian: gambar stabil terkini

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

[dilindungi e-mel]: ~ / anchore $ anchore-cli evaluasi check docker.io/library/debian:latest –detail
Pencernaan Imej: sha256: d3351d5bb795302c8207de4db9e0b6eb23bcbfd9cae5a90b89ca01f49d0f792d
Tag Penuh: docker.io/library/debian:latest
ID Imej: c2c03a296d2329a4f3ab72a7bf38b78a8a80108204d326b0139d6af700e152d1
Status: lulus
Eval Terakhir: 2019-09-20T12: 00: 06Z
ID Polisi: 2c53a13c-1765-11e8-82ef-23527761d060
Tindakan Akhir: memberi amaran
Sebab Tindakan Akhir: penilaian dasar
Status Pencetus Gerbang
dokerfileinstructionDockerfile arahan ‘HEALTHCHECK’ tidak dijumpai, syarat yang sepadan

Hasilnya menunjukkan status Lulus dan Tindakan Akhir Peringatan kerana ketidakcocokan maklumat dengan arahan Dockerfile. Ini tidak gagal tetapi mungkin memerlukan pemeriksaan dan menangani masalah tersebut.

Mengkonfigurasi dan menggunakan Plugin Pengimbas Imej Anchore Container di Jenkins

Langkah 6: – Tambah dan konfigurasikan Anchore Container Image Scanner Plugin di Jenkins

Dalam langkah ini, kami akan mengintegrasikan Anchor Engine dengan pelayan Jenkins. Jenkins adalah pelayan sumber terbuka berasaskan Java untuk mengautomasikan pelbagai tugas berulang dalam kitaran pengembangan perisian.

The Pemalam jangkar boleh didapati di Jenkins tetapi tidak dipasang secara lalai.

Log masuk ke Jenkins menggunakan penyemak imbas web

http: // your_server_ip_or_domain: 8080

Masukkan nama pengguna dan kata laluan.

Pergi ke Menu Jenkins

Cari dan pilih Uruskan Jenkins

Pergi ke Urus Pemalam

Pada Tab tersedia, tatal ke bawah ke Membina Alat dan pilih Pengimbas Imej Kontena Anchore

Klik Pasang tanpa memulakan semula pilihan.

Selepas kejayaan pemasangan Plugin Pengimbas Imej Anchore Container, langkah seterusnya adalah mengkonfigurasi kelayakan.

Pergi ke Jenkins menu dan pilih Uruskan Jenkins tab.

Buka Konfigurasikan sistem.

Cari Konfigurasi jangkar.

Pilih Mod Enjin

Masuk ke Mesin Anchore perincian (URL enjin, nama pengguna dan kata laluan, dan port 8228 – port lalai untuk enjin).

URL – http: // your_server_IP: 8228 / v1

Masukkan nama pengguna = pentadbir
Masukkan Kata Laluan = foobar atau kata laluan baru jika anda menukarnya Langkah 3 (di atas)

Klik Jimat

Konfigurasikan Anchore Plugin

Langkah 8: – Menambah dan mengimbas gambar

Klik Item Baru di Papan Pemuka Jenkins di menu kiri atas

Ini akan membuka skrin dengan beberapa pilihan.
Taipkan nama yang dikehendaki untuk projek ujian anda di ruangan Masukkan nama item.

Dalam projek ini, kita akan menggunakan binaan Paip.
Pilih Saluran paip dan klik Okey.

Anda kini bersedia untuk mengimbas gambar. Dalam kes kami, kami akan menggunakan gambar yang sudah ada di pendaftaran pelabuhan yang dapat diakses oleh Mesin Anchore.

Untuk melakukan ini, anda akan menambahkan skrip saluran paip yang akan menentukan gambar yang akan diimbas.

Langkah 9: – Tambahkan skrip saluran paip

Tatal ke bawah ke bahagian Paip dan tambahkan skrip untuk menentukan gambar yang akan diimbas. Kita akan mulakan dengan openjdk: 8-jre-alpine yang mengandungi beberapa kelemahan.

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

Klik Jimat

Langkah 10: – Jalankan binaan dan semak laporan imbasan

Dari menu Jenkins

Klik Bangun Sekarang

Ini akan memulakan proses pembuatan, yang memerlukan beberapa minit bergantung pada ukuran gambar. Setelah selesai, nombor dan butang berwarna akan muncul di bawah Sejarah Binaan. Ini akan mempunyai warna merah untuk Fail atau Biru untuk Pas. Mengklik butang akan memaparkan lebih banyak hasil.

Langkah 11: – Semak Hasil

Klik pada Bina # untuk melihat lebih banyak maklumat
Ini membuka a Keluaran Konsol tetingkap yang menunjukkan kegagalan – Laporan Anchore (FAIL)

Laporan terperinci menunjukkan sama ada analisis itu Gagal atau Lulus dan memberikan beberapa laporan yang menunjukkan kelemahan, peringatan, dan lain-lain berdasarkan konfigurasi. Secara lalai, plugin dikonfigurasi untuk gagal membina (Berhenti) setiap kali terdapat kelemahan. Berikut adalah tangkapan skrin untuk laporan Dasar dan Keselamatan.

Ringkasan Penilaian Dasar Anchore

Di bawah ini adalah tangkapan skrin hasil Keselamatan untuk gambar yang rentan.

Senarai Kerentanan dan Pendedahan Biasa (CVE)

Sekiranya sekarang kita mengimbas gambar yang stabil, debian: terkini, tanpa kelemahan, kita akan mendapat hasilnya di bawah.

Ringkasan Penilaian Dasar Anchore (Lulus)

Daftar Senarai Kerentanan dan Pendedahan Biasa (CVE) 

Kesimpulannya

Anchore Container Image Scanner adalah alat analisis gambar yang kuat yang mengenal pasti pelbagai kelemahan dan masalah dasar dalam gambar Docker. Ia mempunyai banyak pilihan penyesuaian dan dapat dikonfigurasikan mengenai bagaimana bertindak balas ketika mengesan masalah semasa analisis. Salah satu daripadanya adalah mematahkan binaan ketika mesin menghadapi kerentanan yang teruk.

Sekiranya anda ingin membina karier anda di DevSecOps, maka periksa ini Kursus Udemy.

TAG:

  • Sumber terbuka

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Комментариев нет, будьте первым кто его оставит

    Комментарии закрыты.

    Adblock
    detector