‫Tamam.
‫Sırada, kod deposu taraması var.
‫Bu Docker'a özgü bile değil, ancak
‫dışarıda araçlar var ve Sneak bunlardan
‫biri. Sneak, repoların içindeki
‫kod bağımlılıklarınızı tarayacaktır.
‫Açık kaynağınız varsa, açık kaynak geliştiriyorsanız, bu tür
‫şeylerin çoğunu ücretsiz olarak yapacaklardır.
‫GitHub deponuzu, Bitbucket deponuzu tarayacak ve bağımlılıklara
‫bakacaklardır.
‫Her hafta onlardan açık kaynak depolarım ve buldukları güvenlik açıkları
‫hakkında raporlar alıyorum.
‫Günümüzde GitHub bunların çoğunu ücretsiz olarak kendisi
‫de yapıyor. Sneak daha uzun
‫süredir ortalıkta ve daha uzun süredir bu işi yapıyor, bu
‫yüzden ikisine de sahibim. GitHub bana e-posta gönderiyor
‫ve Sneak var. Eşyaları taraması için Sneak'e para verebilirsin.
‫Ayrıca artık sadece kod depoları değil, resim ve diğer şeyleri de yapabildikleri
‫daha fazla özelliğe sahipler.
‫Ancak bu, sürecin başlarında depolarınızı taramak
‫için tek bir satırdır.
‫Görüntüleri oluşturmanızı ve ardından CI'da, yani tarama yaptığınız
‫testlerde bir şeyler olmasını beklemeyin.
‫Mümkün olduğunca erken tarayın.
‫Bu, ShiftLeft güvenliği adı verilen bir şeyin temel
‫ilkelerinden biridir.
‫Tüm çalışmalarınızın solda ve çıktılarınızın sağda olduğu bir Kanban Tahtası
‫hayal ederseniz, ShiftLeft güvenlik hareketi,
‫ShiftLeft güvenliği için arama yaparsanız, tamamen güvenlik
‫sorumluluğunu geliştirme iş akışınızda daha erken ve
‫daha erken kaydırmakla ilgilidir.
‫Bunu yapmanın bir yolu da, sunucularda bir şeyler çalıştırma aşamasına
‫gelmeden önce git repolarınızdaki kod bağımlılıklarınızı
‫tarayan bu otomatik tarayıcılara sahip olmaktır,
‫değil mi? Ben olsam öyle yapardım.
‫Özellikle Docker ile ilgili bir şey değil ama ben olsam bunu yapardım.
‫Bir sonraki adım, buna çok benzeyen görüntü taramasının
‫kendisidir. Ancak, burada daha fazla özellik elde ediyoruz.
‫Sadece kod bağımlılıklarınızı taramıyoruz.
‫Konteynerin kendisini tarayabiliriz.
‫Görüntü, sağda. Sadece npm paketleriniz
‫veya Python paketleriniz gibi olmayan
‫tüm bağımlılıkları tarayabiliriz.
‫Artık
‫YUM paketlerini ve APK'yı veya apt'yi ya da işletim sistemi için
‫bu tür paket yöneticilerini tarıyorsunuz.
‫Görüntü tarayıcı derken bunu kastediyorum, çünkü kod bağımlılıklarınızın
‫yanı sıra bunları da tarayabilir.
‫Yani burada pek çok araç var.
‫Bunların çok popüler olanları bir süredir ortalıkta dolaşıyor,
‫ancak size bahsetmek istediğim birkaç yeni set ortaya
‫çıktı.
‫Bunlardan ilki Trivy ve ben bunu bu ay, aslında Ekim
‫ayında öğrendim.
‫Trivy, MicroScanner'ı üreten aynı şirket olan Aqua Security tarafından
‫üretilmiştir.
‫MicroScanner, diğer pek çok araçla birlikte
‫Anchor'un da popüler araçlarından biriydi.
‫Bunların hepsi resminizi CVE güvenlik açıklarına karşı tarayan
‫açık kaynaklı araçlardır.
‫CVE, hepimizin haberlerde duyduğu tüm açık kaynak
‫donör güvenlik açıklarının veritabanıdır.
‫Bu veri tabanını yöneten bir şirket olan Mitre'den.
‫Bu bir topluluk meselesi, değil mi?
‫Ne zaman birisi yazılımda bir güvenlik açığı bulsa, bunu yazıyor
‫ve bir CVE numarası alıyor.
‫Yaygın güvenlik açığı ve istismarlar, bunun
‫gibi bir şey.
‫CVE'nin tam olarak ne anlama geldiğini hatırlayamıyorum.
‫Eminim biriniz bana sohbet sırasında söyleyecektir.
‫Ama CVE bir numara alır, değil mi?
‫Toplulukta bu bilinen hataya atanmış
‫bir numara görüyoruz. Bir CVE tarayıcısı resimlerinizi bu güvenlik
‫açığı için tarayacaktır.
‫Bunların uygulamasına girdiğinizde, sahip olduğunuz
‫tarayıcının derleme sırasında Docker görüntüsünde çalışması
‫gerekiyor mu gibi her türlü küçük ayrıntı vardır.
‫Yoksa zaten oluşturulmuş bir görüntüyü mü tarıyor?
‫Bu tarayıcı temel dağıtımınızı
‫destekliyor mu? Red Hat'i destekliyor mu?
‫Alpine'i destekliyor mu?
‫Kullanmayı seçtiğiniz diğer dağıtım görsellerini
‫destekleyecek mi?
‫Ayrıca uygulamanız için npm veya pip gibi paket yöneticinizi
‫veya piyasadaki diğer
‫düzinelerce paket yöneticisinden birini destekliyor
‫mu? Bunları da destekliyor mu?
‫MicroScanner bunların
‫hepsini yapmadı. Bazılarını yaptı, ancak
‫ekosistemdeki diğer birçok araç gibi, hepsini yapmadılar.
‫Şu anda, Aqua Security'den Trivy adında biri,
‫bu şeyin tepesine
‫kadar çıkıyor.
‫Trivy, piyasadaki en eksiksiz açık kaynaklı
‫ücretsiz tarayıcı olduklarını iddia ediyor.
‫Aşağıda, neyi desteklediklerini göreceksiniz.
‫Tüm bu temel görüntüleri desteklediklerini fark edeceksiniz.
‫Daha sonra aşağıya inerseniz, diğer tüm araçlarla veya
‫en azından bu araçların popüler açık kaynak sürümleriyle
‫karşılaştırmalarını gösteren bir karşılaştırma
‫var. Kesinlikle bundan daha fazla araç var.
‫Burada yapmanız gereken pek çok seçim var.
‫Bir seçenek de nereyi taramak istediğimdir.
‫Docker Enterprise DTR'nin yaptığı gibi görüntü depomun bunları kendisinin
‫taramasını istiyor muyum?
‫Görüntülerinizi tutan bir kayıt defteriniz vardır ve
‫bu kayıt defteri, kayıt defterindeki görüntüler üzerinde
‫tek seferde tarama yapar.
‫Quay de bunu yapıyor. Quay bir bulut barındırma
‫görüntü deposudur ve aynı zamanda tarama da yapar, değil mi?
‫Bu tarayıcıların her biri her zaman tüm görüntü türlerini ve tüm uygulama
‫bağımlılıklarını taramaz.
‫Yani, burada gösterdikleri oldukça güzel... Temel olarak X, bunu yapmadıkları
‫anlamına gelir.
‫Oradaki 0 ya da O, daire, bunu yaptıkları anlamına
‫gelir. O zaman bence buradaki
‫çift OO en iyisi anlamına geliyor ve
‫üçgen de sorunlar olduğu, endişeler olduğu anlamına
‫geliyor.
‫Sanırım bu yıl satın aldıkları Trivy'yi sahipleniyorlar.
‫Trivy
‫her şeyi yapar. İşletim sistemi paketlerini, uygulama bağımlılıklarını yapar.
‫Kullanımının kolay olduğunu iddia ediyorlar.
‫Daha doğru olduğunu iddia ediyorlar. Bu konuyu okumaya başlarsanız,
‫sürekli bahsettiğim en büyük sorunlardan birinin Alpine'in
‫temel görüntüsünün neredeyse tüm bu tarayıcılarla çalışmaması olduğunu
‫fark edersiniz.
‫Bu tarayıcıları çalıştırdığınızda Alpine'deki güvenlik açıklarını
‫tespit etmesi için güvenlik açığı veritabanı düzgün
‫bir şekilde bağlanmamıştır.
‫Trivy, uyguladıkları yeni bir yöntemle bunu düzelttiklerini
‫iddia ediyor ve diğer insanların da bunu uygulayıp uygulamadığını
‫göreceğiz.
‫En eksiksiz olduklarını iddia ediyorlar.
‫Docker Captain arkadaşlarımın çoğu bunu kullandıklarını ve harika kullandıklarını
‫söylüyorlar.
‫Hangi tarayıcının yanı sıra diğer kararlardan biri de nerede tarama
‫yapacağınızdır.
‫Görüntü oluşturma sırasında tarama yapmayı seviyorum.
‫İmaj oluşturulduktan sonra taramak yerine
‫CI otomatik imaj oluşturma sırasında taramayı tercih ederim.
‫Bu sadece benim.
‫Hatta emin olmak için farklı zamanlarda
‫tarama yapan farklı sistemleriniz
‫bile olabilir. Ortamınıza bağlı olarak, üretimde
‫çalışan sunucularda tarama yapan sistemleriniz
‫olabilir. Bu pek yaygın değil.
‫Ancak, canlı olarak çalışan şeyleri taramak istediğiniz
‫süper güvenli bir ortamdaysanız, bunu kesinlikle bu araçlardan bazılarıyla
‫yapabilirsiniz.
‫Sık sık verdiğim bir demo MicroScanner
‫ile ilgili. Esasen, MicroScanner'da
‫yapmanız gereken tek şey, bu diğer aracın yanı sıra, MicroScanner'da
‫Docker dosyanıza ekleyebilirsiniz.
‫Sanırım Tivey uygulamasında görüntü oluşturulduktan sonra tarama
‫yapıyorsunuz.
‫Eğer çok paranoyaksanız, Docker imajınızın içinde
‫bir MicroScanner kullanabilirsiniz.
‫Daha sonra, kayıt defterine gönderilmeden önce görüntüler
‫üzerinde Tivey gibi bir şey çalıştırabilirsiniz,
‫bilirsiniz. Bunları daha sonra her zaman indirebilirsiniz,
‫ancak göndermeden önce resmimin savunmasız olduğunu bilmek
‫isterim.
‫Yani, orada yapabileceğiniz şey bu. Şimdi.
‫Size bir uyarıda bulunmak istiyorum.
‫Muhtemelen hiç olmayacak... Muhtemelen tümünde
‫sıfır güvenlik açığı olan hiçbir görüntünüz ya da belki
‫de sadece birkaç görüntünüz olmayacaktır.
‫Bu
‫sadece açık kaynağın doğasından kaynaklanmaktadır. Tipik olarak, herhangi bir görüntüyü tararsanız,
‫tipik olarak, herhangi bir görüntüyü tararsanız, güvenlik açıkları
‫olacaktır.
‫Neyin kabul edilebilir olduğu konusunda güvenlik ekibinizle
‫birlikte çalışmak sizin işinizdir, asla güvenlik açığımız olamaz.
‫Çünkü bazı güvenlik açıkları sizin için geçerli bile olmayabilir.
‫Görüntünüzde yer almaları otomatik olarak bir sorun teşkil edecekleri
‫anlamına gelmez, değil mi?
‫Biraz çalışman
‫gerekecek. Sanırım önereceğim şey, bunları
‫şimdi uygulamak, ancak bir tür başarısızlığı
‫kapatmak ve burada başarısızlığa devam et demek,
‫yani tek yapacağım şey sizi güvenlik açıkları olduğu konusunda
‫uyarmak. Bir güvenlik açığı var diye inşaatı
‫durdurmayacağım.
‫Bu çok önemli, çünkü tüm bu araçları otomatik olarak
‫uygulamaya başlarsanız, süreç başarısız olacaktır.
‫Onları açarsanız CI'nızda ya da derlemelerinizde
‫başarısız olurlar. Bir güvenlik açığı bulduklarında
‫başarısız olmayacakları bir tür sadece denetim modunda olduklarından emin
‫olmak istersiniz.
‫Bu şekilde en azından başlamadan önce güvenlik açıklarının
‫ne olduğunu öğrenebilirsiniz, bilirsiniz, sertleşmeden
‫önce, değil mi? Sertleşmeden önce.