Container Security with Anchore

Anchore Engine ile container güvenliği.

H. Alperen Selcuk
4 min readMar 19, 2021

Open source bir tool olan anchore ile nasıl daha güvenli containerlar yapabiliriz bu yazımda bunu anlatacağım. Burada amaç kullandığımız hazır imagelerde yada kendi yaptığımız imagelerdeki güvenlik açıklarını bulmak.

Anchore-Engine den bahsedersek kolay bir kurulumla anchore engine e eklediğiniz imagelerin zafiyet taramasını yaparak size sonuçları kritikliğine göre sıralayarak CVE koduyla (Common Vulnerabilities and Exposures) birlikte liste halinde verir.
Anchore-Engine i manuel bir şekilde de image yükle -> tara şeklinde kullanabileceğiniz gibi jenkins e entegre ederek daha güvenli bir CI/CD pipeline oluşturmanızı sağlar.

Burada anchore-engine yükleme ve image taratma kısmını göstereceğim bir başka bir yazımda jenkins entegrasyonu yapıp bir pipeline çalıştıracağız.

Anchore-Engine i docker-compose file ile yükleyebilceğiniz gibi kubernetes/openshift platformlarına da helm aracılığı ile yükleyebilirsiniz bu yazımda docker-compose ile kuracağız openshift için ayrı bir yazı yazacağım.

Anchore installation with Docker-Compose

https://docs.docker.com/compose/install/
https://docs.docker.com/engine/install/

öncelikle anchore-engine için bir dizin yaratıp docker-compose file i içine atalım.

mkdir ~/aevolume
cd aevolume
curl -O https://engine.anchore.io/docs/quickstart/docker-compose.yaml

docker-compose yaml dosyamızın olduğu yerde sırasıyla pull ve up yaparak containerları ayağa kaldırıyoruz.

#docker-compose pull
#docker-compose up -d

containerlarımızın durumuna bakıp çalıştıklarını göreceğiz.

iki tür anchore-cli kullanabiliriz. client yükleyerek yada container içine girip orada da işlem yapabiliriz.

anchore-engine api sinin içine girip anchore-cli ile sistem durumuna bakabiliriz. ama ben anchore-cli ile apiye direk istek atmayı da göstereceğim.

# docker-compose exec api anchore-cli system status

anchore-cli ı işletim sisteminize göre buradan yükleyebilirsiniz.
https://docs.anchore.com/current/docs/installation/anchore_cli/

anchore-cli yükledikten sonra 3 tane variable girmemiz gerekiyor. bunları export edip yada bash_profile ınıza ekleyip declare ederek uzun zamanlı kullanabilirsiniz.

eğer default makinenize kurduysanız direk aşağıdaki variablelar ile anchore-cli kullanabilirsiniz. farklı bir makinedeyseniz localhost yerine ipsini girebilirsiniz.

export ANCHORE_CLI_URL=http://localhost:8228/v1
export ANCHORE_CLI_USER=admin
export ANCHORE_CLI_PASS=foobar

şimdi image ekleyerek vulnerability datasını alacağız.

PS: anchore ilk kullanım için “anchore-cli system feeds list” diyerek mevcut vulnerability referanslarının olduğunu kontrol ediniz eğer liste komple pending durumda ise, “anchore-cli system feeds sync” komutu ile sync hale getirmeniz gerekiyor bu işlem biraz uzun sürebilir.

feeds list imiz olması gerektiği gibi olduktan sonra. image i ekleyebiliriz.
bilinen bir image ile başlayalım ( imageleri default olarak docker.io da search etmektedir)

“ anchore-cli image add ‘image tag’ “

“anchore-cli image list” komutu ile tarama durumunu görebiliriz. analyzed olana kadar bir süre geçecektir daha

analyzed olduktan sonra “anchore-cli image vuln ‘image tag’ all“ ile tüm açıklara bakabiliriz. isterseniz os veya non-os diyerek de ayırabilirsiniz.

gördüğünüz gibi High bir zafiyet görünmemektedir. zaten liste başı imagelerinden olan nginxden de bu beklenirdi. bir tane daha sık kullanılan image deneyelim bakalım high bulabilcek miyiz.

bu imagede yakalayabildik.

vulnerability id den kodunu aratabilceğiniz gibi vulnerability url den de zafiyet ile ilgili resmi açıklamayı ve nasıl kapatacağınızı bulabilirsiniz.

private bir repoda çalışmak istiyorsanız öncelikle registry eklemeniz gerekiyor.

anchore-cli registry add REGISTRY USERNAME PASSWORD

bu komutla registry ekledikten sonra private repodaki imageleri de scan edebilirsiniz.

bir sonraki yazıda görüşmek üzere, hepinize sağlıklı günler diliyorum.

h.a.s.

ref:

https://engine.anchore.io/docs/quickstart/

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

No responses yet

Write a response